1

Этот вопрос касается машин, обращающихся / проверяющих друг друга в моей локальной сети по имени против ip, и задержек, связанных с выполнением этого по имени. Все машины Windows 7 Ultimate 64bit.

Ниже выводятся три сценария:

  1. Пинг машина2 по имени. Ключевая проблема заключается в том, что с момента ввода команды в командной строке до 6-секундной задержки перед возвращением результатов.

C:\Users\machine1>ping machine2

Pinging machine2 [fe80::95f5:38e3:fc8a:4a70%11] with 32 bytes of data:
Reply from fe80::95f5:38e3:fc8a:4a70%11: time=1ms
Reply from fe80::95f5:38e3:fc8a:4a70%11: time=1ms
Reply from fe80::95f5:38e3:fc8a:4a70%11: time=1ms
Reply from fe80::95f5:38e3:fc8a:4a70%11: time=1ms

Ping statistics for fe80::95f5:38e3:fc8a:4a70%11:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms
  1. Пинг machine2 по ip. Там нет задержки от нажатия ввода до получения результатов

C:\Users\machine1>ping 192.168.1.101

Pinging 192.168.1.101 with 32 bytes of data:
Reply from 192.168.1.101: bytes=32 time=1ms TTL=128
Reply from 192.168.1.101: bytes=32 time=1ms TTL=128
Reply from 192.168.1.101: bytes=32 time=1ms TTL=128
Reply from 192.168.1.101: bytes=32 time=1ms TTL=128

Ping statistics for 192.168.1.101:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms
  1. Заставьте ping использовать IPv4 и ping по имени машины. Все та же задержка происходит.

C:\Users\machine1>ping machine2 -4

Pinging machine2 [192.168.1.101] with 32 bytes of data:
Reply from 192.168.1.101: bytes=32 time=58ms TTL=128
Reply from 192.168.1.101: bytes=32 time=86ms TTL=128
Reply from 192.168.1.101: bytes=32 time=1ms TTL=128
Reply from 192.168.1.101: bytes=32 time=19ms TTL=128

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

Основное время, когда это становится проблемой, - это использование программ, в которых я просто хотел быстро ввести имя машины в сети для подключения, например, «Удаленный рабочий стол», и необходимость ждать 6 секунд каждый раз или, в качестве альтернативы, сначала искать его IP, что не замечательно, когда меняется IP. Меня не интересуют статические IP-адреса.

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

3 ответа3

1

Я на самом деле столкнулся с этой проблемой недавно в системе Linux.

Причина оказалась в том, что, как только возвращаемые пакеты начинают поступать, определенные версии ping по умолчанию пытаются выполнить обратный DNS-поиск IP-адреса, с которого приходит ответ:

shadur@caleburn: ~/ > ping google.com
PING google.com (74.125.136.113) 56(84) bytes of data.
64 bytes from ea-in-f113.1e100.net (74.125.136.113): icmp_seq=1 ttl=49 time=12.7 ms
64 bytes from ea-in-f113.1e100.net (74.125.136.113): icmp_seq=2 ttl=49 time=7.75 ms
64 bytes from ea-in-f113.1e100.net (74.125.136.113): icmp_seq=3 ttl=49 time=7.85 ms

Если в вашей настройке не настроен обратный DNS для 1.168.192.in-addr.arpa (или, по крайней мере, для записи 192.168.1.1 в вашем файле hosts , время ожидания попытки доступа к DNS-серверу завершится. поиск, и он не может начать печать пакетов ответа, пока поиск не будет разрешен (либо с помощью правильного ответа DNS, в этом случае он печатает возвращенное имя, либо с помощью тайм-аута, в котором он просто печатает IP-адрес).

Добавление комбо имени /IP-адреса в ваш файл hosts должно исправить проблему.

(РЕДАКТИРОВАТЬ: В Windows файл, который вы ищете, по умолчанию находится в C:\Windows\System32\drivers\etc\hosts .)

1

Тайм-аут будет в разрешении DNS. Это может быть потому, что у вас указано несколько DNS-серверов, и один из них не отвечает.

В окне командной строки введите:

C:\> ipconfig /all | find "DNS Servers"

и запишите IP-адреса DNS-серверов.

Затем используйте инструмент nslookup , чтобы проверить их:

C:\> nslookup
Default Server: Blah
Address: 192.168.1.1

>

Затем выберите каждый DNS-сервер по очереди:

> server 192.168.1.1
Default Server: [192.168.1.1]
Address: 192.168.1.1

и сделайте поиск, используя это:

> machine2
Server: [192.168.1.1]
Address: 192.168.1.1

Name: machine2.mydomain.com
Address: 192.168.1.101

Повторите команды server и machine2 для каждого IP-адреса в вашем списке. Один из них должен потерпеть неудачу с:

Request to [192.168.1.1] timed-out

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

1

Windows использует несколько разных методов для разрешения имен компьютеров:

  • DNS
  • NBNS, служба имен NetBIOS (используется всеми версиями Windows)
  • LLMNR (представлен в Windows 7; только IPv6)
  • mDNS (если установлен Bonjour; поставляется с iTunes и, возможно, Safari)

Возможно, ваш DNS-сервер не отвечает на запросы или что на других компьютерах NBNS и / или LLMNR отключены или заблокированы. (Я не знаю точный порядок, но DNS всегда кажется первым.)

Установите Wireshark и просмотрите все пакеты, связанные с разрешением имен. Установите фильтр отображения на dns or nbns or udp.port=5355.

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