сервер не может выполнить ping, пока wireshark не перехватит пакет

сервер не может выполнить ping, пока wireshark не перехватит пакет

Сервер не может пинговать другие серверы, если только Wireshark не захватывает пакет. И я считаю, что процесс захватывает пакеты до процесса ping. Но как найти этот процесс?

решение1

ОК. Я сам решаю эту проблему. Правда в том, что пакет, отправленный на мой сервер, имеет правильный IP-адрес, но неправильный MAC-адрес. Поэтому, если wiredshark выключен, сетевая карта (NIC) сразу его отбросит. Но если wiredshark включен, он перехватит пакет и изменит MAC-адрес на правильный.

решение2

Я испытываю ту же проблему при пинге моего целевого устройства Ethernet с машины Windows 7 (Enterprise, SP1). В моей конфигурации есть 2 адаптера USB2Ethernet, а интерфейс Ethernet в Windows идет от драйвера адаптера. Эта аппаратная конфигурация точно работает (работает при пинге из Linux). Но не из Windows.

К сожалению, ваш ответ не проясняет корень проблемы. Если вы имеете в виду, что ответ ICMP имеет неправильный MAC-адрес, вопрос в том, почему он на самом деле неправильный. Если вы используете готовое программное обеспечение (стандартные инструменты, поставляемые с вашей ОС) и не создаете вручную запросы/ответы ICMP, вопрос все еще открыт, в чем корень проблемы неправильного MAC-адреса? Стек TCP/IP (с реализацией ICMP, являющейся его частью) работает AFAIU, сначала обнаруживая MAC-адрес через широковещательный запрос ARP, а затем выбирая целевой MAC-адрес на основе заданного ответа[ов].

В любом случае, я попытался установить статическую запись ARP для IP-адреса назначения (пробовал как MAC-адрес USB2Ethernet, подключенного к одноранговому узлу Windows, так и MAC-адрес целевого интерфейса Ethernet). Пока безуспешно.

На целевой системе (той, которая пингуется) я вижу, что ответы ICMP действительно отправляются, но система Windows, похоже, их отфильтровывает.

С помощью Wireshark, прослушивающего порт, проблема устраняется, и сетевое взаимодействие с целевой системой работает отлично (ICMP и все другие протоколы).

Полагаю, это как-то связано с неразборчивым режимом, в который Wireshark переводит интерфейс Ethernet во время сниффинга, и/или с какими-то настройками/службами Windows, о которых я не знаю.

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