IGMP Snooping 能够使交换机直接捕获IGMP帧.
IGMP Snooping 预览
它是一个交换机的特性,允许交换机"监听"用户和路由器之间的IGMP流量.当交换机监听到一个用户发送的IGMP report,交换机会将用户的接口加入到那个多播组的GDA(Group Destination Addresses)列表中.而当交换机监听到一个IGMP Leave报文,他会将用户的端口从交换机的MAC地址表中去除.
学习路由器端口
启用IGMP Snooping 的交换机为了侦测路由器的接口会监听下列报文.
发送到01-00-5e-00-00-01的IGMP Membership query报文
发送到01-00-5e-00-00-02的PIMv1 hello报文
发送到01-00-5e-00-00-0d的PIMv2 hello报文
发送到01-00-5e-00-00-04的DVMRP Probes报文
发送到01-00-5e-00-00-06 or 05的MOSPF hello报文
在启用IGMP Snooping 的交换机会将上述的MAC地址条文加入到MAC地址表.当一个路由器接口被侦测到以后,交换机会将这个接口加入到这个VLAN中所有的GDA表中.
通过IGMP Snooping 加入一个组
这里有两种情况
情况A:用户A是这个网段中第一个要加入组的用户
1,用户A发送一个IGMP Membership report
2,交换机截获用户发送到路由器的想要加入某个组的IGMP Membership report
3,交换机为这个组创建一个GDA条目,指向收到IGMP report的端口并和所有的路由器的接口关联
4,接着交换机会前传IGMP report到所有的路由器接口.因此路由器还是能够接收到IGMP report ,并且更新路由器的多播路由表
switch(config)#ip igmp snooping
情况B:用户B是网段中第二个要加入到相同的多播组的用户
1,用户B发送一个IGMP Membership report.
2,交换机截获客户发送到路由器的想要加入某个组的IGMP Membership report
3,接着交换机不一定会前传IGMP report到所有的路由器接口.事实上,交换机会自己去代理发送IGMP report到路由器接口,每个组每10秒只发送一个report
注意:为了保持组成员的存在,多播路由器会每60秒发送一个IGMP query,这个查询会被交换机截获,并且前传到所有的交换机接口.所有这个组的用户会响应这个query.但是因为交换机同样也会截获用户发送的report,用户之前是看不到其他用户发送的report的.因此交换机对于所有用户发送的响应report,会自己代理向路由器发送report,所有的用户只发送一个report(而不是每个用户发送一个)