Почему я не могу выполнить ping по имени компьютера без точки?

Почему я не могу выполнить ping по имени компьютера без точки?

В моей домашней сети есть dhcp-сервер и dns-сервер, работающие на роутере. DHCP и доступ в интернет работают нормально.

Для каждого устройства в моей домашней сети у меня есть запись DNS, которая связывает некоторое имя с IP-адресом устройства.

Например, mycomputer разрешается как 192.168.0.111.

Однако когда я ввожу в командной строке в Windows 10:

ping mycomputer

Я получаю

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

Я думаю, что это проблема Windows, а не маршрутизатора или конфигурации. Это потому, что:

  • ping mycomputerотлично работает из ubuntu
  • если я создам запись DNS, например mycomputer.localили даже mycomputer.blaи назначу ее тому же IP-адресу, я смогу ping mycomputre.localили ping mycomputre.blaиз Windows 10 без проблем.
  • Наконец, ping mycomputer.(обратите внимание на точку в конце) также работает в Windows 10.
  • Если я посмотрю на трафик в Wireshark, то увижу, что ping mycomputer.localрезультатом является DNS-запрос, а ping mycomputerрезультатом — нет.

Похоже, что если имя целевого компьютера не является составным, Windows не разрешит его, пока я не добавлю точку в конце. Этот эффект не происходит для составных имен.

Я хотел бы понять: почему это так?

решение1

Вероятно, у вас нет сервера WINS в сети. Windows сначала пытается использовать сервер WINS для отдельных имен, поскольку предполагает, что это имена NetBIOS, и в случае неудачи не пытается использовать DNS.

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

Этоболее длинная статьяна предмет.

Связанный контент