117471
Goto Top

Knobelaufgabe: Seltsames Verhalten Windows DNS (2008 R2)

Ich möchte den Ausfall eines DNS-Servers simulieren und habe hierfür zwei AD-Server und ein im AD abgelegtes DNS aufgesetzt. Um nachzuvollziehen, ob bei einem Ausfall korrekt auf den jeweils anderen Server umgeschaltet wird, habe ich mir folgendes ausgedacht:

Auf beiden Servern läuft der IIS mit einer jeweils unterschiedlichen Homepage. Ich habe auf jedem DNS eine gleichlautende primäre Zone angelegt, die nicht im AD hinterlegt ist (diese heißt jenachserver.local). Der entsprechende Hosteintrag (www.jenachserver.local) zeigt auf den jeweiligen Server.

D.h. je nachdem, welchen DNS-Server ich frage, bekomme ich eine andere IP zurückgeliefert (nämlich die IP von dem Server, den ich gefragt habe). Ich habe die DNS "kreuzweise" als primären DNS angezeigt und bekomme auf Server a unter dem Hostnamen die Seite von b angezeigt, der Server b zeigt fehlerfrei die Seite a an.

Auf dem Client bekomme ich via nslookup ebenfalls eine unterschiedliche IP, je nachdem, welchen Server ich frage:
nslookup www.jenachserver.local ip_von_server_a liefert die IP-Adresse von Server A
nslookup www.jenachserver.local ip_von_server_b liefert die IP-Adresse von Server B

Der Client hat Server A als ersten und Server B als alternativen DNS-Server "drin". Unter www.jenachserver.local zeigt er nach Anmeldung im AD die Homepage vom Server A an.

Jetzt kommt mein Netzausfall (Deaktivierung der Netzwerkschnittstelle auf Server A, "ipconfig /flushdns" auf dem Client). Eigentlich müsste jetzt unter www.jenachserver.local die Homepage von Server B erscheinen.

Aber das tut er nicht: Statt dessen dauert es ein paar Sekunden, und es erscheint immer noch die Homepage von Server A (obwohl dieser aktuell gar keine Netzwerkbindung hat).

Und jetzt die Masterfrage: Wer oder was spielt mir hier einen Streich?

Content-Key: 246759

Url: https://administrator.de/contentid/246759

Printed on: April 19, 2024 at 04:04 o'clock

Member: colinardo
colinardo Aug 18, 2014 updated at 13:37:42 (UTC)
Goto Top
Moin,
sehr wahrscheinlich das Browser-DNS-Caching:
http://blog.krakovic.de/firefox-dns-cache-loschen-abschalten-einstellen ...
Browsercache löschen und Browser neu starten.

Grüße Uwe
Mitglied: 117471
117471 Aug 18, 2014 updated at 13:54:00 (UTC)
Goto Top
Zitat von @colinardo:


sehr wahrscheinlich das Browser-DNS-Caching:

Das dachte ich auch zuerst. Aaaaber (momentaner Stand):
- nslookup www.jenachserver.local liefert die IP-Adresse von Server A.
- wenn ich ping www.jenachserver.local eingebe, geht der ping auf die IP von Server B.

Auf dem Client bekomme ich bei ping www.jenachserver.local die Meldung "Host not found". Ein nslookup liefert aber eine gültige IP (die ich auch anpingen kann). Ich kann die Server auch nicht mehr direkt unter der IP-Adresse (ohne Hostnamen) erreichen.

Und das Ganze ohne, dass ich etwas konfigurativ verändert habe (außer die Netzwerkschnittstelle von Server A wieder einzuschalten und auf allen Rechern "ipconfig /flushdns").

Das ganze ist höchst merkwürdig face-smile

Irgendwie habe ich das Gefühl, als wenn das gesamte Netzwerkgeschehen irgendwo gecacht wird. Wobei ich nicht einmal weiß, ob mein oben aufgeführtes Testszenario (zwei unterschiedliche IP-Adressen mit gleichem Hostnamen auf zwei unterschiedlichen DNS-Servern im AD) überhaupt funktionieren kann. Das hatte ich mir "einfach mal so" ausgedacht.
Member: colinardo
Solution colinardo Aug 18, 2014 updated at 16:46:30 (UTC)
Goto Top
für einen Test brauchst du keine so komische Konstellation konstruieren. Lösche die Zonen, dann den DNS-Cache der DNS-Server löschen (ich meine dnscmd nicht ipconfig), und auf den Clients ebenfalls. Dann schaltest du einen Server ab und prüfe ob du unterschiedliche Webseiten aufrufen kannst. Dann weist du sicher das der Client richtig umswitcht.
Wenn noch Zweifel bestehen sollten, einfach mit Wireshark in den Traffic reinschauen, dann sind jegliche Zweifel ausgeschlossen, und dein "merkwürdiges Verhalten" erklärbar!

Noch zur Info: Ein Umschwenken des Clients auf den sekundären DNS findet nur statt wenn der primäre DNS nicht antwortet (Timeout) oder er eine nicht routbare Adresse zurückliefert. Solange dieser z.B. mit "Domain not existent" antwortet wird nicht auf den sekundären umgeschwenkt.
Aber du hattest ja richtigerweise das Interface abgeschaltet.
Mitglied: 117471
117471 Aug 18, 2014 at 14:46:09 (UTC)
Goto Top
Zitat von @colinardo:

für einen Test brauchst du keine so komische Konstellation konstruieren. Lösche die Zonen, dann den DNS-Cache der
DNS-Server löschen (ich meine dnscmd nicht ipconfig), und auf den Clients ebenfalls.

Da gibt es noch eine klitzekleine Schwierigkeit: Als DHCP-Server funktioniert nicht das AD, sondern der Router (und das soll auch so bleiben und ist elementärer Bestandteil der Aufgabe). Und der doofe Router puzzelt immer seine eigene lokale IP sowie den DNS des Providers als dritten und vierten DNS dazu. Wenn ich auf einem Client "ipconfig /all" eingebe, erhalte ich als Ausgabe:
DNS1: ip_von_server_a
DNS2: ip_von_server_b
DNS3: ip_vom_router
DNS4: erste_ip_die_der_provider_dem_router_benennt

Sprich - wenn die Antwort erfolgreich ist, kann ich via Webseitenabruf nicht erkennen, ob sie von einem meiner Server oder vom Router (oder vom Provider) stammt face-sad

Mein Testszenario ist mit Sicherheit "von hinten durch die Brust ins Auge" und ziemlich umständlich. Wie gesagt: Es geht nur darum, zu testen, ob die lokale DNS-Redundanz funktioniert und der zweite Server überhaupt etwas gefragt wird und ob die Abfragen nicht doch "heimlich" auf dem Router oder beim ISP landen. Etwas Besseres ist mir auf die Schnelle nicht eingefallen face-sad
Member: colinardo
Solution colinardo Aug 18, 2014 updated at 16:46:22 (UTC)
Goto Top
Zu deinem Aufbau sag ich jetzt mal nichts, uahhh da krieg ich Gänsehaut face-smile
Wie bereits geschrieben werfe Wireshark an, dann hast du Gewissheit welcher DNS dir antwortet und musst nicht rumraten !!!
Member: Chonta
Chonta Aug 18, 2014 at 15:50:39 (UTC)
Goto Top
Hallo,

was möglich ist, bei deiner Konstruktion, das der Chache vom Server auch dazwischen funkt.
Da Du die Server über kreuz auflösen lässt, was ein soll ist, wenn die Daten GLEICH sind, kann da Du ja die Webseite vom B server aufgerufen hast und der anstelle SEINER Seite die vom anderen angezeigt hat der Cache vom Server selber dazwischen funken.
Mach auf dem Server auch einen Cachereset (Server und Client) und dann versuch nochmal dein Glück.

Um zu sehen, ob die DNS-Server umschwenken, solltest Du eigentlich eine Internetwebseite aufrufen die Du noch nie aufgerufen hast oder ein AD Rechner anpinken mit dem Du noch nix zu tun hattest.
Dein Szenario hat unnötige Fehlerquellen die das Ergebniss verfäschen.

Gruß

Chonta
Mitglied: 117471
117471 Aug 18, 2014 at 16:52:12 (UTC)
Goto Top
Zitat von @colinardo:

Zu deinem Aufbau sag ich jetzt mal nichts, uahhh da krieg ich Gänsehaut face-smile

Ich hätte gerne einen Kreativitätspreis!

Wie bereits geschrieben werfe Wireshark an, dann hast du Gewissheit welcher DNS dir antwortet

Danke. Ich denke, ich werde tatsächlich in den Traffic hineinschauen (müssen). Finde ich echt nett, dass Ihr mir so schnell geholfen habt.

Macht es mehr Sinn, auf den (ausgehenden) Traffic vom Client oder eher auf den (eingehenden) Traffic vom Server zu schauen? Oder ist das eher "Wumpe"?

Gibt es in einer Active Directory Domäne einen weiteren Mechanismus, der DNS-Daten zwischen den Clients und den Servern transportiert? Oder gehen diese DNS-Anfragen auch beim AD *immer* über Port 53?
Member: colinardo
colinardo Aug 18, 2014 updated at 17:10:13 (UTC)
Goto Top
Zitat von @117471:
Finde ich echt nett, dass Ihr mir so schnell geholfen habt.
keine Ursache face-smile
Macht es mehr Sinn, auf den (ausgehenden) Traffic vom Client oder eher auf den (eingehenden) Traffic vom Server zu schauen? Oder
ist das eher "Wumpe"?
Da du wissen willst welchen Server der Client fragt, wohl eher die ausgehenden Anfragen des Clients, aber die Unterhaltung kannst du ja Filtern so dass nur die DNS-Anfragen und die dazugehörigen Antworten zusammen erscheinen.
Gibt es in einer Active Directory Domäne einen weiteren Mechanismus, der DNS-Daten zwischen den Clients und den Servern
transportiert?
nope, außer du meinst Netbios Anfragen aber das sind ja in dem Sinne keine "echten" DNS Anfragen.
Oder gehen diese DNS-Anfragen auch beim AD *immer* über Port 53?
yip