为什么将WakeOnLAN帧发送到广播


9

我试图弄清楚为什么将以最简单的形式唤醒局域网帧指定给以太网广播地址(FF:FF:FF:FF:FF:FF)而不指定给要开机的机器的地址。

它与将mac地址分配给端口的网络交换机内部表有关吗?

Answers:


13

根据AMD的规范,目的地不必是所有人的地址。它也可以是接收站的地址或多播地址。该有效载荷是一个不同的故事。它必须是顺序ff:ff:ff:ff:ff:ff:ff,后跟接收站的MAC地址重复16次。

在这种情况下,交换机的CAM表中是否缺少站点的条目并不重要。如果该条目不存在,则应将数据包转发出所有端口。


是否有专门用于发送广播地址的谐振器,这是仅广播(在以太网帧中)起作用的特殊情况?
2012年

@Erb我不知道。广播地址在实践中可能没什么用。我使用etherwakewakeonlan实用程序进行了快速测试。源计算机具有多个接口。默认情况下,Etherwake发送到工作站的MAC地址,并允许您指定接口。Wakeonlan发送到广播MAC地址地址,而我必须指定目标IP地址,否则它将数据包从错误的接口发送出去。
杰拉德·科布斯

根据您提到的AMD规范,似乎需要定向广播,当您需要唤醒另一个网络上的计算机时,似乎只有在使用广播地址时WOL数据包才会传递到前子网。
2012年

1
让我们在这里备份一下。数据包中的地址类型最多有两种(也许是两种以上,但为了简单起见):数据链路和网络。如果要唤醒同一子网中的计算机,则可以使用单播,多播或广播链路层地址。对于不同的子网一台机器,你必须使用一个地址,路由器(S)将转发甚至是错位的途中后目标NIC会显示出来。这通常表示目标子网中的广播网络地址,因此是“子网定向广播”。
Gerald Combs 2012年

规范的“基础结构含义”部分比我能更好地解释它。
Gerald Combs 2012年

8

是。由于映射会在一段时间后过期(如果我没有记错的话,通常为4个小时),因此需要对其进行广播,以便在映射消失后有机会到达目标计算机。

编辑:

更正的方式:如果映射过期,则仍将广播该消息。

您需要使用广播的唯一原因是,以防计算机物理上移动到另一个端口,并且您试图使用Magic数据包在映射过期之前唤醒计算机。听起来像在数据中心中很方便,但是我不能说它是否被实际使用。

虽然我给出的示例可能永远不会发生,但这可能是通常选择广播的原因-在映射错误/过时的情况下它更可靠。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.