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 <vlannameadd

group <A.B.C.D>

全局 添加静态组播组

set igmp snooping vlan <vlannamedelete

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 功能,并利用PVIDdefault vlan_id)正确地配

置一对多的端口转发形式后,可以利用本交换机跨VLAN IGMP

Snooping 功能对不同VLAN 之间的IGMP 信息进行监听并进行跨VLAN

的组播转发。

8 显示IGMP Snooping 的配置和监听结果

命令格式 命令模式命令功能

show igmp snooping 所有模式 显示组播监听的配置

show igmp snooping vlan [<vlanname>

[host|router]]

所有模式 显示组播监听结果

配置实例

如图所示,端口13接主机,端口10 接路由器,实现一对多通讯方式,

即端口10 可以和13通讯,而13相互之间不能通讯。在交换机上开启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