Назад | Перейти на главную страницу

Как Windows разрешает имена хостов без DNS?

У меня есть компьютер с Windows 7 и MacOS X 10.6, которые подключены к одной локальной сети с помощью концентратора за 10 долларов. В MacOS я установил имя компьютера на «mymac.local» в «предпочтениях-> общий доступ». Компьютер Windows имеет статический IP-адрес 192.168.0.10, а Mac - адрес 192.168.0.20. Оба имеют маску сети 255.255.255.0 и не имеют шлюза.

Если я дам команду ping mymac.local с моего компьютера с Windows он успешно пингует 192.168.0.20. Как Windows определила, что IP 192.168.0.20 связан с mymac.local, поскольку в моей сети нет DNS? Это какая-то трансляция? Какой протокол используется?

Он использует (древний) NETBIOS протокол и реализация его службы имен в Windows, WINS. Если имя не может быть разрешено DNS-серверами, выполняется попытка сервера WINS или, если оно не определено, выполняется вызов NEBIOS.

Обратите внимание, что некоторые маршрутизаторы включают DNS-сервер и добавляют к нему имя, предоставляемое каждым DHCP-клиентом. Если ваш маршрутизатор поддерживает эту возможность, то протокол DNS фактически используется для разрешения запроса на разрешение имени.

Это решает .местный имена с использованием многоадресный DNS (RFC 6762) как часть сеть с нулевой конфигурацией.

Для полноты и для будущих (повторных) посещений этого вопроса, существует еще одна возможность для хоста Windows (в моем случае Windows 10) разрешать имена хостов.

В Windows 10 есть файл hosts, как и в любом Linux / Unix, и он находится в %windir%\system32\drivers\etc.

Любая запись, введенная вами вручную или с помощью автоматизации, будет разрешена без какой-либо помощи внешнего сервера или протокола.