Multicast DNS: Alternative Namensauflösung im kleinen Stil
Das Domain Name System (DNS) kann man sich wie ein sehr großes Telefonbuch vorstellen: Über den Dienst können Nutzer Webadressen in ihren Browser eingeben, woraufhin das System die korrekte IP-Adresse dazu ermittelt. Diese Namensauflösung funktioniert, indem der eigene Rechner bei einem entsprechenden DNS-Server anfragt. Dort ist eine Liste hinterlegt, in der jedem Hostnamen (also der Webadresse) die korrekte IP-Adresse zugeordnet ist. Multicast DNS geht allerdings einen anderen Weg. Wie funktioniert diese Alternative zum klassischen DNS?
Wie funktioniert Multicast DNS?
Multicast DNS (mDNS) ist ein Service, der in kleineren Netzwerken bei der Namensauflösung helfen soll. Dabei geht mDNS einen anderen Weg als das bekannte DNS: Statt bei einem Nameserver anzufragen, werden alle Teilnehmer im Netzwerk direkt angesprochen. Der entsprechende Client sendet einen Multicast in das Netzwerk und fragt dabei, zu welchem Netzteilnehmer der Hostname passt. Ein Multicast ist eine spezielle Kommunikationsform, bei der eine einzelne Nachricht an eine Gruppe von Empfängern gerichtet ist. Die Gruppe kann beispielsweise aus dem kompletten Netzwerk bzw. Subnetwork bestehen.
So geht die Anfrage auch an den Gruppenteilnehmer, der den gesuchten Hostnamen besitzt. Dieser antwortet dem kompletten Netzwerk – ebenfalls per Multicast. So sind alle Teilnehmer über die Verbindung von Name und IP-Adresse informiert und können einen entsprechenden Eintrag in ihrem mDNS-Cache vornehmen. Solange dieser Vermerk gültig ist, braucht also niemand im Netzwerk nach diesem Hostnamen nachfragen.
Das Multicast DNS verursacht relativ viel Verkehr, versucht allerdings aktiv Netzwerkressourcen zu sparen: Hierfür sendet der anfragende Client die nach seiner Meinung (also dem aktuellen Cacheeintrag entsprechend) richtige Antwort mit. Nur wenn diese nicht mehr stimmt, oder der Eintrag kurz vor dem Ablauf steht, muss der Empfänger antworten. Auch die anderen Netzteilnehmer werden so bereits vor einer Antwort informiert. Der Verkehr innerhalb des Netzwerkes lässt sich mit dieser Methode also verringern.
Generell kommen beim Multicast DNS nur Hostnames mit der Endung .local in Frage. Das limitiert diese Form der Namensauflösung auf lokale Netzwerke. Hostnamen mit anderen Top-Level-Domains (TLD) – wie etwa .de oder .com – werden vom mDNS nicht verarbeitet. Webadressen lassen sich so also nicht auflösen.
Multicast DNS wurde Anfang der 2010er-Jahre entwickelt und ist in "Offizielles RFC für Multicast DNS" beschrieben.
mDNS wurde im Kontext von Zeroconf (Zero Configuration Networking) entwickelt. Die Idee hinter Zero Configuration Networking sieht vor, dass Computer ohne vorherigen Einstellungsaufwand durch Menschen miteinander kommunizieren können. Multicast DNS entspricht diesen Auflagen: Das Multicast-Verfahren ist Teil von TCP/IP und kann daher auch ohne entsprechende Konfigurationen funktionieren.
Vorteile von mDNS
Multicast DNS ist für kleine Netzwerke konzipiert und soll dort die Benutzerfreundlichkeit steigern. Die Idee ist, dass Nutzer Geräte im heimischen LAN ohne Probleme miteinander verbinden können. Da sich alle Geräte gemeinsam über ihre IP-Adressen austauschen, muss kein Server oder Verzeichnis eingerichtet werden. So lassen sich sehr dynamisch und schnell weitere Geräte einbringen.
Eine populäre Implementierung von mDNS ist Apples Bonjour. Der Dienst ist vor allem dafür gedacht, Netzwerkdrucker leicht mit dem PC bzw. Mac zu verbinden. Da sich die Geräte untereinander über ihre IP-Adressen informieren, muss der Nutzer die Verbindung nicht selbstständig konfigurieren. Neben dem Dienst von Apple ist inzwischen auch die Open-Source-Software Avahi als mDNS-Service einsetzbar. Auch hiermit ist es möglich, verschiedene Geräte miteinander zu verknüpfen, ohne vorher Konfigurationsarbeit leisten zu müssen. Seit Windows 10 ist mDNS auch im Betriebssystem von Microsoft verfügbar.
Nachteile und Gefahren von Multicast DNS
Die leichte Handhabung geht allerdings mit einigen Nachteilen einher. Ein Problem liegt im Multicast-Verfahren an sich. Zwar versucht das Protokoll den Network Traffic gering zu halten, dafür müssen die beteiligten Rechner aber auch ständig das Netzwerk überwachen und die eingehenden Nachrichten verarbeiten. Das kostet Rechenleistung.
Des Weiteren ist die Vergabe der Hostnamen problematisch: Prinzipiell kann man für jedes Gerät einen Namen frei wählen, vorausgesetzt, dieser endet auf .local. Das kann (zumindest theoretisch) dazu führen, dass zwei Netzteilnehmer mit dem gleichen Hostnamen vertreten sind. Die Entwickler von mDNS haben für ein solches Szenario bewusst keine Lösung implementiert. Zum einen gehen sie davon aus, dass der Fall selten eintreten dürfte, zum anderen kann die doppelte Benennung auch gewollt sein.
Ein anderes Problem stellt aber sogar eine Gefahrenquelle da. In manchen Fällen ist das mDNS offen. Das bedeutet, dass es auch auf Anfragen von außerhalb (über das Internet) reagiert. Cyberkriminelle können solche offenen Dienste finden und für DDoS-Attacken verwenden. Die Geräte des Netzwerks werden dann dafür missbraucht, einen Zielserver mit Anfragen zu bombardieren. Außerdem lassen sich sensible Daten über ein offenes Multicast DNS herausfinden. Angreifer können auf diese Weise beispielsweise die MAC-Adressen von verbundenen Geräten auslesen und diese Informationen dann für weitere Attacken verwenden.