1

Я работаю в локальной сети, закрытой от Интернета, и есть несколько устройств (A, B, C, ...), подключенных через кабель Ethernet к одному маршрутизатору, что делает эту локальную сеть возможной. Операционная система на всех устройствах: Windows 10.

Вопросы:

  • Почему сбой LLMNR, а DNS - нет?
  • Почему «ping A» использует LLMNR, а «ping A.» использует DNS?
  • Есть ли способ заставить nslookup использовать LLMNR вместо DNS и почему?
  • Что именно происходит, когда я добавляю «.» к имени хоста, для обоих 'ping' и 'nslookup'?
  • Как вы знаете ответы на эти вопросы (область работы и тип опыта)?

КОНТЕКСТ ЭТОГО ВОПРОСА МОЖЕТ НАЙТИ НИЖЕ

nslookup A

а также

nslookup A.

оба дают следующий удовлетворительный результат

Server:  localDnsServerName
Address: 192.168.1.1

Name:    A
Address: 192.168.1.X

Четное

ping A.

дает удовлетворительный вывод ('.' добавляется к запрашиваемому имени хоста)

Pinging A [192.168.1.x] with 32 bytes of data:
Reply from 192.168.1.X: byte=32 time<1ms TTL=128
Reply from 192.168.1.X: byte=32 time<1ms TTL=128
Reply from 192.168.1.X: byte=32 time<1ms TTL=128
Reply from 192.168.1.X: byte=32 time<1ms TTL=128

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

Тем не менее, следующая команда

ping A

дает неудовлетворительный вывод

Ping request could not find host A. Please check the name and try again.

После дальнейшего исследования через Wireshark я вижу команды nslookup и «ping A.» команда приводит к успешным стандартным запросам с использованием протокола DNS.

Однако «ping A» приводит к стандартному запросу с использованием протокола LLMNR, который завершается неудачно.

Через RFC 4795, реферат для LLMNR:
«Цель разрешения имен многоадресной передачи по локальной сети (LLMNR) - включить разрешение имен в сценариях, в которых обычное разрешение имен DNS невозможно. LLMNR поддерживает все текущие и будущие форматы, типы и классы DNS, работая на отдельном порту от DNS и с отдельным кешем распознавателя. Поскольку LLMNR работает только на локальном канале, его нельзя считать заменой DNS. "

Дополнительный тег: 'llmnr'
Я бы официально добавил упомянутый дополнительный тег, но у меня нет репутации как минимум 300, чтобы создать новый тег. Добавьте этот тег, если возможно пометить вопрос после его создания, отредактировав этот вопрос.

1 ответ1

1

LLMNR предназначен для использования только в локальной ссылке для имен с одной меткой (или, как особый случай, имен формы hostname.local , которая преобразуется в hostname перед их разрешением). Хозяева отвечают своими именами; нет центрального сервера имен.

Why is LLMNR failing, when DNS doesn't?

Возможно, потому что хост A известен под каким-то другим именем, то есть имя A известно DNS, но команда hostname возвращает что-то еще при запуске на A Или хост A не выступает в качестве ответчика LLMNR.

Why does 'ping A' use LLMNR, while 'ping A.' uses DNS?

Поскольку A. не является именем с одной меткой, то есть именем без точек.

Is there any way to force nslookup to use LLMNR, instead of DNS, and why?

nslookup - это инструмент для запросов к DNS. Программа не знает о LLMNR.

DNS и LLMNR предназначены для дополнения друг друга. LLMNR используется в локальной сети, поэтому вам не нужно иметь локальный DNS-сервер, обслуживающий локальные имена. DNS используется для разрешения имен в Интернете.

Учебное пособие по LLMNR см. В разделе « Разрешение имен многоадресной рассылки для локальной связи»

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