DNS-Timeouts verringern
Hallo Forum,
habe ein einfaches Active-Directory-Setup mit nur einem Standort und einer Domäne.
Es gibt 3 DCs, die alle auch DNS-Server sind, und eine AD-integrierte DNS-Zone betreiben.
Die DNS-Auflösung klappt auch soweit.
Der DC, der die FSMO-Rollen betreibt, ist der organisatorische Haupt-DNS-Server (ich schreibe "organisatorisch", weil es ja eigentlich keinen Haupt- oder Neben-DNS-Server gibt, sondern alle drei die primäre, weil AD-integrierte Zone beschreiben können).
Was ihn also zum Haupt-DNS-Server macht ist, dass die anderen DCs, alle Memberserver und alle Clients ihn als ersten DNS-Server in den Netzwerkeinstellungen eingetragen haben (die Server statisch, die Windows 7-Rechner per DHCP).
Ich hadere nun mit sehr langen Timeout-Zeiten bei Netzlaufwerkszugriffen der Clients, wenn dieser Haupt-DNS-Server nicht verfügbar ist (Wartung, Defekt, whatever). Besonders ärgerlich ist, dass diese Verzögerungen dann bei jedem Zugriff in bspw. untergeordnete Dateien oder Ordner auftreten. Wenn es wenigstens nur einmal wäre - so z.B.:
- Client greift auf Netzwerkfreigabe zu
- Netzwerkfreigabe kann nicht aufgelöst werden, da erster DNS-Server nicht da ist
- Wartezeit -- Ladebalken im Windows Explorer -- Freigabe wird schließlich nach 15sek. angezeigt (wohl Auflösung über zweiten oder dritten DNS-Server erfolgt)
- Weitere Zugriffe werden direkt über den DNS-Server aufgelöst, der die erste Auflösung erfolgreich vorgenommen hat.
(So ist es z.B. beim DFS, wenn es mit einem Node ein Problem gibt -- dann "sucht" der Client sich den Weg über den zweiten DFS-Node -- und behält den auch, wodurch die weiteren Zugriffe ohne Verzögerungen ablaufen).
Stattdessen ist es aber so, dass jeder nachfolgende Zugriff den elend langen Timeout erfährt.
Ich habe gelesen, dass sich die Timeouts mittels des Keys HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeouts verringern lassen. Was ich eigentlich möchte ist, dass die anfragenden Clients in gar keinen (oder höchstens 1 Sekunde dauernden) Timeout laufen, falls der erste DNS-Server nicht verfügbar ist.
Bleibt mir da nur die Einrichtung eines DNS-Load-Balancing-Systems, falls es das gibt oder gibt es in einer normalen Implementierung mit mehreren DNS-Servern wenigstens eine Lösung dafür, dass ein Client den DNS-Sever, der zuletzt erfolgreich aufgelöst hat, als Numero Uno befragt?
Vielen Dank schonmal für eure Anregungen.
Gruß
schlurfi
habe ein einfaches Active-Directory-Setup mit nur einem Standort und einer Domäne.
Es gibt 3 DCs, die alle auch DNS-Server sind, und eine AD-integrierte DNS-Zone betreiben.
Die DNS-Auflösung klappt auch soweit.
Der DC, der die FSMO-Rollen betreibt, ist der organisatorische Haupt-DNS-Server (ich schreibe "organisatorisch", weil es ja eigentlich keinen Haupt- oder Neben-DNS-Server gibt, sondern alle drei die primäre, weil AD-integrierte Zone beschreiben können).
Was ihn also zum Haupt-DNS-Server macht ist, dass die anderen DCs, alle Memberserver und alle Clients ihn als ersten DNS-Server in den Netzwerkeinstellungen eingetragen haben (die Server statisch, die Windows 7-Rechner per DHCP).
Ich hadere nun mit sehr langen Timeout-Zeiten bei Netzlaufwerkszugriffen der Clients, wenn dieser Haupt-DNS-Server nicht verfügbar ist (Wartung, Defekt, whatever). Besonders ärgerlich ist, dass diese Verzögerungen dann bei jedem Zugriff in bspw. untergeordnete Dateien oder Ordner auftreten. Wenn es wenigstens nur einmal wäre - so z.B.:
- Client greift auf Netzwerkfreigabe zu
- Netzwerkfreigabe kann nicht aufgelöst werden, da erster DNS-Server nicht da ist
- Wartezeit -- Ladebalken im Windows Explorer -- Freigabe wird schließlich nach 15sek. angezeigt (wohl Auflösung über zweiten oder dritten DNS-Server erfolgt)
- Weitere Zugriffe werden direkt über den DNS-Server aufgelöst, der die erste Auflösung erfolgreich vorgenommen hat.
(So ist es z.B. beim DFS, wenn es mit einem Node ein Problem gibt -- dann "sucht" der Client sich den Weg über den zweiten DFS-Node -- und behält den auch, wodurch die weiteren Zugriffe ohne Verzögerungen ablaufen).
Stattdessen ist es aber so, dass jeder nachfolgende Zugriff den elend langen Timeout erfährt.
Ich habe gelesen, dass sich die Timeouts mittels des Keys HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeouts verringern lassen. Was ich eigentlich möchte ist, dass die anfragenden Clients in gar keinen (oder höchstens 1 Sekunde dauernden) Timeout laufen, falls der erste DNS-Server nicht verfügbar ist.
Bleibt mir da nur die Einrichtung eines DNS-Load-Balancing-Systems, falls es das gibt oder gibt es in einer normalen Implementierung mit mehreren DNS-Servern wenigstens eine Lösung dafür, dass ein Client den DNS-Sever, der zuletzt erfolgreich aufgelöst hat, als Numero Uno befragt?
Vielen Dank schonmal für eure Anregungen.
Gruß
schlurfi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 212684
Url: https://administrator.de/forum/dns-timeouts-verringern-212684.html
Ausgedruckt am: 18.05.2025 um 13:05 Uhr
4 Kommentare
Neuester Kommentar
Sorry, das ist die Implementierung von DNS in Windows.
Und deine Beobachtung ist richtig.
Jeder DNS Aufruf läuft ins timeout und das dreimal bevor der zweite DNS benutzt wird.
Dein Beispiel war ja nur eine Netzwerkfreigabe. Und da wird die Information nicht jedes mal abgefragt, wozu auch.
Aber das surfen wird auch zur Qual.
Also steht eine Designänderung an oder je nach Netzwrkgröße endlich ein DNS, der sich mit solche Kleinigkeiten nicht rumschlagen muss. Da gibt es viele Derivate von Bind. z. B. Infoblox. DIe umgehen das Problem indem sie als Cluster laufen.
Gruß
Netman
Und deine Beobachtung ist richtig.
Jeder DNS Aufruf läuft ins timeout und das dreimal bevor der zweite DNS benutzt wird.
Dein Beispiel war ja nur eine Netzwerkfreigabe. Und da wird die Information nicht jedes mal abgefragt, wozu auch.
Aber das surfen wird auch zur Qual.
Also steht eine Designänderung an oder je nach Netzwrkgröße endlich ein DNS, der sich mit solche Kleinigkeiten nicht rumschlagen muss. Da gibt es viele Derivate von Bind. z. B. Infoblox. DIe umgehen das Problem indem sie als Cluster laufen.
Gruß
Netman

Hallo,
ich sehe das genau so wie MrNetmann, man sollte einen gut ausgestatteten DNS in das Netz stellen und wenn es nötig
werden sollte auch gerne zwei die zusammen dann die ganze Last abfangen. Unter Linux oder OpenBSD mit Bind.
Gruß
Dobby
ich sehe das genau so wie MrNetmann, man sollte einen gut ausgestatteten DNS in das Netz stellen und wenn es nötig
werden sollte auch gerne zwei die zusammen dann die ganze Last abfangen. Unter Linux oder OpenBSD mit Bind.
Gruß
Dobby