Zeroconf / Bonjour / Avahi

ELektronik-KOmpendium.de
Online

Preis auf Anfrage

Wichtige informationen

  • Kurs
  • Online
Beschreibung

Zeroconf / Bonjour / Avahi Zeroconf, Bonjour und Avahi sind selbstkonfigurierende Verfahren für Adhoc-Netze auf Basis von IPv4 und IPv6. Im Prinzip handelt es sich um eine Sammlung bestehender Protokolle auf Basis von IP, DNS und NAT, um Netzwerkdienste, die in einem IP-Netz bereitgestellt werden, automatisch erkennen zu können, ohne das irgendetwas manuell konfiguriert werden muss. Bonjour, dass auch als Zeroconf (Zero Configuration Networking) bezeichnet wird, ist der Nachfolger von AppleTalk. Bonjour wurde von Apple im Jahr 2002 mit dem Namen "Rendezvous" ins Leben gerufen und später umbenannt. Bonjour gibt es nicht nur für Mac OS X, sondern auch für Linux (Avahi) und Windows (Bonjour). Bonjour wurde von Apple unter der Apache-2.0-Lizenz als Open Source freigegeben. Bonjour löst verschiedene Probleme, die in lokalen Netzwerken auftreten. IP-Adressen zuweisen Namen zuweisen Dienste bekannt machen Immer dann, wenn ein Computersystem in ein Netzwerk eingebunden wird, müssen Adressen konfiguriert, Dienste, Verzeichnisse und Laufwerke freigegeben werden. Bei Bonjour teilen die Diensteanbieter ihre Dienste von sich aus mit (Annoncierung), so dass er von anderen Stationen automatisch gefunden werden kann. Dabei kommt man ohne zentralen Server aus, der die Adressen, Portnummern und Servernamen verteilt. Die Dienste melden sich dynamisch an und ab. Dabei bleibt Bonjour im Hintergrund, ohne dass für den Nutzer Konfigurationsaufwand entsteht. Die Funktionen sind voneinander unabhängig und werden nur bei Bedarf aktiv. Beispielsweise, wenn für diese Funktionen keine zentrale Stelle im Netzwerk vorhanden ist. So stellt man sicher, dass in einem lokalen Netzwerk immer eine Verbindung möglich ist.

Wichtige informationen

Was lernen Sie in diesem Kurs?

DNS
Internet
Apple
Server
NAT

Themenkreis

Funktionsweise von Zeroconf / Bonjour / Avahi

Bonjour nutzt zum Informationsaustausch lediglich einzelne Multicast-DNS-Pakete (mDNS). Die Clients tauschen die Bonjour-Informationen über die Multicast-Adresse 224.0.0.251 (IPv4) bzw. ff02::fb (IPv6) an den Port 5353 aus. Die Bonjour-Pakete bleiben dabei im Subnetz. IP-Pakete aus dem Adressbereich zwischen 224.0.0.0 bis 224.0.0.255 dürfen IP-Router nicht über das eigene Subnetz hinaus übertragen. Multicast-Pakete werden nicht zwischen den Subnetzen geroutet.
Ein Problem ist das dann, wenn man mehrere Subnetze im Netzwerk hat, dann kommen nicht alle Bonjour-Pakete überall an. Nur wenn alle Stationen im selben Subnetz arbeiten, dann ist die Kommunikation zwischen allen Geräten mit Bonjour möglich.
Damit Bonjour-Informationen über Subnetzgrenzen hinweg übertragen werden, setzt man DNS-übliche Unicasts ein. Das Verfahren nennt man Wide Area Bonjour (WAB) und setzt einen DNS-Server voraus.

Ursprünglich war Bonjour für Heimnetzwerke gedacht. Doch mit der Verbreitung von Macbooks, iPhones und iPads verbreitete sich Bonjour auch in größeren Netzwerkumgebungen. Doch je mehr Bonjour-Stationen im Netzwerk, desto mehr fluten mDNS-Pakete das Netzwerk mit An- und Abmeldungen von Diensten. Aus diesem Grund hat sich Apple mit einer Arbeitsgruppe der Internet Engineering Task Force (IETF) zusammengetan, um eine neue Spezifikation für größere Netzwerk-Umgebungen in Unternehmen und Universitäten zu schaffen.

Funktion: IP-Adressen zuweisen

Immer wenn man mehrere Geräte über einen Switch, mit einem Patchkabel, über einen WLAN-Access-Point oder Powerline-Adapter miteinander verbindet, dann stellt sich die Frage, wie die Geräte an ihre IP-Adressen kommen. Bei IPv6 ist es einfach. Hier gibt es die Autokonfiguration per SLAAC. Bei IPv4 kümmert sich Bonjour darum. Hier weisen sich die Geräte selber Adressen zu und Bonjour greift ein, wenn es zu Adresskonflikten kommt.
Während IPv6 hierfür den Adressbereich "fe80" hat, liegt der Adressbereich für link-lokale IPv4-Adressen bei "169.254.0.0/16".

Hat ein Host eine IPv4-Adresse für sich bestimmt, dann macht er diese im lokalen Netzwerk zusammen mit seiner Hardware-Adresse per Broadcast bekannt. Die anderen Netzwerk-Teilnehmer aktualisieren dann ihren ARP-Caches (Liste mit benachbarten Netzwerk-Teilnehmern).
Wird die IPv4-Adresse von einem anderen Teilnehmer bereits verwendet, dann muss dieses Gerät seine Adresse verteidigen. Dazu antwortet der Teilnehmer auf den Broadcast. Um zu verhindern, dass manuelles Eingreifen des Nutzers nötig wird, überlassen die Teilnehmer anderen Teilnehmern eine vergebene IP-Adresse, wenn die diese trotzdem haben wollen.

Funktion: Namen zuweisen

Bei Bonjour nennt sich diese Funktion Multicast DNS, kurz mDNS. Das ermöglicht die eigenständige Zuweisung von Namen in einem Netzwerk ohne Nutzereingriff und Unicast DNS innerhalb eines lokalen Netzwerks. Dazu weisen sich die Geräte selber Namen zu. Häufig Typenbezeichnungen oder auch Teile aus Benutzernamen. Der dabei ablaufende Prüfprozess ähnelt der Zuweisung von link-lokalen IP-Adressen. Immer dann wenn ein Konflikt auftritt, wird der Name automatisch abgeändert und erneut geprüft.
Damit man bei den Namen zwischen mDNS und DNS unterscheiden kann, bekommen die Namen ein ".local" als Pseudo-Top-Level-Domain (TLS) angehängt. Das heißt, ".local" ist die TLD in einem lokalen Netzwerk.
Bei der Namensauflösung bedient sich mDNS dem gleichen Protokoll, wie beim Unicast DNS. Dabei stellt der Client einfach eine DNS-Anfrage an die Multicast-Adresse "224.0.0.251" und bekommt vom betreffenden Rechner eine Antwort zurück. Dabei muss man berücksichtigen, dass diese Adresse nur im jeweiligen Subnetz erreichbar ist.

Funktion: Dienste bekannt machen

Nicht alle Netzwerk-Teilnehmer sind Clients, die nur auf das Internet zugreifen. Es gibt auch Hosts, die Dienste anbieten. Beispielsweise ein Netzwerk-Drucker oder ein Media-Center. Solche Geräte machen ihre Dienste über UDP bekannt. Weil es keinen speziellen Empfänger für die Bekanntmachungen/Annoncen gibt, gibt es die Multicast-Adressen für IPv4 "224.0.0.251" und IPv6 "ff02::fb" und den Port 5353. Auf diese Adressen lauschen alle kompatiblen Geräte auf Bekanntmachungen durch Dienste-Anbieter. Dabei muss man berücksichtigen, dass diese Adresse nur im jeweiligen Subnetz erreichbar ist.
Bonjour ist auch im Embedded-Bereich interessant, wenn Sensoren und Aktoren vernetzt werden sollen.

Aufgaben und Übungen mit dem Raspberrry Pi

Zeroconf/Bonjour/Avahi ist ein Announcierungsservice. Das bedeutet, der Service macht die Dienste, die ein Computer anbietet im lokalen Netzwerk bekannt. Typischerweise macht ein Drucker auf diese Weise in einem lokalen Netzwerk auf sich aufmerksam. Genauso kann jeder Computer in einem Netzwerk seinen Hostnamen bekannt machen. Das funktioniert besonders gut in DHCP-Umgebungen und wenn man die Konfiguration und Zuteilung statischer IP-Adressen vermeiden möchte.

  • Zeroconf/Bonjour/Avahi auf dem Raspberry Pi einrichten
Weitere verwandte Themen:
  • AppleTalk
  • IPv4 - Internet Protocol Version 4
  • IPv6 - Internet Protocol Version 6
  • NAT - Network Address Translation
  • DNS - Domain Name System