Archiv für den Tag: 18. Juni 2008

Rechnernamen mir der TLD .local können nicht aufgelöst werden

Das Problem: Verwendet ein lokales Netzwerk die Domain .local kann ein neuerer Linux-Client die lokalen Namen nicht auflösen.

Der Grund: .local wird Zeroconf-Diensten wie z.B. Rendezvous verwendet. Zeroconf ist eine Technik zur konfigurationsfreien Vernetzung von Geräten in lokalen Rechnernetzen.
Neuere Linux-Distributionen sind darauf vorbereitet und senden DNS-Anfragen für Adressen mit der Top-Level-Domain per Multicast an den Port 5353 (mdns) der Adresse 224.0.0.251.

In Wikipedia gibt es einen Artikel zu Zeroconf, der die Hintergründe beschreibt. U.a. ist dort zu lesen:

Alle DNS-Abfragen für Namen, die auf .local enden, müssen mit UDP und IP Multicast an die mDNS-Multicast-Adresse 224.0.0.251 Port 5353 gesendet werden.

Und weiter ist zu lesen:

Natürlich kann es in der Praxis zu Konflikten kommen, von den Erfindern von mDNS wurde das aber als sehr unwahrscheinlich angenommen.

Dummerweise wird die TLD .local recht häufig verwendet – bei der IETF existiert sogar ein Draft, (http://www.ietf.org/proceedings/99nov/I-D/draft-ietf-dnsind-local-names-07.txt), in dem die Verwendung der Top-Level Domain „.local“ im Intranet vorgeschlagen wird, speziell wenn der lokale Adressbereich nach RFC1918 zum Einsatz kommt.

Die Lösung: Auch diese findet sich im o.g. Wikipedia-Artikel:

Damit unter Linux die Namensauflösung bei der Top-Level-Domain .local wie gewohnt über den DNS-Server (z. B. Bind) abgewickelt wird, ist der Eintrag mDNS off in der Datei /etc/host.conf erforderlich.

Bei neueren (SuSE-)Distributionen funktioniert das aber nicht mehr, da /etc/host.conf ignoriert wird. Stattdessen muss die Datei /etc/nsswitch.conf bearbeitet werden. Dort findet sich eine Zeile

hosts: files mdns4_minimal [NOTFOUND=return] dns

die wieder in die alte Form

hosts: files dns

geändert werden muss.

Weitere Links zum Thema: