Erwartetes Verhalten bei doppelten NT-Hosts-Dateieinträgen?

12

Ich weiß, dass Sie keine doppelten Einträge in Ihrer Windows NT-Hosts-Datei haben sollten windows\system32\drivers\etc\hosts, aber wie ist das erwartete Verhalten, wenn Sie diese haben?

Sie können mehrere Einträge mit demselben Hostnamen, aber unterschiedlichen Adressen in der Windows NT-Hostdatei ( windows\system32\drivers\etc\hosts) haben. Wenn Sie auf diesen Host im Netzwerk zugreifen, wird er vom Windows-DNS-System in einen dieser Einträge aufgelöst. Wie kann ich feststellen, welcher Eintrag verwendet wird?

Z.B:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

Bearbeiten : Dieses spezielle Beispiel scheint ein besonderes Verhalten zu erzwingen. Der Loopback scheint jeden Eintrag unabhängig von der Reihenfolge zu überschreiben.

Oder:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

Ich sehe, dass der erste Eintrag in der Liste Vorrang hat.

Aber ist das Verhalten, das ich sehe, garantiert, ist es versionsspezifisch oder ist es im Allgemeinen unzuverlässig?

Der Grund, den ich frage, ist, dass ich einige Skripte schreibe, um Hosts zu handhaben, und ich versuche herauszufinden, ob ich zuverlässig eines davon zum Entfernen / Kommentieren auswählen kann und erwarte, dass es keine Auswirkungen auf das System des Benutzers gibt.

Merlyn Morgan-Graham
quelle
Ich habe gerade bemerkt, dass dies 127.0.0.1ein besonderes Verhalten zu erzwingen scheint. Ich habe die Frage bearbeitet, um nach den verschiedenen Szenarien zu fragen ...
Merlyn Morgan-Graham
Wer sagt, dass man nicht mehrere Einträge mit demselben Domainnamen und unterschiedlichen IP-Adressen haben kann? Mit Sicherheit nicht Microsoft. Laut Microsoft ist dies eine absolut legitime Sache.
JdeBP
@JdeBP: Ich weiß, dass dies an eine zweite Frage grenzt, aber wenn ein Host mehrfach vernetzt ist, was bedeutet das und wie ist das für mich nützlich? Wenn ich es anpinge, bekomme ich nur eine Adresse. Das Gleiche gilt, wenn ich versuche, das Terminal zu bedienen. Übrigens, Ihr Link ist sehr nützlich für mich, da er das Verhalten unterstützt, das ich in meiner Frage beschrieben habe. Sie sollten eine Antwort schreiben :)
Merlyn Morgan-Graham
Es wurde versucht, die Frage zu bearbeiten, um sie weniger ungenau zu machen, basierend auf dem Kommentar von JdeBP.
Merlyn Morgan-Graham

Antworten:

5

Es wird nur der erste gelesen. Sobald der Name aufgelöst wurde, findet kein weiteres Lesen der Datei statt.

Abraxas
quelle
Erstens: Sie widersprechen der Frage. Zweitens: Die hostsDatei wird vollständig gelesen, wenn der DNS-Clientdienst aktiviert ist, und mehrere Einträge mit demselben Domänennamen sind rechtmäßig.
JdeBP
@Synetech: Kannst du klarstellen, welcher Teil falsch ist? Ist es der Teil, den JdeBP bereits im OP erwähnt hat (dass Sie mehrere Einträge mit derselben Domain haben können) oder gibt es noch etwas, das ich verpasst habe? :)
Merlyn Morgan-Graham
5

In einigen Szenarien sind mehrere Einträge mit demselben Domänennamen zulässig und nützlich.

Wie ich in meiner Frage beschrieben habe, scheint es, dass in "normalen" Fällen, in denen diese Adressen mit demselben Adapter erreichbar sind, die erste Adresse diejenige ist, die verwendet wird. Wenn einer dieser Einträge loopback ( 127.0.0.1) ist, hat er möglicherweise Vorrang.

Manchmal ist es sinnvoll, mehrere Einträge mit demselben Domänennamen zu haben, auch wenn sich keine der Adressen auf dem Loopback-Adapter befindet, wenn der Computer über mehrere Adressen oder mehrere Adressen verfügt . (Danke JdeBP für die Infos in den Kommentaren zu meinem OP).

Ein einzelner DNS-Hostname kann mehr als einer IP-Adresse entsprechen, wenn jede der Adressen zugeordnet und in separaten Zeilen verwendet wird. Sie können beispielsweise Leitungen für den folgenden DNS-Hostcomputer mit mehreren oder mehreren Adressen hinzufügen:

10.0.0.1  host-a.example.microsoft.com
10.0.0.2  host-a.example.microsoft.com
10.0.0.3  host-a.example.microsoft.com

Ich glaube, dass die Adapterpräferenz / -priorität hier eine Rolle spielen könnte (die Sie in den Netzwerkeinstellungen einrichten können), obwohl ich sie nicht testen kann. Loopback wird höchstwahrscheinlich immer an erster Stelle in der Adapterpräferenz stehen.

Merlyn Morgan-Graham
quelle
Ich kann die Adapterpräferenz / -priorität derzeit nicht testen. Bitte kommentieren Sie, wenn Sie wissen, dass dies richtig oder falsch ist.
Merlyn Morgan-Graham
1

Ich habe es vor 5 Minuten versucht und es läuft ohne DNS-Server auf folgende Weise in die Windows-Hosts-Datei:

ip1, ip2, ipx name_to_resolve

Entschuldigung, mein Englisch...

Darckclone
quelle
Könnten
0

> Der Loopback scheint jeden Eintrag unabhängig von der Reihenfolge zu überschreiben.

Haben Sie sichergestellt, dass Sie den Client (Browser?) Nach der Änderung schließen und erneut ausführen? Wenn Sie dies nicht tun, werden wahrscheinlich immer noch die alten Werte verwendet und die Änderung wird erst nach einem Neustart angezeigt. Wenn der DNS-Clientdienst ausgeführt wird, werden die alten Werte zwischengespeichert, sodass die Änderung nicht angezeigt wird.

Ich habe einige Tests durchgeführt und es scheint, dass der erste Eintrag immer derjenige ist, der verwendet wird.

Stellen Sie sicher, dass Sie den Client neu starten, um sicherzustellen, dass die HOSTS-Datei erneut gelesen wird. Wenn der DNS-Clientdienst ausgeführt wird, wird er ebenfalls ausgeführt ipconfig /flushdns

Synetech
quelle
Ich kann mich nicht erinnern, ob ich es getan habe oder nicht, da ich vor 3 bis 8 Monaten damit gearbeitet habe. Aber guter Punkt und danke, dass Sie sich dafür entschieden haben. Haben Sie mehrere Adapter und können Sie überprüfen, ob die in meiner Selbstantwort erwähnten Einstellungen für die Adaptereinstellungen Auswirkungen haben?
Merlyn Morgan-Graham
1
Tatsächlich wurde kürzlich die mehrfache NIC-Reihenfolge erörtert .
Synetech