DNS-Client vs. Nslookup – Durchführen eines manuellen Tests des DNS-Clients für SRV-Einträge

DNS-Client vs. Nslookup – Durchführen eines manuellen Tests des DNS-Clients für SRV-Einträge

Es gibt verschiedene Referenzen (wieDNS kann Hostnamen nicht auflösen; nslookup kannoderhttps://web.archive.org/web/20160525082756/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/nslookup-flaws.htmloderhttps://web.archive.org/web/20121113214415/http://cbfive.com/blog/post/PING-vs-NSLookup.aspx), die Folgendes oder etwas Ähnliches besagen, aber keine Vorschläge für alternative Verwendungsmöglichkeiten machen:

Der Grund, warum Ping den Hostnamen nicht auflösen kann, nslookup jedoch schon, liegt darin, dass nslookup ein Low-Level-Tool ist, das den Windows-DNS-Client umgeht. Es verwendet den von Ihnen angegebenen DNS-Server (standardmäßig den ersten) und führt die Abfrage sofort aus.

Meine Frage ist, wie kann ichmanuellDen DNS-Client testen, um einen SRV-Eintrag zu prüfen? Gibt es eine Möglichkeit, die DNS-Informationen anzuzeigen, die er zu verwenden versucht? Ich kann Wireshark nicht auf jedem Server in jeder Umgebung installieren, daher suche ich nach einer anderen Möglichkeit zur Fehlerbehebung. Ich gehe davon aus, dass die Antwort „nein“ lautet, denn sonst würden wir nslookup nicht verwenden (so fehlerhaft es auch ist). Offensichtlich kann ich Ping nicht für einen SRV-Eintrag verwenden.

Bearbeitet mit aktualisierten Ergebnissen: Die UDP-Abfragen sind zu lang, daher wird eine DNS-Antwort mit dem Truncate-Flag an den Client gesendet, sodass eine TCP-Abfrage durchgeführt werden muss. Das nächste Paket nach der TCP-DNS-Abfrage ist (von TargetDNS an den Client): „TCP-Segment einer neu zusammengesetzten PDU“ (das aussieht, als ob es Antwortinformationen enthält) und ist dann je nach Szenario unterschiedlich:

  • Nslookup-Abfrage - bei der nslookup-Abfrage gibt es eigentlich ein DNS-Antwortpaket mit den Informationen
  • ApplicationX (das meines Wissens nach den Windows DNS-Client verwendet) – Abfrage des Windows DNS-Clients, es gibt kein DNS-Antwortpaket (d. h. wie das andere TCP-Paket ist es verloren gegangen)
    • Für den SRV-Eintrag befindet sich weder im DNS-Cache (ipconfig /displaydns) noch im Cache des Client-DNS-Servers etwas (nicht einmal ein negativer Eintrag).

Es zeigt, wenig überraschend, dass der DNS-Client und nslookup unterschiedliche Ergebnisse erhalten, aber was genau machen sie anders (Hosts, lmhosts ignorieren, DNS-Suchsuffixe anhängen usw.)? Sie verwenden dieselben DNS-Server (wie durch Wireshark nachgewiesen). Wie kann ich eingrenzen, wo der Fehler liegt?

Antwort1

Sie gehen richtig davon aus, dass nslookupes sich um einen eigenständigen DNS-Client handelt, unabhängig von den Aktionen des Betriebssystems im Auftrag typischer Anwendungen.

Das Powershell-Cmdlet Resolve-DnsNamehingegen verwendet den zugrunde liegenden Windows-DNS-Client. Dabei handelt es sich um ein Tool, mit dem Sie das normale Betriebssystemverhalten für DNS-Lookups (oder andere Quellen, trotz des Namens!) unabhängig von Ihrer Anwendung auslösen können.

Als Beispiel für eine SRVSuche könnte man z. B. so etwas nehmen:

Resolve-DnsName -Type SRV _sip._tcp.example.com

Randbemerkung:
Das Verhalten von nslookupund dergleichen (im Allgemeinen digdas Tool der Wahl in dieser Kategorie) ist nützlich für die Untersuchung des DNS-Verhaltens, insbesondere weil die lokale Umgebung die Ergebnisse nicht beeinflusst, was diese Tools gleichzeitig aber ungeeignet für die Untersuchung des Verhaltens der lokalen Betriebssystemumgebung macht.

verwandte Informationen