2

Я заметил, что у всех моих локальных имен хостов есть конечная точка в конце, когда я использую какой-либо инструмент сканирования локальной сети на своем телефоне Android. А без этого я не могу заставить ping работать с моего рабочего стола Windows (он прекрасно работает с моими виртуальными машинами Linux):

C:\Users\dnll>ping router
Ping request could not find host router. Please check the name and try again.

C:\Users\dnll>ping router.

Pinging router [192.168.1.1] with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Это становится более очевидным при попытке доступа к веб-интерфейсу моего маршрутизатора, поскольку мне нужно ввести http://router./ поскольку http://router/ не будет работать. Я использую DD-WRT с включенным dnsmasq, не уверен, что это может быть проблемой. Я бы предпочел, чтобы имена хостов были доступны без точки на моем ПК с Windows.

настройки dnsmasq

Я попытался отключить локальный DNS без особого успеха.

Вот ipconfig /all с моего рабочего стола:

C:\Users\dnll>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : desktop
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) Ethernet Connection (5) I219-V
   Physical Address. . . . . . . . . : 70-4D-7B-67-7C-FD
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 192.168.1.205(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : December 12, 2018 18:11:50
   Lease Expires . . . . . . . . . . : December 17, 2018 00:21:37
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DNS Servers . . . . . . . . . . . : 192.168.1.1
   NetBIOS over Tcpip. . . . . . . . : Enabled

В моей конфигурации Windows нет ничего особенного, о чем я знаю. Я не использую домен, по крайней мере, не тот, о котором я знаю (и я попытался проверить связь с router.local или router.mydomain без успеха, просто чтобы быть уверенным).

В чем дело?

1 ответ1

3

Точка в конце необходима для принудительного поиска DNS. Без этого Windows может сначала попробовать другие методы, такие как NETBIOS или файл hosts , которые она не будет пробовать при наличии точки. Когда вы ставите точку, вы говорите, что имя хоста полностью определено, иначе оно добавит ваш DNS-суффикс. Последняя "точка" всегда подразумевается в DNS, даже если она не указана.

Из статьи форума DD-WRT Не удается разрешить имя узла, но можно разрешить имя узла. (с.):

Это типичное поведение DNS.

"Точка" означает полное доменное имя (FQDN). Без точки имя, которое вы пытаетесь пропинговать, неоднозначно (имеет несколько возможных значений или интерпретаций).

Вы можете предотвратить использование конечной точки, указав в маршрутизаторе домен локальной сети (например, "local"). Затем отпустите / обновите DHCP на клиенте.

ping stan.local

ping stan

Так что, если имя хоста вашего маршрутизатора будет router.local. , и ваш DNS-распознаватель будет иметь local путь поиска, при поиске router DNS-клиент автоматически добавит .local. и затем успешно разрешить адрес.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .