7.4 IGMP Snooping
由于组播地址不可能出现在报文的源地址中,所以交换机无法学习到组播地址。
当交换机收到组播信息时,会向同一个VLAN 中的所有端口广播。如果不采取措
施,就会出现不想要的组播信息扩散到网络中每一点的严重问题,浪费网络带宽
资源。
IGMP Snooping 通过对主机和路由器之间的IGMP 协议通信的“监听”,使组播包
只发送给在组播转发表中的端口,而不是所有端口,从而限制了局域网交换机上
的组播信息扩散,减少了不必要的网络带宽的浪费,提高了交换机的利用率。
1、使能或关闭IGMP Snooping 功能
命令格式 命令模式命令功能
set igmp snooping {enable|disable} 全局 使能/关闭IGMP Snooping 功能
IGMP Snooping 功能的缺省状态是关闭的。
当IGMP Snooping 功能关闭时,对于组播流根据set port <portlist>
multicast {forward|discard}命令的配置进行处理,如果选择参数forward
则对相应端口进行转发,如果选择discard 则对相应端口丢弃。
使能IGMP Snooping 功能后,对于组播流首先根据监听到的组播转发表来
转发,如果没有查找到该组播转发表,则按照上述的配置针对端口决定转
发或丢弃。
2. 添加或删除对指定VLAN 的IGMP Snooping 功能
命令格式 命令模式命令功能
set igmp snooping add vlan <vlanlist> 全局
添加对指定VLAN 的IGMP
Snooping 功能
set igmp snooping delete vlan <vlanlist> 全局
删除对指定VLAN 的IGMP
Snooping 功能
只有添加对指定的VLAN 进行组播监听的功能,才能监听到相应的组播转
发表。
本交换机最多支持同时监听256 个VLAN。
3. 使能或关闭对指定VLAN 的IGMP Query 功能
命令格式 命令模式命令功能
set igmp snooping query vlan <vlanlist>
{enable|disable}
全局
使能或关闭对指定VLAN 的
IGMP Query 功能
使能了IGMP Snooping 功能后,如果没有IGMP Query 路由器存在,则无
法完成正常的IGMP Snooping 的功能,这时可以开启交换机的IGMP Query
的功能。
如果所监听的VLAN 存在IGMP Query 路由器,最好关闭本交换机的IGMP
Query 功能。交换机运行的IGMP Query 版本是V2.0,遵循V2.0 IGMP Query
路由器选举功能。当配置了三层端口的IP 和MAC 地址,则IGMP Query
的源IP 和源MAC 使用三层配置;否则使用0.0.0.0 和交换机的MAC 地址
作为IGMP Query 的源。
4. 添加或删除静态组播组
命令格式 命令模式命令功能
set igmp snooping vlan <vlanname> add
group <A.B.C.D>
全局 添加静态组播组
set igmp snooping vlan <vlanname> delete
group <A.B.C.D>
全局 删除静态组播组
当运行了IGMP Snooping 的功能,允许以本交换机的名义注册静态的组播
组,本交换机支持最多对64 个静态组播组的注册。
注册的静态组播组只能是用户组播地址224.x.x.x~239.x.x.x,不能是保留的组播地
址。224.0.0.x 的组播地址不允许注册。
5. 配置指定的IGMP Snooping 参数
命令格式 命令模式命令功能
set igmp snooping timeout
<100-2147483647> {host|router}
全局 设置组播成员/路由超时
set igmp snooping query_interval
<10-2147483647>
全局 设置查询周期
set igmp snooping response_interval
<10-250>
全局 设置查询响应周期
set igmp snooping lastmember_query
<10-250>
全局 设置最后的成员查询周期
6. 使能或关闭IGMP 的快速离开功能
命令格式 命令模式命令功能
set igmp snooping fastleave
{enable|disable}
全局
使能或关闭IGMP 的快速离开功
能
运行了IGMP Snooping 功能,并正确地监听到了主机加入的端口后,当该
端口收到IGMP 离开报文时,如果关闭了IGMP 的快速离开功能,则交换
机将向该端口发送两次特定组查询,以确认是否在组播转发表中删除该端
口;如果使能了IGMP 的快速离开功能,则不进行特定组查询,直接从组
播转发表中删除该端口。
当跨VLAN 的组播监听从使能状态变为关闭状态时,经过跨VLAN 组播监
听的某些监听结果要经过相应的超时时长才能正确删除掉。
7. 使能或关闭跨VLAN 的IGMP Snooping 功能
命令格式 命令模式命令功能
set igmp snooping crossvlan
{enable|disable}
全局
使能或关闭跨VLAN 的IGMP
Snooping 功能
当运行了IGMP Snooping 功能,并利用PVID(default vlan_id)正确地配
置一对多的端口转发形式后,可以利用本交换机跨VLAN 的IGMP
Snooping 功能对不同VLAN 之间的IGMP 信息进行监听并进行跨VLAN
的组播转发。
8. 显示IGMP Snooping 的配置和监听结果
命令格式 命令模式命令功能
show igmp snooping 所有模式 显示组播监听的配置
show igmp snooping vlan [<vlanname>
[host|router]]
所有模式 显示组播监听结果
配置实例
如图所示,端口1,3,5 接主机,端口10 接路由器,实现一对多通讯方式,
即端口10 可以和1,3,5 通讯,而1,3,5 相互之间不能通讯。在交换机上开启IGMP Snooping 功能并显示监听结果。
具体配置如下:
zte(cfg)#set vlan 200 add port 1,3,5,10 untag
zte(cfg)#set vlan 210 add port 1,10 untag
zte(cfg)#set vlan 230 add port 3,10 untag
zte(cfg)#set vlan 250 add port 5,10 untag
zte(cfg)#set port 10 pvid 200
zte(cfg)#set port 1 pvid 210
zte(cfg)#set port 3 pvid 230
zte(cfg)#set port 5 pvid 250
zte(cfg)#set vlan 200,210,230,250 fid 200
zte(cfg)#set vlan 200,210,230,250 enable
zte(cfg)#set igmp snooping enable
zte(cfg)#set igmp snooping add vlan 200,210,230,250
zte(cfg)#set igmp snooping crossvlan disable
显示组播监听结果:
zte(cfg)#show igmp snooping vlan
Num VlanId Group Last_Report PortMember
1 210 224.1.1.1 192.168.1.1 1
2 230 224.1.1.1 192.168.1.2 3
3 250 224.1.1.1 192.168.1.3 5
在交换机上开启跨VLAN 组播监听,经过组播监听的显示结果:
zte(cfg)#set igmp snooping crossvlan enable
zte(cfg)#show igmp snooping vlan
Num VlanId Group Last_Report PortMember
1 210 224.1.1.1 192.168.1.1 1
2 230 224.1.1.1 192.168.1.2 3
3 250 224.1.1.1 192.168.1.3 5
4 200 224.1.1.1 192.168.1.3 1,3,5,10