Schaut man auf einem Windows Server der die DNS-Rolle inne hat mit Tools wie CurrPorts sieht man, das der DNS-Server mitunter tausende Ports oberhalb von 49000 statt der erwarteten 53/tcp und 53/udp belegt.

Dies ist eine “Nebenwirkung” von Microsoft Security Bulletin MS08-037 – Important und soll DNS-Spoofing erschweren. Gerade in kleineren Umgebungen übernimmt der DNS-Server allerdings meist zusätzliche Aufgaben, daher ist die Wahrscheinlichkeit in solchen Fällen größer, das man auf Probleme in Form von Port-Konflikten stößt.

Lösen lässt sich das zum einen durch eine Einschränkung des Socket Pools oder der Definition von Ausnahmen. Microsoft selbst liefert dazu folgenden Artikel:

Microsoft Docs – Configure the Socket Pool

In der Voreinstellung von Microsoft sollte der Pool den Wert 2500 haben, dies gilt dann getrennt für tcp und udp! CurrPorts zeigt dann entsprechend gefiltert über 5000 belegte Ports an.

Einschränken kann man den Pool in der Eingabeaufforderung mit

dnscmd /Config /SocketPoolSize <Neuer Wert>

und einem Neustart des DNS-Server-Dienstes.

Alternativ kann man die Änderung direkt in der Registry vornehmen:

  • regedit öffnen
  • Zu
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters

    wechseln.

  • Den Wert von “SocketPoolSize” ändern.
  • Den DNS-Server-Dienst neustarten.

Ausnahmen im Socket Pool definiert man mit

dnscmd /Config /SocketPoolExcludedPortRanges <Port oder Port-Range>

oder ebenfalls direkt in der Registry unter

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters

durch Änderung des Wertes von “SocketPoolExcludedPortRanges” (Typ: REG_SZ, Zeichenfolge) und einem DNS-Server-Dienst Neustart. Mehrere Ausnahmen werden wie folgt (Beispiel von MS):

4000-5000 34000-34000

Quelle

serverfault – DNS.EXE allocates 5000+ ports immediately

Update 17.07.2024

Verwendet man die NLA-Abhängigkeit vom DNS oder hängt irgendwie der DNS-Dienst werden die obigen Einstellungen völlig ignoriert. In einem solchen Fall kann der Dienst nicht neu gestartet werden. Einfach den Server neu starten, dann sollte alles wieder gut sein.