组播地址:IP组播地址与L2组播地址的对应关系
组播可分成MAC层的组播和IP组播。
组播MAC地址的特点是,前3个字节必须是:01-00-5e
组播IP地址的特点是,前4个bit是1110,后23个bit被映射到组播MAC地址。
组播成员的网卡接口除了硬件MAC地址,还有组播MAC地址。端口收到组播包,会把此包的目的MAC地址和自己的组播MAC地址比较,如果组播地址相同,就会接受这个包。
组播转发表
组播MAC地址 | VID | 组播输出端口列表 |
组播成员加入分为静态加入和动态加入。
静态加入是直接在交换芯片寄存器中配置组播成员。
动态加入需要用到IGMP协议包,包括query/join(也称为report)/leave包。
IGMP协议的作用:路由器和主机之间是通过IGMP协议在路由器上建立IP组播组与成员关系的。路由器向所有端口发送一个query包,查询对于某个IP组播组,有没有哪个主机想加入,而主机收到这个查询包后,可以向路由器发送一个report包,告诉路由器有一个主机,IP地址是XX,希望加入这个组播组。
与交换机有关的组播协议:IGMP snooping、IGMP proxy
IGMP snooping功能:IGMP snooping使能后,IGMP协议包会提到CPU,业务收到query包时,会从中解析出组播源端口,并在组播vlan中进行转发。业务收到join包时,会调用承载接口hwDX107McastSet将成员端口加入组播组;业务收到leave包时,会将成员端口从组播组中删除。