it-swarm.com.de

Warum kann 'ping' einen Namen nicht auflösen, wenn 'nslookup' einwandfrei funktioniert?

Auf meiner Windows XP Workstation kann ich den Computer, zu dem ich eine Verbindung herstellen möchte, in DNS mit nslookup finden:

nslookup wolfman
Server: dns.company.com
Address: 192.168.1.38

Name: wolfman.company.com
Address: 192.168.1.178

Wenn ich jedoch versuche, eine Verbindung zu diesem Computer herzustellen, erhalte ich die Fehlermeldung, dass der Computer nicht gefunden werden kann (d. H. Nicht in DNS nachgeschlagen werden kann):

C:\> ping wolfman
Ping request could not find Host wolfman. Please check the name and try again.

Ich kann eine Verbindung herstellen, wenn ich die IP-Adresse direkt verwende:

C:\> ping 192.168.1.178

Pinging 192.168.1.178 with 32 bytes of data:

Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=41ms TTL=126
Reply from 192.168.1.178: bytes=32 time=44ms TTL=126
Reply from 192.168.1.178: bytes=32 time=38ms TTL=126

Ich könnte das umgehen, indem ich einen Eintrag zu meiner hosts -Datei hinzufüge, aber ich würde lieber herausfinden, warum dies geschieht. Das Problem ist vergänglich, die meiste Zeit des Tages kann ich mich problemlos mit der Maschine verbinden.

Wie ist das möglich?

ETA: Ich habe dies der Kürze halber weggelassen, aber es wurde gefragt:

C:\> ping wolfman.company.com
Ping request could not find Host wolfman.company.com. Please check the name and try again.

ETA: Andere Anwendungen erzielen die gleichen Ergebnisse. Ich habe nur versucht, Ping zu vereinfachen. Telnet kann keine Verbindung herstellen, Cygwin-Apps geben eine "unknown Host wolfman" -Nachricht aus.

Update: Mit wireshark habe ich festgestellt, dass meine Workstation keine DNS-Suche durchführt. Es wird lediglich die Fehlermeldung "Host konnte nicht gefunden werden" gemeldet.

131
skiphoppy

Ich glaube, dass Nslookup eine Winsock-Verbindung auf dem DNS-Port öffnet und eine Abfrage ausgibt, während Ping den DNS-Client-Dienst verwendet. Sie können versuchen, diesen Dienst zu beenden und prüfen, ob dies einen Unterschied macht.

Einige Befehle, die verschiedene Netzwerkzustände neu initialisieren:

WINSOCK-Einträge auf Installationsstandards zurücksetzen: netsh winsock reset catalog
Setzen Sie den TCP/IP-Stack auf die Installationsstandards zurück: netsh int ip reset reset.log
DNS-Auflösungscache leeren: ipconfig /flushdns
DNS-Client-Registrierung erneuern und DHCP-Leases aktualisieren: ipconfig /registerdns
Flush-Routing-Tabelle: route /f (Neustart erforderlich)

98
harrymc

Versuchen Sie, mit dem Hostnamen gefolgt von einem Punkt zu pingen. Also statt ping wolfmanping wolfman. verwenden

Das sollte Sie zu einer Lösung bringen, ohne dass Sie Workarounds mit der hosts-Datei usw. durchführen müssen.

28
Senthil

Versuchen Sie es mit ipconfig /displaydns und suchen Sie nach wolfman. Wenn es als "Name existiert nicht" zwischengespeichert ist (möglicherweise aufgrund einer früheren zeitweilig fehlgeschlagenen Suche), können Sie den Cache mit ipconfig /flushdns leeren.

nslookup verwendet den Cache nicht, sondern fragt den DNS-Server direkt ab.

16
craig65535

Versuchen Sie, den DNS-Suffixen für diese Verbindung . hinzuzufügen. Ich gehe zu:

  1. Ethernet-Status
  2. Klicken Sie auf Eigenschaften
  3. Internet Protocol Version 4
  4. Klicken Sie auf Eigenschaften
  5. Klicken Sie auf Erweitert
  6. Hänge diese DNS an (in der richtigen Reihenfolge)
  7. Fügen Sie . als Suffix hinzu.

Die gleichen Schritte sind im folgenden Screenshot dargestellt:

 

Damit sollte ping wolfman funktionieren.

Erläuterung

nslookup wolfman (Name Server Lookup: Wolfman) sendet den Hostnamen (wolfman) an das DNS (Domain Name System), um die entsprechende IP-Adresse zu erhalten. Dies ist der einzige Zweck des Befehls nslookup. Dies funktioniert bereits, daher haben wir überprüft, dass der DNS funktioniert und dass wolfman tatsächlich einer IP-Adresse entspricht.

Im Gegensatz dazu muss ping wolfman zwei Dinge tun:

  1. Rufen Sie die IP ab, der der Hostname (wolfman) entspricht.
  2. Senden Sie Pakete an die IP und warten Sie auf die Antwort

Unter Windows (auch in neueren Versionen wie Windows 10) kann der erste Schritt leicht fehlschlagen. Aus Gründen der Abwärtskompatibilität unterstützt Windows verschiedene Methoden zur Auflösung von Hostnamen (Hosts-Datei, DNS, NetBIOS/WINS, LMHOST-Datei).

Leider scheint der Windows-Befehl ping nicht immer eine DNS-Suche durchzuführen. Ich kenne die spezifischen Bedingungen, die dieses Verhalten auslösen, nicht.

Glücklicherweise können wir Windows zwingen, eine DNS-Suche durchzuführen, indem wir einen FQDN (vollqualifizierten Domänennamen) verwenden. In der Praxis tun wir dies, indem wir dem Hostnamen einen Punkt . hinzufügen: wolfman.. Versuchen Sie es mit ping wolfman. und überprüfen Sie, ob es funktioniert.

Der letzte Schritt besteht darin, Windows zu zwingen, diesen Punkt selbst anzufügen. Wie das geht, habe ich bereits am Anfang dieser Antwort gezeigt.

12
Frederik Aalund

nslookup unterscheidet sich von anderen Befehlen beim Auflösen von Namen/IP-Adressen unter Windows.

Die normale Auflösungsmethode unter Windows lautet wie folgt:

  1. Der Client prüft, ob der abgefragte Name ein eigener ist.
  2. Der Client durchsucht dann eine lokale Hosts-Datei, eine Liste von IP-Adressen und Namen, die auf dem lokalen Computer gespeichert sind.
  3. DNS-Server (Domain Name System) werden abgefragt.
  4. Wenn der Name immer noch nicht aufgelöst wird, wird die NetBIOS-Namensauflösungssequenz als Sicherung verwendet. Diese Reihenfolge kann durch Konfigurieren des NetBIOS-Knotentyps des Clients geändert werden.

nslookup wird dagegen für Testen von Domain Name Servern verwendet.

10
Bryan

Ich habe mit einem ähnlichen Problem zu kämpfen und die von @harrymc vorgeschlagene Lösung ausprobiert. Ich habe herausgefunden, was irgendwann (zumindest etwas) im Microsoft Technet Forum zu funktionieren scheint ( nslookup funktioniert, aber nichts anderes hat DNS auf einem eigenständigen Win7 PC )

Hier ist das Zitat:

... versuchen Sie, den folgenden Befehl zu verwenden, um einen Client-Resolver-Cache zu Testzwecken zu leeren und zurückzusetzen.

ipconfig/flushdns

ipconfig/registerdns

Bitte beachten Sie den Link unten für weitere Details. http://jefferyland.wordpress.com/2011/07/28/quick-review-of-flushdns-registerdns-and-dns-queries/

Was mir also im Grunde gefehlt hat, war ipconfig /registerdns

8
Mick Halsband

Erst heute hatten wir das gleiche Problem , aber die Lösung war anders . Also dachte ich, ich würde es als Referenz hinzufügen, da dies das oberste Suchergebnis war.

  • Problem: ping löst keinen Hostnamen auf, aber nslookup kann. (Beobachtet auf 2 verschiedenen Windows Server 2012 R2-Hosts.)
  • Ursache: (Für jeden Host) Auf dem Host sind mehrere NIC verbunden, und es sind mehrere Standardgateways konfiguriert.
  • Lösung: (Für jeden Host) Entfernen Sie das Standard-Gateway aus der Konfiguration aller NICs mit einer Ausnahme, sodass nur ein Standard-Gateway verbleibt.
6
djlauk

Ich hatte das gleiche Problem auf einem Windows 2012R2 (= 8.1) -System und habe alle oben genannten Vorschläge ausprobiert, aber keiner von ihnen konnte das Problem beheben:
- Das Pingen des vollqualifizierten Namens hat funktioniert.
- Ping den nicht qualifizierten Namen nicht.
- Beide funktionierten auf mehreren anderen Systemen mit demselben Betriebssystem und anscheinend derselben Konfiguration.
- Alle erforderlichen Suffix-Suchzeichenfolgen waren vorhanden.
(Beachten Sie, dass einige der vorgeschlagenen Korrekturen, wie die Problemumgehung für die Abfragen mit mehreren Bezeichnungen, offensichtlich irrelevant sind, da der nicht qualifizierte Name nur einen Teil enthält.)

Dann bemerkte ich, dass das Zielsystem, das ich anpingen wollte, KEINE IPv6-Adresse hatte. Also habe ich versucht "ping -4" unqualifizierter_name"Und Bingo! Das hat funktioniert.
Aus irgendeinem Grund hat Ping nur auf diesem System versucht, nicht qualifizierten Namen-> IPv6-Adresse und nicht unqualifizierten Namen-> IPv4 aufzulösen.
Für mich bestand die Lösung darin, IPv6 vollständig zu deaktivieren, da ich es überhaupt nicht benötige. Aber ich wäre sehr daran interessiert, eine sanftere Methode zu finden, um Ping (oder vermutlich den DNS-Client-Dienst) anzuweisen, sowohl IPv4- als auch IPv6-Adressen aufzulösen.

Möglicherweise ist wolfman.company.com in C:\Windows\system32\drivers\etc\hosts aufgeführt?

nslookup umgeht diese Datei und fragt immer nach DNS, während ping und andere Tools zuerst in der "hosts" -Datei und dann in DNS nachschlagen.

5
Mikhail Kupchik

Das Hinzufügen eines Eintrags in der Datei c:/windows/system32/drivers/etc/hosts kann das Problem beheben.

2
Manoj Agarwal

Ich bin auch auf dieses Problem gestoßen. Der "einfachste" Weg, das Problem zu beheben, bestand darin, einfach einen . an das Ende des Hostnamens anzuhängen. Dies ist jedoch eher ärgerlich. Die meisten Netzwerke benötigen dies nicht. Ich möchte lieber nicht jedem anderen im Netzwerk mitteilen, dass er dies tun soll, wenn er auf dieselbe Ressource zugreifen möchte.

Ich habe den Vorschlag von Frederik Aalund als mögliche Lösung angesehen und festgestellt, dass sie vorgeschlagen haben, von der Standardoption "Primäre und verbindungsspezifische DNS-Suffixe anhängen" zu wechseln. Dies ließ mich denken, dass mein Netzwerk möglicherweise leicht falsch konfiguriert war.

In meinen DD-WRT-Einstellungen wurde die "LAN-Domäne" nicht festgelegt. Wenn Sie das auf eine beliebige Zeichenfolge setzen, wurde dieses Problem anscheinend für alle Clients in meinem Netzwerk behoben, ohne dass auf jedem Computer eine spezielle Konfiguration vorhanden war. Die von mir gewünschte Lösung! :)

2

Ich habe versucht herauszufinden, warum ich auf einem Win 7-Computer ping server verwenden kann, der funktioniert, und auf dem anderen kann server nicht aufgelöst werden. Allerdings konnten beide server.lan anpingen, was ich nicht ganz verstand.

Es stellte sich heraus, dass ich mit einigen Einstellungen (DNS-Suffixen) herumgespielt hatte, um keine vollqualifizierten Domänennamen verwenden zu müssen, während das geschäftliche VPN verwendet wurde. Ich musste meinen lokalen .lan zu diesen Suffixen hinzufügen, um beide Computer gleich zu machen.

Gehen Sie zu Systemsteuerung> Netzwerk und Internet> Netzwerkverbindungen, klicken Sie mit der rechten Maustaste auf Ihre Netzwerkverbindung und klicken Sie auf Eigenschaften. Klicken Sie auf Internet Protocol Version 4 und klicken Sie auf die Schaltfläche Eigenschaften. Dann die Schaltfläche Erweitert ... in diesem neuen Fenster. Gehen Sie zur Registerkarte DNS. Hier hatte ich ein DNS-Suffix für meine Arbeit hinzugefügt, benötigte aber auch eines für meine normalen Heimverbindungen.

Advanced TCP/IP Settings

2
eresonance

Ich könnte mich da irren, weil es auf meinen längst vergessenen NT4-Resource-Kit-Tagen basiert.

Als Tarif kann ich mich erinnern, dass PING Netbios/WINS und DNS verwendet (in dieser Reihenfolge, zumindest wenn Sie keinen vollqualifizierten Domänennamen angeben).

WINS ist vor vielen Jahren weg, aber Sie haben möglicherweise noch Netbios auf Ihrer Schnittstelle aktiviert und PING verwendet daher möglicherweise Netbios, die möglicherweise keine Ergebnisse liefern. Vor allem, wenn der Datenverkehr an einem Router vorbeigeht.

Deaktivieren Sie einfach Netbios und Ping verwendet DNS als erste Priorität und hängt den registrierten DNS-Datenverkehr auf der Schnittstelle an Ihren Hostnamen an.

1
MrCalvin

Ich nehme das auf, weil es mich im letzten Jahr gestört hat und ich vielleicht einen Workaround gefunden habe.

Für mich schien ein DNS-Caching-System im Windows-Client fehlerhaft zu sein. Windows 7 und 8.1 sind davon betroffen ... kann nicht mehr viel über Windows XP sagen. ping löst den Namen nicht auf. Es ist nicht der ICMP-Teil, der wichtig ist, sondern der Teil, der den Namen auflöst. nslookup ist so konzipiert, dass es den Nameserver abfragt und genau das tut, und keine Auflösung der Windows-Namenshierarchie.

Ein Neustart des Dienstes dnscache hat immer geholfen. Aber seit ich IPv6 on all client-interfaces deaktiviert habe, ist das Problem nicht mehr aufgetreten.

Prost!

1
grim

ich bin auf dieses Problem gestoßen, als wir von Windows XP auf Windows 7 migrierten. Das Problem hing mit einem Windows 7 Multi Label DNS-Abfrageproblem zusammen.

Zulassen, dass DNS-Suffix an nicht qualifizierte Namensabfragen mit mehreren Bezeichnungen angehängt wird - siehe:

http://computerstepbystep.com/allow_dns_suffix_appending_to_unqualified_multi_label_name_queries.html

Hoffe das hilft

1
Sony NS

Wenn unter Mac OS X möglicherweise ein DNS-Cache-Problem vorliegt:

Den Cache entleeren

Sudo killall -HUP mDNSResponder
Sudo dscacheutil -flushcache
1
Christian

Ich hatte gerade dieses Problem und fand etwas ziemlich Merkwürdiges und schaffte es, es zu beheben Lol

Wenn Sie Einträge in Ihrer Hosts-Datei haben, die mit der IP übereinstimmen, auf die Ihr Ping aufzulösen versucht, schlägt dies grundsätzlich fehl.

Wenn Sie beispielsweise in Ihrem DNS einen Eintrag für www.example.com - 10.0.0.20 haben, aber dann einen Eintrag in der Hosts-Datei Ihres Clients, 10.0.0.20 somethingelse.com, können Sie kein Ping-Signal an www senden .example.com

Seltsam, oder?

0

Ich hatte das gleiche Problem und es stellte sich heraus, dass ein anderer Computer die gleiche IP-Adresse hatte, und das verursachte es.

Geänderte IP zurück zu DHCP und alles funktionierte gut.

0
Klaus

In meinem Fall bestand das Problem darin, die Domäne des Hosts hinzuzufügen, den ich zu einer Gruppenrichtlinienoption mit dem Namen "DNS-Suffix-Suchliste" pingen wollte.

Das Verfahren in Kürze lautet wie folgt: Öffnen Sie gpedit.msc und navigieren Sie zu Computer Configuration -> Administrative Templates -> Network -> DNS Client > DNS Suffix Search List, setzen Sie es auf "Aktiviert" und fügen Sie den Domainnamen zur Liste hinzu (die Liste ist standardmäßig leer).

Eine detailliertere Beschreibung dieser Schritte finden Sie hier

0
ndemou