Windows Probleme mit der Namensauflösung

Wie leert man den NetBIOS und DNS Cache

Überblick:

Die Namensauflösung ist wohl eines der wichtigsten Elemente im Netzwerk überhaupt, den ein PC wird in der Regel über seinen Namen angesprochen und nicht über die IP-Adresse. Genauso ist es auch im Internet. Wer kennt den schon die IP-Adresse von Webseiten? Wohl kaum jemand. Aus diesem Grund braucht man die Zuordnung von Namen zu IP-Adressen. Genau darüber möchte ich in diesem Artikel berichten, aber auch über zwei drei Befehle, welche notwendig werden, wenn es mal im Windows System nicht so klappt.

Welche Arten gibt es eigentlich:

Eigentlich sind es genau zwei Arten, welche im Windows Netzwerk am häufigsten Verwendung finden. Hierzu gehört NeBIOS und DNS. DNS  ist dabei das neuere System und NetBIOS das ältere, was aber nach wie vor seine Anwendung findet. Gerade in Bezug auf ältere PC´s wird NetBIOS noch verwendet. Wobei dieses System nur mit IPv4 funktioniert. Neuere Systeme wie u.a. LLMNR (Link Local Multicast Name Resolution) basieren dabei schon auf IPv6. Übrigens ist dieses Protokoll in neueren Windows System wie Windows 10 standardmäßig aktiviert.

Das NetBIOS System:

In der Regel vergibt man den Computernamen mit der grafischen Oberfläche (GUI) über die Systemsteuerung/System oder man verwendet die Konsole. Der dort vergebene Name ist ein sogenannter NetBIOS Name. Mit den folgenden Befehlen lässt er sich ebenso gut auslesen:

ipconfig /all
hostname

Der Name besteht aus maximal 15 Zeichen, also z.B. pc1. Wenn man nun einen ping auf einen Rechner im lokalen Subnetz ausführt, so merkt sich der Sender den Namen des PC´s und speichert diesen in seine Cache Tabelle. Die Cache Tabelle kann man sich dabei mit dem Befehl nbtstat -c ansehen. Als Beispiel habe ich mal meine Synology NAS DS412 (Anzeige)* angepingt. Anschließend konnte man in der Cache Tabelle den Namen mit einer TTL (Time to Live) sehen. Das bedeutet dieser NetBIOS Name wird für diese Zeit im Cache gespeichert.

Anpingen eines PC´s mit dessen NetBIOS Namen um diesen in den NetBIOS Cache zu speichern
Anpingen eines PC´s mit dessen NetBIOS Namen um diesen in den NetBIOS Cache zu speichern
Anzeige der lokalen NetBIOS Cache Tabelle
Anzeige der lokalen NetBIOS Cache Tabelle

Die folgenden Befehle in Bezug auf NetBIOS sollte man sich merken, da diese bei der Fehlersuche und Behebung oft sehr hilfreich sein können.

BefehlBeschreibung
nbtstat -cZeigt die NetBIOS Tabelle an. Also welche Namen befinden sich aktuell im Cache
nbstat -RLöscht die NetBIOS Cache Tabelle
nbstat -rZeigt die durch Broadcast oder WINS aufgelösten Namen an.

Neben dem Cache, kann man die Namen auch noch statisch in eine Datei eintragen, welche dann an jedem PC importiert werden muss. Dabei handelt es sich um die LMHOSTS Datei, die man im Verzeichnis \%systemdrive%\system32\drivers\etc befindet. Diese Art findet aber kaum mehr Anwendung, das sie einem hohen administrativen Aufwand bedarf. Abgesehen davon gibt es ja IPv6 mit dem LLMNR Protokoll, welches LMHOSTS überflüssig macht. Es sei denn man verwendet noch sehr alte PC´s, welche noch kein IPv6 unterstützen. Aber schon aus Sicherheitsgründen würde ich davon abraten, so alte Systeme wie Server 2003, oder Windows XP zu verwenden.

Das Domain Name System (DNS) – System

Dieses Namensauflösungssystem ist natürlich das wichtigste und findet auch im Internet seine Anwendung. Ein Name besteht dabei aus mehreren Komponenten, wie dem eigentlichen PC (Host) Namen, der Domäne und der Top Level Domain.

Aufbau eines DNS-Namens
Aufbau eines (Domain Name Systems) DNS-Namens

Natürlich können auch DNS-Namen statisch in eine Datei eingetragen werden, aber das wird in der Regel nicht gemacht, da auch damit der administrative Aufwand sehr hoch ist. Diese Datei mit dem Namen Hosts befindet sich ebenso im Verzeichnis \%systemdrive%\system32\drivers\etc. Sofern man ein Heimnetzwerk hat, wird der DNS-Dienst aber in der Regel auf dem eigenem Router (Anzeige)* ausgeführt. Der leitet die entsprechenden Anfragen dann natürlich an den Provider weiter. Sollte man nun Probleme mit DNS haben, so ist es sinnvoll man prüft als erstes, welche IP-Adresse für DNS eingetragen ist. Neben den Netzwerkeinstellungen über die grafische Oberfläche findet man die Adresse auch sehr schnell über die Windows PowerShell oder dem cmd Befehl: ipconfig /all.

Sollte die Adresse passen, ist ein häufiges Problem der Cache. Auch für DNS gibt es einen lokalen Cache, welcher Namen zwischenspeichert. Wenn sich nun Einträge ändern, könnte es doch noch durchaus sein, das im Cache die alten Einträge vorhanden sind, die bei der Namensauflösung als erstes versucht werden. Darum ist es oft sinnvoll den Cache zu leeren. Am einfachsten geht das mit dem folgenden Befehl:

ipconfig /flushdns

Fazit

Bei Problemen mit der Namensauflösungen via NetBIOS oder DNS, ist die erste Anlaufstelle eigentlich immer der Cache Speicher. Für NetBIOS Namen und auch ebenso für DNS Namen werden die Einträge mit einer TTL versehen in den Cache gespeichert. Sollte sich nun Adressen ändern kann es sein, das der PC trotzdem noch versucht die Adresse anhand des Caches auszulesen, darum ist es sinnvoll, bei Probleme auch mal den Cache zu leeren.