• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

06-IP组播配置指导

目录

02-IGMP Snooping配置

本章节下载 02-IGMP Snooping配置  (649.96 KB)

02-IGMP Snooping配置

  录

1 IGMP Snooping

1.1 IGMP Snooping简介

1.1.1 IGMP Snooping原理

1.1.2 IGMP Snooping端口分类

1.1.3 IGMP Snooping工作机制

1.1.4 IGMP Snooping Proxy

1.1.5 协议规范

1.2 IGMP Snooping配置任务简介

1.3 配置IGMP Snooping基本功能

1.3.1 配置准备

1.3.2 使能IGMP Snooping

1.3.3 配置IGMP Snooping版本

1.3.4 配置IGMP Snooping转发表项的全局最大数量

1.3.5 配置静态组播MAC地址表项

1.3.6 配置IGMP特定组查询报文的发送间隔

1.4 配置IGMP Snooping端口功能

1.4.1 配置准备

1.4.2 配置动态端口老化定时器

1.4.3 配置静态端口

1.4.4 配置模拟主机加入

1.4.5 配置端口快速离开

1.4.6 禁止端口成为动态路由器端口

1.5 配置IGMP Snooping查询器

1.5.1 配置准备

1.5.2 开启IGMP Snooping查询器

1.5.3 配置IGMP普遍组查询和响应

1.6 配置IGMP Snooping Proxy

1.6.1 配置准备

1.6.2 开启IGMP Snooping Proxy

1.7 调整IGMP报文

1.7.1 配置准备

1.7.2 配置IGMP报文的源IP地址

1.7.3 配置IGMP报文的802.1p优先级

1.8 配置IGMP Snooping策略

1.8.1 配置准备

1.8.2 配置组播组过滤器

1.8.3 配置组播数据报文源端口过滤

1.8.4 配置丢弃未知组播数据报文

1.8.5 配置IGMP成员关系报告报文抑制

1.8.6 配置端口加入的组播组最大数量

1.8.7 配置组播组替换功能

1.8.8 配置IGMP Snooping主机跟踪功能

1.9 IGMP Snooping显示和维护

1.10 IGMP Snooping典型配置举例

1.10.1 基于VLAN的组策略及模拟主机加入配置举例

1.10.2 基于VLAN的静态端口配置举例

1.10.3 基于VLAN的IGMP Snooping查询器配置举例

1.10.4 基于VLAN的IGMP Snooping Proxy配置举例

1.10.5 基于VSI的IGMP Snooping配置举例

1.10.6 基于VXLAN的IGMP Snooping配置举例

1.11 常见配置错误举例

1.11.1 二层设备不能实现二层组播

1.11.2 配置的组播组策略不生效

 


1 IGMP Snooping

1.1  IGMP Snooping简介

IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)运行在二层设备上,通过侦听三层设备与主机之间的IGMP报文来生成二层组播转发表,从而管理和控制组播数据报文的转发,实现组播数据报文在二层的按需分发。

1.1.1  IGMP Snooping原理

运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。

图1-1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层网络(包括VLAN和VSI)中被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层网络中被广播,而被组播给指定的接收者。

图1-1 二层设备运行IGMP Snooping前后的对比

 

IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:

·     减少了二层网络中的广播报文,节约了网络带宽;

·     增强了组播信息的安全性;

·     为实现对每台主机的单独计费带来了方便。

1.1.2  IGMP Snooping端口分类

图1-2所示,Router A连接组播源,在Switch A和Switch B上分别运行IGMP Snooping,Host A和Host C为接收者主机(即组播组成员)。根据在网络中所处位置的不同,我们将IGMP Snooping端口分为路由器端口和成员端口两类,以下分别介绍。

图1-2 IGMP Snooping端口示意图

 

1. 路由器端口

在运行了IGMP Snooping的二层设备上,朝向上游三层组播设备的端口称为路由器端口。如图1-2中Switch A和Switch B各自的HundredGigE1/0/1端口。

根据来源不同,路由器端口可分为:

·     动态路由器端口:所有收到IGMP普遍组查询报文(源地址非0.0.0.0)或PIM Hello报文的端口,都被维护为动态路由器端口。这些端口被记录在动态路由器端口列表中,每个端口都有一个老化定时器。在老化定时器超时前,动态路由器端口如果收到了IGMP普遍组查询报文(源地址非0.0.0.0)或PIM Hello报文,该定时器将被重置;否则,该端口将被从动态路由器端口列表中删除。

·     静态路由器端口:通过命令行手工配置的路由器端口称为静态路由器端口,这些端口被记录在静态路由器端口列表中。静态路由器端口只能通过命令行手工删除,不会被老化。

说明

·     本文中提到的路由器端口都是指二层设备上朝向三层组播设备的端口,而不是指路由器上的端口。

·     如果没有特别指明,本文中提到的路由器端口包括动态路由器端口和静态路由器端口。

 

2. 成员端口

在运行了IGMP Snooping的二层设备上,朝向下游组播组成员的端口称为成员端口。如图1-2中Switch A的HundredGigE1/0/2和HundredGigE1/0/3端口,以及Switch B的HundredGigE1/0/2端口。

根据来源不同,成员端口也可分为:

·     动态成员端口:所有收到IGMP成员关系报告报文的端口,都被维护为动态成员端口。这些端口被记录在动态IGMP Snooping转发表中,每个端口都有一个老化定时器。在老化定时器超时前,动态成员端口如果收到了IGMP成员关系报告报文,该定时器将被重置;否则,该端口将被从动态IGMP Snooping转发表中删除。

·     静态成员端口:通过命令行手工配置的成员端口称为静态成员端口,这些端口被记录在静态IGMP Snooping转发表中。静态路由器端口只能通过命令行手工删除,不会被老化。

说明

如果没有特别指明,本文中提到的成员端口包括动态成员端口和静态成员端口。

 

1.1.3  IGMP Snooping工作机制

运行了IGMP Snooping的二层设备对不同IGMP动作的具体处理方式如下:

说明

本节中所描述的增删端口动作均只针对动态端口,静态端口只能通过相应的配置进行增删,具体步骤请参见“1.4.3  配置静态端口”。

 

1. 普遍组查询

IGMP查询器定期向本地网段内的所有主机与路由器(224.0.0.1)发送IGMP普遍组查询报文,以查询该网段有哪些组播组的成员。

在收到IGMP普遍组查询报文时,二层设备将其通过VLAN/VSI内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:

·     如果在动态路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。

·     如果在动态路由器端口列表中尚未包含该动态路由器端口,则将其添加到动态路由器端口列表中,并启动其老化定时器。

2. 报告成员关系

以下情况,主机会向IGMP查询器发送IGMP成员关系报告报文:

·     当组播组的成员主机收到IGMP查询报文后,会回复IGMP成员关系报告报文。

·     如果主机要加入某个组播组,它会主动向IGMP查询器发送IGMP成员关系报告报文以声明加入该组播组。

在收到IGMP成员关系报告报文时,二层设备将其通过VLAN/VSI内的所有路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口做如下处理:

·     如果不存在该组播组所对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;

·     如果已存在该组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;

·     如果已存在该组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。

说明

二层设备不会将IGMP成员关系报告报文通过非路由器端口转发出去,因为根据主机上的IGMP成员关系报告抑制机制,如果非路由器端口下还有该组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使二层设备无法获知这些端口下还有该组播组的成员主机。有关主机上的IGMP成员关系报告抑制机制的详细介绍,请参见“IP组播配置指导”中的“IGMP”。

 

3. 离开组播组

运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,因此二层设备无法立即获知主机离开的信息。但是,由于主机离开组播组后不会再发送IGMP成员关系报告报文,因此当其对应的动态成员端口的老化定时器超时后,二层设备就会将该端口从相应转发表项的出端口列表中删除。

运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知三层组播设备自己离开了某个组播组。当二层设备从某动态成员端口上收到IGMP离开组报文时,首先判断要离开的组播组所对应的转发表项是否存在,以及该组播组所对应转发表项的出端口列表中是否包含该接收端口:

·     如果不存在该组播组对应的转发表项,或者该组播组对应转发表项的出端口列表中不包含该端口,二层设备不会向任何端口转发该报文,而将其直接丢弃;

·     如果存在该组播组对应的转发表项,且该组播组对应转发表项的出端口列表中除该端口还有别的成员端口存在,二层设备不会向任何端口转发该报文,而将其直接丢弃。同时,由于并不知道该接收端口下是否还有该组播组的其它成员,所以二层设备不会立刻把该端口从该组播组所对应转发表项的出端口列表中删除,而是向该端口发送IGMP特定组查询报文,并根据IGMP特定组查询报文调整该端口的老化定时器(老化时间为2×IGMP特定组查询报文的发送间隔);

·     如果存在该组播组对应的转发表项,且该组播组对应转发表项的出端口列表中只有该端口,二层设备会将该报文通过VLAN/VSI内的所有路由器端口转发出去。同时,由于并不知道该接收端口下是否还有该组播组的其它成员,所以二层设备不会立刻把该端口从该组播组所对应转发表项的出端口列表中删除,而是向该端口发送IGMP特定组查询报文,并根据IGMP特定组查询报文调整该端口的老化定时器(老化时间为2×IGMP特定组查询报文的发送间隔)。

当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并通过接收端口向该组播组发送IGMP特定组查询报文。二层设备在收到IGMP特定组查询报文后,将其通过VLAN/VSI内的所有路由器端口和该组播组的所有成员端口转发出去。对于IGMP离开组报文的接收端口(假定为动态成员端口),二层设备在其老化时间内:

·     如果从该端口收到了主机响应该特定组查询的IGMP成员关系报告报文,则表示该端口下还有该组播组的成员,于是重置其老化定时器;

·     如果没有从该端口收到主机响应特定组查询的IGMP成员关系报告报文,则表示该端口下已没有该组播组的成员。当该端口的老化定时器超时后,将其从该组播组所对应转发表项的出端口列表中删除。

1.1.4  IGMP Snooping Proxy

为了减少上游设备收到的IGMP报告报文和离开报文的数量,可以通过在边缘设备上配置IGMP Snooping Proxy(IGMP Snooping代理)功能,使其能够代理下游主机向上游设备发送报告报文和离开报文。配置了IGMP Snooping Proxy功能的设备称为IGMP Snooping代理设备,在其上游设备看来,它就相当于一台主机。但主机上的IGMP成员关系报告抑制机制在IGMP Snooping代理设备上并不会生效。有关主机上的IGMP成员关系报告抑制机制的详细介绍,请参见“IP组播配置指导”中的“IGMP”。

图1-3 IGMP Snooping Proxy组网图

 

图1-3所示,作为IGMP Snooping代理设备的Switch A,对其上游的IGMP查询器Router A来说相当于一台主机,代理下游主机向Router A发送报告报文和离开报文。

IGMP Snooping代理设备对IGMP报文的处理方式如表1-1所示。

表1-1 IGMP Snooping代理设备对IGMP报文的处理方式

IGMP报文

处理方式

普遍组查询报文

收到普遍组查询报文后,向本VLAN内除接收端口以外的所有端口转发;同时根据本地维护的组成员关系生成报告报文,并向所有路由器端口发送

特定组/特定源组查询报文

收到针对某组播组的特定组/特定源组查询报文时,向本VLAN内除接收端口以外的所有路由器端口转发;若该组对应的转发表项中还有成员端口,则向本VLAN内所有路由器端口回复该组的报告报文

报告报文

从某端口收到某组播组的报告报文时,若已存在该组对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器;若已存在该组对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;若尚不存在该组对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器,然后向所有路由器端口发送该组的报告报文

离开报文

从某端口收到某组播组的离开报文后,向该端口发送针对该组的特定组查询报文。只有当删除某组播组对应转发表项中的最后一个成员端口时,才会向所有路由器端口发送该组的离开报文

 

1.1.5  协议规范

与IGMP Snooping相关的协议规范有:

·     RFC 4541:Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches

1.2  IGMP Snooping配置任务简介

用户可以在VLAN和VSI两种二层网络中配置IGMP Snooping,请分别参见表1-2表1-3

表1-2 基于VLAN的IGMP Snooping配置任务简介

配置任务

说明

详细配置

配置IGMP Snooping基本功能

使能IGMP Snooping

必选

1.3.2 

配置IGMP Snooping版本

可选

1.3.3 

配置IGMP Snooping转发表项的全局最大数量

可选

1.3.4 

配置静态组播MAC地址表项

可选

1.3.5 

配置IGMP特定组查询报文的发送间隔

可选

1.3.6 

配置IGMP Snooping端口功能

配置动态端口老化定时器

可选

1.4.2 

配置静态端口

可选

1.4.3 

配置模拟主机加入

可选

1.4.4 

配置端口快速离开

可选

1.4.5 

禁止端口成为动态路由器端口

可选

1.4.6 

配置IGMP Snooping查询器

开启IGMP Snooping查询器

可选

1.5.2 

配置IGMP普遍组查询和响应

可选

1.5.3 

配置IGMP Snooping Proxy

开启IGMP Snooping Proxy

可选

1.6.2 

调整IGMP报文

配置IGMP报文的源IP地址

可选

1.7.2 

配置IGMP报文的802.1p优先级

可选

1.7.3 

配置IGMP Snooping策略

配置组播组过滤器

可选

1.8.2 

配置组播数据报文源端口过滤

可选

1.8.3 

配置丢弃未知组播数据报文

可选

1.8.4 

配置IGMP成员关系报告报文抑制

可选

1.8.5 

配置端口加入的组播组最大数量

可选

1.8.6 

配置组播组替换功能

可选

1.8.7 

配置IGMP Snooping主机跟踪功能

可选

1.8.8 

 

表1-3 基于VSI的IGMP Snooping配置任务简介

配置任务

说明

详细配置

配置IGMP Snooping基本功能

使能IGMP Snooping

必选

1.3.2 

配置IGMP Snooping版本

可选

1.3.3 

配置IGMP Snooping转发表项的全局最大数量

可选

1.3.4 

配置IGMP特定组查询报文的发送间隔

可选

1.3.6 

配置IGMP Snooping端口功能

配置动态端口老化定时器

可选

1.4.2 

配置IGMP Snooping查询器

开启IGMP Snooping查询器

可选

1.5.2 

配置IGMP普遍组查询和响应

可选

1.5.3 

调整IGMP报文

配置IGMP报文的源IP地址

可选

1.7.2 

配置IGMP报文的802.1p优先级

可选

1.7.3 

配置IGMP Snooping策略

配置丢弃未知组播数据报文

可选

1.8.4 

配置IGMP成员关系报告报文抑制

可选

1.8.5 

 

提示

·     对于从Secondary VLAN中收到的主机加入请求,相关的IGMP Snooping转发表项都将维护在Primary VLAN中,因此IGMP Snooping功能只需在Primary VLAN中配置即可,在Secondary VLAN中即使配置了也不会生效。有关Primary VLAN和Secondary VLAN的详细介绍,请参见“二层技术-以太网交换配置指导”中的“Private VLAN”。

·     二层聚合接口与其各成员端口上的配置互不影响,且成员端口上的配置只有当该端口退出聚合组后才会生效,二层聚合接口上的配置也不会参与聚合计算。

 

1.3  配置IGMP Snooping基本功能

1.3.1  配置准备

在配置IGMP Snooping基本功能之前,需完成以下任务:

·     配置相应VLAN/VSI

在配置IGMP Snooping基本功能之前,需准备以下数据:

·     IGMP Snooping的版本

·     IGMP Snooping转发表项的全局最大数量

·     IGMP特定组查询报文的发送间隔

1.3.2  使能IGMP Snooping

在VLAN/VSI内使能IGMP Snooping之前,必须先全局使能IGMP Snooping。在VLAN/VSI内使能了IGMP Snooping之后,IGMP Snooping只在属于该VLAN/VSI的端口上生效。

对于基于VLAN的配置,用户既可在IGMP-Snooping视图下对指定VLAN进行配置,也可在VLAN视图下只对当前VLAN进行配置,二者的配置优先级相同;对于基于VSI的配置,用户只能在VSI视图下对当前VSI进行配置。

1. 使能指定VLAN内的IGMP Snooping

表1-4 使能指定VLAN内的IGMP Snooping

操作

命令

说明

进入系统视图

system-view

-

全局使能IGMP Snooping,并进入IGMP-Snooping视图

igmp-snooping

缺省情况下,IGMP Snooping处于全局关闭状态

使能指定VLAN内的IGMP Snooping

enable vlan vlan-list

缺省情况下,VLAN内的IGMP Snooping处于关闭状态

 

2. 在VLAN/VSI内使能IGMP Snooping

表1-5 在VLAN/VSI内使能IGMP Snooping

操作

命令

说明

进入系统视图

system-view

-

全局使能IGMP Snooping,并进入IGMP-Snooping视图

igmp-snooping

缺省情况下,IGMP Snooping处于全局关闭状态

退回系统视图

quit

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

在VLAN/VSI内使能IGMP Snooping

igmp-snooping enable

缺省情况下,VLAN/VSI内的IGMP Snooping处于关闭状态

 

1.3.3  配置IGMP Snooping版本

配置IGMP Snooping的版本,实际上就是配置IGMP Snooping可以处理的IGMP报文的版本:

·     当IGMP Snooping的版本为2时,IGMP Snooping能够对IGMPv1和IGMPv2的报文进行处理,对IGMPv3的报文则不进行处理,而是在VLAN/VSI内将其广播;

·     当IGMP Snooping的版本为3时,IGMP Snooping能够对IGMPv1、IGMPv2和IGMPv3的报文进行处理。

对于基于VLAN的配置,用户既可在IGMP-Snooping视图下对指定VLAN进行配置,也可在VLAN视图下只对当前VLAN进行配置,二者的配置优先级相同;对于基于VSI的配置,用户只能在VSI视图下对当前VSI进行配置。

1. 配置指定VLAN内的IGMP Snooping版本

表1-6 配置指定VLAN内的IGMP Snooping版本

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置指定VLAN内的IGMP Snooping的版本

version version-number vlan vlan-list

缺省情况下,VLAN内IGMP Snooping的版本为2

 

2. 在VLAN/VSI内配置IGMP Snooping版本

表1-7 在VLAN/VSI内配置IGMP Snooping版本

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

在VLAN/VSI内配置IGMP Snooping的版本

igmp-snooping version version-number

缺省情况下,VLAN/VSI内IGMP Snooping的版本为2

 

说明

当IGMP Snooping的版本由版本3切换到版本2时,系统将清除所有通过动态加入的IGMP Snooping转发表项;对于在版本3下通过手工配置而静态加入的IGMP Snooping转发表项,则分为以下两种情况进行不同的处理:

·     如果配置的仅仅是静态加入组播组,而没有指定组播源,则这些转发表项将不会被清除;

·     如果配置的是指定了组播源的静态加入组播源组,则这些转发表项将会被清除,并且当再次切换回版本3时,这些转发表项将被重新恢复。

有关静态加入的详细配置,请参见“1.4.3  配置静态端口”。

 

1.3.4  配置IGMP Snooping转发表项的全局最大数量

用户可以调整IGMP Snooping转发表项(包括动态表项和静态表项)的全局最大数量,当设备上维护的表项数量达到最大数量后,将不再创建新的表项,直至有表项被老化或被手工删除。

表1-8 配置IGMP Snooping转发表项的全局最大数量

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置IGMP Snooping转发表项的全局最大数量

entry-limit limit

缺省情况下,IGMP Snooping转发表项的全局最大数量为4294967295

 

说明

在配置IGMP Snooping转发表项的全局最大数量时,如果设备上维护的表项数量已超过配置值,系统不会主动删除多余表项。为避免此后无法再创建新的表项,建议用户手工删除多余表项。

 

1.3.5  配置静态组播MAC地址表项

提示

·     进行本配置不需要使能IP组播路由。

·     可手工配置的组播MAC地址表项必须是尚未使用的组播MAC地址(即最高字节的最低比特位为1的MAC地址)。

 

在二层组播中,除了可通过二层组播协议(如IGMP Snooping)动态建立组播MAC地址表项外,还可通过手工方式配置组播MAC地址表项,将端口与组播MAC地址进行静态绑定,以便灵活控制组播信息送达的目的端口。

用户既可以在系统视图对指定接口进行配置,也可以在接口视图下只对当前接口进行配置。

1. 系统视图下配置静态组播MAC地址表项

表1-9 系统视图下配置静态组播MAC地址表项

操作

命令

说明

进入系统视图

system-view

-

配置静态组播MAC地址表项

mac-address multicast mac-address interface interface-list vlan vlan-id

缺省情况下,不存在任何静态组播MAC地址表项

 

2. 接口视图下配置静态组播MAC地址表项

表1-10 接口视图下配置静态组播MAC地址表项

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

配置静态组播MAC地址表项

mac-address multicast mac-address vlan vlan-id

缺省情况下,没有配置任何静态组播MAC地址表项

 

1.3.6  配置IGMP特定组查询报文的发送间隔

当二层设备从某动态成员端口上收到IGMP离开组报文时,如果设备上存在要离开的组播组所对应的转发表项,且该组播组所对应转发表项的出端口列表中也包含该接收端口,则二层设备会向该端口发送IGMP特定组查询报文,并根据IGMP特定组查询报文调整该端口的老化定时器(老化时间为2×IGMP特定组查询报文的发送间隔)。

合理配置IGMP特定组查询的最大响应时间,既可以使主机对IGMP查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞。

二层设备所发送的IGMP特定组查询报文,其报文的最大响应时间字段由所配置的IGMP特定组查询报文的发送间隔来填充,在主机在收到IGMP特定组查询报文后,会为其所加入的该组播组启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的IGMP特定组查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的组播组发送IGMP成员关系报告报文。

用户既可在IGMP-Snooping视图下对所有VLAN和VSI进行全局配置,也可在VLAN视图/VSI视图下只对当前VLAN/VSI进行配置,后者的配置优先级较高。

说明

如果二层设备的某端口上开启了端口快速离开功能,该端口收到IGMP离开组报文后,二层设备不会向该端口发送IGMP特定组查询报文。

 

1. 全局配置IGMP特定组查询报文的发送间隔

表1-11 全局配置IGMP特定组查询报文的发送间隔

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局配置IGMP特定组查询报文的发送间隔

last-member-query-interval interval

缺省情况下,IGMP特定组查询报文的发送间隔为1秒

 

2. 在VLAN/VSI内配置IGMP特定组查询报文的发送间隔

表1-12 在VLAN/VSI内配置IGMP特定组查询报文的发送间隔

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

在VLAN/VSI内配置IGMP特定组查询报文的发送间隔

igmp-snooping last-member-query-interval interval

缺省情况下,IGMP特定组查询报文的发送间隔为1秒

 

1.4  配置IGMP Snooping端口功能

1.4.1  配置准备

在配置IGMP Snooping端口功能之前,需完成以下任务:

·     在VLAN/VSI内使能IGMP Snooping

在配置IGMP Snooping端口功能之前,需准备以下数据:

·     动态路由器端口老化时间

·     动态成员端口老化时间

·     组播组和组播源的地址

1.4.2  配置动态端口老化定时器

对于动态路由器端口,如果在其老化时间内没有收到IGMP普遍组查询报文或者PIM Hello报文,二层设备将把该端口从动态路由器端口列表中删除。

对于动态成员端口,如果在其老化时间内没有收到该组播组的IGMP成员关系报告报文,二层设备将把该端口从该组播组所对应转发表项的出端口列表中删除。

如果组播组成员的变动比较频繁,可以把动态成员端口老化时间设置小一些,反之亦然。

用户既可在IGMP-Snooping视图下对所有VLAN和VSI进行全局配置,也可在VLAN视图/VSI视图下只对当前VLAN/VSI进行配置,后者的配置优先级较高。

说明

·     如果动态路由器端口收到的是PIMv2 Hello报文,那么该端口的老化时间将由PIMv2 Hello报文所携带的参数决定,而不受本节配置的影响。

·     如果二层设备向动态成员端口主动发送IGMP特定组查询报文,则该端口的老化时间将根据该IGMP特定组查询报文进行调整,调整的老化时间为2×IGMP特定组查询报文的发送间隔。二层设备IGMP特定组查询报文发送间隔的配置,请参见“1.3.6  配置IGMP特定组查询报文的发送间隔”。

 

1. 全局配置动态端口老化定时器

表1-13 全局配置动态端口老化定时器

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局配置动态路由器端口老化时间

router-aging-time seconds

缺省情况下,动态路由器端口的老化时间为260秒

全局配置动态成员端口老化时间

host-aging-time seconds

缺省情况下,动态成员端口的老化时间为260秒

 

2. 在VLAN/VSI内配置动态端口老化定时器

表1-14 在VLAN/VSI内配置动态端口老化定时器

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

在VLAN/VSI内配置动态路由器端口老化时间

igmp-snooping router-aging-time seconds

缺省情况下,动态路由器端口的老化时间为260秒

在VLAN/VSI内配置动态成员端口老化时间

igmp-snooping host-aging-time seconds

缺省情况下,动态成员端口的老化时间为260秒

 

1.4.3  配置静态端口

如果某端口所连接的主机需要固定接收发往某组播组或组播源组的组播数据,可以配置该端口静态加入该组播组或组播源组,成为静态成员端口。静态成员端口不会对IGMP查询器发出的查询报文进行响应;当配置静态成员端口或取消静态成员端口的配置时,端口也不会主动发送IGMP成员关系报告报文或IGMP离开组报文。

可以通过将二层设备上的端口配置为静态路由器端口,从而使二层设备上收到的所有组播数据可以通过该端口被转发出去。

表1-15 配置静态端口

操作

命令

说明

进入系统视图

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

缺省情况下,端口不是静态路由器端口

 

1.4.4  配置模拟主机加入

在二层设备的端口上配置了模拟主机加入后,该模拟主机就可以模仿真实的组播组成员主机,对IGMP查询器发出的查询报文进行响应,包括:

·     启动模拟主机时,该端口会主动发送一个IGMP成员关系报告报文。

·     在模拟主机的运行过程中,当收到IGMP查询报文时,该端口会响应一个IGMP成员关系报告报文。

·     停止模拟主机时,该端口会发送一个IGMP离开组报文。

说明

·     与静态成员端口不同,配置了模拟主机加入的端口将作为动态成员端口参与动态成员端口的老化过程。

·     模拟主机所采用的IGMP版本与IGMP Snooping的版本一致。

 

表1-16 配置模拟主机加入

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

配置模拟主机加入组播组或组播源组

igmp-snooping host-join group-address [ source-ip source-address ] vlan vlan-id

缺省情况下,未配置模拟主机加入组播组或组播源组

 

1.4.5  配置端口快速离开

端口快速离开是指当端口收到主机发来的离开指定组播组的IGMP离开组报文时,直接将该端口从相应转发表项的出端口列表中删除。此后,当收到针对该组播组的IGMP特定组查询报文时,二层设备将不再向该端口转发。

对于一个VLAN,只有当一个端口下只有一个接收者时,才建议配置本功能;否则,当一个端口下有多个接收者时,其中一个接收者的离开会触发该端口的快速离开,从而导致属于同一组播组的其它接收者无法收到组播数据。

用户既可在IGMP-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。

1. 全局配置端口快速离开

表1-17 全局配置端口快速离开

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局开启端口快速离开功能

fast-leave [ vlan vlan-list ]

缺省情况下,端口快速离开功能处于关闭状态

 

2. 在端口上配置端口快速离开

表1-18 在端口上配置端口快速离开

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

在端口上开启端口快速离开功能

igmp-snooping fast-leave [ vlan vlan-list ]

缺省情况下,端口快速离开功能处于关闭状态

 

1.4.6  禁止端口成为动态路由器端口

在组播用户接入网络中,用户主机在某些情况下(比如测试)也会发出IGMP普遍组查询报文或PIM Hello报文:

·     如果二层设备收到了某用户主机发来的IGMP普遍组查询报文或PIM Hello报文,那么接收报文的端口就将成为动态路由器端口,从而使VLAN内的所有组播报文都会向该端口转发,导致该主机收到大量无用的组播报文。

·     同时,用户主机发送IGMP普遍组查询报文或PIM Hello报文,也会影响该接入网络中三层设备上的组播路由协议状态(如影响IGMP查询器或DR的选举),严重时可能导致网络中断。

当禁止一个端口成为动态路由器端口后,即使该端口收到了IGMP普遍组查询报文或PIM Hello报文,该端口也不会成为动态路由器端口,从而能够有效解决上述问题,提高网络的安全性和对组播用户的控制能力。

说明

本配置与静态路由器端口的配置互不影响。

 

表1-19 禁止端口成为动态路由器端口

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

禁止端口成为动态路由器端口

igmp-snooping router-port-deny [ vlan vlan-list ]

缺省情况下,端口可以成为动态路由器端口

 

1.5  配置IGMP Snooping查询器

1.5.1  配置准备

在配置IGMP Snooping查询器之前,需完成以下任务:

·     在VLAN/VSI内使能IGMP Snooping

在配置IGMP Snooping查询器之前,需准备以下数据:

·     IGMP普遍组查询报文的发送间隔

·     IGMP普遍组查询的最大响应时间

1.5.2  开启IGMP Snooping查询器

在运行了IGMP的组播网络中,会有一台三层组播设备充当IGMP查询器,负责发送IGMP查询报文,使三层组播设备能够在网络层建立并维护组播转发表项,从而在网络层正常转发组播数据。

但是,在一个没有三层组播设备的网络中,由于二层设备并不支持IGMP,因此无法实现IGMP查询器的相关功能。为了解决这个问题,可以在二层设备上开启IGMP Snooping查询器,使二层设备能够在数据链路层建立并维护组播转发表项,从而在数据链路层正常转发组播数据。

提示

·     请避免在运行了IGMP的网络中配置IGMP Snooping查询器,因为尽管IGMP Snooping查询器并不参与IGMP查询器的选举,但在运行了IGMP的网络中,配置IGMP Snooping查询器不但没有实际的意义,反而可能会由于其发送的IGMP普遍组查询报文的源IP地址较小而影响IGMP查询器的选举。有关IGMP查询器的详细介绍,请参见“IP组播配置指导”中的“IGMP”。

·     在VSI/VXLAN组网中,由于VSI内IGMP Snooping查询查询报文不携带VLAN Tag,所以不建议在携带VLAN Tag的Ethernet接入模式下配置IGMP Snooping查询器,有关Ethernet接入模式的详细介绍,请VXLAN配置指导”中的“接入模式”。

 

表1-20 开启IGMP Snooping查询器

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

开启IGMP Snooping查询器

igmp-snooping querier

缺省情况下,IGMP Snooping查询器处于关闭状态

 

1.5.3  配置IGMP普遍组查询和响应

可以根据网络的实际情况来修改IGMP普遍组查询报文的发送间隔。

合理配置IGMP普遍组查询的最大响应时间,既可以使主机对IGMP查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞。

对于IGMP普遍组查询报文,其报文最大响应时间字段由所配置的IGMP普遍组查询的最大响应时间来填充,在主机收到IGMP普遍组查询报文后,会为其所加入的每个组播组都启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的IGMP普遍组查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的组播组发送IGMP成员关系报告报文。

用户既可在IGMP-Snooping视图下对所有VLAN和VSI进行全局配置,也可在VLAN视图/VSI视图下只对当前VLAN/VSI进行配置,后者的配置优先级较高。

提示

为避免误删组播组成员,请确保IGMP普遍组查询报文的发送间隔大于IGMP普遍组查询的最大响应时间,否则配置虽能生效但系统会给出提示。

 

1. 全局配置IGMP普遍组查询和响应

表1-21 全局配置IGMP普遍组查询和响应

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局配置IGMP普遍组查询的最大响应时间

max-response-time seconds

缺省情况下,IGMP普遍组查询的最大响应时间为10秒

 

2. 在VLAN/VSI内配置IGMP普遍组查询和响应

表1-22 在VLAN/VSI内配置IGMP普遍组查询和响应

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

在VLAN/VSI内配置IGMP普遍组查询报文的发送间隔

igmp-snooping query-interval interval

缺省情况下,IGMP普遍组查询报文的发送间隔为125秒

在VLAN/VSI内配置IGMP普遍组查询的最大响应时间

igmp-snooping max-response-time seconds

缺省情况下,IGMP普遍组查询的最大响应时间为10秒

 

1.6  配置IGMP Snooping Proxy

1.6.1  配置准备

在配置IGMP Snooping Proxy之前,需在VLAN内使能IGMP Snooping。

1.6.2  开启IGMP Snooping Proxy

表1-23 开启IGMP Snooping Proxy

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

在VLAN内开启IGMP Snooping Proxy功能

igmp-snooping proxy enable

缺省情况下,VLAN内的IGMP Snooping Proxy功能处于关闭状态

 

1.7  调整IGMP报文

1.7.1  配置准备

在调整IGMP报文之前,需完成以下任务:

·     在VLAN/VSI内使能IGMP Snooping

在调整IGMP报文之前,需准备以下数据:

·     IGMP普遍组查询报文的源IP地址

·     IGMP特定组查询报文的源IP地址

·     IGMP成员关系报告报文的源IP地址

·     IGMP离开组报文的源IP地址

·     IGMP报文的802.1p优先级

1.7.2  配置IGMP报文的源IP地址

由于IGMP Snooping查询器有可能发出源IP地址为0.0.0.0的查询报文,而收到此类查询报文的端口将不会被维护为动态路由器端口,从而影响动态IGMP Snooping转发表项的建立,最终导致组播数据无法正常转发。因此,用户可在IGMP Snooping查询器上通过本配置将IGMP查询报文的源IP地址配置为一个有效的IP地址以避免上述问题。

用户也可以通过本配置改变模拟主机或IGMP Snooping代理发送的IGMP成员关系报告报文或IGMP离开组报文的源IP地址。

提示

IGMP查询报文源IP地址的改变可能会影响网段内IGMP查询器的选举。

 

1. 在VLAN内配置IGMP报文的源IP地址

表1-24 在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

 

2. 在VSI内配置IGMP报文的源IP地址

表1-25 在VSI内配置IGMP报文的源IP地址

操作

命令

说明

进入系统视图

system-view

-

进入VSI视图

vsi vsi-name

-

配置IGMP普遍组查询报文的源IP地址

igmp-snooping general-query source-ip ip-address

缺省情况下,IGMP普遍组查询报文的源IP地址为VSI绑定的VSI接口的IP地址;若绑定的VSI接口没有IP地址,则采用0.0.0.0

配置IGMP特定组查询报文的源IP地址

igmp-snooping special-query source-ip ip-address

缺省情况下,如果收到过IGMP普遍组查询报文,则以其源IP地址作为IGMP特定组查询报文的源IP地址;否则,采用VSI绑定的VSI接口的IP地址;若绑定的VSI接口没有IP地址,则采用0.0.0.0

配置IGMP成员关系报告报文的源IP地址

igmp-snooping report source-ip ip-address

缺省情况下,IGMP成员关系报告报文的源IP地址为VSI绑定的VSI接口的IP地址;若绑定的VSI接口没有IP地址,则采用0.0.0.0

配置IGMP离开组报文的源IP地址

igmp-snooping leave source-ip ip-address

缺省情况下,IGMP离开组报文的源IP地址为VSI绑定的VSI接口的IP地址;若绑定的VSI接口没有IP地址,则采用0.0.0.0

 

1.7.3  配置IGMP报文的802.1p优先级

当二层设备的出端口发生拥塞时,二层设备通过识别报文的802.1p优先级,优先发送优先级较高的报文。用户可以通过本配置改变IGMP报文(包括本设备生成的以及途经本设备的)的802.1p优先级。

对于基于VLAN的配置,用户既可在IGMP-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高;对于基于VSI的配置,用户只能在IGMP-Snooping视图下对所有VSI进行全局配置。

1. 全局配置IGMP报文的802.1p优先级

表1-26 全局配置IGMP报文的802.1p优先级

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局配置IGMP报文的802.1p优先级

dot1p-priority priority

缺省情况下,没有配置IGMP报文的802.1p优先级,即对于本设备生成的IGMP报文,其802.1p优先级为0,而对途经本设备的IGMP报文,不改变其802.1p优先级。

 

2. 在VLAN内配置IGMP报文的802.1p优先级

表1-27 在VLAN内配置IGMP报文的802.1p优先级

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

在VLAN内配置IGMP报文的802.1p优先级

igmp-snooping dot1p-priority priority

缺省情况下,没有配置IGMP报文的802.1p优先级,即对于本设备生成的IGMP报文,其802.1p优先级为0,而对途经本设备的IGMP报文,不改变其802.1p优先级。

 

1.8  配置IGMP Snooping策略

1.8.1  配置准备

在配置IGMP Snooping策略之前,需完成以下任务:

·     在VLAN/VSI内使能IGMP Snooping

在配置IGMP Snooping策略之前,需准备以下数据:

·     组播组过滤的ACL规则

·     端口加入的组播组最大数量

1.8.2  配置组播组过滤器

提示

本配置只对动态组播组有效,对静态组播组无效。

 

在使能了IGMP Snooping的二层设备上,通过配置组播组过滤器,可以限制用户对组播节目的点播。

在实际应用中,当用户点播某个组播节目时,主机会发起一个IGMP成员关系报告报文,该报文将在二层设备上接受组播组过滤器的检查,只有通过了检查,二层设备才会将该主机所属的端口加入到出端口列表中,从而达到控制用户点播组播节目的目的。

用户既可在IGMP-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。

1. 全局配置组播组过滤器

表1-28 全局配置组播组过滤

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局配置组播组过滤器

group-policy ipv4-acl-number [ vlan vlan-list ]

缺省情况下,未配置组播组过滤器,即主机可以加入任意合法的组播组

 

2. 在端口上配置组播组过滤器

表1-29 在端口上配置组播组过滤器

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

在端口上配置组播组过滤器

igmp-snooping group-policy ipv4-acl-number [ vlan vlan-list ]

缺省情况下,未配置组播组过滤器,即主机可以加入任意合法的组播组

 

1.8.3  配置组播数据报文源端口过滤

通过配置组播数据报文源端口过滤功能,可以允许或禁止端口作为组播源端口:

·     开启该功能后,端口不能连接组播源,因为该端口将过滤掉所有的组播数据报文(但允许组播协议报文通过),因此只能连接组播数据接收者。

·     关闭该功能后,端口既能连接组播源,也能连接组播数据接收者。

用户既可在IGMP-Snooping视图下对指定端口进行全局配置,也可在接口视图下只对当前端口进行配置,二者的配置优先级相同。

1. 全局配置组播数据报文源端口过滤

表1-30 全局配置组播数据报文源端口过滤

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

开启指定端口的组播数据报文源端口过滤功能

source-deny port interface-list

缺省情况下,组播数据报文源端口过滤功能处于关闭状态

 

2. 在端口上配置组播数据报文源端口过滤

表1-31 在端口上配置组播数据报文源端口过滤

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网接口视图

interface interface-type interface-number

-

开启当前端口的组播数据报文源端口过滤功能

igmp-snooping source-deny

缺省情况下,组播数据报文源端口过滤功能处于关闭状态

 

1.8.4  配置丢弃未知组播数据报文

未知组播数据报文是指在IGMP Snooping转发表中不存在对应转发表项的那些组播数据报文:

·     当开启了丢弃未知组播数据报文功能时,交换机收到未知组播数据报文,只向其路由器端口转发,不在VLAN内广播。如果交换机没有路由器端口,数据报文会被丢弃,不再转发;

·     当关闭了丢弃未知组播数据报文功能时,二层设备将在未知组播数据报文所属的VLAN内广播该报文。

表1-32 在VLAN/VSI内配置丢弃未知组播数据报文

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入VLAN视图

vlan vlan-id

二者选其一

进入VSI视图

vsi vsi-name

在VLAN/VSI内开启丢弃未知组播数据报文功能

igmp-snooping drop-unknown

缺省情况下,丢弃未知组播数据报文功能处于关闭状态,即对未知组播数据报文进行广播

 

1.8.5  配置IGMP成员关系报告报文抑制

当二层设备收到来自某组播组成员的IGMP成员关系报告报文时,会将该报文转发给与其直连的三层设备。这样,当二层设备上存在属于某组播组的多个成员时,与其直连的三层设备会收到这些成员发送的相同IGMP成员关系报告报文。

当开启了IGMP成员关系报告报文抑制功能后,在一个查询间隔内二层设备只会把收到的某组播组内的第一个IGMP成员关系报告报文转发给三层设备,而不继续向三层设备转发来自同一组播组的其它IGMP成员关系报告报文,这样可以减少网络中的报文数量。

表1-33 配置IGMP成员关系报告报文抑制

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

开启IGMP成员关系报告报文抑制功能

report-aggregation

缺省情况下,IGMP成员关系报告报文抑制功能处于开启状态

 

1.8.6  配置端口加入的组播组最大数量

提示

本配置只对动态组播组有效,对静态组播组无效。

 

通过配置端口加入的组播组最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量。

表1-34 配置端口加入的组播组最大数量

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

配置端口加入的组播组最大数量

igmp-snooping group-limit limit [ vlan vlan-list ]

缺省情况下,未对端口加入的组播组最大数量进行限制

 

说明

在配置端口加入的组播组最大数量时,如果当前端口上的组播组数量已超过配置值,系统将把该端口相关的所有转发表项从IGMP Snooping转发表中删除,该端口下的主机都需要重新加入组播组,直至该端口上的组播组数量达到限制值为止。

 

1.8.7  配置组播组替换功能

提示

本配置只对动态组播组有效,对静态组播组无效。

 

由于某些特殊的原因,当前二层设备或端口上通过的组播组数目有可能会超过二层设备或该端口的限定;另外,在某些特定的应用中,二层设备上新加入的组播组需要自动替换已存在的组播组(一个典型的应用就是“频道切换”,即用户通过加入一个新的组播组就能完成离开原组播组并切换到新组播组的动作)。

针对以上情况,可以在二层设备或者某些端口上开启组播组替换功能。当二层设备或端口上加入的组播组数量已达到限定值时:

·     若开启了组播组替换功能,则新加入的组播组会自动替代已存在的组播组,替代规则是替代IP地址最小的组播组;

·     若没有开启组播组替换功能,则自动丢弃新的IGMP成员关系报告报文。

用户既可在IGMP-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。

1. 全局配置组播组替换功能

表1-35 全局配置组播组替换功能

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局开启组播组替换功能

overflow-replace [ vlan vlan-list ]

缺省情况下,组播组替换功能处于关闭状态

 

2. 在端口上配置组播组替换功能

表1-36 在端口上配置组播组替换功能

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

在端口上开启组播组替换功能

igmp-snooping overflow-replace [ vlan vlan-list ]

缺省情况下,组播组替换功能处于关闭状态

 

1.8.8  配置IGMP Snooping主机跟踪功能

通过开启IGMP Snooping主机跟踪功能,可以使交换机能够记录正在接收组播数据的成员主机信息(包括主机的IP地址、加入组播组的运行时长和超时剩余时间等),以便于网络管理员对这些主机进行监控和管理。

1. 全局配置IGMP Snooping主机跟踪功能

表1-37 全局配置IGMP Snooping主机跟踪功能

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

全局开启IGMP Snooping主机跟踪功能

host-tracking

缺省情况下,IGMP Snooping主机跟踪功能处于关闭状态

 

2. 在VLAN内配置IGMP Snooping主机跟踪功能

表1-38 在VLAN内配置IGMP Snooping主机跟踪功能

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

在VLAN内开启IGMP Snooping主机跟踪功能

igmp-snooping host-tracking

缺省情况下,IGMP Snooping主机跟踪功能处于关闭状态

 

1.9  IGMP Snooping显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后IGMP Snooping的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除IGMP Snooping的信息。

表1-39 IGMP Snooping显示和维护

操作

命令

显示IGMP Snooping的状态信息

display igmp-snooping [ global | vlan vlan-id | vsi vsi-name ]

显示动态IGMP Snooping组播组的信息

display igmp-snooping group [ group-address | source-address ] * [ vlan vlan-id | vsi vsi-name ] [ verbose ] [ slot slot-number ]

显示IGMP Snooping主机跟踪信息

display igmp-snooping host-tracking vlan vlan-id group group-address [ source source-address ] [ slot slot-number ]

显示动态路由器端口的信息

display igmp-snooping router-port [ vlan vlan-id | vsi vsi-name ] [ verbose ] [ 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 ] [ verbose ] [ slot slot-number ]

显示IGMP Snooping监听到的IGMP报文和PIM hello报文的统计信息

display igmp-snooping statistics

显示IPv4二层组播快速转发表信息

display l2-multicast fast-forwarding cache [ vlan vlan-id ] [ source-address | group-address ] * [ slot slot-number ]

显示二层组播的IP组播组信息

display l2-multicast ip [ group group-address | source source-address ] * [ vlan vlan-id | vsi vsi-name ] [ slot slot-number ]

显示二层组播的IP转发表信息

display l2-multicast ip forwarding [ group group-address | source source-address ] * [ vlan vlan-id | vsi vsi-name ] [ slot slot-number ]

显示二层组播的MAC组播组信息

display l2-multicast mac [ mac-address ] [ vlan vlan-id | vsi vsi-name ] [ slot slot-number ]

显示二层组播的MAC转发表信息

display l2-multicast mac forwarding [ mac-address ] [ vlan vlan-id | vsi vsi-name ] [ slot slot-number ]

显示静态组播MAC地址表信息

display mac-address [ mac-address [ vlan vlan-id ] | [ multicast ] [ vlan vlan-id ] [ count ] ]

清除IPv4二层组播快速转发表中的转发项

reset l2-multicast fast-forwarding cache [ vlan vlan-id ] { { source-address | group-address } * | all } [ slot slot-number ]

清除动态IGMP Snooping组播组的信息

reset igmp-snooping group { group-address [ source-address ] | all } [ vlan vlan-id | vsi vsi-name ]

清除动态路由器端口的信息

reset igmp-snooping router-port { all | vlan vlan-id | vsi vsi-name }

清除IGMP Snooping监听到的IGMP报文和PIM hello报文的统计信息

reset igmp-snooping statistics

 

1.10  IGMP Snooping典型配置举例

1.10.1  基于VLAN的组策略及模拟主机加入配置举例

1. 组网需求

·     如图1-4所示,Router A通过HundredGigE1/0/2接口连接组播源(Source),通过HundredGigE1/0/1接口连接Switch A;Router A上运行IGMPv2,Switch A上运行版本2的IGMP Snooping,并由Router A充当IGMP查询器。

·     通过配置,使Host A和Host B能且只能接收发往组播组224.1.1.1的组播数据,并且当Host A和Host B发生意外而临时中断接收组播数据时,发往组播组224.1.1.1组播数据也能不间断地通过Switch A的接口HundredGigE1/0/3和HundredGigE1/0/4转发出去;同时,使Switch A将收到的未知组播数据直接丢弃,避免在其所属的VLAN 100内广播。

2. 组网图

图1-4 基于VLAN的组策略及模拟主机加入配置组网图

 

3. 配置步骤

(1)     配置IP地址

请按照图1-4配置各接口的IP地址和子网掩码,具体配置过程略。

(2)     配置Router A

# 使能IP组播路由,在接口HundredGigE1/0/2上使能PIM-DM,并在接口HundredGigE1/0/1上使能IGMP。

<RouterA> system-view

[RouterA] multicast routing

[RouterA-mrib] quit

[RouterA] interface hundredgige 1/0/1

[RouterA-HundredGigE1/0/1] igmp enable

[RouterA-HundredGigE1/0/1] quit

[RouterA] interface hundredgige 1/0/2

[RouterA-HundredGigE1/0/2] pim dm

[RouterA-HundredGigE1/0/2] quit

(3)     配置Switch A

# 全局使能IGMP Snooping。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/4添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchA] vlan 100

[SwitchA-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/4

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] igmp-snooping drop-unknown

[SwitchA-vlan100] quit

# 配置组播组过滤器,以限定VLAN 100内的主机只能加入组播组224.1.1.1。

[SwitchA] acl basic 2001

[SwitchA-acl-ipv4-basic-2001] rule permit source 224.1.1.1 0

[SwitchA-acl-ipv4-basic-2001] quit

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] group-policy 2001 vlan 100

[SwitchA-igmp-snooping] quit

# 在HundredGigE1/0/3和HundredGigE1/0/4上分别配置模拟主机加入组播组224.1.1.1。

[SwitchA] interface hundredgige 1/0/3

[SwitchA-HundredGigE1/0/3] igmp-snooping host-join 224.1.1.1 vlan 100

[SwitchA-HundredGigE1/0/3] quit

[SwitchA] interface hundredgige 1/0/4

[SwitchA-HundredGigE1/0/4] igmp-snooping host-join 224.1.1.1 vlan 100

[SwitchA-HundredGigE1/0/4] quit

4. 验证配置

假设组播源分别向组播组224.1.1.1和224.2.2.2发送的组播数据,Host A和Host B也都申请加入这两个组播组。

# 显示Switch A上VLAN 100内动态IGMP Snooping组播组的信息。

[SwitchA] display igmp-snooping group vlan 100

Total 1 entries.

 

VLAN 100: Total 1 entries.

  (0.0.0.0, 224.1.1.1)

    Host ports (2 in total):

      HGE1/0/3                             (00:03:23)

      HGE1/0/4                             (00:04:10)

由此可见,Host A和Host B所在的端口HundredGigE1/0/4和HundredGigE1/0/3均已加入组播组224.1.1.1,但都未加入组播组224.2.2.2,这表明组播组过滤器已生效。

1.10.2  基于VLAN的静态端口配置举例

1. 组网需求

·     如图1-5所示,Router A通过HundredGigE1/0/2接口连接组播源(Source),通过HundredGigE1/0/1接口连接Switch A;Router A上运行IGMPv2,Switch A、Switch B和Switch C上都运行版本2的IGMP Snooping,并由Router A充当IGMP查询器。

·     Host A和Host C均为组播组224.1.1.1的固定接收者(Receiver),通过将Switch C上的端口HundredGigE1/0/3和HundredGigE1/0/5配置为组播组224.1.1.1的静态成员端口,可以增强组播数据在传输过程中的可靠性。

·     假设由于受STP等链路层协议的影响,为了避免出现环路,Switch A—Switch C的转发路径在正常情况下是阻断的,组播数据只能通过Switch A—Switch B—Switch C的路径传递给连接在Switch C上的接收者;要求通过将Switch A的端口HundredGigE1/0/3配置为静态路由器端口,以保证当Switch A—Switch B—Switch C的路径出现阻断时,组播数据可以几乎不间断地通过Switch A—Switch C的新路径传递给接收者。

说明

如果没有配置静态路由器端口,那么当Switch A—Switch B—Switch C的路径出现阻断时,至少需要等待一个IGMP查询和响应周期完成后,组播数据才能通过Switch A—Switch C的新路径传递给接收者,组播数据的传输在这个过程中将中断。

有关STP(Spanning Tree Protocol,生成树协议)的详细介绍,请参见“二层技术-以太网交换配置指导”中的“生成树”。

 

2. 组网图

图1-5 基于VLAN的静态端口配置组网图

 

3. 配置步骤

(1)     配置IP地址

请按照图1-5配置各接口的IP地址和子网掩码,具体配置过程略。

(2)     配置Router A

# 使能IP组播路由,在接口HundredGigE1/0/2上使能PIM-DM,并在接口HundredGigE1/0/1上使能IGMP。

<RouterA> system-view

[RouterA] multicast routing

[RouterA-mrib] quit

[RouterA] interface hundredgige 1/0/1

[RouterA-HundredGigE1/0/1] igmp enable

[RouterA-HundredGigE1/0/1] quit

[RouterA] interface hundredgige 1/0/2

[RouterA-HundredGigE1/0/2] pim dm

[RouterA-HundredGigE1/0/2] quit

(3)     配置Switch A

# 全局使能IGMP Snooping。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/3添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchA] vlan 100

[SwitchA-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/3

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] quit

# 把HundredGigE1/0/3配置为静态路由器端口。

[SwitchA] interface hundredgige 1/0/3

[SwitchA-HundredGigE1/0/3] igmp-snooping static-router-port vlan 100

[SwitchA-HundredGigE1/0/3] quit

(4)     配置Switch B

# 全局使能IGMP Snooping。

<SwitchB> system-view

[SwitchB] igmp-snooping

[SwitchB-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1和HundredGigE1/0/2添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchB] vlan 100

[SwitchB-vlan100] port hundredgige 1/0/1 hundredgige 1/0/2

[SwitchB-vlan100] igmp-snooping enable

[SwitchB-vlan100] quit

(5)     配置Switch C

# 全局使能IGMP Snooping。

<SwitchC> system-view

[SwitchC] igmp-snooping

[SwitchC-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/5添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchC] vlan 100

[SwitchC-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/5

[SwitchC-vlan100] igmp-snooping enable

[SwitchC-vlan100] quit

# 分别在端口HundredGigE1/0/3和HundredGigE1/0/5上配置静态加入组播组224.1.1.1。

[SwitchC] interface hundredgige 1/0/3

[SwitchC-HundredGigE1/0/3] igmp-snooping static-group 224.1.1.1 vlan 100

[SwitchC-HundredGigE1/0/3] quit

[SwitchC] interface hundredgige 1/0/5

[SwitchC-HundredGigE1/0/5] igmp-snooping static-group 224.1.1.1 vlan 100

[SwitchC-HundredGigE1/0/5] quit

4. 验证配置

# 显示Switch A上VLAN 100内静态路由器端口的信息。

[SwitchA] display igmp-snooping static-router-port vlan 100

VLAN 100:

  Router ports (1 in total):

    HGE1/0/3

由此可见,Switch A上的端口HundredGigE1/0/3已经成为了静态路由器端口。

# 显示Switch C上VLAN 100内静态IGMP Snooping组播组的信息。

[SwitchC] display igmp-snooping static-group vlan 100

Total 1 entries.

 

VLAN 100: Total 1 entries.

  (0.0.0.0, 224.1.1.1)

    Host ports (2 in total):

      HGE1/0/3

      HGE1/0/5

由此可见,Switch C上的端口HundredGigE1/0/3和HundredGigE1/0/5已经成为了组播组224.1.1.1的静态成员端口。

1.10.3  基于VLAN的IGMP Snooping查询器配置举例

1. 组网需求

·     如图1-6所示,在一个没有三层设备的纯二层网络环境中,组播源Source 1和Source 2分别向组播组224.1.1.1和225.1.1.1发送组播数据,Host A和Host C是组播组224.1.1.1的接收者(Receiver),Host B和Host D则是组播组225.1.1.1的接收者;所有接收者均使用IGMPv2,所有交换机上都运行版本2的IGMP Snooping,并选择距组播源较近的Switch A来充当IGMP Snooping查询器。

·     为防止交换机在没有二层组播转发表项时将组播数据在VLAN内广播,在所有交换机上都开启丢弃未知组播数据报文功能;同时,由于交换机不会将收到源IP地址为0.0.0.0的IGMP查询报文的端口设置为动态路由器端口,从而会影响二层组播转发表项的建立并导致组播数据无法正常转发,因此需要将IGMP查询报文的源IP地址配置为非0.0.0.0以避免此问题。

2. 组网图

图1-6 基于VLAN的IGMP Snooping查询器配置组网图

 

3. 配置步骤

(1)     配置Switch A

# 全局使能IGMP Snooping。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/3添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchA] vlan 100

[SwitchA-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/3

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] igmp-snooping drop-unknown

# 在VLAN 100内开启IGMP Snooping查询器。

[SwitchA-vlan100] igmp-snooping querier

[SwitchA-vlan100] quit

# 在VLAN 100内将IGMP普遍组查询和特定组查询报文的源IP地址均配置为192.168.1.1。

[SwitchA-vlan100] igmp-snooping general-query source-ip 192.168.1.1

[SwitchA-vlan100] igmp-snooping special-query source-ip 192.168.1.1

[SwitchA-vlan100] quit

(2)     配置Switch B

# 全局使能IGMP Snooping。

<SwitchB> system-view

[SwitchB] igmp-snooping

[SwitchB-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/4添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchB] vlan 100

[SwitchB-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/4

[SwitchB-vlan100] igmp-snooping enable

[SwitchB-vlan100] igmp-snooping drop-unknown

[SwitchB-vlan100] quit

(3)     配置Switch C

# 全局使能IGMP Snooping。

<SwitchC> system-view

[SwitchC] igmp-snooping

[SwitchC-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/3添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchC] vlan 100

[SwitchC-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/3

[SwitchC-vlan100] igmp-snooping enable

[SwitchC-vlan100] igmp-snooping drop-unknown

[SwitchC-vlan100] quit

(4)     配置Switch D

# 全局使能IGMP Snooping。

<SwitchD> system-view

[SwitchD] igmp-snooping

[SwitchD-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/2添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchD] vlan 100

[SwitchD-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/2

[SwitchD-vlan100] igmp-snooping enable

[SwitchD-vlan100] igmp-snooping drop-unknown

[SwitchD-vlan100] quit

4. 验证配置

当IGMP Snooping查询器开始工作之后,除查询器以外的所有交换机都能收到IGMP普遍组查询报文。

# 显示Switch B上收到的IGMP报文的统计信息。

[SwitchB] display igmp-snooping statistics

Received IGMP general queries:  3

Received IGMPv1 reports:  0

Received IGMPv2 reports:  12

Received IGMP leaves:  0

Received IGMPv2 specific queries:  0

Sent     IGMPv2 specific queries:  0

Received IGMPv3 reports:  0

Received IGMPv3 reports with right and wrong records:  0

Received IGMPv3 specific queries:  0

Received IGMPv3 specific sg queries:  0

Sent     IGMPv3 specific queries:  0

Sent     IGMPv3 specific sg queries:  0

Received PIMv2 hello:  0

Received error IGMP messages:  0

1.10.4  基于VLAN的IGMP Snooping Proxy配置举例

1. 组网需求

·     如图1-7所示,Router A通过HundredGigE1/0/2接口连接组播源(Source),通过HundredGigE1/0/1接口连接Switch A;Router A上运行IGMPv2,Switch A上运行版本2的IGMP Snooping,并由Router A充当IGMP查询器。

·     通过配置,使Switch A能够代理下游主机向Router A发送的IGMP报告报文和离开报文,以及响应Router A发来的IGMP查询报文并向下游主机转发。

2. 组网图

图1-7 基于VLAN的IGMP Snooping Proxy配置组网图

3. 配置步骤

(1)     配置IP地址

请按照图1-7配置各接口的IP地址和子网掩码,具体配置过程略。

(2)     配置Router A

# 使能IP组播路由,在接口HundredGigE1/0/2上使能PIM-DM,并在接口HundredGigE1/0/1上使能IGMP。

<RouterA> system-view

[RouterA] multicast routing

[RouterA-mrib] quit

[RouterA] interface hundredgige 1/0/1

[RouterA-HundredGigE1/0/1] igmp enable

[RouterA-HundredGigE1/0/1] pim dm

[RouterA-HundredGigE1/0/1] quit

[RouterA] interface hundredgige 1/0/2

[RouterA-HundredGigE1/0/2] pim dm

[RouterA-HundredGigE1/0/2] quit

(3)     配置Switch A

# 全局使能IGMP Snooping。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/1到HundredGigE1/0/4添加到该VLAN中;在该VLAN内使能IGMP Snooping,并使能IGMP Snooping Proxy。

[SwitchA] vlan 100

[SwitchA-vlan100] port hundredgige 1/0/1 to hundredgige 1/0/4

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] igmp-snooping proxy enable

[SwitchA-vlan100] quit

4. 验证配置

当配置完成后,Host A和Host B分别发送组地址为224.1.1.1的IGMP加入报文,Switch A收到该报文后通过其路由器端口HundredGigE1/0/1向Router A也发送该组的加入报文。通过使用display igmp-snooping group和display igmp group命令可以分别查看IGMP Snooping组和IGMP组的信息,例如:

# 查看Switch A上IGMP Snooping组播组的信息。

[SwitchA] display igmp-snooping group

 Total 1 entries.

 

VLAN 100: Total 1 entries.

  (0.0.0.0, 224.1.1.1)

    Host ports (2 in total):

      HGE1/0/3                                     (00:04:00)

      HGE1/0/4                                     (00:04:04)

# 查看Router A上IGMP组的信息。

[RouterA] display igmp group

IGMP groups in total: 1

 HundredGigE1/0/1(10.1.1.1):

  IGMP groups reported in total: 1

   Group address   Last reporter   Uptime      Expires

   224.1.1.1       0.0.0.0         00:00:31    00:02:03

当Host A离开组播组224.1.1.1时,向Switch A发送该组的IGMP离开报文,但由于Host B仍未离开该组,因此Switch A并不会删除该组,也不会向Router A发送该组的离开报文,只是在该组对应转发表项的成员端口列表中将端口HundredGigE1/0/4删除。通过使用display igmp-snooping group命令可以查看IGMP Snooping组的信息,例如:

# 查看Switch A上IGMP Snooping组播组的信息。

[SwitchA] display igmp-snooping group

Total 1 entries.

 

VLAN 100: Total 1 entries.

  (0.0.0.0, 224.1.1.1)

    Host ports (1 in total):

      HGE1/0/3                                     ( 00:01:23 )

1.10.5  基于VSI的IGMP Snooping配置举例

1. 组网需求

·     如图1-8所示,VPN a中有三个站点,各站点之间通过VPLS网络互连。

·     站点1中的组播源(Source)、站点2中的组播接收者(Receiver)Host A和站点3中的普通主机Host B均通过VLAN 100分别与CE 1、CE 2和CE 3相连。

·     通过配置,在VPLS网络中实现二层组播转发。

2. 组网图

图1-8 基于VSI的IGMP Snooping配置组网图

 

设备

接口

IP地址

设备

接口

IP地址

PE 1

Vlan-int101

10.110.1.1/24

PE 3

Vlan-int102

10.110.2.2/24

 

Vlan-int102

10.110.2.1/24

 

Vlan-int103

10.110.3.2/24

 

Loop0

1.1.1.1/32

 

Loop0

3.3.3.3/32

PE 2

Vlan-int101

10.110.1.2/24

 

 

 

 

Vlan-int103

10.110.3.1/24

 

 

 

 

Loop0

2.2.2.2/32

 

 

 

 

3. 配置步骤

(1)     配置IP地址和单播路由协议

请按照图1-8在VPLS网络中配置各接口的IP地址和子网掩码,并在VPLS网络内的各交换机上配置OSPF协议,具体配置过程略。

(2)     配置CE 1

# 全局使能IGMP Snooping。

<CE1> system-view

[CE1] igmp-snooping

[CE1-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/2添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[CE1] vlan 100

[CE1-vlan100] port hundredgige 1/0/2

[CE1-vlan100] igmp-snooping enable

[CE1-vlan100] igmp-snooping drop-unknown

# 配置端口HundredGigE1/0/1为Trunk模式,并允许VLAN 100报文通过。

[CE1] interface hundredgige 1/0/1

[CE1-HundredGigE1/0/1] port link-type trunk

[CE1-HundredGigE1/0/1] port trunk permit vlan 100

[CE1-HundredGigE1/0/1] quit

# 在VLAN 100内使能IGMP Snooping查询器,并将IGMP普遍组查询和特定组查询报文的源IP地址均设置为192.168.1.100。

[CE1-vlan100] igmp-snooping querier

[CE1-vlan100] igmp-snooping general-query source-ip 192.168.1.100

[CE1-vlan100] igmp-snooping special-query source-ip 192.168.1.100

(3)     配置CE 2

# 全局使能IGMP Snooping。

<CE2> system-view

[CE2] igmp-snooping

[CE2-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/2添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[CE2] vlan 100

[CE2-vlan100] port hundredgige 1/0/2

[CE2-vlan100] igmp-snooping enable

[CE2-vlan100] igmp-snooping drop-unknown

# 配置端口HundredGigE1/0/1为Trunk模式,并允许VLAN 100报文通过。

[CE2] interface hundredgige 1/0/1

[CE2-HundredGigE1/0/1] port link-type trunk

[CE2-HundredGigE1/0/1] port trunk permit vlan 100

[CE2-HundredGigE1/0/1] quit

(4)     配置CE 3

# 全局使能IGMP Snooping。

<CE3> system-view

[CE3] igmp-snooping

[CE3-igmp-snooping] quit

# 创建VLAN 100,把端口HundredGigE1/0/2添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[CE3] vlan 100

[CE3-vlan100] port hundredgige 1/0/2

[CE3-vlan100] igmp-snooping enable

[CE3-vlan100] igmp-snooping drop-unknown

# 配置端口HundredGigE1/0/1为Trunk模式,并允许VLAN 100报文通过。

[CE3] interface hundredgige 1/0/1

[CE3-HundredGigE1/0/1] port link-type trunk

[CE3-HundredGigE1/0/1] port trunk permit vlan 100

[CE3-HundredGigE1/0/1] quit

(5)     配置PE 1

# 配置本节点的LSR ID为1.1.1.1,并使能L2VPN功能和LDP能力。

<PE1> system-view

[PE1] mpls lsr-id 1.1.1.1

[PE1] l2vpn enable

[PE1] mpls ldp

[PE1-ldp] quit

# 在接口Vlan-interface101和Vlan-interface102上分别使能MPLS能力和LDP能力。

[PE1] interface vlan-interface 101

[PE1-Vlan-interface101] mpls enable

[PE1-Vlan-interface101] mpls ldp enable

[PE1-Vlan-interface101] quit

[PE1] interface vlan-interface 102

[PE1-Vlan-interface102] mpls enable

[PE1-Vlan-interface102] mpls ldp enable

[PE1-Vlan-interface102] quit

# 创建VSI aaa,指定其使用的PW信令协议为静态配置方式,并配置PW。

[PE1] vsi aaa

[PE1-vsi-aaa] pwsignaling static

[PE1-vsi-aaa-static] peer 2.2.2.2 pw-id 3 in-label 100 out-label 100

[PE1-vsi-aaa-static-2.2.2.2-3] quit

[PE1-vsi-aaa-static] peer 3.3.3.3 pw-id 3 in-label 200 out-label 200

[PE1-vsi-aaa-static-3.3.3.3-3] quit

[PE1-vsi-aaa-static] quit

[PE1-vsi-aaa] quit

# 将接口HundredGigE1/0/1与VSI aaa关联。

[PE1] interface hundredgige 1/0/1

[PE1-HundredGigE1/0/1] service-instance 1

[PE1-HundredGigE1/0/1-srv1] encapsulation s-vid 5

[PE1-HundredGigE1/0/1-srv1] xconnect vsi aaa

[PE1-HundredGigE1/0/1-srv1] quit

[PE1-HundredGigE1/0/1] quit

# 全局使能IGMP Snooping。

[PE1] igmp-snooping

[PE1-igmp-snooping] quit

# 在VSI aaa内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[PE1] vsi aaa

[PE1-vsi-aaa] igmp-snooping enable

[PE1-vsi-aaa] igmp-snooping drop-unknown

[PE1-vsi-aaa] quit

(6)     配置PE 2

# 配置本节点的LSR ID为2.2.2.2,并使能L2VPN功能和LDP能力。

<PE2> system-view

[PE2] mpls lsr-id 2.2.2.2

[PE2] l2vpn enable

[PE2] mpls ldp

[PE2-ldp] quit

# 在接口Vlan-interface101和Vlan-interface103上分别使能MPLS能力和LDP能力。

[PE2] interface vlan-interface 101

[PE2-Vlan-interface101] mpls enable

[PE2-Vlan-interface101] mpls ldp enable

[PE2-Vlan-interface101] quit

[PE2] interface vlan-interface 103

[PE2-Vlan-interface103] mpls enable

[PE2-Vlan-interface103] mpls ldp enable

[PE2-Vlan-interface103] quit

# 创建VSI aaa,指定其使用的PW信令协议为静态配置方式,并配置PW。

[PE2] vsi aaa

[PE2-vsi-aaa] pwsignaling static

[PE2-vsi-aaa-static] peer 1.1.1.1 pw-id 3 in-label 100 out-label 100

[PE2-vsi-aaa-static-1.1.1.1-3] quit

[PE2-vsi-aaa-static] peer 3.3.3.3 pw-id 3 in-label 300 out-label 300

[PE2-vsi-aaa-static-3.3.3.3-3] quit

[PE2-vsi-aaa-static] quit

[PE2-vsi-aaa] quit

# 将接口HundredGigE1/0/1与VSI aaa关联。

[PE2] interface hundredgige 1/0/1

[PE2-HundredGigE1/0/1] service-instance 1

[PE2-HundredGigE1/0/1-srv1] encapsulation s-vid 5

[PE2-HundredGigE1/0/1-srv1] xconnect vsi aaa

[PE2-HundredGigE1/0/1-srv1] quit

[PE2-HundredGigE1/0/1] quit

# 全局使能IGMP Snooping。

[PE2] igmp-snooping

[PE2-igmp-snooping] quit

# 在VSI aaa内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[PE2] vsi aaa

[PE2-vsi-aaa] igmp-snooping enable

[PE2-vsi-aaa] igmp-snooping drop-unknown

[PE2-vsi-aaa] quit

(7)     配置PE 3

# 配置本节点的LSR ID为3.3.3.3,并使能L2VPN功能和LDP能力。

<PE3> system-view

[PE3] mpls lsr-id 3.3.3.3

[PE3] l2vpn enable

[PE3] mpls ldp

[PE3-ldp] quit

# 在接口Vlan-interface102和Vlan-interface103上分别使能MPLS能力和LDP能力。

[PE3] interface vlan-interface 102

[PE3-Vlan-interface102] mpls enable

[PE3-Vlan-interface102] mpls ldp enable

[PE3-Vlan-interface102] quit

[PE3] interface vlan-interface 103

[PE3-Vlan-interface103] mpls enable

[PE3-Vlan-interface103] mpls ldp enable

[PE3-Vlan-interface103] quit

# 创建VSI aaa,指定其使用的PW信令协议为静态配置方式,并配置PW。

[PE3] vsi aaa

[PE3-vsi-aaa] pwsignaling static

[PE3-vsi-aaa-static] peer 1.1.1.1 pw-id 3 in-label 200 out-label 200

[PE3-vsi-aaa-static-1.1.1.1-3] quit

[PE3-vsi-aaa-static] peer 2.2.2.2 pw-id 3 in-label 300 out-label 300

[PE3-vsi-aaa-static-2.2.2.2-3] quit

[PE3-vsi-aaa-static] quit

[PE3-vsi-aaa] quit

# 将接口HundredGigE1/0/1与VSI aaa关联。

[PE3] interface hundredgige 1/0/1

[PE3-HundredGigE1/0/1] service-instance 1

[PE3-HundredGigE1/0/1-srv1] encapsulation s-vid 5

[PE3-HundredGigE1/0/1-srv1] xconnect vsi aaa

[PE3-HundredGigE1/0/1-srv1] quit

[PE3-HundredGigE1/0/1] quit

# 全局使能IGMP Snooping。

[PE3] igmp-snooping

[PE3-igmp-snooping] quit

# 在VSI aaa内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[PE3] vsi aaa

[PE3-vsi-aaa] igmp-snooping enable

[PE3-vsi-aaa] igmp-snooping drop-unknown

[PE3-vsi-aaa] quit

4. 验证配置

# 在PE 1上显示VSI aaa内动态IGMP Snooping组播组的详细信息。

[PE1] display igmp-snooping group vsi aaa verbose

Total 1 entries.

 

VSI aaa: Total 1 entries.

  (0.0.0.0, 225.0.0.1)

    Attribute: global port

    FSM information: normal

    Host slots (0 in total):

    Host ports (1 in total):

      NPW (Link ID 9)                         (00:02:24)

        VLAN pairs (1 in total):

          Outer VLAN 100     Inner VLAN 0     (00:02:24)

# 在PE 1上显示VSI aaa内动态路由器端口的详细信息。

[PE1] display igmp-snooping router-port vsi aaa verbose

VSI aaa:

  Router slots (0 in total):

  Router ports (1 in total):

    GE1/0/1 (Link ID 0)                       (00:01:46)

      VLAN pairs (1 in total):

        Outer VLAN 100     Inner VLAN 0       (00:01:46)

# 在PE 2上显示VSI aaa内动态IGMP Snooping组播组的详细信息。

[PE2] display igmp-snooping group vsi aaa verbose

Total 1 entries.

 

VSI aaa: Total 1 entries.

  (0.0.0.0, 225.0.0.1)

    Attribute: global port

    FSM information: normal

    Host slots (0 in total):

    Host ports (1 in total):

      NPW (Link ID 8)                         (00:02:07)

        VLAN pairs (1 in total):

          Outer VLAN 100     Inner VLAN 0     (00:02:07)

# 在PE 2上显示VSI aaa内动态路由器端口的详细信息。

[PE2] display igmp-snooping router-port vsi aaa verbose

VSI aaa:

  Router slots (0 in total):

  Router ports (1 in total):

    NPW (Link ID 9)                           (00:01:26)

      VLAN pairs (1 in total):

        Outer VLAN 100     Inner VLAN 0        00:01:26)

# 在PE 3上显示VSI aaa内动态IGMP Snooping组播组的详细信息。

[PE3] display igmp-snooping group vsi aaa verbose

Total 1 entries.

 

VSI aaa: Total 1 entries.

  (0.0.0.0, 225.0.0.1)

    Attribute: global port

    FSM information: normal

    Host slots (0 in total):

    Host ports (1 in total):

      GE1/0/1 (Link ID 0)                     (00:02:04)

        VLAN pairs (1 in total):

          Outer VLAN 100     Inner VLAN 0     (00:02:04)

# 在PE 3上显示VSI aaa内动态路由器端口的详细信息。

[PE3] display igmp-snooping router-port vsi aaa verbose

VSI aaa:

  Router slots (0 in total):

  Router ports (1 in total):

    NPW (Link ID 9)                           (00:01:24)

      VLAN pairs (1 in total):

        Outer VLAN 100     Inner VLAN 0       (00:01:24)

1.10.6  基于VXLAN的IGMP Snooping配置举例

1. 组网需求

在VXLAN网络中,Switch A、Switch B、Switch C为与服务器连接的VTEP设备。虚拟机VM 1、VM 2和VM 3同属于VXLAN 10。通过VXLAN实现不同站点间的二层互联,且站点之间的泛洪流量采用单播路由方式(头端复制方式)转发。

要求基于现有VXLAN网络,通过配置IGMP Snooping功能,实现网络中二层组播转发,以减轻VTEP设备对已知组播数据报文的复制负担。

2. 组网图

图1-9 基于VXLAN的IGMP Snooping配置组网图

 

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int11

11.1.1.1/24

Switch C

Vlan-int13

13.1.1.3/24

 

Loop0

1.1.1.1/32

 

Loop0

3.3.3.3/32

Switch B

Vlan-int12

12.1.1.2/24

Switch D

Vlan-int11

11.1.1.4/24

 

Loop0

2.2.2.2/32

 

Vlan-int12

12.1.1.4/24

 

 

 

 

Vlan-int13

13.1.1.4/24

 

3. 配置步骤

(1)     配置IP地址和单播路由协议

请按照图1-9配置各接口的IP地址和子网掩码,并在IP核心网络内配置OSPF协议,具体配置过程略。

(2)     配置Switch A

# 开启L2VPN能力。

<SwitchA> system-view

[SwitchA] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchA] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 全局使能IGMP Snooping。

[SwitchA] igmp-snooping

[SwitchA -igmp-snooping] quit

# 在VSI vpna内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] igmp-snooping enable

[SwitchA-vsi-vpna] igmp-snooping drop-unknown

[SwitchA-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchA] interface loopback 0

[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255

[SwitchA-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道:

·     创建模式为VXLAN的隧道接口Tunnel1

·     指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1

·     指定隧道的目的端地址为Switch B上接口Loopback0的地址2.2.2.2。

[SwitchA] interface tunnel 1 mode vxlan

[SwitchA-Tunnel1] source 1.1.1.1

[SwitchA-Tunnel1] destination 2.2.2.2

[SwitchA-Tunnel1] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchA] interface tunnel 2 mode vxlan

[SwitchA-Tunnel2] source 1.1.1.1

[SwitchA-Tunnel2] destination 3.3.3.3

[SwitchA-Tunnel2] quit

# 配置Tunnel1和Tunnel2与VXLAN 10关联。

[SwitchA] vsi vpna

[SwitchA-vsi-vpna] vxlan 10

[SwitchA-vsi-vpna-vxlan-10] tunnel 1

[SwitchA-vsi-vpna-vxlan-10] tunnel 2

[SwitchA-vsi-vpna-vxlan-10] quit

[SwitchA-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchA] interface hundredgige 1/0/1

[SwitchA-HundredGigE1/0/1] service-instance 1000

[SwitchA-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchA-HundredGigE1/0/1-srv1000] quit

[SwitchA-HundredGigE1/0/1] quit

(3)     配置Switch B

# 开启L2VPN能力。

<SwitchB> system-view

[SwitchB] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchB] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 全局使能IGMP Snooping。

[SwitchB] igmp-snooping

[SwitchB -igmp-snooping] quit

# 在VSI vpna内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] igmp-snooping enable

[SwitchB-vsi-vpna] igmp-snooping drop-unknown

[SwitchB-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchB] interface loopback 0

[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255

[SwitchB-Loopback0] quit

# 在Switch A和Switch B之间建立VXLAN隧道。

[SwitchB] interface tunnel 2 mode vxlan

[SwitchB-Tunnel2] source 2.2.2.2

[SwitchB-Tunnel2] destination 1.1.1.1

[SwitchB-Tunnel2] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchB] interface tunnel 3 mode vxlan

[SwitchB-Tunnel3] source 2.2.2.2

[SwitchB-Tunnel3] destination 3.3.3.3

[SwitchB-Tunnel3] quit

# 配置Tunnel2和Tunnel3与VXLAN10关联。

[SwitchB] vsi vpna

[SwitchB-vsi-vpna] vxlan 10

[SwitchB-vsi-vpna-vxlan-10] tunnel 2

[SwitchB-vsi-vpna-vxlan-10] tunnel 3

[SwitchB-vsi-vpna-vxlan-10] quit

[SwitchB-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchB] interface hundredgige 1/0/1

[SwitchB-HundredGigE1/0/1] service-instance 1000

[SwitchB-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchB-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchB-HundredGigE1/0/1-srv1000] quit

[SwitchB-HundredGigE1/0/1] quit

(4)     配置Switch C

# 开启L2VPN能力。

<SwitchC> system-view

[SwitchC] l2vpn enable

# 配置VXLAN隧道工作在二层转发模式。

[SwitchC] undo vxlan ip-forwarding

# 创建VSI实例vpna和VXLAN 10。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 全局使能IGMP Snooping。

[SwitchB] igmp-snooping

[SwitchB -igmp-snooping] quit

# 在VSI vpna内使能IGMP Snooping,并开启丢弃未知组播数据报文和二层组播查询器功能。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] igmp-snooping enable

[SwitchC-vsi-vpna] igmp-snooping drop-unknown

[SwitchC-vsi-vpna] igmp-snooping general-query source-ip 3.3.3.3

[SwitchC-vsi-vpna] igmp-snooping querier

[SwitchC-vsi-vpna] quit

# 配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchC] interface loopback 0

[SwitchC-Loopback0] ip address 3.3.3.3 255.255.255.255

[SwitchC-Loopback0] quit

# 在Switch A和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 1 mode vxlan

[SwitchC-Tunnel1] source 3.3.3.3

[SwitchC-Tunnel1] destination 1.1.1.1

[SwitchC-Tunnel1] quit

# 在Switch B和Switch C之间建立VXLAN隧道。

[SwitchC] interface tunnel 3 mode vxlan

[SwitchC-Tunnel3] source 3.3.3.3

[SwitchC-Tunnel3] destination 2.2.2.2

[SwitchC-Tunnel3] quit

# 配置Tunnel1和Tunnel3与VXLAN 10关联。

[SwitchC] vsi vpna

[SwitchC-vsi-vpna] vxlan 10

[SwitchC-vsi-vpna-vxlan-10] tunnel 1

[SwitchC-vsi-vpna-vxlan-10] tunnel 3

[SwitchC-vsi-vpna-vxlan-10] quit

[SwitchC-vsi-vpna] quit

# 在接入服务器的接口HundredGigE1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 2的数据帧。

[SwitchC] interface hundredgige 1/0/1

[SwitchC-HundredGigE1/0/1] service-instance 1000

[SwitchC-HundredGigE1/0/1-srv1000] encapsulation s-vid 2

# 配置以太网服务实例1000与VSI实例vpna关联。

[SwitchC-HundredGigE1/0/1-srv1000] xconnect vsi vpna

[SwitchC-HundredGigE1/0/1-srv1000] quit

[SwitchC-HundredGigE1/0/1] quit

4.  验证配置

# 在Switch A上显示VSI vpna内动态路由器端口信息。

[SwitchA] display igmp-snooping router-port vsi vpna

VSI vpna:

  Router ports (1 in total):

    Tun2 (VXLAN ID 10)                        (00:04:17)

# 在Switch B上显示VSI vpna内动态路由器端口信息。

[SwitchB] display igmp-snooping router-port vsi vpna

VSI vpna:

  Router ports (1 in total):

    Tun3 (VXLAN ID 10)                        (00:04:07)

1.11  常见配置错误举例

1.11.1  二层设备不能实现二层组播

1. 故障现象

二层设备不能实现IGMP Snooping二层组播功能。

2. 故障分析

IGMP Snooping没有使能。

3. 处理过程

(1)     使用display igmp-snooping命令查看IGMP Snooping的运行状态。

(2)     如果是没有使能IGMP Snooping,则需先在系统视图下使用igmp-snooping命令全局使能IGMP Snooping,然后在VLAN视图/VSI视图下使用igmp-snooping enable命令使能VLAN内的IGMP Snooping。

(3)     如果只是没有在相应VLAN/VSI下使能IGMP Snooping,则只需在VLAN视图/VSI视图下使用igmp-snooping enable命令使能VLAN/VSI内的IGMP Snooping。

1.11.2  配置的组播组策略不生效

1. 故障现象

配置了组播组策略,只允许主机加入某些特定的组播组,但主机仍然可以收到发往其它组播组的组播数据。

2. 故障分析

·     ACL规则配置不正确;

·     组播组策略应用不正确;

·     没有开启丢弃未知组播数据报文的功能,使得属于过滤策略之外的组播数据报文(即未知组播数据报文)被广播。

3. 处理过程

(1)     使用display acl命令查看所配置的ACL规则,检查其是否与所要实现的组播组过滤策略相符合。

(2)     在IGMP-Snooping视图或相应的接口视图下使用display this命令查看是否应用了正确的组播组策略。如果没有,则使用group-policyigmp-snooping group-policy命令应用正确的组播组策略。

(3)     使用display igmp-snooping命令查看是否已开启丢弃未知组播数据报文的功能。如果没有开启,则使用igmp-snooping drop-unknown命令开启丢弃未知组播数据报文功能。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们