Oczekiwane zachowanie ze zduplikowanymi wpisami plików hostów NT?

12

Wiem, że nie powinieneś mieć zduplikowanych wpisów w pliku hostów Windows NT windows\system32\drivers\etc\hosts, ale jakie jest oczekiwane zachowanie, jeśli je masz?

Możesz mieć wiele wpisów o tej samej nazwie hosta, ale różnych adresach w pliku hosts Windows NT ( windows\system32\drivers\etc\hosts). Po uzyskaniu dostępu do tego hosta w sieci system DNS systemu Windows rozpozna go na jednym z tych wpisów. Skąd mam wiedzieć, który wpis zostanie użyty?

Na przykład:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

Edycja : Ten konkretny przykład wydaje się wymuszać specjalne zachowanie. Wydaje się, że pętla zwrotna zastępuje dowolny wpis, niezależnie od kolejności.

Lub:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

Widzę, że pierwszy wpis na liście ma pierwszeństwo.

Ale czy zachowanie, które widzę, jest gwarantowane, czy jest specyficzne dla wersji, czy ogólnie jest zawodne?

Powodem, dla którego pytam, jest to, że piszę kilka skryptów do obsługi hostów i staram się dowiedzieć, czy mogę w wiarygodny sposób wybrać jeden z nich do usunięcia / skomentowania i oczekuję, że nie będzie to miało wpływu na system użytkownika.

Merlyn Morgan-Graham
źródło
Zauważyłem, że 127.0.0.1to wymusza specjalne zachowanie. Zredagowałem pytanie, aby zapytać o różne scenariusze ...
Merlyn Morgan-Graham
Kto powiedział, że nie można mieć wielu wpisów o tej samej nazwie domeny i różnych adresach IP? Na pewno nie Microsoft. Według Microsoft jest to całkowicie uzasadniona rzecz.
JdeBP,
@JdeBP: Wiem, że to graniczy z drugim pytaniem, ale jeśli host ma wiele baz, to co to oznacza i jak to jest dla mnie przydatne? Jeśli wyślę ping, otrzymam tylko jeden adres. To samo, jeśli spróbuję podać to na terminal. BTW, twój link jest dla mnie bardzo przydatny, ponieważ stanowi kopię zachowania opisanego w moim pytaniu. Powinieneś napisać odpowiedź :)
Merlyn Morgan-Graham
Próbowałem edytować pytanie, aby było mniej niedokładne, na podstawie komentarza JdeBP.
Merlyn Morgan-Graham

Odpowiedzi:

5

Tylko pierwszy zostanie odczytany. Po ustaleniu nazwy nie ma możliwości dalszego czytania pliku.

Abraxas
źródło
Po pierwsze: zaprzeczasz pytaniu. Po drugie: hostsplik jest odczytywany w całości, gdy usługa klienta DNS jest włączona, a wiele wpisów o tej samej nazwie domeny jest całkiem uzasadnionych.
JdeBP,
@ Synetech: Czy możesz wyjaśnić, która część jest nieprawidłowa? Czy jest to część, o której wspominałem JdeBP w OP (że możesz mieć wiele wpisów w tej samej domenie), czy jest coś jeszcze, co przeoczyłem? :)
Merlyn Morgan-Graham
5

Wielokrotne wpisy o tej samej nazwie domeny są dozwolone i przydatne w niektórych scenariuszach.

Jak opisałem w moim pytaniu, wydaje się, że w „normalnych” przypadkach, gdy adresy te są osiągalne przez ten sam adapter, pierwszy adres wydaje się być tym, który jest brany. Jeśli jednym z tych wpisów jest loopback ( 127.0.0.1), może mieć jednak pierwszeństwo.

Czasami sensowne jest posiadanie wielu wpisów o tej samej nazwie domeny, nawet jeśli żaden z adresów nie jest do adaptera sprzężenia zwrotnego, jeśli komputer jest wieloadresowy lub adresowalny . (Dzięki JdeBP za informacje w komentarzach do mojego OP).

pojedyncza nazwa hosta DNS może odpowiadać więcej niż jednemu adresowi IP, jeśli każdy z adresów jest mapowany i używany w osobnych wierszach. Na przykład możesz dodać wiersze dla następującego hosta DNS z wieloma domami lub wieloma adresami:

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

Uważam, że preferencje / priorytety adaptera mogą odgrywać tutaj rolę (którą można skonfigurować w ustawieniach sieciowych), chociaż nie mogę tego przetestować. Sprzężenie zwrotne najprawdopodobniej zawsze będzie pierwsze w preferencjach adaptera.

Merlyn Morgan-Graham
źródło
Nie mogę w tym momencie przetestować preferencji / priorytetu adaptera, więc proszę o komentarz, jeśli wiesz, że jest to poprawne lub niepoprawne.
Merlyn Morgan-Graham,
1

Próbowałem 5 minut temu i działa bez serwera dns w następujący sposób do pliku hosts Windows:

ip1, ip2, ipx name_to_resolve

Przepraszam za mój angielski...

Darckclone
źródło
czy mógłbyś krótko wyjaśnić, w jaki sposób odpowiada na pytanie
BlueBerry - Vignesh4303
0

> Wydaje się, że pętla zwrotna zastępuje dowolny wpis, niezależnie od kolejności.

Czy upewniłeś się, że zamknąłeś i uruchomiłeś ponownie klienta (przeglądarkę?) Po wprowadzeniu zmiany? Jeśli tego nie zrobisz, prawdopodobnie nadal będzie używać starych wartości i nie zobaczy zmiany w kolejności, dopóki nie zostanie ponownie uruchomiony. Ponadto, jeśli usługa klienta DNS jest uruchomiona, stare wartości są buforowane, więc zmiana nie będzie widoczna.

Zrobiłem kilka testów i wydaje się, że pierwszy wpis jest zawsze używany.

Uruchom ponownie klienta, aby upewnić się, że ponownie czyta plik HOSTS, a jeśli masz uruchomioną usługę klienta DNS, uruchom także ipconfig /flushdns

Synetech
źródło
Nie pamiętam, czy to zrobiłem, czy nie, ponieważ pracowałem nad tym od 3 do 8 miesięcy temu. Ale dobra uwaga i dzięki za sprawdzenie tego. Czy masz wiele adapterów i czy możesz sprawdzić, czy ustawienia preferencji adaptera, o których wspomniałem w mojej odpowiedzi, mają jakikolwiek wpływ?
Merlyn Morgan-Graham
1
W rzeczywistości ostatnio omawiano wiele zamówień na kartę sieciową .
Synetech,