Wake-on-LAN: Unicast не работает. Почему?

Wake-on-LAN: Unicast не работает. Почему?

Я столкнулся со странной проблемой при настройке функции пробуждения по локальной сети в нашей корпоративной сети.

Для пробуждения рабочей станции справедливо следующее:

  • WOL включен в BIOS и в настройках сетевой карты
  • Маршрутизатор всегда будет назначать один и тот же IP-адрес этой рабочей станции (MAC-адрес).
  • Сетевая карта настроена на автоматическое получение IP-адреса.

Рабочая станция, которая отправляет команду WOL, находится в той же подсети, что и рабочая станция, которую нужно разбудить. Теперь, если я попытаюсь разбудить машину, произойдет следующее:

Начальное состояние: Машина была выключена в течение одного или нескольких дней.

  • Если я отправляю команду WOL через сетевую трансляцию (разрешено только для тестирования), машина успешно просыпается.
  • Если я отправлю команду WOL непосредственно на эту рабочую станцию ​​(используя IP-адрес, маску подсети, DNS-имя), машина не проснется.
  • Только если я хотя бы один раз запустил машину вручную, ее можно будет впоследствии разбудить, отправив команду WOL непосредственно на ее IP-адрес.

Есть ли у кого-нибудь идея, почему устройство нельзя разбудить напрямую через его IP-адрес, если оно было выключено в течение длительного времени, и почему это работает, если я использую «Broadcast» в качестве метода WOL?

Любой ответ будет высоко оценен.

решение1

Как упоминается в комментарии @ott, вы не можете отправлять одноадресный трафик на машину, которая в данный момент не активна в сети. «Активен в сети» означает разные вещи для разных устройств... для устройства уровня 3, такого как ваш ПК или маршрутизатор, это означает «это устройство взаимодействовало с машиной в какой-то момент за последние 4 часа» (зависит от тайм-аута ARP), для устройства уровня 2, такого как коммутатор, это означает «коммутатор видел пакет с этим исходным MAC-адресом в какой-то момент за последние 5 минут» (зависит от времени старения MAC).

Вы утверждаете, что одноадресный WOL работает, когда устройство было включено и затем выключено, но вы не утверждаете, перестает ли он работать в какой-то момент после выключения машины. Это работает, потому что маршрутизатор (или ПК, генерирующий пакет WOL, если он находится в той же подсети) имеет запись arp (тайм-аут 4 часа) и может создать пакет, предназначенный для правильной машины, однако коммутатор либо знает порт, к которому принадлежит mac-адрес (WOL отправлен в течение времени старения mac), либо уже истек тайм-аут этого mac-адреса, поэтому он обрабатывает неизвестное назначение как широковещательную передачу. После истечения времени записи arp маршрутизатор (или ПК) не сможет инкапсулировать пакет WOL, поскольку ему нечего поместить в поле dest-mac.

Чтобы это работало, вам нужно использовать широковещательные рассылки, другого надежного способа нет. Чтобы WOL работал в сети, отличной от той, к которой подключен ваш сервер, вам нужно использовать направленные широковещательные пакеты (одноадресные пакеты, отправляемые на широковещательный адрес удаленной сети, правильно настроенный удаленный маршрутизатор разрешит пакет и отправит его как широковещательную рассылку в указанную сеть).

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