当前位置:文档之家› IGMP Snoop技术白皮书

IGMP Snoop技术白皮书

IGMP SNOOP技术白皮书一.IGMP SNOOP产生的原因IGMP(Internet Group Management Protocol)协议讲述了路由器如何发现自己直连网络上有哪些IP组播组存在。

简单的说,就是路由器周期在自己的端口上发送IGMP 查询报文(IGMP Query消息),路由器连接的网络上的主机(PC)收到IGMP 查询报文后,通过发送IGMP报告报文(IGMP Report)把自己属于的组告诉路由器。

当路由器收到IP组播数据时,将把组播数据转发到路由器上有对应组播成员主机存在的端口上。

当主机退出组播组时,通过发送IGMP离开(IGMP Leave)报文来向路由器通告自己不再希望接收该IP组播组的数据。

在组网时往往是路由器的端口连接以太网交换机,然后通过以太网交换机接入用户的PC机,而交换机收到IP组播数据时、将把该组播数据发送到自己的其它所有端口,也即把组播数据象广播数据一样进行转发,这就导致交换机把组播数据发送到了一些没有组播成员PC存在的交换机端口上,那么这些用户的PC机就收到了对他们来说没有意义的数据。

这既浪费这些PC机的CPU对这些数据进行处理,并且更严重的问题是:如果交换机上对每个端口进行了带宽限制,那么这个端口上的用户应该得到的带宽就被浪费了,这样就会导致用户的抱怨。

正是因为上面的问题,导致IGMP SNOOP技术在交换机上的产生。

二.IGMP SNOOP的工作原理IGMP SNOOP的工作原理比较简单,即交换机监控接收到的IGMP报文,然后在交换机上形成组播转发条目,这样当交换机接收到组播数据时,就可以根据组播转发条目将数据转发到确实有组成员存在的端口上。

具体的来说,使能IGMP SNOOP之后,交换机接收到IGMP报文时的处理为:1.交换机对于IGMP报文不能按照组播的转发流程(即广播的方式)进行转发,而是交给IGMP SNOOP模块处理;2.交换机收到IGMP QUERY报文时,需要记录收到该报文的端口,并将该报文转发到该VLAN的其它所有端口;3.交换机收到IGMP REPORT报文时,交换机不能将该报文转发到同一vlan的其它端口,而只能将该报文转发给收到过IGMP QUERY的端口;并且,IGMPSNOOP模块需要创建该组的组播转发条目,并将该端口以及QUERY端口加入到该组播转发条目;4.交换机收到IGMP LEA VE报文时,只需要将该LEAVE消息转发到收到过IGMP QUERY的端口即可;如果没有使能IGMP快速离开功能,那么IGMP SNOOP模块使用老化功能(即如果该端口在规定时间之内没收到IGMP REPORT报文)将该端口从组播转发条目中删除,如果使能了IGMP快速离开功能,那么需要立即将该端口从组播转发条目中删除;三.IGMP FILTER说明从上面IGMP SNOOP的工作流程可以看出,IGMP SNOOP模块根据IGMP QUERY、IGMP REPORT、IGMP LEA VE消息在交换机上动态创建、删除组播组以及维护组播组的成员端口信息,但是在实际使用时很有可能需要限制交换机的每个端口允许加入哪些组播组,从而产生了IGMP FILTER功能。

IGMP FILTER是一个专门用于过滤IGMP REPORT报文中的组播组的过滤器,如果交换机的端口没有配置Igmp filter,那么这个端口收到IGMP REPORT报文时、会将这个端口加入到这个组播组中;如果交换机的端口配置了Igmp Filter,那么这个端口收到IGMP REPORT报文时,将会根据Igmp Filter的内容决定是否允许这个端口加入该组播组。

四.烽火网络交换机IGMP SNOOP配置1.CLI方式(1)进入igmp snoop配置节点S2000M(config)#igmp-snooping上面的命令执行后将进入igmp snoop配置节点(2)配置igmp snoop协议使能或者失效S2000M(config)#igmp-snooping (enable|disable)上面的命令可以配置igmp snoop功能使能或者失效,如果参数为enable则使能igmp snoop,参数为disable则失效igmp snoop功能;缺省igmp snoop协议处于失效状态。

(3)配置igmp snoop组播转发条目老化时间S2000M(config)#igmp-snooping aging <30-3600>上面的命令用于设置igmp snoop组播组的老化时间,单位为秒;如果在指定时间内某个组播组在某个端口上没有接收到这个组播组的IGMPREPORT报文,那么就将这个端口从这个组播组中删除,如果这个组播组已经不存在任何端口、那么将该组播组也删除。

(4)配置igmp snoop快速离开状态S2000M(config)#igmp-snooping fast-leave (enable|disable)上面的命令配置是否使能快速离开功能,enable参数表示使能、disable 参数表示失效,系统缺省是没有使能快速离开的;快速离开的意思是:如果在某个端口上收到对某个组播组的IGMP LEAVE消息,那么就立即将这个端口从这个组播组中删除掉。

(5)配置当report消息被igmp filter过滤后是否转发该消息S2000M(config)#igmp-snooping drop-filtered (enable|disable)上面的命令配置当一个report报文中的组播组被igmp filter过滤之后是否转发该report报文到igmp query端口,参数enable表示不转发、disable表示虽然本端口不允许加入该组播组,但是仍然把该report报文转发到igmp query端口;系统缺省是当某个端口不允许加入某些组播组时,那么也不将该report报文转发到igmp query端口。

(6)显示igmp snoop的配置情况S2000M(config)#show igmp-snoopingigmpSnoop Status : enableigmpSnoop Aging(seconds) : 300igmpSnoop FastLeave : disableigmpSnoop drop-filtered: enable(7)显示igmp snoop学习到的组播条目S2024MA#show igmp-snooping egressport-tableVlan MacAddr EgressPorts1 01-00-5e-01-02-03 1,2,5,8,9上面的命令用于显示系统当前学习到的所有组播转发条目,上面的例子显示组播组01-00-5e-01-02-03在端口1、2、5、8、9上都有成员存在。

(8)创建或者配置某个特定igmp filterS2000M(config)# igmp-filter <1-100>上面的命令用于创建或者配置某个特定的igmp filter,如果某个igmp filter 不存在,那么上面的命令将创建指定序号的igmp filter;如果已经存在该igmp filter那么则进入对该igmp filter的配置。

(9)在igmp filter中添加规则S2000M(config-igmp-filter 1)#rule <1-100> (permit|deny) (A.B.C.D) (A.B.C.D) 上面的命令将会在igmp filter1中创建1个规则,每个igmp filter最多允许100个规则,permit参数的意思是允许加入该组播组,deny的意思是不允许加入该组播组,后面的参数是两个组播IP地址,前面是最小的ip地址、后面是最大IP地址。

(10)在igmp filter中删除某个规则S2000M(config-igmp-filter 1)#no fule <1-100>上面的命令用于在某个igmp filter中删除某个规则。

(11)将igmp filter应用于某个端口S2000M(config-igmp-filter 1)# apply-to-ports PORTLIST参数PORTLIST是一个端口列表,上面的命令用于将1个igmp filter应用于某些端口。

(12)将igmp filter不应用于任何端口S2000M(config-igmp-filter 1)# apply-to-ports none上面的命令将把igmp filter 1不应用于所有端口;(13)显示当前系统中所有的igmp filterS2000M #show igmp-filter上面的命令将显示系统中当前存在的所有igmp filter(14)显示某个特定的igmp filterS2000M #show igmp-filter <1-100>上面的命令用于显示某个特定的igmp filter的规则,下面是一个显示实例:S2024MA#show igmp-filter 1igmp filter 1's detail information:state :ActiveThe rule list :rule 1 permit 239.1.1.1 239.1.1.6 ,State:Activerule 8 deny 239.1.1.8 239.1.1.9 ,State:ActiveThe port(s) using this filter:Interface 1 ,2.WEB方式成功登录交换机的web网管界面,可以看到igmp snoop以及igmp filter配置页面:从上图可以看见,igmp snoop(igmp 监听)以及igmp filter(igmp过滤)两个页面各有2个子页面,下面是每个子页面的截图:上面的各个页面中均可以进行igmp snoop以及igmp filter的各种配置,配置意义参见前面的CLI配置说明。

五.注意事项1.每个端口只能应用1个igmp filter2.1个igmp filter可以应用于多个端口3.Igmp filter只有当igmp snoop使能时才生效。

相关主题