Mit Zeroconf annoncieren Programme ihre Dienste im Netzwerk. Was nüchtern klingt, ist in der Praxis spannend, nützlich und verblüffend einfach, wie das ausgewählte Dutzend Beispiele zeigt.
Um Dienste im Netz zu nutzen, muss jeder Anwender normalerweise den Server oder ein zentrales Verzeichnis kennen, das die Dienste listet. Zeroconf, genauer DNS-SD (Service Discovery), ändert das grundlegend. Der Artikel zu Avahi ab Seite 64 erklärt die technischen Hintergründe. Kurz: Zeroconf nimmt den Anbieter in die Pflicht, seine Dienste bekannt zu geben. Das klappt verblüffend gut und kommt ohne zentralen Server aus. Multimedia-, Instant-Messaging und Telefonie-Software ist damit einfacher zu bedienen, auch administrative Aufgaben gehen leichter von der Hand.
Die nächsten Abschnitte stellen Anwendungen vor, die zusammen mit Avahi die Segnungen von Zeroconf für sich nutzen und sich in einem Kurztest bewährten. Tabelle 1 gibt einen systematischen Überblick und nennt die Dienstetypen.
|
Tabelle 1: |
|---|
Administratives
In die Admin-Kategorie fallen Druckerverwaltung oder Remote-Desktop-Technik. Vor allem aber profitieren Dateimanager von Zeroconf. Es ist beispielsweise möglich, sämtliche FTP-, SSH- und SFTP-Dienste automatisch zu listen und auf Wunsch einzubinden.
Avahi-Discovery (siehe Seite 70) durchforstet die Vielfalt an Diensten, die Rechner per Zeroconf anbieten. Das Programm beantwortet zum Beispiel die Frage, welchen Servicetyp ein Musikplayer zur Verfügung stellt. Falsche Typen sind eine mögliche Ursache, wenn Konsumenten und Anbieter sich nicht finden. Das GUI zeigt zudem Detailinformationen, etwa die Zeroconf-TXT-Einträge. Avahi-Discovery ist Bestandteil der Avahi-Distribution [1].
In abgespeckter Form steckt Discovery-Funktionalität auch im SD-Applet (Service Discovery). Das Programm hängt sich in die Systemleiste des Gnome-Desktops und führt in einem simplen Menü zu FTP-, SSH- und Webdiensten. Weil die meisten Benutzer diese drei Services am häufigsten benötigen, ist das Applet überaus praktisch.
Der Gnome-Dateimanager Nautilus greift auf seine Ressourcen über eine Abstraktionsschicht zu, das Gnome Virtual Filesystem (VFS, [3]). Dieser Mechanismus bindet auch Zeroconf-Dienste ein, wenn VFS entsprechend konfiguriert ist (Abbildung 1). Ein Zeroconf-Dienst sieht dann aus wie ein gewöhnliches Dateisystemobjekt. Gängige Linux-Distributionen liefern Gnome-VFS derzeit ohne Avahi-Unterstützung aus. Wer in den Genuss dieser Integration kommen will, muss das VFS selbst kompilieren.

Abbildung 1: Wurde Gnome-VFS mit Avahi-Unterstützung übersetzt, dann präsentiert Nautilus die verteilten Ressourcen wie ein normales Verzeichnis.
Auch der KDE-Dateimanager Konqueror (Abbildung 2) bedient sich einer modularen Abstraktionsschicht. Jeder der so genannten KIO-Slaves ist für eine Ressource eines Typs zuständig. Mit einem Zeroconf-Modul gewappnet bindet Konqueror auch diese Dienste ein.

Abbildung 2: Ein KIO-Slave-Modul verleiht dem Konqueror Zeroconf-Fähigkeiten. Die Pseudo-URL »zeroconf:/« bindet alle Dienste baumartig ein.
KDE nutzt bisher aber die Apple-Bibliotheken für Zeroconf. Seit kurzem gibt es mit »kdnssd-avahi« Ersatz für die Service-Discovery-Bibliothek von KDE. Sie stimmt Konqueror & Co. ganz auf Avahi ein. Leider liefern die meisten Distributionen KDE ganz ohne Zeroconf aus und wenn doch, dann mit den Apple-Bibliotheken. Da hilft nur, die »kdnssd-avahi«-Komponente manuell zu übersetzen.
Fernzugriff
Wie der Name andeutet ist der KDE Personal File Server (KPF) ein Mini-Server, der Dateien anderen Rechnern zur Verfügung stellt. Hinter KPF verbirgt sich ein einfacher Webserver, der seine HTTP-Dienste im Netzwerk via Zeroconf bekannt gibt. Schreib- und Lesevorgänge laufen über das WebDAV-Protokoll. KPF gehört zu jeder KDE-Distribution.
Für den Fernzugriff auf einen Desktop integriert KDE das VNC-Protokoll. In Zeroconf-fähigen Installationen informiert der Remote-Framebuffer (KRFB-Server) die Remote-Desktop-Clients (KRDC) über neue Angebote. User und Admins finden damit jede freigegebene Desktop-Ressource, um per KRDC darauf zuzugreifen. KRFB und KRDC sind feste Bestandteile jeder KDE-Distribution.
Wer wissen will, wie sehr sein Rechner gerade die CPU und den Speicher beschäftigt, greift unter KDE zum Systemguard. Dessen Server-gestütztes Pendant namens KDE Systemguard Daemon (KSysguardd) erweitert die Einsichten auf die Interna ferner Maschinen (Abbildung 3). Da KSysguardd seine Ressourcen im Netzwerk via Zeroconf bekannt gibt, finden Admins die Liste aktiver Clients vor und überwachen die Maschinen bequem von ihrem Arbeitsplatz aus. KSysguard und KSysguardd gehören zu allen KDE-Distributionen.

Abbildung 3: KSysguard überwacht lokale und ferne Ressourcen: CPU-Last und Speicherbelegung bleiben so jederzeit im Blickfeld.
So lange nicht jedes Programm Zeroconf beherrscht, wirken kleine Brücken Wunder. Zum Beispiel die Avahi-Bookmarks: Dieser Mini-Webserver ist mit dem Python-Framework Twisted Web [4] realisiert. Er verbreitet HTML-Listen mit Web- und FTP-Ressourcen – gewissermaßen eine Bookmark-Liste der Zeroconf-Ressourcen. Avahi-Bookmarks ist Bestandteil der Avahi-Distribution.
Auf FTP-Dienste hat sich der KFTP-Grabber spezialisiert (Abbildung 4). Der FTP-Client zeigt die per Zeroconf publizierten FTP-Dienste in einer Seitenleiste an.

Abbildung 4: KFTP-Grabber listet in der Seitenleiste »Sites Near You« alle Zeroconf-Ressourcen des Typs »_ftp._tcp«.
Quasselstrippe
Insbesondere bei Instant-Messaging-Clients wie Gaim bietet es sich an, deren Vorhandensein via Zeroconf im lokalen Netzwerk bekannt zu geben. Damit weiß jeder User auch ohne zentralen Server, welcher seiner lokalen Buddies gerade online ist. Möglich wird dies durch den Dienstetyp »_presence.tcp«, den auch Apples I-Chat verwendet.
Bei VoIP-Softphones ist es ebenfalls praktisch, wenn sie ihre Teilnehmer via Zeroconf im lokalen Netz bekannt machen. Damit klappt der kleine Schwatz zwischendurch auch ohne Anmeldung am zentralen Server. Nur für Online-Buddies in anderen Netzen bleibt der Server unerlässlich. Die VoIP-Softphones Gizmo (Abbildung 5) und der Gnomemeeting-Nachfolger Ekiga (Abbildung 6) setzen die Idee in die Tat um und arbeiten mit Zeroconf. Das Gizmo-Projekt hat seine Software noch nicht nativ auf Avahi portiert; mit dem Kompatibilitätsmodus kommt Gizmo aber gut klar.

Abbildung 5: Das Softphone des Gizmo-Projekts (im Vordergrund) gibt seine Nummer per Zeroconf im Netzwerk bekannt. Avahi-Discovery (im Hintergrund zu sehen) belegt dies. Der Eintrag »SIP Telephony« stammt vom Dienstetyp »_sip._udp.local.«.
Wer Apples I-Tunes kennt, schätzt meist auch dessen Musiksharing-Funktion. Der Player stellt auf Wunsch die persönliche Musikbibliothek allen Nutzern eines lokalen Netzwerks zur Verfügung. Open-Source-Lösungen stehen dem in nichts nach. Bekannte Vertreter wie Banshee (in C# programmiert, siehe Abbildung 7) und Rhythmbox (Gnome-Projekt) setzen wie das Vorbild auf Musiksharing mittels Dienstetyp »_daap._tcp«. Der Nutzer wählt bequem per GUI aus, welche Musikstücke er bereitstellt und welche fremden Songs er hören will.
Sogar der KDE Konqueror weiß mit dem DAAP-Dienstetyp etwas anzufangen, obwohl er selbst nicht als Musikplayer arbeitet. Er listet alle angebotene Stücke hierarchisch, wenn der User die Pseudo-URL »daap:/« in die Adressleiste tippt. Da KDE für den Zweck einen KIO-Slave einsetzt, ist diese Quelle auch für andere KDE-Programme nutzbar.
Eigenbrötler
Etwas aus der Reihe tanzt der Video-LAN-Client (VLC, Abbildung 8). Er exportiert Medien-Streams nicht via DAAP, sondern benutzt seinen eigenen Servicetyp »_vlc-http._tcp«. Nur ein weiterer VLC spielt daher jene Medien, die eine VLC-Instanz freigegeben hat.

Abbildung 8 : VLC streamt sowohl Audio- als auch Videodaten und gibt diese durch Zeroconf im Netzwerk bekannt.
Textdateien bearbeiten ist auf den ersten Blick eine reichlich unscheinbare Aufgabe, die nichts mit Zeroconf zu tun hat. Gobby beweist das Gegenteil: Bei diesem kollaborativen Editor dürfen mehrere Benutzer gleichzeitig an einem Dokument arbeiten. Mehrere Instanzen des Editors verbinden sich über das Netz und zeigen jedem Teilnehmer den gemeinsam erarbeiteten Stand.
Wer an einer Arbeitsgruppe teilnehmen will, muss gewöhnlich deren Adresse kennen. Nicht bei Zeroconf: Gobby listet alle potenziellen Partner im LAN. Der Editor ist zwar für HOWL (Seite 67) programmiert, die Avahi-Kompatibilitätsbibliothek funktioniert aber tadellos.
Zeroconf regt offenbar zur Kooperation an: Nicht nur Programme einer Plattform arbeiten zusammen, Avahi und sein Gegenstück auf Apple-Seite (dort Rendezvous getauft und jüngst in Bonjour umbenannt) harmonieren bestens. So zeigt beispielsweise Apples Safari-Browser die von Avahi freigegebenen Ressourcen als Bonjour-Bookmarks (Abbildung 9). Auch der Finder von Mac OSÂ X bedient sich gern bei Avahi-Diensten.
Rosige Aussichten
Wer Zeroconf für einen Exoten und reinen Apple-Günstling hält, sollte die Open-Source-Variante Avahi ausprobieren. Noch hat das junge Projekt den Weg in die meisten Linux-Distribution nicht gefunden. Bei den Qualitäten von Zeroconf und der inzwischen recht breiten Unterstützung in vielen Applikationen dürfte sich das bald ändern. (fjl)
|
Infos |
|---|
|
[1] Avahi-Projekt: [http://www.avahi.org] [2] Avahi-Zusatzkomponenten für KDE: [http://helios.et.put.poznan.pl/~jstachow/pub/] [3] Gnome-VFS: [http://developer.gnome.org/doc/API/gnome-vfs/] [4] Markus Franz, “Der richtige Dreh – Python und Twisted zur Netzwerkprogrammierung”: Linux-Magazin 01/06, S. 48 |
|
Der Autor |
|---|
|
Daniel S. Haischt ist diplomierter Wirtschaftsinformatiker (FH) und studiert zurzeit Business Information Management an der Hochschule Reutlingen. Zudem ist er Mitglied mehrerer Open-Source-Projekte. |









