Wie kann ich dhcpcd unter Debian GNU/Linux 3.1 verwenden, so dass alle Hostnamen im lokalen Netzwerk stets mit der richtigen IP-Adresse verbunden werden?

Problem: im vorliegenden lokalen Netzwerk fungiert eine FritzBox! FON WLAN als DHCP-Server und Nameserver. Sie zeigt die vorliegenden IP/Namenszuordnungen im Bereich »System -> Netzwerkgeräte« korrekt an. Auf einem angeschlossenen Computer sind diese Zuordnungen jedoch falsch:

  • »ping name_1« führt zu 192.168.178.22 statt 192.168.178.20 wie in der FritzBox! angegeben. 192.168.178.20 ist ein WLAN-Netzwerkgerät. Sogar trotz dass »hostname« ausgibt, »name_1« sei der Rechnername des aktuellen Rechners (also der mit 192.168.178.20)!
  • »ping name_2« ergibt »ping: unknown host name_2« trotz dass in der FritzBox! 192.168.178.22 als zugehörige IP-Adresse angegeben ist. 192.168.178.20 ist Netzwerkgerät, das über kabelgebundenes Netzwerk angebunden ist.

Die Neukonfiguration des lokalen Rechners über DHCP passiert, wenn man ein Netzwerkdevice (zu dem Konfiguration über dhcp in /etc/network/interfaces angegeben ist) neu konfiguriert, z.B. »ifdown eth1; ifup eth1=wlan_name«. Neukonfigurieren des Netzwerk-Devices wurde in der FritzBox! auch als Neuanmeldung des entsprechenden WLAN-Devices registriert.

Den toten symbolischen Link »/etc/dhcpc/resolv.conf -> /var/lib/dhcpc/resolv.conf« auf das korrekte Ziel
/etc/resolv.conf zu ändern behob das Problem nicht. Es scheint, dass die FritzBox! manchmal gar nicht als Nameserver verwendet wird, trotz dass dies so angegeben ist in /etc/resolv.conf: »nameserver 192.168.178.1«.
Jedoch manchmal schon: »ping fritz.box« löst den Namen zu 192.168.178.1 auf und alle Namen im Internet werden korrekt aufgelöst.

Das Problem könnte also bei resolvconf zu suchen sein. Ein einfacher Neustart »/etc/init.d/resolvconf restart« oder ein Neustart des gesamten Systems ergab jedoch keine Änderung. Es könnte sein, dass zuerst der Nameserver auf dem lokalen System versucht wird, der (für ihm bekannte Namen) falsche Informationen liefert. Etwa weil es ein Nameserver-Cache wie dnsmasq oder pdnsd ist, der noch Informationen zwischengespeichert hat, die gültig waren als sich der Computer (hier ein Notebook) in einer anderen Umgebung befand. Das war im vorliegenden Fall jedoch nicht das Problem, da kein DNS-Cache installiert war und der lokale DNS-Server nicht verwendet wird, wenn mindestens ein »nameserver«-Eintrag in /etc/resolv.conf besteht. Das Problem könnte also an der FritzBox! liegen.

Ein Neustart der FritzBox! erbrachte tatsächlich eine Verbesserung: der Hostname »name_2« wird jetzt gefunden, aber umgeleitet an den Hostnamen name_2:

ping name_2
PING name_2 (192.168.178.22) 56(84) bytes of data.
64 bytes from name_1 (192.168.178.22): icmp_seq=1 ttl=64 time=2.41 ms

Der Hostname »name_1« wird weiterhin falsch aufgelöst:

ping name_1
PING name_1 (192.168.178.22) 56(84) bytes of data.
64 bytes from name_1 (192.168.178.22): icmp_seq=1 ttl=64 time=5.16 ms

Insgesamt ist das Problem jetzt nur noch: falsche DNS-Einträge zum jeweils eigenen Hostnamen. Von anderen Hosts aus wird dieser Hostname jedoch jeweils korrekt aufgelöst, das heißt das noch vorhandene Problem liegt nicht am externen Nameserver (der FritzBox!), sondern wohl am lokalen Nameserver. Bei Reverse-DNS-Lookups wirkt sich das Problem nur aus, wenn zufällig der eigene Rechnername fälschlicherweise mit einer IP-Adresse verbunden ist, die einem anderen Rechner im Netzwerk gehört. Das heißt, der lokale Nameserver wird jeweils vor dem externen Nameserver kontaktiert, auch bei Reverse-DNS-Lookups.

Der lokale Nameserver wird über /etc/hosts konfiguriert. Vielleicht stehen hier noch alte Einträge, die aus einer Zeit vor Umstellung auf DHCP stammen? Wenn ja, lösche man diese und das Problem ist gelöst.


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.