Comportamento previsto con voci duplicate dei file host NT?


12

So che non dovresti avere voci duplicate nel tuo file host di Windows NT windows\system32\drivers\etc\hosts, ma qual è il comportamento previsto se le hai?

È possibile avere più voci con lo stesso nome host ma indirizzi diversi nel file hosts di Windows NT ( windows\system32\drivers\etc\hosts). Quando accedi a quell'host sulla rete, il sistema DNS di Windows lo risolverà in una di quelle voci. Come posso sapere quale voce verrà utilizzata?

Per esempio:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

Modifica : questo esempio particolare sembra forzare un comportamento speciale. Il loopback sembra sovrascrivere qualsiasi voce, indipendentemente dall'ordine.

O:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

Vedo che la prima voce dell'elenco ha la precedenza.

Ma il comportamento che vedo è garantito, è specifico della versione o è generalmente inaffidabile?

Il motivo per cui lo chiedo è perché sto scrivendo alcuni script per gestire gli host e sto cercando di capire se posso selezionarne uno in modo affidabile da rimuovere / commentare, e mi aspetto che non ci sia alcun impatto sul sistema dell'utente.


Ho appena notato che 127.0.0.1sembra forzare un comportamento speciale. Ho modificato la domanda per porre domande sui diversi scenari ...
Merlyn Morgan-Graham,

Chi dice che non si possono avere più voci con lo stesso nome di dominio e indirizzi IP diversi? Certamente non Microsoft. È una cosa perfettamente legittima, secondo Microsoft.
JdeBP,

@JdeBP: So che questo è al limite di una seconda domanda, ma se un host è multi-homed, cosa significa e come può essermi utile? Se lo eseguo il ping, riceverò solo un indirizzo. Lo stesso se provo a servirlo al terminale. A proposito, il tuo link è abbastanza utile per me, poiché supporta il comportamento che ho descritto nella mia domanda. Dovresti scrivere una risposta :)
Merlyn Morgan-Graham,

Ho provato a modificare la domanda per renderla meno imprecisa, in base al commento di JdeBP.
Merlyn Morgan-Graham,

Risposte:


5

Verrà letto solo il primo. Una volta che il nome è stato risolto, non ha luogo alcuna ulteriore lettura del file.


Uno: contraddici la domanda. Due: il hostsfile viene letto nella sua interezza quando il servizio Client DNS è abilitato e più voci con lo stesso nome di dominio sono abbastanza legittime.
JdeBP,

@Synetech: puoi chiarire quale parte non è corretta? È la parte già citata da JdeBP sull'OP (che puoi avere più voci con lo stesso dominio) o c'è qualcos'altro che mi sono perso? :)
Merlyn Morgan-Graham,

5

Sono consentite più voci con lo stesso nome di dominio e utili in alcuni scenari.

Come ho descritto nella mia domanda, sembra che nei casi "normali", in cui tali indirizzi sono raggiungibili dallo stesso adattatore, il primo indirizzo sembra essere quello che viene preso. Se una di queste voci è loopback ( 127.0.0.1), potrebbe tuttavia avere la precedenza.

A volte ha senso avere più voci con lo stesso nome di dominio, anche quando nessuno degli indirizzi è sull'adattatore di loopback, se il computer è multihomed o multi-indirizzabile . (Grazie JdeBP per le informazioni nei commenti sul mio OP).

un singolo nome host DNS può corrispondere a più di un indirizzo IP se ciascuno degli indirizzi è mappato e utilizzato in righe separate. Ad esempio, è possibile aggiungere righe per il seguente computer host DNS multihomed o multi-indirizzabile:

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

Credo che la preferenza / priorità dell'adattatore possa svolgere un ruolo qui (che è possibile impostare nelle impostazioni di rete), anche se non posso provarlo. Molto probabilmente il loopback verrà sempre al primo posto nelle preferenze dell'adattatore.


Non posso testare la preferenza / priorità dell'adattatore a questo punto, quindi per favore commenta se sai che questo è corretto o errato.
Merlyn Morgan-Graham,

1

Ho provato 5 minuti fa e funziona senza server DNS nel modo seguente nel file hosts di Windows:

ip1, ip2, ipx name_to_resolve

Scusa per il mio inglese...


potresti spiegare in breve come risponde alla domanda
BlueBerry - Vignesh4303,

0

> Il loopback sembra sovrascrivere qualsiasi voce, indipendentemente dall'ordine.

Ti sei assicurato di chiudere ed eseguire nuovamente il client (browser?) Dopo aver apportato la modifica? In caso contrario, probabilmente utilizzerà comunque i vecchi valori e non vedrà la modifica in ordine fino a quando non verrà riavviata. Inoltre, se il servizio client DNS è in esecuzione, i vecchi valori vengono memorizzati nella cache, quindi non vedrai la modifica.

Ho fatto alcuni test e sembra che la prima voce sia sempre quella utilizzata.

Assicurati di riavviare il client per assicurarti che stia rileggendo il file HOSTS e, se hai il servizio Client DNS in esecuzione, esegui anche ipconfig /flushdns


Non ricordo se l'ho fatto o no, dato che stavo lavorando con questo da 3 a 8 mesi fa. Ma buon punto e grazie per averci verificato. Hai più adattatori e puoi verificare se le impostazioni delle preferenze dell'adattatore che ho citato nella mia risposta automatica hanno qualche impatto?
Merlyn Morgan-Graham,

1
In realtà, recentemente è stato discusso l' ordine multiplo della NIC .
Synetech,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.