• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

08-IP组播配置指导

目录

02-IGMP Snooping配置

本章节下载 02-IGMP Snooping配置  (616.65 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 协议规范

1.2 IGMP Snooping配置限制和指导

1.3 基于VLAN的IGMP Snooping配置任务简介

1.4 开启设备的IGMP Snooping特性

1.5 使能VLAN的IGMP Snooping

1.6 配置IGMP Snooping基本功能

1.6.1 配置IGMP Snooping版本

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

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

1.7 配置IGMP Snooping端口功能

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

1.7.2 配置静态成员端口

1.7.3 配置静态路由器端口

1.7.4 配置模拟主机加入

1.7.5 配置端口快速离开功能

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

1.8 配置IGMP Snooping查询器

1.8.1 开启IGMP Snooping查询器

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

1.9 调整IGMP报文

1.9.1 配置IGMP报文的源IP地址

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

1.10 配置IGMP Snooping策略

1.10.1 配置组播组过滤器

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

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

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

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

1.10.6 配置组播组替换功能

1.11 IGMP Snooping显示和维护

1.12 IGMP Snooping典型配置举例

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

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

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

1.13 IGMP Snooping常见故障处理

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

1.13.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时,组播数据在二层网络中被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层网络中被广播,而被组播给指定的接收者。

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

 

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

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

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

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

1.1.2  IGMP Snooping端口分类

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

图1-2 IGMP Snooping端口示意图

 

1. 路由器端口

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

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

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

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

说明

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

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

 

2. 成员端口

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

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

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

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

说明

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

 

1.1.3  IGMP Snooping工作机制

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

说明

本节中所描述的增删端口动作均只针对动态端口,静态端口只能通过相应的配置进行增删,具体步骤请参见“1.7.2  配置静态成员端口”和“1.7.3  配置静态路由器端口

 

1. 普遍组查询

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

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

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

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

2. 报告成员关系

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

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

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

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

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

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

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

说明

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

 

3. 离开组播组

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

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

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

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

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

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

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

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

1.1.4  协议规范

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

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

1.2  IGMP Snooping配置限制和指导

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

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

使能全局IGMP Snooping后,若还需在某指定VLAN内配置其他IGMP Snooping功能,则必须在这些VLAN下使能IGMP Snooping。

对于既可在VLAN视图下配置,又可在IGMP-Snooping视图下对多个VLAN进行配置的功能,两个视图下配置的优先级相同,最新配置生效。

对于既可在VLAN视图下配置,又可在IGMP-Snooping视图下对所有VLAN配置的功能,VLAN视图下的配置的优先级较高。

对于既可在接口视图下配置,又可在IGMP-Snooping视图下配置的功能,IGMP-Snooping视图下的配置对指定VLAN内的所有端口生效,接口视图下配置只对当前接口生效,且接口视图下的配置优先级较高。

1.3  基于VLAN的IGMP Snooping配置任务简介

基于VLAN的IGMP Snooping配置任务如下:

(1)     开启设备的IGMP Snooping特性

(2)     使能VLAN的IGMP Snooping

(3)     (可选)配置IGMP Snooping基本功能

¡     配置IGMP Snooping版本

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

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

(4)     (可选)配置IGMP Snooping端口功能

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

¡     配置静态成员端口

¡     配置静态路由器端口

¡     配置模拟主机加入

¡     配置端口快速离开功能

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

(5)     (可选)配置IGMP Snooping查询器

¡     开启IGMP Snooping查询器

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

(6)     (可选)调整IGMP报文

¡     配置IGMP报文的源IP地址

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

(7)     (可选)配置IGMP Snooping策略

¡     配置组播组过滤器

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

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

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

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

¡     配置组播组替换功能

1.4  开启设备的IGMP Snooping特性

1. 功能简介

只有在开启了设备的IGMP Snooping特性后,才能进行其它的IGMP Snooping相关配置。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启设备的IGMP Snooping特性,并进入IGMP-Snooping视图。

igmp-snooping

缺省情况下,设备的IGMP Snooping特性处于关闭状态。

1.5  使能VLAN的IGMP Snooping

1. 配置限制和指导

用户既可在IGMP-Snooping视图下对单个或多个VLAN进行配置,也可在VLAN视图下只对当前VLAN进行配置,二者的配置优先级相同。

在VLAN内使能了IGMP Snooping之后,IGMP Snooping只在属于该VLAN的端口上生效。

2. 使能单个或多个VLAN的IGMP Snooping

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     使能单个或多个VLAN的IGMP Snooping。

enable vlan vlan-list

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

3. 使能单个VLAN的IGMP Snooping

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     使能该VLAN的IGMP Snooping。

igmp-snooping enable

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

1.6  配置IGMP Snooping基本功能

1.6.1  配置IGMP Snooping版本

1. 功能简介

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

·     当IGMP Snooping的版本为2时,IGMP Snooping能够对IGMPv1和IGMPv2的报文以及IGMPv3的查询报文进行处理,对IGMPv3的成员关系报文则不进行处理,而是在VLAN内将其广播;

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

2. 配置限制和指导

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

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

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

有关静态加入的详细配置,请参见“1.7.2  配置静态成员端口

3. 配置多个VLAN内的IGMP Snooping版本

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     配置多个VLAN内的IGMP Snooping的版本。

version version-number vlan vlan-list

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

4. 配置单个VLAN内的IGMP Snooping版本

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     配置单个VLAN内的IGMP Snooping版本。

igmp-snooping version version-number

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

5. 在VSI内配置IGMP Snooping版本

(1)     进入系统视图。

system-view

(2)     进入VSI视图。

vsi vsi-name

(3)     在VSI内配置IGMP Snooping的版本。

igmp-snooping version version-number

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

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

1. 功能简介

用户可以调整IGMP Snooping转发表项(包括动态表项和静态表项)的全局最大数量,当设备上维护的表项数量达到或超过最大数量后,系统不再创建新的表项,也不会主动删除多余表项,直至有表项被老化或被手工删除,所以当设备上维护的表项数量达到或超过最大数量后,为避免此后无法再创建新的表项,建议用户手工删除多余表项。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     配置IGMP Snooping转发表项的全局最大数量。

entry-limit limit

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

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

1. 功能简介

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

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

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

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

last-member-query-interval interval

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

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

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     在VLAN内配置IGMP特定组查询报文的发送间隔。

igmp-snooping last-member-query-interval interval

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

1.7  配置IGMP Snooping端口功能

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

1. 功能简介

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

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

2. 配置限制和指导

请根据网络环境合理设置动态端口的老化时间,比如网络中组播组成员变动比较频繁,可以把动态成员端口老化时间设置小一些,避免一些无效表项老化时间过长。

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

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

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     全局配置动态路由器端口老化时间。

router-aging-time seconds

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

(4)     全局配置动态成员端口老化时间。

host-aging-time seconds

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

4. 在VLAN内配置动态端口老化定时器

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     在VLAN内配置动态路由器端口老化时间。

igmp-snooping router-aging-time seconds

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

(4)     在VLAN内配置动态成员端口老化时间。

igmp-snooping host-aging-time seconds

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

5. 在VSI内配置动态端口老化定时器

(1)     进入系统视图。

system-view

(2)     进入VSI视图。

vsi vsi-name

(3)     在VSI内配置动态路由器端口老化时间。

igmp-snooping router-aging-time seconds

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

(4)     在VSI内配置动态成员端口老化时间。

igmp-snooping host-aging-time seconds

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

1.7.2  配置静态成员端口

1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     配置静态成员端口。

igmp-snooping static-group group-address [ source-ip source-address ] vlan vlan-id

缺省情况下,端口不是静态成员端口。

1.7.3  配置静态路由器端口

1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     配置静态路由器端口。

igmp-snooping static-router-port vlan vlan-id

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

1.7.4  配置模拟主机加入

1. 功能简介

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

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

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

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

在二层设备的端口上配置了模拟主机加入后,模拟主机所采用的IGMP版本与IGMP Snooping的版本一致,并且该端口将作为动态成员端口参与动态成员端口的老化过程。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     配置模拟主机加入。

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

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

1.7.5  配置端口快速离开功能

1. 功能简介

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

2. 配置限制和指导

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

同时开启了二层和三层组播功能的网络中,当端口上的组播组成员需要快速离开时,只需通过本功能开启二层组播的端口快速离开功能,不建议同时开启三层组播的组播组成员快速离开功能(通过igmp fast-leave命令),否则可能会导致同VLAN内的其他端口上组播业务中断。有关igmp fast-leave命令的详细介绍,请参见“IP组播命令参考”中的“IGMP”。

3. 全局配置端口快速离开功能

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     全局开启端口快速离开功能。

fast-leave [ vlan vlan-list ]

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

4. 在端口上配置端口快速离开功能

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     在端口上开启端口快速离开功能。

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

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

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

1. 功能简介

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

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

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

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

2. 配置限制和指导

禁止端口成为动态路由器端口的配置与静态路由器端口的配置互不影响。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     禁止端口成为动态路由器端口。

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

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

1.8  配置IGMP Snooping查询器

1.8.1  开启IGMP Snooping查询器

1. 功能简介

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

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

2. 配置限制和指导

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

3. 在VLAN内开启IGMP Snooping查询器

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     开启IGMP Snooping查询器。

igmp-snooping querier

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

4. 在VSI内开启IGMP Snooping查询器

(1)     进入系统视图。

system-view

(2)     进入VSI视图。

vsi vsi-name

(3)     开启IGMP Snooping查询器。

igmp-snooping querier

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

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

1. 功能简介

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

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

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

2. 配置限制和指导

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

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

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

max-response-time seconds

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

4. 在VLAN内配置IGMP普遍组查询和响应

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     在VLAN内配置IGMP普遍组查询报文的发送间隔。

igmp-snooping query-interval interval

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

(4)     在VLAN内配置IGMP普遍组查询的最大响应时间。

igmp-snooping max-response-time seconds

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

1.9  调整IGMP报文

1.9.1  配置IGMP报文的源IP地址

1. 功能简介

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

用户也可以改变模拟主机发送的IGMP成员关系报告报文或IGMP离开组报文的源IP地址。

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

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     配置IGMP普遍组查询报文的源IP地址。

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

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

(4)     配置IGMP特定组查询报文的源IP地址。

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

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

(5)     配置IGMP成员关系报告报文的源IP地址。

igmp-snooping report source-ip ip-address

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

(6)     配置IGMP离开组报文的源IP地址。

igmp-snooping leave source-ip ip-address

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

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

1. 功能简介

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

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     全局配置IGMP报文的802.1p优先级。

dot1p-priority priority

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

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     在VLAN内配置IGMP报文的802.1p优先级。

igmp-snooping dot1p-priority priority

1.10  配置IGMP Snooping策略

1.10.1  配置组播组过滤器

1. 功能简介

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

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

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     全局配置组播组过滤器。

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

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

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

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     在端口上配置组播组过滤器。

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

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

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

1. 功能简介

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

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

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

2. 配置限制和指导

在开启IPv4组播数据报文源端口过滤功能时,系统将同时开启IPv6组播数据报文源端口过滤功能。

配置组播数据报文源端口过滤在全局配置或在端口上配置的优先级相同,最新配置生效。

本功能支持情况与设备型号有关,请以设备实际情况为准。

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

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

source-deny port interface-list

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

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

(1)     进入系统视图。

system-view

(2)     进入二层以太网接口视图。

interface interface-type interface-number

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

igmp-snooping source-deny

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

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

1. 功能简介

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

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

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

2. 配置限制和指导

在开启了丢弃未知IPv4组播数据报文功能之后,未知IPv6组播数据报文也将被丢弃。

在VLAN视图下开启了丢弃未知组播数据报文的功能之后,仍会向该VLAN内的其它路由器端口转发未知组播数据报文。

3. 在VLAN内配置丢弃未知组播数据报文

(1)     进入系统视图。

system-view

(2)     进入VLAN视图。

vlan vlan-id

(3)     在VLAN内开启丢弃未知组播数据报文功能。

igmp-snooping drop-unknown

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

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

1. 功能简介

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

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     开启IGMP成员关系报告报文抑制功能。

report-aggregation

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

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

1. 功能简介

通过配置端口加入的组播组最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量。本配置只对动态组播组有效,对静态组播组无效。

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     配置端口加入的组播组最大数量。

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

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

1.10.6  配置组播组替换功能

1. 功能简介

当端口上的组播组数目达到配置端口加入的组播组最大数量时,会自动丢弃新的IGMP成员关系报告报文。组播组替换功能开启后,当端口收到新的IGMP成员关系报告报文时,会自动离开IP地址最小的组播组并加入新的组播组。本功能主要应用于频道切换,以实现从一个组播组切换到另一个组播组。

2. 配置限制和指导

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

当设备上维护的IGMP Snooping转发表项达到或超过配置的IGMP Snooping转发表项的全局最大数量并且端口新加入的组播组不在设备维护的组播组列表中时,组播组替换功能不能生效。

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

(1)     进入系统视图。

system-view

(2)     进入IGMP-Snooping视图。

igmp-snooping

(3)     全局开启组播组替换功能。

overflow-replace [ vlan vlan-list ]

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

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

(1)     进入系统视图。

system-view

(2)     进入二层接口视图。

¡     进入二层以太网接口视图。

interface interface-type interface-number

¡     进入二层聚合接口视图。

interface bridge-aggregation interface-number

(3)     在端口上开启组播组替换功能。

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

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

1.11  IGMP Snooping显示和维护

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

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

表1-1 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  ]

(IRF模式)

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

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

(独立运行模式)

display igmp-snooping router-port [ verbose | vlan vlan-id[ slot slot-number ]

(IRF模式)

display igmp-snooping router-port [ verbose | vlan vlan-id] [ chassis chassis-number slot slot-number ]

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

(独立运行模式)

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

(IRF模式)

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

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

(独立运行模式)

display igmp-snooping static-router-port [ vlan vlan-id ] [ slot slot-number ]

(IRF模式)

display igmp-snooping static-router-port [ vlan vlan-id ] [ chassis chassis-number 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 ]

(IRF模式)

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

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

(独立运行模式)

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

(IRF模式)

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

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

(独立运行模式)

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

(IRF模式)

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

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

(独立运行模式)

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

(IRF模式)

display l2-multicast mac [ mac-address ] [ vlan vlan-id ] [ chassis chassis-number slot slot-number ]

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

(独立运行模式)

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

(IRF模式)

display l2-multicast mac forwarding [ mac-address ] [ vlan vlan-id ] [ chassis chassis-number 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报文和PIM hello报文的统计信息

reset igmp-snooping statistics

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

(独立运行模式)

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

(IRF模式)

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

 

1.12  IGMP Snooping典型配置举例

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

1. 组网需求

·     如图1-3所示,Router A通过GigabitEthernet2/0/2接口连接组播源(Source),通过GigabitEthernet2/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的接口GigabitEthernet2/0/3和GigabitEthernet2/0/4转发出去;同时,使Switch A将收到的未知组播数据直接丢弃,避免在其所属的VLAN 100内广播。

2. 组网图

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

3. 配置步骤

(1)     配置IP地址

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

(2)     配置Router A

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

<RouterA> system-view

[RouterA] multicast routing

[RouterA-mrib] quit

[RouterA] interface gigabitethernet 2/0/1

[RouterA-GigabitEthernet2/0/1] igmp enable

[RouterA-GigabitEthernet2/0/1] quit

[RouterA] interface gigabitethernet 2/0/2

[RouterA-GigabitEthernet2/0/2] pim dm

[RouterA-GigabitEthernet2/0/2] quit

(3)     配置Switch A

# 开启设备的IGMP Snooping特性。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

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

[SwitchA] vlan 100

[SwitchA-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/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

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

[SwitchA] interface gigabitethernet 2/0/3

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

[SwitchA-GigabitEthernet2/0/3] quit

[SwitchA] interface gigabitethernet 2/0/4

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

[SwitchA-GigabitEthernet2/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):

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

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

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

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

1. 组网需求

·     如图1-4所示,Router A通过GigabitEthernet2/0/2接口连接组播源(Source),通过GigabitEthernet2/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上的端口GigabitEthernet2/0/3和GigabitEthernet2/0/5配置为组播组224.1.1.1的静态成员端口,可以增强组播数据在传输过程中的可靠性。

·     假设由于受STP等链路层协议的影响,为了避免出现环路,Switch A—Switch C的转发路径在正常情况下是阻断的,组播数据只能通过Switch A—Switch B—Switch C的路径传递给连接在Switch C上的接收者;要求通过将Switch A的端口GigabitEthernet2/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-4 基于VLAN的静态端口配置组网图

3. 配置步骤

(1)     配置IP地址

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

(2)     配置Router A

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

<RouterA> system-view

[RouterA] multicast routing

[RouterA-mrib] quit

[RouterA] interface gigabitethernet 2/0/1

[RouterA-GigabitEthernet2/0/1] igmp enable

[RouterA-GigabitEthernet2/0/1] quit

[RouterA] interface gigabitethernet 2/0/2

[RouterA-GigabitEthernet2/0/2] pim dm

[RouterA-GigabitEthernet2/0/2] quit

(3)     配置Switch A

# 开启设备的IGMP Snooping特性。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

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

[SwitchA] vlan 100

[SwitchA-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/0/3

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] quit

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

[SwitchA] interface gigabitethernet 2/0/3

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

[SwitchA-GigabitEthernet2/0/3] quit

(4)     配置Switch B

# 开启设备的IGMP Snooping特性。

<SwitchB> system-view

[SwitchB] igmp-snooping

[SwitchB-igmp-snooping] quit

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

[SwitchB] vlan 100

[SwitchB-vlan100] port gigabitethernet 2/0/1 gigabitethernet 2/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,把端口GigabitEthernet2/0/1到GigabitEthernet2/0/5添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchC] vlan 100

[SwitchC-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/0/5

[SwitchC-vlan100] igmp-snooping enable

[SwitchC-vlan100] quit

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

[SwitchC] interface gigabitethernet 2/0/3

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

[SwitchC-GigabitEthernet2/0/3] quit

[SwitchC] interface gigabitethernet 2/0/5

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

[SwitchC-GigabitEthernet2/0/5] quit

4. 验证配置

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

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

VLAN 100:

  Router ports (1 in total):

    GE2/0/3

由此可见,Switch A上的端口GigabitEthernet2/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):

      GE2/0/3

      GE2/0/5

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

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

1. 组网需求

·     如图1-5所示,在一个没有三层设备的纯二层网络环境中,组播源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-5 基于VLAN的IGMP Snooping查询器配置组网图

3. 配置步骤

(1)     配置Switch A

# 开启设备的IGMP Snooping特性。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

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

[SwitchA] vlan 100

[SwitchA-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/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,把端口GigabitEthernet2/0/1到GigabitEthernet2/0/4添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchB] vlan 100

[SwitchB-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/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,把端口GigabitEthernet2/0/1到GigabitEthernet2/0/3添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchC] vlan 100

[SwitchC-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/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,把端口GigabitEthernet2/0/1到GigabitEthernet2/0/2添加到该VLAN中;在该VLAN内使能IGMP Snooping,并开启丢弃未知组播数据报文功能。

[SwitchD] vlan 100

[SwitchD-vlan100] port gigabitethernet 2/0/1 to gigabitethernet 2/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.13  IGMP Snooping常见故障处理

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

1. 故障现象

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

2. 故障分析

IGMP Snooping没有使能。

3. 处理过程

(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。

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

1. 故障现象

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

2. 故障分析

·     ACL规则配置不正确;

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

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

3. 处理过程

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

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

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

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

新华三官网
联系我们