我对网络编程非常陌生,尤其是 L2。
我正在用 C 语言实现 LLDP(链路层发现协议)。我知道链路层上的多播适用于直接连接的 LAN 设备。我的目标是让它跨 VLAN 工作(例如:10.1.1.0 池中的设备应该能够接收 192.168.1.0 中的设备发送的 L2 多播数据包)。有没有可能的方法来实现这一点..或者我在这里错过了一些重要的东西?
LLDP 上的 Wireshark wiki 说:
LLDP 数据单元 (LLDPDU) 被发送到目标 MAC 地址01:80:c2:00:00:0e。该地址被定义为“LLDP_Multicast”地址。该地址是在 IEEE为限制在单个 LAN 中的协议保留的地址范围内定义的。符合 IEEE Std 802.1D-2004 的 MAC 网桥(例如交换机)不会转发 LLDPDU。
那么这是否意味着交换机或路由器只是忽略来自另一个子网中另一个设备的链路层多播数据包?链路层上的多播是否仅在直接连接的设备上起作用?
数据链路层多播地址的范围是什么?