Вопрос или проблема
Я использую Wireshark для отслеживания пакетов WoL, которые я отправляю с телефона на 2 компьютера в своей локальной сети.
На моем компьютере включен Wireshark, и я наблюдаю за другим компьютером через Teamviewer, где также открыт Wireshark, и два окна находятся рядом, в реальном времени для тестирования.
Я обнаружил неоднозначные различия.
Когда магический пакет отправляется на WAN-адрес, Wireshark показывает только пакеты WoL, которые соответствуют компьютеру, для которого они предназначены.
Когда отправляется на внутренние IP-адреса компьютеров:
На ПК 1 – ПК 2 отслеживает меньше пакетов, и все они имеют широковещательный адрес в качестве пункта назначения.
На ПК 2 – одинаковое количество пакетов на каждом устройстве, но на ПК 1 видно, что все они имеют широковещательный адрес в качестве пункта назначения.
Почему существуют эти различия и несоответствия? Разве Wireshark не должен объективно показывать интернет-трафик?
Я пытался протестировать Wireshark на компьютерах в своей локальной сети в реальном времени и ожидал, что они покажут точно такие же пакеты.
Одна из целей коммутатора – уменьшить количество пакетов в сети, отправляемых на конкретный порт. Если коммутатор знает, какая машина находится на порту, он будет отправлять на порт только широковещательные пакеты и пакеты Ethernet, адресованные этой машине. То, как коммутатор узнает, какая машина находится на порту, немного зависит от коммутатора и может включать кэш на основе прошлой активности.
Кроме того, если вы отправляете TCP-пакет вместо пакета Ethernet на машину, машина, отправляющая пакет, должна сначала отправить ARP-пакет, чтобы получить адрес Ethernet для заполнения. (Если только вы не прописали статически таблицу ARP на исходной машине). Это обычно означает, что пакет WoL не может быть адресован по IP, потому что машина будет выключена или слишком сильно спать, чтобы ответить на запрос ARP. (Однако некоторые карты поддерживают ответ на ARP без ОС, а некоторые ОС поддерживают пробуждение, чтобы просто ответить на ARP и ping, поэтому это может развиваться в ту или иную сторону.)
Эти причины объясняют, почему некоторые методы пакетов WoL поддерживают только пробуждение по адресу Ethernet или требуют включения адреса Ethernet в пакет. Но это не глубоко стандартизировано, и существуют вариации.
.
Ответ или решение
Когда речь идет о системном анализе сетевого трафика, таких как отслеживание пакетов Wake-on-LAN (WoL) с помощью Wireshark, необходимо понимать, что реализация обмена данными в локальной сети может быть сложной и варьируется в зависимости от сетевой конфигурации и оборудования. Из вашего описания наблюдаются различия в количестве и содержании пакетов между двумя компьютерами в вашей сети, и это вероятно связано с некоторыми характерными особенностями работы сетевого оборудования и протоколов. Позвольте мне более подробно разобраться в этой проблеме, опираясь на теорию, примеры и практическое применение данных для вашей конкретной ситуации.
Теория
В основе передачи данных в локальной сети лежат несколько основных концепций и протоколов. Когда вы отправляете WoL пакеты, они чаще всего представляют собой "магические" пакеты, которые в общей интерпретации включаются через широковещательный трафик, чтобы разбудить целевой компьютер. Однако сетевые коммутаторы играют весомую роль в том, как эти пакеты доставляются от источника к получателю.
Коммутаторы оптимизируют трафик в сети, перенаправляя пакеты только на соответствующие порты. Для этого они используют таблицы MAC-адресов, которые обновляются на основе предыдущей активности. Это означает, что широковещательные пакеты будут доступны всем устройствам в сети, в то время как уникаст-пакеты будут отправляться только на определенные порты.
Кроме того, передача пакетов по IP-адресу часто сопряжена с использованием адресации ARP, поскольку IP-пакеты требуют преобразования в MAC-адрес для успешной доставки на уровень Ethernet. Если запрашиваемый компьютер находится в спящем режиме, он, возможно, не сможет ответить на ARP-запросы, что усложняет адресацию по IP.
Пример
На вашем примере наблюдаются:
-
Различия в количестве обнаруженных пакетов между двумя компьютерами при отправке пакетов WoL: это может быть связано с тем, как коммутатор в вашей сети распределяет трафик. Для одного из компьютеров пакеты доставляются в меньшем количестве, так как коммутатор определяет, какие пакеты и куда доставить в зависимости от их назначения (прямое назначение или широковещательная рассылка).
-
Разные MAC-адреса в назначении: когда пакеты WoL отправляются на внутренние IP-адреса, причиной различий может быть ARP-кэширование и тот факт, что пакеты могут быть отправлены через широковещательный адрес в сети, даже если их конечное назначение конкретно определено.
Применение
Для устранения и понимания этих расхождений, выполните следующие шаги:
-
Убедитесь, что оборудование поддерживает конкретные стандарты WoL, и что необходимые BIOS или сетевые настройки настроены correктно.
-
Проверьте настройки и прошивку вашего коммутатора, чтобы понять, как реализована маршрутизация внутри вашей сети. Возможно, стоит просмотреть текущие таблицы MAC-адресов в коммутаторе, чтобы понять, как пакеты определяются и распределяются по сети.
-
Протестируйте использование других инструментов анализа сети для более исчерпывающего понимания сетевой активности. Это может включать использование arp-scan или других утилит для диагностики, которые помогут проанализировать способы реакции на ARP-запросы в выключенном состоянии.
-
При необходимости может потребоваться обновление сетевых драйверов и программного обеспечения ваших компьютеров, чтобы они лучше поддерживали функции удаленного пробуждения и корректной маршрутизации пакетов.
В заключение, хоть кажется, что Wireshark должен отображать сетевой трафик "объективно", фактическое отображение пакетов может зависеть от многочисленных факторов, включая специфику работы коммутаторов и сетевых маршрутов. Правильная диагностика и понимание всех этих моментов помогут в улучшении мониторинга и контроля WoL-пакетов в вашей сети.