我自己通过了 IEEE 802.1Q (2018) 标准。该标准谈到了组地址,以及这些组地址如何被中转网桥学习,这一切都很好。但是这些网桥如何注册/订阅/加入这些多播 MAC 地址呢?我知道有 IGMP,它是用于设备加入多播地址的第 3 层协议。但我想知道是否可以加入第 2 层本身。该标准没有对此进行深入探讨。
所以我的理解是:
- 管理定义在组中注册的设备(静态)或
- 有用于动态注册的第 2 层协议或
- 没有第 2 层协议,为此需要使用第 3 层协议。
我自己通过了 IEEE 802.1Q (2018) 标准。该标准谈到了组地址,以及这些组地址如何被中转网桥学习,这一切都很好。但是这些网桥如何注册/订阅/加入这些多播 MAC 地址呢?我知道有 IGMP,它是用于设备加入多播地址的第 3 层协议。但我想知道是否可以加入第 2 层本身。该标准没有对此进行深入探讨。
所以我的理解是:
802.1q 只是添加到以太网帧的 4 字节 layer2 标记,以创建物理 LAN (VLAN) 的虚拟分离。我不太确定是否有与 802.1q 相关的多播组。
交换机/网桥不加入“多播 MAC 地址” - 但是它们可能参与第 3 层多播路由和转发。IGMP 可用于加入多播组,但需要在网络上进行更多配置以确保多播流量在整个传播。许多网络协议也出于协议发现的目的运行多播(hello 消息 - 例如 PIM、OSPF、EIGRP 等)。一旦流量被发送到组播地址,它的第 2 层目标 MAC 也将更改为组播地址,这将来自第 3 层组地址网络访问和第 2 层组播
通常,多播总是关于第 3 层。当然,当涉及到在 Layer2 上转发的多播流量时,您应该注意一些细节,@Zac67 上面已经解释了其中的一些。此外,网桥(交换机)可以针对 BUM 流量(广播、未知、多播)提供一些优化(也称为IGMP 侦听),因此仅在相关方注册的接口(通常通过 IGMP)上转发多播流量。
L2 组播地址只能由网桥/交换机通过 IGMP 侦听获知。由于这些地址从未用作源地址,因此网桥不会直接学习它们。
如果没有多播控制(使用哑交换机或未配置的托管交换机),多播地址对于网桥来说是未知的(从未用作源),因此它们会被淹没到所有端口,但它们来自的端口除外,就像广播一样.