Очікувана поведінка з повторюваними записами файлів хостів NT?


12

Я знаю, що у вашому файлі хостів Windows NT не повинно бути повторюваних записів windows\system32\drivers\etc\hosts, але яка очікувана поведінка, якщо у вас є?

Ви можете мати кілька записів з одним іменем хоста, але різними адресами у файлі хостів Windows NT ( windows\system32\drivers\etc\hosts). Коли ви отримуєте доступ до цього хоста в мережі, система DNS Windows вирішить його до однієї з цих записів. Як я можу сказати, який запис буде використовуватися?

Наприклад:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

Правка : Цей приклад, здається, змушує особливу поведінку. Здається, зворотний зв'язок замінює будь-який запис незалежно від порядку.

Або:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

Я бачу, що перший запис у списку має перевагу.

Але чи є поведінка, яку я бачу, гарантована, чи вона є специфічною для версії, чи взагалі ненадійною?

Причина, яку я запитую, полягає в тому, що я пишу кілька сценаріїв для обробки хостів, і я намагаюся зрозуміти, чи можу я надійно вибрати один з них, щоб видалити / прокоментувати, і очікую, що це не вплине на систему користувача.


Щойно помітив, що, 127.0.0.1здається, змушує особливу поведінку. Я редагував питання, щоб запитати про різні сценарії ...
Мерлін Морган-Грем

Хто каже, що не можна мати кілька записів з одним іменем домену та різними IP-адресами? Звичайно, не Microsoft. На думку Microsoft, це абсолютно законна річ.
JdeBP

@JdeBP: Я знаю, що це межує з другим питанням, але якщо хост є багатодомним, що це означає, і чим це корисно для мене? Якщо я підкажу це, я отримаю лише одну адресу. Те саме, якщо я спробую термінально-служити йому. До речі, ваше посилання для мене дуже корисне, оскільки воно підкріплює поведінку, яку я описав у своєму питанні. Ви повинні написати відповідь :)
Мерлін Морган-Грем

Намагався редагувати питання, щоб зробити його менш неточним, грунтуючись на коментарі JdeBP.
Мерлін Морган-Грехем

Відповіді:


5

Буде прочитано лише перше. Після того, як ім'я було вирішено, подальше читання файлу не відбувається.


Перший: Ви суперечите питанню. Друге: hostsфайл читається повністю, коли ввімкнено службу клієнта DNS, і кілька записів з тим самим доменним іменем є цілком законними.
JdeBP

@Synetech: Чи можете ви уточнити, яка частина неправильна? Це частина JdeBP, вже згадана в ОП (що ви можете мати кілька записів з одним доменом) або щось інше я пропустив? :)
Мерлін Морган-Грехем

5

Кілька записів з одним іменем домену дозволено і корисно в деяких сценаріях.

Як я описав у своєму запитанні, схоже, що у "звичайних" випадках, коли ці адреси доступні тим самим адаптером, перша адреса здається такою, яку приймає. Якщо один із цих записів - це циклічний зворот ( 127.0.0.1), він може мати перевагу.

Іноді має сенс мати кілька записів з тим самим доменним іменем, навіть коли жодна з адрес не належить до адаптера циклічного зворотного зв'язку, якщо комп'ютер є багатоходовим або багатоадресним . (Дякую JdeBP за інформацію в коментарях до моєї ОП).

одне ім'я хоста DNS може відповідати більш ніж одній IP-адресі, якщо кожна з адрес відображається і використовується в окремих рядках. Наприклад, ви можете додати рядки для наступного багатоходинного або багатоадресного хост-комп'ютера DNS:

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

Я вважаю, що налаштування / пріоритет адаптера тут можуть грати певну роль (яку можна встановити в мережевих налаштуваннях), хоча я не можу це перевірити. Швидкість зворотного зв'язку, швидше за все, завжди буде першою в налаштуваннях адаптера.


Я не можу перевірити налаштування / пріоритет адаптера на даний момент, тому будь ласка, коментуйте, якщо ви знаєте, що це правильно чи неправильно.
Мерлін Морган-Грехем

1

Я спробував 5 хвилин тому, і він працює без dns-сервера наступним чином у файлі хостів Windows:

ip1, ip2, ipx name_to_resolve

Вибачте мою англійську ...


Ви могли б коротко пояснити, як він відповідає на питання
BlueBerry - Vignesh4303

0

> Здається, зворотний зв'язок замінює будь-який запис незалежно від порядку.

Ви впевнено закрили та запустили клієнт (браузер?) Після внесення змін? Якщо цього не зробити, то, швидше за все, він буде використовувати старі значення і не побачить зміни в порядку, поки він не буде перезапущений. Крім того, якщо у вас працює служба клієнта DNS, старі значення зберігаються в кеші, тому зміни ви не побачите.

Я зробив кілька тестів і, здається, перший запис - це завжди той, який використовується.

Переконайтесь, що перезапустіть клієнта, щоб переконатися, що він перечитує файл HOSTS, а також якщо запускається служба DNS-клієнта. ipconfig /flushdns


Не можу пригадати, чи робив я це, чи ні, як працював з цим між 3 та 8 місяцями тому. Але хороший момент і спасибі за перевірку цього. Чи є у вас кілька адаптерів, і чи можете ви перевірити, чи впливають параметри налаштувань адаптера, які я згадав у своїй самовідповіді?
Мерлін Морган-Грехем

1
Насправді, нещодавно було обговорено кілька замовлень NIC .
Synetech
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.