Posts Tagged ‘Bonjour’

Sonntag, 9. August 2015

Apple TV verursacht zusammen mit einer Apple Time Capsule arpwatch flip flops

Seit ich vor einigen Tagen im Netzwerk eines Familienangehörigen zwei gebrauchte Apple Time Capsules (500GB sowie 2TB) installiert habe, füllt sich das Log meiner arpwatch-Instanz mit folgenden Meldungen:

            hostname: 
          ip address: 192.168.44.155
           interface: eth1
    ethernet address: aa:bb:cc:dd:ee:ff
     ethernet vendor: 
old ethernet address: 00:11:22:33:44:55
 old ethernet vendor: Apple, Inc
           timestamp: Sunday, August 9, 2015 15:36:58 +0200
  previous timestamp: Saturday, August 8, 2015 23:03:54 +0200
               delta: 16 hours

Aus Sicht von arpwatch „übernimmt“ die Time Capsule 500GB die IP-Adresse des Apple TVs. Dies ist insofern unzulässig, weil ich die IPs statisch festgelegt habe und mittels einem DHCP-Server an die anfragende MAC-Adresse aushändige.

Nach kosmetischen Anpassungen an der Konfiguration der Time Capsule brachte ich die Fehlermeldung nicht weg. Eine Google-Suche hingegen liefert mir einen Hinweis, was das wirklich Problem sein könnte:

Bug 841067 – Arpwatch repeatedly misdetects „Bonjour Sleep Proxy“ as „flip flop“

Frei übersetzt legt die Time Capsule die Bonjour-Informationen des Apple TVs in ihrem Zwischenspeicher ab. Wenn sich der Apple TV in den Schlafmodus verabschiedet, weil das Gerät nicht (mehr) genutzt wird, sendet die Time Capsule Infos über den Apple TV regelmässig ins Netzwerk, damit andere Apple-Geräte wissen, dass ein Apple TV im Netz hängt. Irgendwie scheint dieser Bonjour-Broadcast für arpwatch auszusehen, als ob die Time Capsule unter der IP-Adresse des Apple TVs funkt.

Ich habe den Log-Alarm deshalb nun so umgestellt, dass er flip flops mit dieser IP ignorieren wird.

Nachtrag

Ein bereits älterer Thread zu dem Thema im Apple-Diskussionsforum: ARP Cache Poison behavior by Apple TV

Tags: , , , , , , ,
Labels: Apple, Linux

3 Kommentare | neuen Kommentar verfassen

Mittwoch, 28. Mai 2014

AirPrint mit einem HP LaserJet 1300 auf einem Linux-Server aktivieren

Heute habe ich den Linux-Server in meinem Heimnetzwerk so konfiguriert, dass der dort per USB angeschlossene HP LaserJet 1300 auch von iOS-Geräten (iPhone und iPad) mittels AirPrint angesteuert werden kann.

Dies stellt sich heutzutage, anno 2014, als ein äusserst simples Unterfangen heraus:

CUPS installieren

Zuerst installiert man auf dem Server CUPS, das Common UNIX Printing System, welches von Apple gehegt und gepflegt wird. In meinem Fall hat dieses Drucksystem lprng ersetzt, welches automatisch deinstalliert wird:

# apt-get install cups

cups Web-Oberfläche freigeben

In /etc/cups/cupsd.conf sind in allen Location-Elementen (merke: CUPS verwendet Apache als Web-Frontend) die IPs des lokalen Netzwerks für erlaubte Zugriffe freizugeben:

...
Listen *:631
...
DefaultAuthType BasicDigest
...
<Location />
  Order allow,deny
  Allow From 10.0.10.0/24
</Location>
...
<Location /admin>
  Order allow,deny
  Allow From 10.0.10.0/24
</Location>
...

DefaultAuthType BasicDigest habe ich von Basic auf Digest umgestellt, damit ich das Passwort meines sudo-befähigten Benutzers nicht im Klartext über das Netzwerk gesendet wird. Damit man sich nach dieser Konfigurationsanpassung einloggen kann, muss man zuerst noch einen entsprechenden Benutzer erstellen:

# lppasswd -a <username>
Enter password: ********
Enter password again: ********

Eigener Benutzer der Gruppe lpadmin hinzufügen

Damit ich CUPS über die Web-Oberfläche administrieren kann, habe ich meinen persönlichen Benutzernamen zusätzlich der lokalen Gruppe lpadmin zugewiesen:

# usermod -aG lpadmin <username>

CUPS LPD-Druckserver einrichten

Obwohl heute IPP das Mass aller (Druck)dinge ist, verwende ich für Mac OS X- und Windows-Clients weiterhin das LPR/LPD-Druckprotokoll, weil es so simpel gestrickt und kaum fehleranfällig ist. Da CUPS aber lprng deinstalliert hat, muss in /etc/inetd.conf folgende Zeile eingefügt werden, welche den CUPS-eigenen LPD-Server aktiviert:

...
printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd -o document-format=application/octet-stream

inetd startet man unter Debian folgendermassen neu:

# /etc/init.d/openbsd-inetd restart

Drucker einrichten und konfigurieren

Über die Web-Oberfläche, welche man unter http://localhost:631 erreicht (respektive über http://10.0.10.10:631) richtet man sich mit dem Installationsassistenten den USB-Drucker ein. Bei mir wurde das Gerät an der USB-Schnittstelle problemlos erkannt und auch entsprechende HP-Treiber angeboten.

WICHTIG: Ich hatte erhebliche Probleme mit dem Postscript-Druckertreiber (der HP LaserJet 1300 kann Postscript 2 emulieren): Jeder zweite Druckauftrag — egal ob von Mac oder vom iPad — blockierte den Drucker entweder oder liess ihn eine fast leere Seite mit der Fehlermeldung „Offending Command“ ausdrucken. Doch sobald ich den Drucker auf den Sample monochrome PCL XL/PCL 6 driver umgestellt hatte, funktionierte die Druckerei tadellos. In diesem Fall ist aber darauf zu achten, dass man unter Mac OS X ebenfalls mit dem PCL-Druckertreiber druckt, damit man dem CUPS-Druckserver die Umwandlung von PostScript zu PCL erspart.

Fertig!

Obwohl ältere AirPrint-Installationsanleitungen im Internet die Sysadmins nun auch noch auffordern, Avahi zu installieren (war bei mir schon vor dieser Neukonfiguration des Drucksystems auf dem Server aktiv) und mittels des Scripts airprint-generate.py einen Bonjour-Service anzukündigen, funktionierte die Anpreisung mit CUPS 1.7.2-3 ohne irgendwelche Konfigurationsanpassungen.

Tags: , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen