02-IGMP Snooping配置
本章节下载: 02-IGMP Snooping配置 (466.58 KB)
设备各款型对于本节所描述的特性支持情况有所不同,详细差异信息如下:
系列 |
型号 |
产品代码 |
特性 |
描述 |
WX1800H系列 |
WX1804H |
EWP-WX1804H-PWR-CN |
IGMP Snooping |
支持 |
WX2500H系列 |
WX2510H WX2510H-F WX2540H WX2540H-F WX2560H |
EWP-WX2510H-PWR EWP-WX2510H-F-PWR EWP-WX2540H EWP-WX2540H-F EWP-WX2560H |
支持 |
|
WX3000H系列 |
WX3010H WX3010H-X WX3010H-L WX3024H WX3024H-L WX3024H-F |
EWP-WX3010H EWP-WX3010H-X-PWR EWP-WX3010H-L-PWR EWP-WX3024H EWP-WX3024H-L-PWR EWP-WX3024H-F |
WX3010H支持 WX3010H-X支持 WX3010H-L不支持 WX3024H支持 WX3024H-L不支持 WX3024H-F支持 |
|
WX3500H系列 |
WX3508H WX3510H WX3520H WX3520H-F WX3540H |
EWP-WX3508H EWP-WX3510H EWP-WX3520H EWP-WX3520H-F EWP-WX3540H |
支持 |
|
WX5500E系列 |
WX5510E WX5540E |
EWP-WX5510E EWP-WX5540E |
支持 |
|
WX5500H系列 |
WX5540H WX5560H WX5580H |
EWP-WX5540H EWP-WX5560H EWP-WX5580H |
支持 |
|
AC插卡系列 |
LSUM1WCME0 EWPXM1WCME0 LSQM1WCMX20 LSUM1WCMX20RT LSQM1WCMX40 LSUM1WCMX40RT EWPXM2WCMD0F EWPXM1MAC0F |
LSUM1WCME0 EWPXM1WCME0 LSQM1WCMX20 LSUM1WCMX20RT LSQM1WCMX40 LSUM1WCMX40RT EWPXM2WCMD0F EWPXM1MAC0F |
支持 |
IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)运行在二层设备上,通过侦听三层设备与主机之间的IGMP报文来生成二层组播转发表,从而管理和控制组播数据报文的转发,实现组播数据报文在二层的按需分发。
运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
如图1-1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层网络(包括VLAN)中被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层网络中被广播,而被组播给指定的接收者。
IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:
· 减少了二层网络中的广播报文,节约了网络带宽;
· 增强了组播信息的安全性;
· 为实现对每台主机的单独计费带来了方便。
如图1-2所示,Router A连接组播源,在Device A和Device B上分别运行IGMP Snooping,Host A和Host C为接收者主机(即组播组成员)。根据在网络中所处位置的不同,我们将IGMP Snooping端口分为路由器端口和成员端口两类,以下分别介绍。
图1-2 IGMP Snooping端口示意图
在运行了IGMP Snooping的二层设备上,朝向上游三层组播设备的端口称为路由器端口。如图1-2中Device A和Device B各自的GigabitEthernet1/0/1端口。
根据来源不同,路由器端口可分为:
· 动态路由器端口:所有收到IGMP普遍组查询报文(源地址非0.0.0.0)的端口,都被维护为动态路由器端口。这些端口被记录在动态路由器端口列表中,每个端口都有一个老化定时器。在老化定时器超时前,动态路由器端口如果收到了IGMP普遍组查询报文(源地址非0.0.0.0),该定时器将被重置;否则,该端口将被从动态路由器端口列表中删除。
· 静态路由器端口:通过命令行手工配置的路由器端口称为静态路由器端口,这些端口被记录在静态路由器端口列表中。静态路由器端口只能通过命令行手工删除,不会被老化。
· 本文中提到的路由器端口都是指二层设备上朝向三层组播设备的端口,而不是指路由器上的端口。
· 如果没有特别指明,本文中提到的路由器端口包括动态路由器端口和静态路由器端口。
在运行了IGMP Snooping的二层设备上,朝向下游组播组成员的端口称为成员端口。如图1-2中Device A的GigabitEthernet1/0/2和GigabitEthernet1/0/3端口,以及Device B的GigabitEthernet1/0/2端口。
根据来源不同,成员端口也可分为:
· 动态成员端口:所有收到IGMP成员关系报告报文的端口,都被维护为动态成员端口。这些端口被记录在动态IGMP Snooping转发表中,每个端口都有一个老化定时器。在老化定时器超时前,动态成员端口如果收到了IGMP成员关系报告报文,该定时器将被重置;否则,该端口将被从动态IGMP Snooping转发表中删除。
· 静态成员端口:通过命令行手工配置的成员端口称为静态成员端口,这些端口被记录在静态IGMP Snooping转发表中。静态路由器端口只能通过命令行手工删除,不会被老化。
如果没有特别指明,本文中提到的成员端口包括动态成员端口和静态成员端口。
运行了IGMP Snooping的二层设备对不同IGMP动作的具体处理方式如下:
IGMP查询器定期向本地网段内的所有主机与路由器(224.0.0.1)发送IGMP普遍组查询报文,以查询该网段有哪些组播组的成员。
在收到IGMP普遍组查询报文时,二层设备将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
· 如果在动态路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。
· 如果在动态路由器端口列表中尚未包含该动态路由器端口,则将其添加到动态路由器端口列表中,并启动其老化定时器。
以下情况,主机会向IGMP查询器发送IGMP成员关系报告报文:
· 当组播组的成员主机收到IGMP查询报文后,会回复IGMP成员关系报告报文。
· 如果主机要加入某个组播组,它会主动向IGMP查询器发送IGMP成员关系报告报文以声明加入该组播组。
在收到IGMP成员关系报告报文时,二层设备将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口做如下处理:
· 如果不存在该组播组所对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
· 如果已存在该组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
· 如果已存在该组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。
二层设备不会将IGMP成员关系报告报文通过非路由器端口转发出去,因为根据主机上的IGMP成员关系报告抑制机制,如果非路由器端口下还有该组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使二层设备无法获知这些端口下还有该组播组的成员主机。
运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,因此二层设备无法立即获知主机离开的信息。但是,由于主机离开组播组后不会再发送IGMP成员关系报告报文,因此当其对应的动态成员端口的老化定时器超时后,二层设备就会将该端口从相应转发表项的出端口列表中删除。
运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知三层组播设备自己离开了某个组播组。当二层设备从某动态成员端口上收到IGMP离开组报文时,首先判断要离开的组播组所对应的转发表项是否存在,以及该组播组所对应转发表项的出端口列表中是否包含该接收端口:
· 如果不存在该组播组对应的转发表项,或者该组播组对应转发表项的出端口列表中不包含该端口,二层设备不会向任何端口转发该报文,而将其直接丢弃;
· 如果存在该组播组对应的转发表项,且该组播组对应转发表项的出端口列表中除该端口还有别的成员端口存在,二层设备不会向任何端口转发该报文,而将其直接丢弃。同时,由于并不知道该接收端口下是否还有该组播组的其它成员,所以二层设备不会立刻把该端口从该组播组所对应转发表项的出端口列表中删除,而是向该端口发送IGMP特定组查询报文,并根据IGMP特定组查询报文调整该端口的老化定时器(老化时间为2×IGMP特定组查询报文的发送间隔);
· 如果存在该组播组对应的转发表项,且该组播组对应转发表项的出端口列表中只有该端口,二层设备会将该报文通过VLAN内的所有路由器端口转发出去。同时,由于并不知道该接收端口下是否还有该组播组的其它成员,所以二层设备不会立刻把该端口从该组播组所对应转发表项的出端口列表中删除,而是向该端口发送IGMP特定组查询报文,并根据IGMP特定组查询报文调整该端口的老化定时器(老化时间为2×IGMP特定组查询报文的发送间隔)。
当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并通过接收端口向该组播组发送IGMP特定组查询报文。二层设备在收到IGMP特定组查询报文后,将其通过VLAN内的所有路由器端口和该组播组的所有成员端口转发出去。对于IGMP离开组报文的接收端口(假定为动态成员端口),二层设备在其老化时间内:
· 如果从该端口收到了主机响应该特定组查询的IGMP成员关系报告报文,则表示该端口下还有该组播组的成员,于是重置其老化定时器;
· 如果没有从该端口收到主机响应特定组查询的IGMP成员关系报告报文,则表示该端口下已没有该组播组的成员。当该端口的老化定时器超时后,将其从该组播组所对应转发表项的出端口列表中删除。
与IGMP Snooping相关的协议规范有:
· RFC 4541:Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches
用户可以在VLAN二层网络中配置IGMP Snooping,请参见表1-1。
表1-1 IGMP Snooping配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置IGMP Snooping基本功能 |
使能IGMP Snooping |
必选 |
|
配置IGMP Snooping版本 |
可选 |
||
配置IGMP Snooping转发表项的全局最大数量 |
可选 |
||
配置IGMP特定组查询报文的发送间隔 |
可选 |
||
配置IGMP Snooping端口功能 |
配置动态端口老化定时器 |
可选 |
|
配置静态端口 |
可选 |
||
配置模拟主机加入 |
可选 |
||
配置端口快速离开 |
可选 |
||
禁止端口成为动态路由器端口 |
可选 |
||
配置IGMP Snooping查询器 |
使能IGMP Snooping查询器 |
可选 |
|
配置IGMP普遍组查询和响应 |
可选 |
||
调整IGMP报文 |
配置IGMP报文的源IP地址 |
可选 |
|
配置IGMP报文的802.1p优先级 |
可选 |
||
配置IGMP Snooping策略 |
配置组播组过滤器 |
可选 |
|
配置丢弃未知组播数据报文 |
可选 |
||
配置IGMP成员关系报告报文抑制 |
可选 |
||
配置端口加入的组播组最大数量 |
可选 |
||
配置组播组替换功能 |
可选 |
二层聚合接口与其各成员端口上的配置互不影响,且成员端口上的配置只有当该端口退出聚合组后才会生效,二层聚合接口上的配置也不会参与聚合计算。
在配置IGMP Snooping基本功能之前,需完成以下任务:
· 配置相应VLAN
在配置IGMP Snooping基本功能之前,需准备以下数据:
· IGMP Snooping的版本
· IGMP Snooping转发表项的全局最大数量
· IGMP特定组查询报文的发送间隔
在VLAN内使能IGMP Snooping之前,必须先全局使能IGMP Snooping。在VLAN内使能了IGMP Snooping之后,IGMP Snooping只在属于该VLAN的端口上生效。
对于基于VLAN的配置,用户既可在IGMP-Snooping视图下对指定VLAN进行配置,也可在VLAN视图下只对当前VLAN进行配置,二者的配置优先级相同。
表1-2 使能指定VLAN内的IGMP Snooping
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
全局使能IGMP Snooping,并进入IGMP-Snooping视图 |
igmp-snooping |
缺省情况下,IGMP Snooping处于全局关闭状态 |
使能指定VLAN内的IGMP Snooping |
enable vlan vlan-list |
缺省情况下,VLAN内的IGMP Snooping处于关闭状态 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
全局使能IGMP Snooping,并进入IGMP-Snooping视图 |
igmp-snooping |
缺省情况下,IGMP Snooping处于全局关闭状态 |
退回系统视图 |
quit |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内使能IGMP Snooping |
igmp-snooping enable |
缺省情况下,VLAN内的IGMP Snooping处于关闭状态 |
配置IGMP Snooping的版本,实际上就是配置IGMP Snooping可以处理的IGMP报文的版本:
· 当IGMP Snooping的版本为2时,IGMP Snooping能够对IGMPv1和IGMPv2的报文进行处理,对IGMPv3的报文则不进行处理,而是在VLAN内将其广播;
· 当IGMP Snooping的版本为3时,IGMP Snooping能够对IGMPv1、IGMPv2和IGMPv3的报文进行处理。
对于基于VLAN的配置,用户既可在IGMP-Snooping视图下对指定VLAN进行配置,也可在VLAN视图下只对当前VLAN进行配置,二者的配置优先级相同。
表1-4 配置指定VLAN内的IGMP Snooping版本
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
配置指定VLAN内的IGMP Snooping的版本 |
version version-number vlan vlan-list |
缺省情况下,VLAN内IGMP Snooping的版本为2 |
表1-5 在VLAN内配置IGMP Snooping版本
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内配置IGMP Snooping的版本 |
igmp-snooping version version-number |
缺省情况下,VLAN内IGMP Snooping的版本为2 |
当IGMP Snooping的版本由版本3切换到版本2时,系统将清除所有通过动态加入的IGMP Snooping转发表项;对于在版本3下通过手工配置而静态加入的IGMP Snooping转发表项,则分为以下两种情况进行不同的处理:
· 如果配置的仅仅是静态加入组播组,而没有指定组播源,则这些转发表项将不会被清除;
· 如果配置的是指定了组播源的静态加入组播源组,则这些转发表项将会被清除,并且当再次切换回版本3时,这些转发表项将被重新恢复。
用户可以调整IGMP Snooping转发表项(包括动态表项和静态表项)的全局最大数量,当设备上维护的表项数量达到最大数量后,将不再创建新的表项,直至有表项被老化或被手工删除。
表1-6 配置IGMP Snooping转发表项的全局最大数量
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
配置IGMP Snooping转发表项的全局最大数量 |
entry-limit limit |
缺省情况下,IGMP Snooping转发表项的全局最大数量为4294967295 |
当二层设备从某动态成员端口上收到IGMP离开组报文时,如果设备上存在要离开的组播组所对应的转发表项,且该组播组所对应转发表项的出端口列表中也包含该接收端口,则二层设备会向该端口发送IGMP特定组查询报文,并根据IGMP特定组查询报文调整该端口的老化定时器(老化时间为2×IGMP特定组查询报文的发送间隔)。
合理配置IGMP特定组查询的最大响应时间,既可以使主机对IGMP查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞。
二层设备所发送的IGMP特定组查询报文,其报文的最大响应时间字段由所配置的IGMP特定组查询报文的发送间隔来填充,在主机在收到IGMP特定组查询报文后,会为其所加入的该组播组启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的IGMP特定组查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的组播组发送IGMP成员关系报告报文。
用户既可在IGMP-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
如果二层设备的某端口上开启了端口快速离开功能,该端口收到IGMP离开组报文后,二层设备不会向该端口发送IGMP特定组查询报文。
表1-7 全局配置IGMP特定组查询报文的发送间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局配置IGMP特定组查询报文的发送间隔 |
last-member-query-interval interval |
缺省情况下,IGMP特定组查询报文的发送间隔为1秒 |
表1-8 在VLAN内配置IGMP特定组查询报文的发送间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
必选 |
在VLAN内配置IGMP特定组查询报文的发送间隔 |
igmp-snooping last-member-query-interval interval |
缺省情况下,IGMP特定组查询报文的发送间隔为1秒 |
在配置IGMP Snooping端口功能之前,需完成以下任务:
· 在VLAN内使能IGMP Snooping
在配置IGMP Snooping端口功能之前,需准备以下数据:
· 动态路由器端口老化时间
· 动态成员端口老化时间
· 组播组和组播源的地址
对于动态路由器端口,如果在其老化时间内没有收到IGMP普遍组查询报文,二层设备将把该端口从动态路由器端口列表中删除。
对于动态成员端口,如果在其老化时间内没有收到该组播组的IGMP成员关系报告报文,二层设备将把该端口从该组播组所对应转发表项的出端口列表中删除。
如果组播组成员的变动比较频繁,可以把动态成员端口老化时间设置小一些,反之亦然。
用户既可在IGMP-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
如果二层设备向动态成员端口主动发送IGMP特定组查询报文,则该端口的老化时间将根据该IGMP特定组查询报文进行调整,调整的老化时间为2×IGMP特定组查询报文的发送间隔。二层设备IGMP特定组查询报文发送间隔的配置,请参见“1.3.5 配置IGMP特定组查询报文的发送间隔”。
表1-9 全局配置动态端口老化定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局配置动态路由器端口老化时间 |
router-aging-time interval |
缺省情况下,动态路由器端口的老化时间为260秒 |
全局配置动态成员端口老化时间 |
host-aging-time interval |
缺省情况下,动态成员端口的老化时间为260秒 |
表1-10 在VLAN内配置动态端口老化定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内配置动态路由器端口老化时间 |
igmp-snooping router-aging-time interval |
缺省情况下,动态路由器端口的老化时间为260秒 |
在VLAN内配置动态成员端口老化时间 |
igmp-snooping host-aging-time interval |
缺省情况下,动态成员端口的老化时间为260秒 |
如果某端口所连接的主机需要固定接收发往某组播组或组播源组的组播数据,可以配置该端口静态加入该组播组或组播源组,成为静态成员端口。静态成员端口不会对IGMP查询器发出的查询报文进行响应;当配置静态成员端口或取消静态成员端口的配置时,端口也不会主动发送IGMP成员关系报告报文或IGMP离开组报文。
可以通过将二层设备上的端口配置为静态路由器端口,从而使二层设备上收到的所有组播数据可以通过该端口被转发出去。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
配置静态成员端口 |
igmp-snooping static-group group-address [ source-ip source-address ] vlan vlan-id |
缺省情况下,端口不是静态成员端口 |
配置静态路由器端口 |
igmp-snooping static-router-port vlan vlan-id |
缺省情况下,端口不是静态路由器端口 |
在二层设备的端口上配置了模拟主机加入后,该模拟主机就可以模仿真实的组播组成员主机,对IGMP查询器发出的查询报文进行响应,包括:
· 启动模拟主机时,该端口会主动发送一个IGMP成员关系报告报文。
· 在模拟主机的运行过程中,当收到IGMP查询报文时,该端口会响应一个IGMP成员关系报告报文。
· 停止模拟主机时,该端口会发送一个IGMP离开组报文。
· 与静态成员端口不同,配置了模拟主机加入的端口将作为动态成员端口参与动态成员端口的老化过程。
· 模拟主机所采用的IGMP版本与IGMP Snooping的版本一致。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
配置模拟主机加入组播组或组播源组 |
igmp-snooping host-join group-address [ source-ip source-address ] vlan vlan-id |
缺省情况下,没有配置模拟主机加入组播组或组播源组 |
端口快速离开是指当端口收到主机发来的离开指定组播组的IGMP离开组报文时,直接将该端口从相应转发表项的出端口列表中删除。此后,当收到针对该组播组的IGMP特定组查询报文时,二层设备将不再向该端口转发。
对于一个VLAN,只有当一个端口下只有一个接收者时,才建议配置本功能;否则,当一个端口下有多个接收者时,其中一个接收者的离开会触发该端口的快速离开,从而导致属于同一组播组的其它接收者无法收到组播数据。
用户既可在IGMP-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。
表1-13 全局配置端口快速离开
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局使能端口快速离开功能 |
fast-leave [ vlan vlan-list ] |
缺省情况下,端口快速离开功能处于关闭状态 |
表1-14 在端口上配置端口快速离开
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
在端口上使能端口快速离开功能 |
igmp-snooping fast-leave [ vlan vlan-list ] |
缺省情况下,端口快速离开功能处于关闭状态 |
在组播用户接入网络中,用户主机在某些情况下(比如测试)也会发出IGMP普遍组查询报文:
· 如果二层设备收到了某用户主机发来的IGMP普遍组查询报文,那么接收报文的端口就将成为动态路由器端口,从而使VLAN内的所有组播报文都会向该端口转发,导致该主机收到大量无用的组播报文。
· 同时,用户主机发送IGMP普遍组查询报文,也会影响该接入网络中三层设备上的组播路由协议状态(如影响IGMP查询器或DR的选举),严重时可能导致网络中断。
当禁止一个端口成为动态路由器端口后,即使该端口收到了IGMP普遍组查询报文,该端口也不会成为动态路由器端口,从而能够有效解决上述问题,提高网络的安全性和对组播用户的控制能力。
本配置与静态路由器端口的配置互不影响。
表1-15 禁止端口成为动态路由器端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
禁止端口成为动态路由器端口 |
igmp-snooping router-port-deny [ vlan vlan-list ] |
缺省情况下,允许端口成为动态路由器端口 |
在配置IGMP Snooping查询器之前,需完成以下任务:
· 在VLAN内使能IGMP Snooping
在配置IGMP Snooping查询器之前,需准备以下数据:
· IGMP普遍组查询报文的发送间隔
· IGMP普遍组查询的最大响应时间
在运行了IGMP的组播网络中,会有一台三层组播设备充当IGMP查询器,负责发送IGMP查询报文,使三层组播设备能够在网络层建立并维护组播转发表项,从而在网络层正常转发组播数据。
但是,在一个没有三层组播设备的网络中,由于二层设备并不支持IGMP,因此无法实现IGMP查询器的相关功能。为了解决这个问题,可以在二层设备上使能IGMP Snooping查询器,使二层设备能够在数据链路层建立并维护组播转发表项,从而在数据链路层正常转发组播数据。
请避免在运行了IGMP的网络中配置IGMP Snooping查询器,因为尽管IGMP Snooping查询器并不参与IGMP查询器的选举,但在运行了IGMP的网络中,配置IGMP Snooping查询器不但没有实际的意义,反而可能会由于其发送的IGMP普遍组查询报文的源IP地址较小而影响IGMP查询器的选举。
表1-16 使能IGMP Snooping查询器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
使能IGMP Snooping查询器 |
igmp-snooping querier |
缺省情况下,IGMP Snooping查询器处于关闭状态 |
可以根据网络的实际情况来修改IGMP普遍组查询报文的发送间隔。
合理配置IGMP普遍组查询的最大响应时间,既可以使主机对IGMP查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞。
对于IGMP普遍组查询报文,其报文最大响应时间字段由所配置的IGMP普遍组查询的最大响应时间来填充,在主机收到IGMP普遍组查询报文后,会为其所加入的每个组播组都启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的IGMP普遍组查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的组播组发送IGMP成员关系报告报文。
用户既可在IGMP-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
为避免误删组播组成员,请确保IGMP普遍组查询报文的发送间隔大于IGMP普遍组查询的最大响应时间,否则配置虽能生效但系统会给出提示。
表1-17 全局配置IGMP普遍组查询和响应
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局配置IGMP普遍组查询的最大响应时间 |
max-response-time interval |
缺省情况下,IGMP普遍组查询的最大响应时间为10秒 |
全局配置IGMP特定组查询报文的发送间隔 |
last-member-query-interval interval |
缺省情况下,IGMP特定组查询报文的发送间隔为1秒 |
表1-18 在VLAN内配置IGMP普遍组查询和响应
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内配置IGMP普遍组查询报文的发送间隔 |
igmp-snooping query-interval interval |
缺省情况下,IGMP普遍组查询报文的发送间隔为125秒 |
在VLAN内配置IGMP普遍组查询的最大响应时间 |
igmp-snooping max-response-time interval |
缺省情况下,IGMP普遍组查询的最大响应时间为10秒 |
在调整IGMP报文之前,需完成以下任务:
· 在VLAN内使能IGMP Snooping
在调整IGMP报文之前,需准备以下数据:
· IGMP普遍组查询报文的源IP地址
· IGMP特定组查询报文的源IP地址
· IGMP成员关系报告报文的源IP地址
· IGMP离开组报文的源IP地址
· IGMP报文的802.1p优先级
由于IGMP Snooping查询器有可能发出源IP地址为0.0.0.0的查询报文,而收到此类查询报文的端口将不会被维护为动态路由器端口,从而影响动态IGMP Snooping转发表项的建立,最终导致组播数据无法正常转发。因此,用户可在IGMP Snooping查询器上通过本配置将IGMP查询报文的源IP地址配置为一个有效的IP地址以避免上述问题。
用户也可以通过本配置改变模拟主机或IGMP Snooping代理发送的IGMP成员关系报告报文或IGMP离开组报文的源IP地址。
IGMP查询报文源IP地址的改变可能会影响网段内IGMP查询器的选举。
表1-19 在VLAN内配置IGMP报文的源IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置IGMP普遍组查询报文的源IP地址 |
igmp-snooping general-query source-ip ip-address |
缺省情况下,IGMP普遍组查询报文的源IP地址为当前VLAN接口的IP地址;若当前VLAN接口没有IP地址,则采用0.0.0.0 |
配置IGMP特定组查询报文的源IP地址 |
igmp-snooping special-query source-ip ip-address |
缺省情况下,如果收到过IGMP普遍组查询报文,则以其源IP地址作为IGMP特定组查询报文的源IP地址;否则,采用当前VLAN接口的IP地址;若当前VLAN接口没有IP地址,则采用0.0.0.0 |
配置IGMP成员关系报告报文的源IP地址 |
igmp-snooping report source-ip ip-address |
缺省情况下,IGMP成员关系报告报文的源IP地址为当前VLAN接口的IP地址;若当前VLAN接口没有IP地址,则采用0.0.0.0 |
配置IGMP离开组报文的源IP地址 |
igmp-snooping leave source-ip ip-address |
缺省情况下,IGMP离开组报文的源IP地址为当前VLAN接口的IP地址;若当前VLAN接口没有IP地址,则采用0.0.0.0 |
当二层设备的出端口发生拥塞时,二层设备通过识别报文的802.1p优先级,优先发送优先级较高的报文。用户可以通过本配置改变IGMP报文(包括本设备生成的以及途经本设备的)的802.1p优先级。
对于基于VLAN的配置,用户既可在IGMP-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
表1-20 全局配置IGMP报文的802.1p优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局配置IGMP报文的802.1p优先级 |
dot1p-priority priority-number |
缺省情况下,没有配置IGMP报文的802.1p优先级 |
表1-21 在VLAN内配置IGMP报文的802.1p优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内配置IGMP报文的802.1p优先级 |
igmp-snooping dot1p-priority priority-number |
缺省情况下,没有配置IGMP报文的802.1p优先级 |
在配置IGMP Snooping策略之前,需完成以下任务:
· 在VLAN内使能IGMP Snooping
在配置IGMP Snooping策略之前,需准备以下数据:
· 组播组过滤的ACL规则
· 端口加入的组播组最大数量
本配置只对动态组播组有效,对静态组播组无效。
在使能了IGMP Snooping的二层设备上,通过配置组播组过滤器,可以限制用户对组播节目的点播。
在实际应用中,当用户点播某个组播节目时,主机会发起一个IGMP成员关系报告报文,该报文将在二层设备上接受组播组过滤器的检查,只有通过了检查,二层设备才会将该主机所属的端口加入到出端口列表中,从而达到控制用户点播组播节目的目的。
用户既可在IGMP-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局配置组播组过滤器 |
group-policy acl-number [ vlan vlan-list ] |
缺省情况下,没有配置组播组过滤器,即主机可以加入任意合法的组播组 |
表1-23 在端口上配置组播组过滤器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
在端口上配置组播组过滤器 |
igmp-snooping group-policy acl-number [ vlan vlan-list ] |
缺省情况下,没有配置组播组过滤器,即主机可以加入任意合法的组播组 |
未知组播数据报文是指在IGMP Snooping转发表中不存在对应转发表项的那些组播数据报文:
· 当使能了丢弃未知组播数据报文功能时,二层设备将丢弃所有收到的未知组播数据报文;
· 当关闭了丢弃未知组播数据报文功能时,二层设备将在未知组播数据报文所属的VLAN内广播该报文。
用户既可在IGMP-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置。
表1-24 全局配置丢弃未知组播数据报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局使能丢弃未知组播数据报文功能 |
drop-unknown |
缺省情况下,丢弃未知组播数据报文功能处于关闭状态,即对未知组播数据报文进行广播 |
表1-25 在VLAN内配置丢弃未知组播数据报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
二者选其一 |
在VLAN内使能丢弃未知组播数据报文功能 |
igmp-snooping drop-unknown |
缺省情况下,丢弃未知组播数据报文功能处于关闭状态,即对未知组播数据报文进行广播 |
· 对于同时支持drop-unknown和igmp-snooping drop-unknown这两条命令的设备来说,IGMP-Snooping视图和VLAN视图下的配置是互斥的。也就是说,当在IGMP-Snooping视图下全局使能了丢弃未知组播数据报文的功能后,不允许在VLAN视图下使能或关闭该功能,反之亦然。
· 对于某些型号的设备,在使能了丢弃未知IPv4组播数据报文功能之后,未知IPv6组播数据报文也将被丢弃。
· 对于某些型号的设备,在使能了丢弃未知组播数据报文的功能之后,仍会向VLAN内的其它路由器端口转发未知组播数据报文。
当二层设备收到来自某组播组成员的IGMP成员关系报告报文时,会将该报文转发给与其直连的三层设备。这样,当二层设备上存在属于某组播组的多个成员时,与其直连的三层设备会收到这些成员发送的相同IGMP成员关系报告报文。
当使能了IGMP成员关系报告报文抑制功能后,在一个查询间隔内二层设备只会把收到的某组播组内的第一个IGMP成员关系报告报文转发给三层设备,而不继续向三层设备转发来自同一组播组的其它IGMP成员关系报告报文,这样可以减少网络中的报文数量。
表1-26 配置IGMP成员关系报告报文抑制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
使能IGMP成员关系报告报文抑制功能 |
report-aggregation |
缺省情况下,IGMP成员关系报告报文抑制功能处于使能状态 |
本配置只对动态组播组有效,对静态组播组无效。
通过配置端口加入的组播组最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
配置端口加入的组播组最大数量 |
igmp-snooping group-limit limit [ vlan vlan-list ] |
缺省情况下,端口加入的组播组最大数量为4294967295 |
在配置端口加入的组播组最大数量时,如果当前端口上的组播组数量已超过配置值,系统将把该端口相关的所有转发表项从IGMP Snooping转发表中删除,该端口下的主机都需要重新加入组播组,直至该端口上的组播组数量达到限制值为止。
本配置只对动态组播组有效,对静态组播组无效。
由于某些特殊的原因,当前二层设备或端口上通过的组播组数目有可能会超过二层设备或该端口的限定;另外,在某些特定的应用中,二层设备上新加入的组播组需要自动替换已存在的组播组(一个典型的应用就是“频道切换”,即用户通过加入一个新的组播组就能完成离开原组播组并切换到新组播组的动作)。
针对以上情况,可以在二层设备或者某些端口上使能组播组替换功能。当二层设备或端口上加入的组播组数量已达到限定值时:
· 若使能了组播组替换功能,则新加入的组播组会自动替代已存在的组播组,替代规则是替代IP地址最小的组播组;
· 若没有使能组播组替换功能,则自动丢弃新的IGMP成员关系报告报文。
用户既可在IGMP-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入IGMP-Snooping视图 |
igmp-snooping |
- |
全局使能组播组替换功能 |
overflow-replace [ vlan vlan-list ] |
缺省情况下,组播组替换功能处于关闭状态 |
表1-29 在端口上配置组播组替换功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网、二层聚合接口视图 |
interface interface-type interface-number |
- |
在端口上使能组播组替换功能 |
igmp-snooping overflow-replace [ vlan vlan-list ] |
缺省情况下,组播组替换功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后IGMP Snooping的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除IGMP Snooping的信息。
WX1800H系列、WX2500H系列和WX3000H系列不支持slot参数。
表1-30 IGMP Snooping显示和维护
命令 |
|
显示IGMP Snooping的状态信息 |
display igmp-snooping [ global | vlan vlan-id ] |
显示动态IGMP Snooping组播组的信息 |
display igmp-snooping group [ group-address | source-address ] * [ vlan vlan-id ] [ verbose ] [ slot slot-number ] |
显示动态路由器端口的信息 |
display igmp-snooping router-port [ vlan vlan-id ] [ slot slot-number ] |
显示静态IGMP Snooping组播组的信息 |
display igmp-snooping static-group [ group-address | source-address ] * [ vlan vlan-id ] [ verbose ] [ slot slot-number ] |
显示静态路由器端口的信息 |
display igmp-snooping static-router-port [ vlan vlan-id ] [ slot slot-number ] |
显示IGMP Snooping监听到的IGMP报文的统计信息 |
display igmp-snooping statistics |
显示二层组播的IP组播组信息 |
display l2-multicast ip [ group group-address | source source-address ] * [ vlan vlan-id ] [ slot slot-number ] |
显示二层组播的IP转发表信息 |
display l2-multicast ip forwarding [ group group-address | source source-address ] * [ vlan vlan-id ] [ slot slot-number ] |
显示二层组播的MAC组播组信息 |
display l2-multicast mac [ mac-address ] [ vlan vlan-id ] [ slot slot-number ] |
显示二层组播的MAC转发表信息 |
display l2-multicast mac forwarding [ mac-address ] [ vlan vlan-id ] [ slot slot-number ] |
清除动态IGMP Snooping组播组的信息 |
reset igmp-snooping group { group-address [ source-address ] | all } [ vlan vlan-id ] |
清除动态路由器端口的信息 |
reset igmp-snooping router-port { all | vlan vlan-id } |
清除IGMP Snooping监听到的IGMP报文的统计信息 |
reset igmp-snooping statistics |
Source作为组播源(1.1.1.1/24),通过组播组(224.1.1.1)传送节目,无线用户Client作为组播客户端(要求无线用户Client与组播源Source之间路由可达),通过配置,使无线用户Client可以点播组播源上的节目。
(1) 在Router A与AC相连的端口下开启pim dm和igmp enable,同时请在全局下启动multicast routing-enblae。
# 配置WLAN服务模板(SSID为Multicast)加入VLAN 100。
[AC] Vlan 100
[AC-vlan100] quit
[AC] wlan service-template 1
[AC-wlan-st-1] ssid Multicast
[AC-wlan-st-1] vlan 100
[AC-wlan-st-1] service-template enable
[AC-wlan-st-1] quit
# 在AC上创建AP的管理模板(名称为ap,型号为WA4320i-ACN),指定AP的序列号为219801A0CNC138011454。
[AC] wlan ap ap model WA4320i-ACN
[AC-wlan-ap-ap] serial-id 219801A0CNC138011454
# 将服务模板映射到当前的射频。
[AC-wlan-ap-ap-radio-1] service-template 1
[AC-wlan-ap-ap-radio-1] radio enable
[AC-wlan-ap-ap-radio-1] quit
[AC-wlan-ap-ap] quit
# 在VLAN100内使能IGMP Snooping,并将其版本设为3。
[AC-igmp-snooping] quit
[AC] vlan 100
[AC-vlan100] igmp-snooping enable
[AC-vlan100] igmp-snooping version 3
[AC-vlan100] quit
(4) 配置以太网接口
由于无线控制器产品不同系列之间对于以太网接口的配置会有不同,请根据实际使用的设备型号选择配置方式,本例中给出的以太网接口仅作为示例。
# 将无线控制器的GigabitEthernet1/0/2的端口类型配置为Trunk,并将该端口添加到VLAN 100中。
[AC] interface GigabitEthernet 1/0/2
[AC-GigabitEthernet1/0/2] port link-type trunk
[AC-GigabitEthernet1/0/2] port trunk permit vlan 100
[AC-GigabitEthernet1/0/2] quit
# 将Client接入到SSID为Multicast的无线服务中,并在Client上点播视频源(组播组224.1.1.1)。
# 查看AC上VLAN 100内IGMP Snooping组播组的详细信息。
[AC] display igmp-snooping group vlan 100 verbose
Total 1 entries.
VLAN 100: Total 1 entries.
(0.0.0.0, 224.1.1.1)
Attribute: local port
FSM information: normal
Host slots (0 in total):
Host ports (1 in total):
WLAN-BSS1/0/20 (00:03:23)
可以看到,AC上的端口WLAN-BSS1/0/20已经加入了组播组224.1.1.1。
二层设备不能实现IGMP Snooping二层组播功能。
IGMP Snooping没有使能。
(1) 使用display igmp-snooping命令查看IGMP Snooping的运行状态。
(2) 如果是没有使能IGMP Snooping,则需先在系统视图下使用igmp-snooping命令全局使能IGMP Snooping,然后在VLAN视图下使用igmp-snooping enable命令使能VLAN内的IGMP Snooping。
(3) 如果只是没有在相应VLAN下使能IGMP Snooping,则只需在VLAN视图下使用igmp-snooping enable命令使能VLAN内的IGMP Snooping。
配置了组播组策略,只允许主机加入某些特定的组播组,但主机仍然可以收到发往其它组播组的组播数据。
· ACL规则配置不正确;
· 组播组策略应用不正确;
· 没有使能丢弃未知组播数据报文的功能,使得属于过滤策略之外的组播数据报文(即未知组播数据报文)被广播。
(1) 使用display acl命令查看所配置的ACL规则,检查其是否与所要实现的组播组过滤策略相符合。
(2) 在IGMP-Snooping视图或相应的接口视图下使用display this命令查看是否应用了正确的组播组策略。如果没有,则使用group-policy或igmp-snooping group-policy命令应用正确的组播组策略。
(3) 使用display igmp-snooping命令查看是否已使能丢弃未知组播数据报文的功能。如果没有使能,则使用drop-unknown或igmp-snooping drop-unknown命令使能丢弃未知组播数据报文功能。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!