DC startet mit öffentlichem Firewall Profil

Häufig werden aus Wartungsgründen alle Domaincontroller einer Domain heruntergefahren und bei einem Neustart der Systeme befinden sich die Domaincontroller in dem falschen Firewallprofil (Public/Öffentlich), so dass keine Kommunikation mit anderen Domaincontrollern möglich ist.

Ursache

Die Ursache dafür kann mehrere Gründe haben, unter anderem sind die DNS-Server Einträge nicht sauber über Kreuz verknüpft oder aber der NTDS-Dienst braucht zu lange zum Starten. Ich gehe aber mal davon aus, dass ihr eure DNS-Konfiguration soweit im Griff habt, dass es grundsätzlich nicht zu einer Insellösung der Domaincontroller kommt, somit bleibt nur die mit dem Start der AD-Dienste verbundende „Race-Condition“, dass der NlaSvc nicht erkennt das es sich um einen Domaincontroller handelt.

Um die Ursache zu verstehen, müssen wir uns nur die Arbeitsweise des Dienstes anschauen, der für Festlegung des Firewallprofils zuständig ist, der Network Location Awareness Service, kurz NlaSvc!

Der NlaSvc versucht beim Starten des Computers anhand bestimmter Kriterien das passende Firewallprofil zu bestimmen. Unter Windows gibt es drei sogenannte Network Location Types:

Public: Standard Type, sobald sich der Computer mit einem neuen unbekannten Netzwerk verbindet. In diesem Profil gelten die restriktivsten Regeln.

Private: Typische Netzwerk für den Heimbereich, welches hinter einem NAT-Gerät liegt. Dieser Typ wird normalerweise nicht automatisch zugewiesen, es sei denn man definiert in den Gruppenrichtlinien Public als Private 😉 Die Default Regeln sind etwas lockerer gehalten, als bei Public, aber nicht für ein Unternehmensnetzwerk gedacht.

Domain: Sobald ein Computer/Server/Client Mitglied einer Active Directory Domain ist und sich auch am Active Directory authentifizieren kann, stellt der NlaSvc das FW-Profil auf Domain. Außer dem Anmeldeversuch des Computerkontos werden auch weitere Verbindungstest wie z.B. LDAP-Query durchgeführt.
Hinweis: Unter Vista und Windows Server 2008 muss das Active Directory über ALLE Netzwerkkarten erreichbar sein um das FW-Profil auf Domain zu stellen. Mehrere, falsch konfigurierte, Netzwerkkarten können somit zu einem Problem werden.

Sollte ein normaler Client oder Memberserver mit einem Public Profil starten, ist die Ursache in der Regel einfach, da der Computer kein Domaincontroller findet an dem er sich authentifizieren kann muss einfach die gesamte Kette End2End geprüft werden.

Bei einem Domaincontroller sieht es aber anders aus. Ein Domaincontroller stellt auch für sich selbst die Anmeldedienste zur Verfügung bzw. meldet sich an einem „anderen“ verfügbaren Domaincontroller an. Sollte aber kein weiterer Domaincontroller erreichbar sein, stehen wir unter Umständen vor einem Problem, dass der NlaSvc sich für einen normalen Client bzw. Memberserver ohne verfügbaren Domaincontroller hält.

Wir müssen also dem NlaSvc beibringen sich ein wenig zu gedulden. Im Internet kursieren viele interessante Ansätze, wie z.B. ein ipconfig /renew Skript per Scheduler zu erstellen, oder den NlaSvc Dienst per Scheduler neuzustarten oder oder… All diese Lösungen haben mir nicht wirklich gefallen, weil immer eine zeitgesteuerte Komponente notwendig war.

Dabei ist die Lösung relativ simpel:

Lösungsansatz

  1. Die Startart des Dienste NlaSvc sollte auf „verzögert“ stehen
  2. Den NlaSvc in Abhängigkeit von den Active Directory Diensten starten

Da Admins bekanntlich recht faul sind, habe ich mir, um den ganzen Prozess ein wenig zu vereinfachen einen Dreizeiler in Powershell geschrieben:

Leider musste ich den unschönen Weg über die sc.exe gehen und konnte nicht, ohne erheblichen Mehraufwand, native Powershell Befehle verwenden.

Viel Spaß

Über den Autor

Profilbild von Matthias Meyer
Matthias Meyer
Freiberuflicher IT-Consultant und Trainer

Kommentar hinterlassen zu "DC startet mit öffentlichem Firewall Profil"

Hinterlasse einen Kommentar

E-Mail Adresse wird nicht veröffentlicht.


*


Zur Werkzeugleiste springen