Почему кадры WakeOnLAN отправляются на трансляцию

9

Я пытаюсь выяснить, почему режимы пробуждения по локальной сети, в самом простом виде, предназначены для адреса широковещательной передачи Ethernet (FF: FF: FF: FF: FF: FF), а не для адреса машины, которая должна быть включена ,

Связано ли это с внутренней таблицей сетевого коммутатора, которая назначает порт Mac по MAC-адресу?

Априори
источник

Ответы:

13

Согласно спецификации AMD, адрес назначения не обязательно должен быть адресом «все». Это также может быть адрес принимающей станции или адрес многоадресной рассылки. Полезная нагрузка другая история. Это должна быть последовательность ff: ff: ff: ff: ff: ff, за которой следует MAC-адрес принимающей станции, повторенный 16 раз.

Наличие отсутствия записи станции в таблице CAM коммутатора в этом случае не должно иметь значения. Если запись отсутствует, пакет должен быть перенаправлен на все порты.

Джеральд Комбс
источник
Есть ли резон для конкретной отправки широковещательного адреса, особый случай, когда работает только широковещательная передача (в кадре Ethernet)?
ApriOri
@Erb Не то, чтобы я знал. Широковещательный адрес может быть менее полезным на практике. Я побежал быстрый тест с использованием etherwakeи wakeonlanутилиты. Исходный компьютер имеет несколько интерфейсов. Etherwake отправляет на MAC-адрес станции по умолчанию и позволяет вам указать интерфейс. Wakeonlan отправляет на широковещательный MAC-адрес адрес, и мне пришлось указать IP-адрес назначения, в противном случае он отправил пакет из неправильного интерфейса.
Джеральд Комбс
В соответствии со спецификацией AMD, о которой вы упомянули, кажется, что существует отношение к направленной широковещательной передаче, когда вам нужно разбудить машины в другой сети. Похоже, что только при использовании широковещательного адреса пакет WOL будет передаваться в чужую подсеть.
ApriOri
1
Давайте вернемся немного назад. В пакете может быть до двух (может быть, больше двух, но давайте все упростим) типов адресов: канал передачи данных и сеть. Если вы пытаетесь разбудить машину в той же подсети, вы можете использовать адрес уровня одноадресной, многоадресной или широковещательной связи. Для машины в другой подсети вы должны использовать адрес, который маршрутизатор (ы) будет перенаправлять и отображать на сетевом адаптере назначения даже после того, как он был поврежден в пути. Обычно это означает адрес широковещательной сети в подсети назначения, следовательно, «широковещательная рассылка».
Джеральд Комбс
Раздел «Инфраструктурные последствия» спецификации объясняет это лучше, чем я.
Джеральд Комбс
8

Да. Поскольку срок действия сопоставлений истекает через некоторое время (обычно это 4 часа, если я правильно помню), его необходимо транслировать, чтобы у него была возможность достичь целевой машины после того, как сопоставления исчезли.

Редактировать:

Исправление: Если сопоставления истекают, сообщение все равно передается.

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

Хотя приведенный мною пример, вероятно, никогда не встречается, он, вероятно, является причиной, по которой обычно выбирается широковещание - он более надежен в случае плохих / устаревших отображений.

Sašo
источник