AA_teller_sxc802727_PhilipNiewold.jpg

© Philip Niewold

Freie Auswahl

Selbstkonfigurierende Netzwerkdienste

01.03.2010 Avahi, der Linux-Ableger von Apples cleverer Zeroconf-Technologie, macht im lokalen Netz viele Dienste für Clients auch ohne zentralen Server auf einfache Weise nutzbar.

Das Konfigurieren von Computernetzwerken stellt selbst erfahrene Computeranwender gelegentlich vor unerwartete Probleme. Gerade Einsteiger kopieren Dateien lieber per USB-Stick oder schicken sie via E-Mail, anstatt einen vermeintlich komplizierten Server-Dienst aufzusetzen. Doch eigentlich bringt Linux von Haus aus alles mit, um im lokalen Netzwerk ohne Internetanbindung und zentrale Server Daten auszutauschen oder zu chatten.

Apple hat vor einigen Jahren mit Zeroconf [1] und Bonjour [2] Verfahren für das automatische Einrichten und konfigurationslose Erkennen von Netzwerkdiensten im LAN entwickelt. Die zugrundeliegenden Protokolle und Verfahren stellte Apple offen, und so gab es mit Avahi [3] bald auch eine quelloffene Variante des Verfahrens für Linux. Mittlerweile installieren praktisch allen gängigen Linux-Distributionen Avahi bereits vor und bietet so einen Weg, Dienste im lokalen Netzwerk ohne Aufwand zu finden.

Das Prinzip von Zeroconf/Bonjour hat sich Apple beim Marktschreier auf dem Wochenmarkt abgeschaut. Im herkömmlichen Markt (Netzwerk) sitzt jeder Händler (Server-Dienst) an seinem gut versteckten Marktstand und wartet auf Kunden (Clients), die zufälligerweise irgendwo erfahren haben, dass es da einen Händler gibt, der das anbietet, was sie gerade suchen (einen Netzwerkdienst). Wie ein klassischer Marktschreier brüllt Avahi/Zeroconf nun lauthals heraus, was es anzubieten hat. Jeder Kunde mit einem offenen Ohr (einem Avahi-tauglichen Programm) hört das lautstarke Angebot und braucht nicht lange zu suchen, um den Händler zu finden. Obendrein macht Avahi/Zeroconf einen zentralen Verwalter (DHCP-Server) überflüssig, der Kunden und Händler ihre Plätze (IP-Adressen) zuordnet: Avahi organisiert den Markt zur Not von alleine.

Avahi/Zeroconf ist dabei jedoch nicht so fahrlässig, lauhals das ganze Internet darüber zu informieren, was es zu holen gibt. Es sendet sein Angebot als Rundruf (Broadcast) nur an broadcastfähige Netzwerkschnittstellen. Dazu gehören zwar normale Netzwerkkarten, nicht aber PPP-Geräte, wie sie beispielsweise bei der Einwahl ins Internet via DSL oder Modem zum Einsatz kommen. Somit endet die Reichweite des Gebrülls spätestens am eigenen Router.

Avahi und Windows?

Die hier vorgestellten Programme und Techniken arbeiten sehr gut unter Linux und Mac OS X zusammen, doch Microsoft Windows kennt Zeroconf/Bonjour nicht. Apple hat jedoch Bonjour auch auf Windows portiert [11]. So können sie auch unter Windows beispielsweise mit Pidgin und Bonjour im lokalen Netzwerk chatten oder mit Winamp der Musik in einer DAAP-Freigabe lauschen.

Chat und (Video-)Telefonie

Eine der einfachsten und praktischsten Methoden, Avahi zu nutzen, stellt das Chatten innerhalb eines lokalen Netzwerks dar, ohne dass ein zentraler Server die Nachrichten zustellt. So können Sie in Ihren vier Wänden oder im Büro Instant-Messaging-Programme wie Pidgin, Empathy oder Kopete verwenden, ohne dass Sie dazu eine Internetanbindung benötigen oder einen lokalen Jabber-Server einrichten müssen. Desweiteren dringt von der Konversation auch nichts nach draußen. Ihre Nachrichten laufen nicht über die Server von AOL, Microsoft oder Yahoo, sodass eine Verschlüsselung entfallen kann.

Die gebräuchlichsten Multi-Messenger beherrschen mittlerweile diese Funktionalität. Leider versteckt sie sich in jeder Software unter einer anderen Bezeichnung. Die Tabelle "Mit Avahi/Bonjour chatten" zeigt den den Weg zur entsprechenden Konfiguration für die populärsten Programme auf.

Mit Avahi/Bonjour chatten

Instant-Messenger Kontenverwaltung
Pidgin Konten | Konten verwalten | Hinzufügen | Protokoll: Bonjour
Empathy Bearbeiten | Konten | Personen in der Nähe
Kopete Einstellungen | Einrichten | Zugang hinzufügen | Bonjour
Gajim Ändern | Konten | Local | Aktivieren

Sobald Sie den lokalen Chat via Bonjour im Programm aktiviert haben, sollten Sie ihre Kontakte im lokalen Netzwerk finden können – einem kleinen Schwatz steht nun nichts mehr im Weg. Startet ein weiterer Client im lokalen Netz ein Chat-Programm mit Bonjour-Konto, dann taucht er automatisch in den Kontaktlisten der anderen Chat-Programme auf. Sie müssen also nicht extra "Freunde" oder "Buddies" als Kontakte akzeptieren.

Wollen Sie mehr als nur einen textbasierter Chat, dann greifen Sie auf Ekiga zurück: Dieser Client für SIP-Telefonie vermittelt auch über Avahi Gespräche und Videotelefonate im lokalen Netzwerk. Ekiga brauchen Sie für die lokale Kommunikation über Avahi gar nicht extra einzurichten, laufende Ekiga-Programme tauchen automatisch unter Nachbarn in der Kontaktliste auf.

Dateiaustausch

Neben dem Chat stellt der bequeme Austausch von Daten einen typischen Anwendungsfall für Avahi dar. Stellen Sie sich vor, Sie besuchen einer Konferenz und wollen einem ebenfalls anwesenden Kollegen schnell eine größere Datei zukommen lassen. Dazu stehen weder ein lokales Netzwerk noch Hilfsmittel wie ein USB-Stick zur Verfügung. Ein Ah-hoc-WLAN zwischen Ihren beiden Laptops ließe sich zwar schnell aufbauen, doch wie kommt die Datei von Rechner A nach B?

Dazu müssen Sie nicht erst aufwändig Serverdienste wie Samba oder NFS einrichten. Für den schnellen und spontanen Datenaustausch zwischen zwei Rechnern gibt es Giver [4], das sich in den Paketquellen aller populären Linux-Distributionen findet. Es arbeitet ähnlich wie ein Chat-Programm: In einer Kontaktliste sehen sie alle im lokalen Netzwerk laufenden Giver-Instanzen, via Drag & Drop ziehen Sie eine Datei auf einen Kontakt und stoßen so die Datenübertragung an. Nun muss nur noch der Kontakt seinerseits die Übermittlung erlauben, und schon verschickt Giver die Datei verschickt.

Alternativ können Sie alternativ auch die zuvor genannten Chat-Programme über die lokalen Bonjour-Konten zum Dateitransfer benutzen. Wie beim Internet-Chat über ICQ, MSN und Co. ist es auch lokal möglich, Dateien via Drag & Drop auf einen Bonjour-Kontakt zu ziehen und sie so innerhalb des LANs zu verschicken. Im Test konnte Empathy 2.28.1.1 aus Ubuntu "Karmic" jedoch keine Dateitransfers auf diesem Weg empfangen – Pidgin und Kopete erwiesen sich hier als ausgereifter.

Druckerfreigabe

Nachdem Apple das Unternehmen hinter dem freien Druckserver Cups [5] vor drei Jahren übernommen hat [6], erhielt auch dieser Unterstützung für Avahi. Die Druckerfreigabe läuft dabei weitgehend intuitiv ab.

In Gnome öffnen Sie beispielsweise die Druckereinstellungen unter System | Systemverwaltung | Drucken und steuern im Menü über Server | Einstellungen die Konfiguration des Druckservers an. Wie in Abbildung 1 dargestellt aktivieren Sie nun über die Option Freigegebene Drucker anderer Systeme anzeigen, dass entfernte Drucker automatisch angezeigt werden. Umgekehrt ermöglichen Sie über Alle freigegebenen Drucker veröffentlichen, die mit diesem System verbunden sind die Freigabe eigener Drucker.

Abbildung 1

Abbildung 1: Mit Avahi geben sie ihre Drucker über Cups frei.

Sollten ihre Drucker an einem Server ohne graphische Oberfläche angeschlossen sein, dann können Sie über den Befehl cupsctl die Druckerfreigabe sowie die Erkennung im Netzwerk freigegebener Drucker steuern. Die Option --remote-printers aktiviert die automatische Druckervermittlung, --share-printers gibt die lokalen Drucker im Netzwerk frei.

Alternativ rufen sie das Webfrontend des Druckservers über die URL http://Servername:631 in einem Browser auf. Die Optionen Zeige freigegebene Drucker von anderen Systemen und Freigeben von Druckern welche mit diesem System verbunden sind finden sie im Tab Verwaltung des Cups-Webfrontends.

Musikfreigaben

Als ebenso einfach erweist sich das Freigeben der eigenen Musiksammlung im lokalen Netz über das Protokoll DAAP. So können Sie ihre Songs und Alben auf dem Desktop-PC mit großer Festplatte oder dem Mediacenter-PC im Wohnzimmer zentral speichern und die Musik ohne große Umstände beispielsweise über ihr Notebook ein per WLAN im Netzwerk hängendes Smartphone abspielen.

Am einfachsten richten Sie solch eine Musikfreigabe über die Medienverwaltung Rhythmbox ein: Es ist das einzige Musikprogramm, das nicht nur DAAP-Audiofreigaben abspielen kann, sondern auch als DAAP-Server fungiert. Die meisten mit der Desktopumgebung Gnome ausgestatteten Distributionen installieren Rhythmbox bereits vor. Musik-Freigaben anderer Rechner zeigt Rhythmbox von Haus aus in der Wiedergabeliste auf der linken Seite unter Verteilt an. Das Verteilen der Musik-Datenbank an andere Rechner müssen Sie jedoch erst über Bearbeiten | Plugins | DAAP-Musikverteilung | Konfigurieren | Eigene Musik verteilen aktivieren.

Eine Alternative zu Rhythmbox bietet das Programm Tangerine [8]. Dieser DAAP-Server gibt sowohl Musiksammlungen aus Banshee, Rhythmbox oder Amarok als auch komplette Verzeichnisse via DAAP frei. Unter Gnome finden sie Tangerine nach der Installation nicht etwa im Anwendungsmenü, sondern unter System | Einstellungen | Tangerine Media Sharing. Das Erstellen der Freigabe beschränkt sich auf das Setzen des Häkchens bei Enable Music Sharing. Sobald sie das erledigt haben, tauchen ihre Freigaben bei DAAP-fähigen Musikprogrammen automatisch auf.

Zu den Programmen, die zwar Musik via DAAP abspielen, aber nicht als DAAP-Server agieren können, gehören Banshee, Amarok und auch Winamp unter Windows. Banshee (Abbildung 2) zeigt DAAP-Streams automatisch unter Freigegebene Musik in der linken Seitenspalte an. Einstellungen zu DAAP finden sie in Banshee unter Bearbeiten | Einstellungen | Erweiterungen | DAAP-Freigabe.

Abbildung 2

Abbildung 2: Rhythmbox und Banshee spielen Musik über DAAP ab.

Auch Amarok kann in der Theorie DAAP-Freigaben abspielen, erweist sich in der Praxis jedoch dabei als nicht sonderlich stabil und intuitiv. Es zeigt DAAP-Freigaben nicht automatisch an, stattdessen müssen Sie wie in Abbildung 3 gezeigt die Freigabe über Medien abspielen | Netzwerk | Netzwerk | Rechner auswählen | Musik von XXX erst von Hand laden. Allerdings wollte Amarok 2.2.0 (die Amarok-Version aus Kubuntu 9.10) partout keine Freigaben im LAN entdecken. Erst ein Update auf die gerade eben veröffentlichte KDE Software Compilation 4.4 (Amarok 2.2.2) brachte Amarok dazu, DAAP-Freigaben wieder zu finden. Allerdings stürzt das Programm ab, sobald man die Freigabe laden möchte.

Abbildung 3

Abbildung 3: In KDEs Mediaplayer Amarok ist DAAP leider gut versteckt.

DAAP arbeitet übrigens plattformübergreifend, sodass auch Programme für Windows oder Mac OS X DAAP-Freigaben von Rhythmbox oder Tangerine abspielen. Das gilt beispielsweise für iTunes auf Mac OS X und Windows, und auch für Winamp gibt es ein DAAP-Plugin [9].

Web- und FTP-Server

Die hohe Schule von Avahi stellt das Bereitstellen klassischer Netzwerkdienste dar. Für den Webserver Apache und für FTP-Dateiserver ist das gar nicht so schwer. Der Vorteil daran: Der Webbrowser beziehungsweise Dateimanager der Clients zeigen diese Dienste dann automatisch an.

Den Webserver Apache rüsten sie sehr einfach mit Unterstützung für Avahi aus: Ein passendes Modul gibt es bei Debian oder Ubuntu in den Paketquellen. Sie müssen es lediglich installieren und anschließend aktivieren. Das Beispiel aus Listing 1 installiert Apache2 sowie das Avahi-Modul und nimmt die Aktivierung vor.

Listing 1
$ sudo apt-get install apache2 libapache2-mod-dnssd
$ sudo a2enmod mod-dnssd
$ sudo /etc/init.d/apache2 restart

Danach publiziert Apache seine Existenz im Netz. Browser wie Safari oder Epiphany zeigen die Webseite nun automatisch in den Bookmarks an (Abbildung 4, rechts). Bei Epiphany finden sie die lokale Seite unter Lesezeichen | Nahe gelegene Seiten. Firefox unterstützt diese Funktion nicht. Zwar können Sie ihn über die Erweiterung BonjourFoxy [10] nachrüsten, die Sie jedoch für Linux selbst kompilieren müssen.

Abbildung 4

Abbildung 4: Der Dateimanager Nautilus und der Webbrowser Epiphany zeigen ihre Avahi-Fähigkeiten.

Auch einen FTP-Server geben Sie bei Bedarf via Avahi im Netz bekannt. Dazu erzeugen Sie mit Root-Rechten die Datei /etc/avahi/services/ftp.service und fügen den Inhalt aus Listing 2 ein. Nach dem Speichern der Datei taucht der FTP-Server in der Netzwerkansicht des Nautilus-Dateimanagers auf (Abbildung 4, links), ohne dass sie vorher Bookmarks anlegen müssten.

Listing 2
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">FTP File Sharing von %h</name>
    <service>
        <type>_ftp._tcp</type>
        <port>21</port>
    </service>
</service-group>

… und mehr!

Immer mehr Anwendungen entdecken die Möglichkeiten von Avahi für sich. Beispielsweise können Sie in Gnome unter System | Einstellungen | Entfernter Bildschirm ihren Desktop freigeben und dann mit einem beliebigen VNC-Client steuern. Der Gnome-VNC-Server Vino gibt jedoch via Avahi diese Freigabe bekannt, so dass der Client Vinagre (Sie finden ihn im Gnome-Anwendungsmenü unter Internet | Betrachter für entfernte Bildschirme) die Desktopfreigabe automatisch findet und in der Bookmarkleiste anzeigt.

Bei Bedarf schicken Sie die Tonausgabe ihres Rechners über Pulseaudio an einen anderen Rechner im lokalen Netz – wieder finden sich Server und Client über Avahi. Oder Sie arbeiten mit Gobby [12] gleichzeitig im LAN an Textdokumenten, ohne dass sie einen Server aufsetzen müssten.

Auf der Homepage von Avahi finden Sie eine Auflistung aller Programme, die Avahi zum Vermitteln ihrer Netzwerkfähigkeiten nutzen [13] ebenso wie Informationen für Entwickler [14], um Avahi in eigenen Anwendungen zu implementieren.

Glossar

DAAP

Das Protokoll wurde ursprünglich ebenso wie Bonjour und Zeroconf von Apple für die iTunes-Software entwickelt. Im Gegensatz zu Bonjour und Zeroconf liegen die Spezifikationen von DAAP jedoch nicht offen. Daher wurde das Protokoll unter Linux per Reverse Engineering umgesetzt.

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare