Folgendes Verhalten: Hyper-V Hosts unter Windows Server 2012 in einem Failovercluster. Die virtuellen Maschinen funktionieren einwandfrei, ebenso der Failovercluster. Einzig über das Management-Interface kommt man nicht mehr per Hostnamen über RDP drauf. Ein kurzer Ping zeigt, dass der Name der Hosts nicht aufgelöst werden kann. Aha. Per IP-Adresse kann man sich einwandfrei darauf verbinden. Aha.
To make a long story short: Ein abgesetztes netstat -anob
brachte erstaunliches zu Tage. Es sind so gut wie alle Port bis 65535 vom Prozess Dnscache
belegt!
Die Recherche in den üblichen Quellen des WWW blieb erstaunlich ergebnislos. Einzig ein Thread in den Microsoft-Foren war interessant. Port Exhaustion with Dnscache. Und ein etwas älterere Blog-Eintrag des Directory Services Team mit dem schönen Titel Port Exhaustion and You (or, why the Netstat tool is your friend).
Schneller Fix um wieder eine funktionstüchtige Namensauflösung bereitzustellen:
- Ermitteln der ProcessId des dnscache-Prozesses mittels
tasklist /SVC|find /i "dns"
- Beenden des Prozesses
TASKKILL /PID ProcessID /F
(ist ein svchost; ja, es laufen wahrscheinlich weitere Dienste unter diesen service host, welche jedoch automatisch wieder gestartet werden). - Dienst DNS-Client auf dem Server neu starten.
- Sollte von einem weiteren Client der Name noch nicht wieder aufgelöst werden, auf dem Client ein
ipconfig /flushdns
setzen, dann klappt’s.
Den Workaround lt. Thread konnte ich noch nicht verifizieren. Ein etwas offiziellerer Workaround ist mir lieber (obwohl scheinbar vom Premier Support). Zumal die Suche nach den zwei Parametern für den Dnscache ebenso wenig liefert. Jedenfalls sollte man unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
zwei neue DWORDs MulticastResponderFlags
und MulticastSenderFlags
anlegen. Wert jeweils 1.