Gefrickel mit von Hand eingetragenen statischen IPs? Gefrickel mit der hosts-Datei? Manche User sind netzwerktechnisch noch im letzten Jahrtausend. Verzeiht mir die Polemik, aber es gibt wunderbare Entwicklungen, die man auch nutzen sollte. Disclaimer: Natürlich gibt es für den einen oder anderen User noch Gründe auch heute noch IPs von Hand zuzuweisen, die kenne und verstehe ich. Dieser Blog-Artikel soll einfach ein paar Infos zur „moderneren“ Netzwerkkonfiguration im Bereich SoHo liefern. Verzeiht die schnippische Einleitung!
DHCP
Vorweg eine Werbung für DHCP. Ich gehe mal vom typischen Heimanwender aus: Der Internetzugang wird über einen DSL-Router mit eingebautem WLAN-Access-Point realisiert. Diese Dinger haben so gut wie immer einen DHCP-Server eingebaut, er ist eigentlich auch immer von Haus aus aktiv. D.h. im Normalfall muss die Netzwerkkonfiguration angeschlossener Computer überhaupt nicht angepasst werden.
Statische IPs? Willkommen im 21. Jahrhundert…
OK, nun wollt ihr einen Serverdienst wie bspw. einen Webserver hinter dem Router betreiben. Dazu müssen Ports an diesen weitergeleitet werden. Da sich dafür die IP nicht ändern darf, muss man trotzdem wieder mit einer fest eingetragenen IP arbeiten. Nicht zwangsläufig! Jeder ordentliche Router bietet die Möglichkeit eine IP fest einem Rechner zuzuordnen. Dies geschieht über die MAC-Adresse der Netzwerkkarte. Man muss die Nummer einfach nur auslesen und im Router dann mit einer IP verknüpfen. Ab dann bekommt der Rechner immer dieselbe IP.

Achtung. Nicht jeder Router kann das. Wenn ihr so einen habt, dann kompostiert ihn. Es gibt zig billige Alternativen, die das können. Außerdem schafft man sich einen Single Point of Failure. Fällt der Router aus, so bekommen die Rechner keine IPs mehr. Dennoch halte ich diese Problematik – gerade im SoHo-Bereich – für sehr irrelevant.
Lokale Namensauflösung mit Avahi
Nun zum Kern dieses Beitrages: moderne Techniken. Computer kommunizieren in Netzwerken über IPs und nicht über Rechnernamen. Ohne einen zentralen Nameserver (oder manuell angepassten hosts-Dateien) weiß ein Computer nicht, unter welcher IP er einen anderen Rechner erreichen kann. Hat man beispielsweise einen Webserver mit dem Namen „rechenknecht“ im LAN und möchte diesen von einem anderen Rechner ansprechen, so kann man nicht einfach http://rechenknecht im Browser eingeben und so die Webseiten des Webservers aufrufen. Man müsste zuvor die Verknüpfung IP Rechnername erst in die hosts-Datei eintragen oder einen Nameserver einrichten, der dann den Namen auflösen könnte.
Beide „Lösungen“ sind nicht ideal. Befinden sich weitere Rechner im LAN, so müsste überall die hosts-Datei angepasst werden. Gibt es eine Änderung, so muss wieder an allen Rechnern Hand angelegt werden. Bringt ein Bekannter einen Rechner mit, so müssten hier Konfigurationen vorgenommen werden, die man später wieder rückgängig machen muss. Und ein Nameserver ist auch nicht in wenigen Minuten eingerichtet und letztendlich für ein kleines LAN mit Kanonen auf Spatzen geschossen.
Die Lösung für dieses Problem nennt sich Avahi / Zeroconf. Zeroconf verspricht „Zero Configuration Networking“ und kommt dem auch sehr nahe… Avahi wird schon seit längerer Zeit bei vielen Linuxen vorinstalliert und ist voll kompatibel zu Bonjour von MacOS X, das es auch für Windows gibt. Was macht nun Avahi? Über Avahi gibt ein Rechner seine Präsenz und seine angebotenen Dienste im lokalen Netzwerk bekannt. Dazu muss Avahi nicht konfiguriert werden, es funktioniert „Out-of-the-box“. Auf einem Ubuntu System ist Avahi von Haus aus installiert, wie afaik auch bei OpenSuse und Fedora. Bei Debian muss man die Namensauflösung über…
$ apt-get install libnss-mdns
nachinstallieren. Ist dies geschehen, kann man jeden Rechner über seinen Namen und ein angehängtes .local ansprechen. So kann man bspw. nun den Rechner rechenknecht über…
$ ping rechenknecht.local
…anpingen oder über…
$ ssh rechenknecht.local
…auf den SSH-Server des Rechners gehen oder über http://rechenknecht.local den Webserver des Rechners öffnen oder oder… Hat man auf dem Server Apache mit mod-dnssd laufen, dann gibt der Server seine Existenz über Avahi bekannt und Browser wie Epiphany zeigen ihn sofort an.

Dabei muss man sich auch keine Gedanken machen, dass die Information das eigene LAN verlässt. Avahi ignoriert sämtlichen Traffic, der nicht aus dem eigenen LAN kommt.
Serverlos im LAN chatten und Daten austauschen
Rechner über ihren Namen anzupingen ist jetzt nicht sonderlich aufregend, wo steckt nun der eigentlich größte Nutzen? Über Avahi können Programme sich publik machen. So kann man bspw. dank Avahi/Zeroconf ohne einen zentralen Server im LAN chatten oder Daten austauschen, Medien streamen, Voip-Gespräche führen usw. ohne dass man auch nur einen Serverdienst einrichten müsste.
Chatten
Instant-Messaging-Programme laufen üblicherweise immer über einen zentralen Server im Internet ab, an dem man sich einloggen muss. Doch man kann auch ohne Internetzugang im lokalen Netzwerk chatten. Moderne IM Clients wie Gajim oder Pidgin können dank Avahi/Zeroconf/Bonjour im LAN kommunizieren ohne dass man einen Server braucht.

Exemplarisch gehe ich auf Gajim und Pidgin sowie Miranda für Windows ein. In Pidgin muss man ein neues Konto anlegen. Als Protokoll stellt man Bonjour ein. Bei Gajim ist das Konto von Haus aus vorhanden, jedoch nach der Installation des Programms noch nicht aktiv. Um also Avahi/Zeroconf mit Gajim zu nutzen, muss man in den Konteneinstellungen das Konto Local aktivieren. Sollte das nicht möglich sein, so muss man das Paket python-avahi nachinstallieren.
$ sudo apt-get install python-avahi
Letztendlich möchte ich die Fans von Windows nicht außen vor lassen. Für den wohl populärsten Multi-Messenger auf Windows-Plattformen Miranda gibt es mit iChat ein Plugin, das Miranda Avahi/Zeroconf fähig macht.
Daten austauschen
Ähnlich wie Gajim oder Pidgin arbeitet Giver. Auch hier sieht man eine Kontaktliste vergleichbar wie bei einem Instant-Messaging Programm. Allerdings kann man mit den im LAN aktiven Kontakten nicht chatten. Giver dient ausschließlich zum Austausch von Dateien oder Ordnern. Per Drag&Drop zieht man eine Datei/einen Ordner auf den Kontakt. Akzeptiert der Empfänger die Übertragung, so startet der Versand der Daten.

Ein wunderbares Anwendungsbeispiel ist der Austausch von Screenshots, wenn man etwas in einer virtuellen Maschine ausprobiert. Ich installiere mir öfters mal eine Entwicklungsversion von $DISTRIBUTION. Mit Giver bekommt man Screenshots oder Konfigurationsdateien in Nullkommanix aus der VM auf den realen Desktop, ohne dass man dafür mit Freigaben hantieren muss.
Medien streamen
Ein weiteres Beispiel ist das Streamen von Medien. Man kennt dies von iTunes. Dort kann man die Musik, die sich auf einem Rechner befindet via iTunes auch auf einem anderen Rechner mit iTunes verfügbar machen. Das ganze funktioniert plattformübergreifend mit vielen Programmen. Egal ob man nun iTunes, Rhythmbox, Banshee oder Amarok benutzt. Sobald ein Programm DAAP als Protokoll beherrscht, kann es die Freigaben im lokalen Netzwerk automatisch einbinden. Möchte man die Verteilung der eigenen Musik in Rhythmbox aktivieren, so muss man dies Bearbeiten | Plugins | DAAP-Musikverteilung | Konfigurieren | Eigene Musik verteilen erst einstellen.

Danach taucht die eigene Musik automatisch in iTunes, Banshee und Co. der anderen Mitglieder des eigenen LANs auf.

Weiteres zu Avahi
In vielen anderen „Produkten“ steckt mittlerweile ebenfalls Avahi. Gibt man einen Drucker über CUPS im Netzwerk frei, so finden die weiteren Installationen von CUPS im Netzwerk automatisch den freigegebenen Drucker. Über Ekiga lassen sich im lokalen Netzwerk VoIP- oder Video-Gespräche serverlos führen. Gibt man seinen GNOME-Desktop über Vino frei, so findet bspw. Vinagre über Avahi diese Desktopfreigabe. Über Pulseaudio lässt sich der Sound einer Anwendung gezielt zu einem Rechner leiten, der bspw. an die Stereoanlage angeschlossen ist, dabei findet sich PulseAudio ebenfalls wieder über Avahi/Zeroconf und so weiter und so fort.






Schreibe einen Kommentar