IGMP Snooping配置

IGMP Snooping配置

IGMP Snooping配置在二层组播设备上,通过对上游三层设备和下游用户之间的IGMP报文进行分析,建立和维护二层组播转发表,实现组播数据报文在数据链路层的按需分发。

  • IGMP Snooping简介
    介绍IGMP Snooping的定义和目的。
  • IGMP Snooping原理描述
    介绍IGMP Snooping的实现原理。
  • IGMP Snooping应用场景
    介绍IGMP Snooping的应用场景。
  • IGMP Snooping配置任务概览
    介绍IGMP Snooping的配置任务概览。
  • IGMP Snooping配置注意事项
    介绍配置IGMP Snooping的注意事项。
  • IGMP Snooping缺省配置
    介绍缺省情况下,IGMP Snooping的配置信息。
  • 配置IGMP Snooping基本功能
    配置IGMP Snooping基本功能,设备可以建立并维护二层组播转发表,实现组播数据报文在数据链路层的按需分发。
  • 配置IGMP Snooping Proxy
    IGMP Snooping Proxy功能在IGMP Snooping的基础上使交换机代替上游三层设备向下游主机发送IGMP Query报文和代替下游主机向上游设备发送IGMP Report和Leave报文,这样能够有效的节约上游设备和本设备之间的带宽。
  • 配置IGMP Snooping策略
    通过配置IGMP Snooping策略,可以控制用户对组播节目的点播,提高二层组播网络的可控性和安全性。
  • 配置IGMP Snooping成员关系快速刷新
    配置成员关系快速刷新,使组播组成员加入或者离开组播组时设备能够快速响应成员变化,可以提高组播业务运行效率和用户体验。
  • 配置IGMP Snooping SSM Mapping
    在二层网络中,如果某些用户主机只能运行IGMPv1或IGMPv2,但是这些用户希望享受SSM服务,就需要在设备上配置IGMP Snooping SSM Mapping功能。
  • 维护IGMP Snooping
    IGMP Snooping的维护,包括清除IGMP Snooping表项、清除IGMP Snooping统计信息、监控IGMP Snooping运行状况、配置存储的无效二层组播协议报文的最大个数。
  • IGMP Snooping配置举例
    针对如何配置IGMP Snooping基本功能、静态端口、IGMP Snooping查询器、IGMP Snooping Proxy、二层组播SSM Mapping,分别提供配置举例。
  • IGMP Snooping常见配置错误
    介绍了常见配置错误导致的故障现象以及处理步骤。

IGMP Snooping简介

介绍IGMP Snooping的定义和目的。

定义

IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议,通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出接口信息,从而管理和控制组播数据报文在数据链路层的转发。

目的

在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。如图9-1所示,在组播用户和三层组播设备Router之间,组播报文要经过二层交换机Switch。

图9-1 IGMP Snooping组网图

file

当Router将组播报文转发至Switch以后,Switch负责将组播报文转发给组播用户。由于组播报文的目的地址为组播组地址,在二层设备上是学习不到这一类MAC表项的,因此组播报文就会在所有接口进行广播,和它在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不但浪费了网络带宽,而且影响了网络信息安全。

IGMP Snooping有效地解决了这个问题。配置IGMP Snooping后,二层组播设备可以侦听和分析组播用户和上游路由器之间的IGMP报文,根据这些信息建立二层组播转发表项,控制组播数据报文转发。这样就防止了组播数据在二层网络中的广播。

IGMP Snooping原理描述

介绍IGMP Snooping的实现原理。

IGMP Snooping

基本原理

IGMP Snooping是二层组播的基本功能,可以实现组播数据在数据链路层的转发和控制。当主机和上游三层设备之间传递的IGMP协议报文通过二层组播设备时,IGMP Snooping分析报文携带的信息,根据这些信息建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。

图9-2所示,当组播数据从三层组播设备Router转发下来以后,处于接入边缘的二层组播设备Switch负责将组播数据转发给用户主机,使用户收看所点播的节目。当Switch没有运行IGMP Snooping时,组播数据在二层被广播;当Switch运行了IGMP Snooping后,组播数据不会在二层广播,而是会被Switch发送给指定的接收者。

使能IGMP Snooping功能后,Switch会侦听主机和上游三层设备之间交互的IGMP报文,通过分析报文中携带的信息(报文类型、组播组地址、接收报文的接口等),建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。

图9-2 二层组播设备运行IGMP Snooping前后对比

file

基本概念

图9-3所示,三层设备Router从组播源接收数据并向下游转发,在二层组播设备SwitchA和SwitchB上分别运行IGMP Snooping,HostA、HostB和HostC为接收者主机(即组播组成员)。

图9-3 IGMP Snooping相关端口

file

结合图9-3,介绍IGMP Snooping中相关端口的概念。

表9-1 IGMP Snooping中的端口角色

端口角色 作用 如何生成
路由器端口(Router Port)如SwitchA和SwitchB上蓝色圆圈表示的接口。说明:路由器端口都是指二层组播设备上朝向组播路由器的接口,而不是指路由器上的接口。 二层组播设备上朝向三层组播设备(DR或IGMP查询器)一侧的接口,二层组播设备从此接口接收组播数据报文。 由协议生成的路由器端口叫做动态路由器端口。收到源地址不为0.0.0.0的IGMP普遍组查询报文或PIM Hello报文(三层组播设备的PIM接口向外发送的用于发现并维持邻居关系的报文)的接口都将被视为动态路由器端口。手工配置的路由器端口叫做静态路由器端口。
成员端口(Member Port)如SwitchA和SwitchB上绿色方框表示的接口。 又称组播组成员端口,表示二层组播设备上朝向组播组成员一侧的端口,二层组播设备往此接口发送组播数据报文。 由协议生成的成员端口叫做动态成员端口。收到IGMP Report报文的接口,二层组播设备会将其标识为动态成员端口。手工配置的成员端口叫做静态成员端口。

路由器端口和成员端口,是二层组播转发表项中的一个重要信息:出接口。其中路由器端口相当于上游接口,成员端口相当于下游接口。通过协议报文学习到的端口,对应的为动态表项;而手工配置的端口,对应的为静态表项。

除了出接口外,每条表项还包括组播组地址和VLAN编号。

  • 组播组地址,可以为组播IP地址,也可以为组播IP地址映射后的组播MAC地址。按照IP地址转发的模式可以避免MAC地址转发模式中的地址重复问题。
  • VLAN编号,指定了二层广播域范围。如果使用了组播VLAN功能,入VLAN编号为组播VLAN的编号,出VLAN编号为主机所在的用户VLAN编号。否则入VLAN编号和出VLAN编号均为主机所在VLAN的编号。有关组播VLAN的详细介绍,请参见组播VLAN原理描述

工作机制

二层组播设备运行了IGMP Snooping后,收到不同的IGMP协议报文会进行不同的处理,并在此过程中建立起二层组播转发表项。

表9-2 IGMP Snooping对不同报文的处理方式

IGMP工作阶段 二层组播设备收到的报文类型 处理方式
普遍组查询IGMP查询器定期向本地网段内的所有主机与路由器(目的地址为224.0.0.1)发送IGMP普遍组查询报文,以查询该网段有哪些组播组的成员。 IGMP普遍组查询报文 向VLAN内除接收接口外的其他所有接口转发,并对接收接口做如下处理:如果路由器端口列表中尚未包含该接口,则将其添加进去,并启动老化定时器。如果路由器端口列表中已包含该动态路由器端口,则重置老化定时器。说明:收到IGMP普遍组查询报文时,动态路由器端口的老化定时器缺省为180秒,可以通过命令行配置。
成员报告有两种情况:成员收到IGMP普遍组查询报文后,回应IGMP报告报文。成员主动向IGMP查询器发送IGMP报告报文以声明加入该组播组。 IGMP报告报文 向VLAN内所有路由器端口转发。从报文中解析出主机要加入的组播组地址,并对接收接口做如下处理:如果不存在该组对应的转发表项,则创建转发表项,将该接口作为动态成员端口添加到出接口列表中,并启动老化定时器。如果已存在该组对应的转发表项,但出接口列表中未包含该接口,则将该接口作为动态成员端口添加到出接口列表,并启动老化定时器。如果已存在该组所对应的转发表项,且出接口列表中已包含该动态成员端口,则重置其老化定时器。说明:收到IGMP报告报文后,动态成员端口的老化定时器 = 健壮系数 x 普遍组查询间隔 + 最大响应时间。
成员离开组播组有两个阶段:运行IGMPv2或IGMPv3的成员发送IGMP离开报文,以通知IGMP查询器自己离开了某个组播组。IGMP查询器收到IGMP离开报文后,从中解析出组播组地址,并通过接收接口向该组播组发送IGMP特定组查询报文/IGMP特定源组查询报文。 IGMP离开报文 判断离开的组是否存在对应的转发表项,以及转发表项出接口列表是否包含报文的接收接口:如果不存在该组对应的转发表项,或者该组对应转发表项的出接口列表中不包含接收接口,二层组播设备不转发该报文,将其直接丢弃。如果存在该组对应的转发表项,且转发表项的出接口列表中包含该接口,二层组播设备会将报文向VLAN内所有路由器端口转发。对于IGMP离开报文的接收接口(假定为动态成员端口),二层组播设备在其老化时间内:如果从该接口收到了主机响应IGMP特定组/源组查询的报告报文,表示接口下还有该组的成员,于是重置其老化定时器。如果没有从该接口收到主机响应IGMP特定组/源组查询的报告报文,则表示接口下已没有该组成员,则在老化时间超时后,将接口从该组的转发表项出接口列表中删除。说明:收到IGMP离开报文后,动态成员端口的老化定时器 = 健壮系数 x 特定组查询间隔。
成员离开组播组有两个阶段:运行IGMPv2或IGMPv3的成员发送IGMP离开报文,以通知IGMP查询器自己离开了某个组播组。IGMP查询器收到IGMP离开报文后,从中解析出组播组地址,并通过接收接口向该组播组发送IGMP特定组查询报文/IGMP特定源组查询报文。 IGMP特定组查询报文/IGMP特定源组查询报文 向VLAN内除接收接口外的其他所有接口转发。

此外,当二层组播设备收到PIM Hello报文时,向VLAN内除接收接口外的其他所有接口转发,并对接收接口做如下处理:

  • 如果路由器端口列表中已包含该动态路由器端口,则重置老化定时器。
  • 如果路由器端口列表中尚未包含该接口,则将其添加进去,并启动老化定时器。

img

收到PIM Hello报文时,动态路由器端口的老化时间为Hello报文中Holdtime字段的值。

如果配置了静态路由器端口,二层组播设备收到IGMP报告和离开报文也会向静态路由器端口转发。如果配置了静态成员端口,则转发表项中会添加该接口为出接口。

当二层组播设备上建立了二层组播转发表项以后,二层组播设备接收到组播数据报文时,依据报文所属VLAN和报文的目的地址(即组播组地址)查找转发表项是否存在对应的“出接口信息”。如果存在,则将报文发送到相应的组播组成员端口和路由器端口;如果不存在,则丢弃该报文或将报文在VLAN内广播。

IGMP Snooping SSM Mapping

SSM(Source-Specific Multicast)称为指定源组播,SSM相比ASM(Any-Source Multicast)组播技术,可节省组播地址并有更好的安全性,但只有IGMPv3支持SSM。如果成员主机上运行IGMPv3,可以在成员报告报文中直接指定组播源地址。但是某些情况下,用户主机只能运行IGMPv1或IGMPv2,为了使其也能够使用SSM服务,组播设备需要提供IGMP Snooping SSM Mapping功能。

IGMP Snooping SSM Mapping就是IPv4组播网络中的二层SSM Mapping。IGMP Snooping SSM Mapping通过在二层设备上静态配置SSM地址的映射规则,将IGMPv1和IGMPv2报告报文中的(,G)信息转化为对应的(S,G)信息,以提供SSM组播服务。S表示组播源,G表示组播组,表示任意组播源。缺省情况下,SSM组地址范围为232.0.0.0~232.255.255.255。可以通过配置SSM组策略,改变SSM组地址范围。

图9-4所示,三个接收者运行不同版本的IGMP,HostB和HostC无法升级到IGMPv3,如果要为该网段中的所有主机提供SSM服务,可以在二层设备Switch上使用IGMP Snooping SSM Mapping功能。

图9-4 IGMP Snooping SSM Mapping组网图

file

假如在Switch上配置如下映射关系。

组播组地址 映射的组播源地址
232.1.1.0/24 10.10.1.1
232.1.2.0/24 10.10.2.2
232.1.3.0/24 10.10.3.3

则经过映射后,Switch收到HostB和HostC的成员报告报文时,首先判断报文携带的组地址是否在SSM范围内,发现在SSM范围内,则根据配置的映射规则生成如下所示的组播表项。

IGMPv1/IGMPv2报告报文中的组地址 生成的组播表项
232.1.1.1 (来自HostC) (10.10.1.1,232.1.1.1)
232.1.2.2 (来自HostB) (10.10.2.2,232.1.2.2)

如果报告报文携带的组地址在SSM范围内,但是Switch上没有对应的SSM Mapping规则,则无法提供SSM服务,丢弃该报文。

如果报告报文携带的组地址不在SSM范围内,则只提供ASM服务。

IGMP Snooping Proxy

基本原理

为了减少用户主机所在网段内的IGMP协议报文数量,可以在二层设备上部署IGMP Snooping Proxy功能,使其能够代理上游三层设备向下游主机发送IGMP查询报文,同时代理下游主机来向上游三层设备发送成员关系报告报文。配置了IGMP Snooping Proxy功能的设备称为IGMP Snooping代理,在其上游设备看来,它就相当于一台主机;在其下游设备看来,它相当于一台查询器。

图9-5所示,当Switch上运行IGMP Snooping时,Switch对上游Router的查询报文和下游主机的报告/离开报文都是原封不动地转发。当网络中存在大量用户主机时,冗余的IGMP报文给上游设备带来处理压力。

当Switch上配置IGMP Snooping Proxy时,Switch可以终结上游的IGMP查询报文,并且自己构造查询报文向下游主机发送;终结下游主机的IGMP报告/离开报文,并自己构造统一的报告/离开报文向上游发送。

图9-5 IGMP Snooping Proxy组网图

file

部署IGMP Snooping Proxy后,三层设备会感知到下面只有一个用户,二层设备直接跟下游用户和三层设备进行对话,而不再是一个完全透明的转发角色。IGMP Snooping Proxy有效减少IGMP协议在网络中的交互程度,节约带宽;有效屏蔽来自下游主机的大量协议报文,并接管了对主机的查询器功能,分担上游三层设备的性能负荷。

工作机制

运行IGMP Snooping Proxy的设备会参与二层组播转发表的建立和维护,依据转发表向有需要的用户主机发送组播数据。IGMP Snooping代理设备对IGMP报文的处理方式如表9-3所示。

表9-3 IGMP Snooping Proxy对接收到的协议报文的处理方式

IGMP报文类型 处理方式
IGMP普遍组查询报文 向本VLAN内除接收接口以外的所有接口发送IGMP普遍组查询报文;同时根据本地维护的组成员关系生成报告报文,向所有路由器端口发送。
IGMP特定组查询报文/IGMP特定源组查询报文 若该组对应的转发表项中还有成员端口,则向所有路由器端口回复该组的报告报文。
IGMP报告报文 若不存在该组对应的转发表项,则创建转发表项,将接收接口作为动态成员端口添加到出接口列表中,并启动其老化定时器,然后向所有路由器端口发送该组的报告报文;若已存在该组对应的转发表项,且其出接口列表中已包含该动态成员端口,则重置其老化定时器;若已存在该组对应的转发表项,但其出接口列表中不包含该接收接口,则将该接口作为动态成员端口添加到出接口列表中,并启动其老化定时器。
IGMP离开报文 向接收接口发送针对该组的特定组查询报文。只有当删除某组播组对应转发表项中的最后一个成员端口时,才会向所有路由器端口发送该组的离开报文。

IGMP Snooping应用场景

介绍IGMP Snooping的应用场景。

IGMP Snooping的应用

组网描述

图9-6所示,PIM网络中有多个组播源(如Source1和Source2)向局域网提供组播视频服务,局域网中部分用户(如HostA和HostC)希望通过组播方式接收视频数据。为了避免组播数据在局域网中广播而引起的网络带宽浪费和无法预知的网络信息安全问题,可以在二层组播设备上部署IGMP Snooping,实现组播数据在二层网络中的精确转发。

图9-6 IGMP Snooping应用组网图

file

部署特性

可以在图9-6所示组网中部署以下特性来实现组播数据在网络中的精确转发。

  • 在三层组播设备Router上部署PIM和IGMP,将组播数据引流到用户网段。
  • 在二层组播设备Switch上部署IGMP Snooping,使得Switch可以建立和维护二层组播转发表,指导组播数据只转发给有组播数据需求的用户。
  • Switch上部署IGMP Snooping后,还可以部署IGMP Snooping Proxy,减轻大量IGMP报文交互给Router带来的处理压力。
  • 当成员主机只能运行IGMPv1/IGMPv2又想使用SSM服务时(即想指定接收哪些组播源的组播数据),可以在Switch上部署IGMP Snooping SSM Mapping,为这部分用户提供SSM服务。

IGMP Snooping配置任务概览

介绍IGMP Snooping的配置任务概览。

IGMP Snooping的配置任务如表9-4所示。

表9-4 IGMP Snooping的配置任务概览

场景 描述 对应任务
配置IGMP Snooping基本功能 当组播数据转发至用户网段的二层组播设备时,为了避免组播数据在广播域中的泛滥,实现组播数据在数据链路层的精确转发,可以在二层组播设备上配置IGMP Snooping基本功能。配置IGMP Snooping后,二层组播设备可以侦听和分析组播用户和上游路由器之间的IGMP报文,从而建立二层组播转发表项,控制组播数据报文转发。这样就防止了组播数据在二层网络中的广播。 配置IGMP Snooping基本功能
配置IGMP Snooping Proxy 以下两种情况可以在二层组播设备上配置IGMP Snooping Proxy功能。三层组播设备未启用IGMP(例如配置了静态组播组),网络中没有IGMP查询器来维护组成员关系。二层组播设备上配置IGMP Snooping Proxy后,可以向网段内的主机发送查询报文,充当IGMP查询器。三层组播设备已启用IGMP。为了减少上游三层组播设备与用户主机所在网段之间的IGMP报告/离开报文数量,可以在二层组播设备上部署IGMP Snooping Proxy功能,使其能够代理下游主机向上游设备统一发送成员关系报告报文和离开报文,同时代理上游三层组播设备向下游主机发送查询报文。 配置IGMP Snooping Proxy
配置IGMP Snooping策略 如果需要在二层组播设备上对组播报文进行过滤,或者需要限制成员主机加入的组播组范围,可以在二层组播设备上配置相应的IGMP Snooping策略。 配置IGMP Snooping策略
配置成员关系快速刷新 为了提高组播业务运行效率、提升用户体验,使得组播组成员加入或者离开组播组时设备能够快速响应成员变化,可以在二层组播设备上配置成员关系快速刷新。 配置IGMP Snooping成员关系快速刷新
配置IGMP Snooping SSM Mapping 在二层网络中,如果某些成员主机只能运行IGMPv1或IGMPv2,但是这些用户希望享受SSM服务,就需要在二层组播设备上配置IGMP Snooping SSM Mapping功能。 配置IGMP Snooping SSM Mapping

IGMP Snooping配置注意事项

介绍配置IGMP Snooping的注意事项。

涉及网元

IPv4组播网络可能涉及以下网元:

  • 组播源:发送组播数据给组播用户主机,比如视频服务器。
  • 运行PIM(IPv4)协议的设备:通过PIM(IPv4)协议生成组播路由表项,转发组播数据。在IPv4组播网络里,所有三层设备上都需要运行PIM(IPv4)协议,否则组播转发路径无法正常建立。
  • 运行MSDP协议的设备:实现跨PIM网络的组播数据转发,所以主要应用在网络规模大的场合。比如两个AS系统需要实现组播通信,就在AS间的边缘设备上运行MSDP协议。
  • IGMP查询器:与组播用户主机之间交互IGMP报文,建立和维护组播组成员关系。在组播网络里,连接用户侧的三层设备都需要运行IGMP协议或者配置IGMP静态组播组,否则上游运行PIM协议的设备无法了解到用户需求,组播转发路径无法正常建立。
  • 运行IGMP Snooping的设备:通过侦听上游三层组播设备与组播用户主机之间交互的IGMP报文,生成二层组播转发表项,指导组播数据在二层网络的精确转发。为了避免组播报文二层网络广播,减少带宽浪费,可以在二层设备上配置IGMP Snooping功能。
  • 接收者:接收组播数据的组播用户。接收者可以为PC、机顶盒等,但是需要具备相应的组播客户端软件。

License支持

IGMP Snooping属于交换机基本软件功能,基本软件功能License在设备出厂时已经内置并已激活,不需要用户再手动激活。

版本支持

表9-5 支持基于VLAN的IGMP Snooping特性的最低软件版本

产品 最低支持版本
CE6881 V200R005C20
CE6820 V200R005C20
CE6863 V200R005C20
CE6881K V200R019C10
CE6881E V200R019C10
CE6863K V200R019C10
CE5881 V200R020C00

img

如果需要了解软件版本与交换机具体型号的配套信息,请查看硬件查询工具

软件版本演进关系:V200R005C20 -> V200R019C10 -> V200R020C00

特性依赖和限制

  • IGMP Snooping作为一个二层组播特性,本章中涉及到接口的配置,都是在二层物理接口(包括Eth-Trunk接口)下进行配置。
  • VLANIF接口下配置了PIM-DM后,对应的VLAN内不能再配置IGMP Snooping;同样,VLAN内配置了IGMP Snooping后,对应的VLANIF接口不能再配置PIM-DM。
  • 在二三层混跑场景中(即VLAN下配置二层组播,同时在对应的VLANIF接口下配置三层组播),以下功能必须同时配置才能保证组播流量正常按需转发:
    • VLAN下使能IGMP Snooping;
    • 对应的VLANIF接口下使能PIM(PIM-SM或双向PIM)和IGMP。
  • 配置VLAN内组播数据转发模式(分为按照IP地址转发和按照MAC地址转发两种模式)时,请注意:
    • 请在使能VLAN内的IGMP Snooping功能前配置VLAN内组播数据转发模式,配置完成后需要使能VLAN内的IGMP Snooping功能才能使配置生效。
    • 根据IPv4组播地址与IPv4组播MAC地址之间的映射关系,网络中可能会存在多个IPv4组播地址映射到同一IPv4组播MAC地址的情况。当VLAN内组播数据转发模式为按照MAC地址转发时,如果用户使用的组播IP地址与为协议预留的组播IP地址映射成了相同的IP组播MAC地址,会导致协议无法正常运行。例如:OSPF协议使用IP组播地址224.0.0.5发送协议报文,如果当前用户使用的IP组播地址是225.0.0.5,则以上两个IP组播地址映射后的IP组播MAC地址均为01-00-5E-00-00-05,就会造成OSPF协议不能正常运行。因此,在网络中规划IP组播地址时,应避免以上情况的发生。
    • 当VLAN内组播数据转发模式为按照MAC地址转发时,无法配置IGMP Snooping为v3版本。
    • 当VLAN内配置为MAC转发模式时,不支持以数据流信息建立表项,需要通过用户侧点播触发建立表项,无用户点播的情况下默认组播流量会在VLAN内广播。
  • 如果与VLAN对应的VLANIF接口上使能了三层组播功能(例如IGMP、PIM),则不能在该VLAN内配置IGMP Snooping查询器功能、Report和Leave报文抑制功能、IGMP Snooping Proxy功能。反之亦然。
  • 如果组播网络中已经存在IGMP查询器,不建议再配置IGMP Snooping查询器,否则可能会引起IGMP查询器重新选举。如果一定要配置IGMP Snooping查询器,请确保交换机发送的普遍组查询报文的源IP地址比上游IGMP查询器的IP地址大。
  • 在M-LAG上配置IGMP Snooping时,M-LAG主备设备上的IGMP Snooping查询器或者IGMP Snooping Proxy的配置必须保持一致。
  • 在M-LAG上配置IGMP Snooping时,在组播大规格场景下,组播路由表项和组播出接口大量表项下发,CPU使用率高,可能会影响协议报文转发。这种情况建议在M-LAG主备设备上均使用命令car packet-type multicast pps 100将组播业务car值调小至100。
  • 在同一VLAN内,以下功能不可同时配置:
    • IGMP Snooping查询器功能和IGMP Snooping Proxy功能。
    • Report和Leave报文抑制功能和IGMP Snooping Proxy功能。
  • IGMP Snooping不支持与VLAN Mapping业务叠加使用。

IGMP Snooping缺省配置

介绍缺省情况下,IGMP Snooping的配置信息。

表9-6 IGMP Snooping缺省配置

参数 缺省值
IGMP Snooping功能 未使能
IGMP Snooping版本 缺省情况下,IGMP Snooping可以处理IGMPv1、IGMPv2版本的报文。
IGMP Snooping端口学习功能 IGMP Snooping使能后,该功能默认使能
IGMP Snooping查询器 未使能
IGMP Snooping普遍组查询间隔 60s
IGMP Snooping报文抑制 未使能
IGMP Snooping Proxy 未使能
IGMP Snooping SSM Mapping 未使能

配置IGMP Snooping基本功能

配置IGMP Snooping基本功能,设备可以建立并维护二层组播转发表,实现组播数据报文在数据链路层的按需分发。

前置任务

在配置IGMP Snooping基本功能之前,需创建VLAN。

配置流程

使能IGMP Snooping功能配置IGMP Snooping版本为必选配置,其他为可选配置,请根据需要选配。

使能IGMP Snooping功能

背景信息

使能全局IGMP Snooping功能,是进行其他IGMP Snooping配置的前提。VLAN下使能IGMP Snooping功能,是VLAN下其他IGMP Snooping配置生效的前提。

缺省情况下,交换机的全局IGMP Snooping功能未使能。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令igmp snooping enable,使能全局IGMP Snooping功能。

  3. 执行命令vlan vlan-id,进入VLAN视图。

  4. (可选)执行命令multicast layer-2 forwarding-mode { ip | mac },配置VLAN中组播数据是按IP地址还是MAC地址转发。

    缺省情况下,交换机按IP模式转发组播数据。

    img

  • 配置VLAN中组播数据转发模式需要在没有使能该VLAN的IGMP Snooping功能时进行。配置完成后需要使能VLAN内IGMP Snooping功能才会生效。
  • 如果当前设备按MAC模式转发组播数据,在网络中规划组播IP地址时,请避免选择为协议预留的组播IP地址映射成相同组播MAC地址的组播IP地址。否则,可能造成使用保留组地址发送协议报文的协议无法正常运行。比如:OSPF协议使用224.0.0.5发送协议报文,映射后的组播MAC地址为01-00-5E-00-00-05。如果当前组播数据按MAC模式转发,并且使用的组播IP地址是225.0.0.5,就会造成OSPF协议不能正常运行。
  1. 执行命令igmp snooping enable,使能VLAN的IGMP Snooping功能。

    可以在系统视图下使用igmp snooping enable [ vlan { vlan-id1 [ to vlan-id2 ] } &<1-10> ]命令,使能多个VLAN的IGMP Snooping功能。

  2. 执行命令commit,提交配置。

配置IGMP Snooping版本

背景信息

IGMP协议用于组成员关系管理,运行于三层组播设备和成员主机之间的网段,有v1、v2、v3三个版本。在二层设备上配置IGMP Snooping版本,设备可以处理相应版本的IGMP报文。一般二层设备上配置和三层组播设备一致的版本。如果三层组播设备没有启用IGMP,则在二层设备上配置和成员主机相同或高于成员主机的版本。

同一VLAN内必须运行同一个版本的IGMP协议。如果VLAN内存在支持不同版本的主机,需要配置IGMP Snooping版本,使设备可以处理所有主机的报文。

缺省情况下,当设备上配置了IGMP Snooping V3版本时,设备是以IGMPv3标准版的简化版机制来处理收到的IGMPv3报文的。

  • IGMPv3标准版的简化版与标准版的完整版差异如下:
    • 当设备收到组地址为ASM范围内的MODE_IS_INCLUDE、ALLOW_NEW_SOURCES、BLOCK_OLD_SOURCES类型报文时,简化版丢弃报文,不进行处理;完整版正常处理。
    • 当设备收到组地址为ASM范围内的MODE_IS_EXCLUDE、CHANGE_TO_EXCLUDE_MODE、CHANGE_TO_INCLUDE_MODE类型的报文时,如果源个数非0,简化版按源个数为0处理;完整版正常处理。
    • 当设备收到组地址为SSM范围内的MODE_IS_EXCLUDE、CHANGE_TO_EXCLUDE_MODE类型报文时,如果源个数非0,简化版将根据设备上的SSM Mapping配置进行组播源与组播组的映射,如果映射失败,设备不处理;完整版根据IGMPv3报文中组播源与组播组映射进行处理。
  • 对于以下情况,标准版的简化版与标准版的完整版处理行为一致:
    • 当设备收到组地址为SSM范围内的MODE_IS_INCLUDE、CHANGE_TO_INCLUDE_MODE、ALLOW_NEW_SOURCES、BLOCK_OLD_SOURCES报文时。
    • 当设备收到组地址为SSM范围内的MODE_IS_EXCLUDE、CHANGE_TO_EXCLUDE_MODE类型报文,源个数为0时。
    • 当设备收到组地址为ASM范围内的MODE_IS_EXCLUDE、CHANGE_TO_EXCLUDE_MODE、CHANGE_TO_INCLUDE_MODE报文,源个数为0时。

可以通过命令igmp snooping version 3 standard-full配置IGMP Snooping V3标准版的完整版协议。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping version version,配置IGMP Snooping可以处理的IGMP版本。

    缺省情况下,设备可以处理IGMPv1和IGMPv2的报文,但无法处理IGMPv3的报文。

    img

当VLAN内的转发模式为基于MAC地址转发时,无法配置IGMPv3版本。

  1. (可选)执行命令igmp snooping version 3 standard-full,配置IGMP Snooping V3标准版的完整版协议。

    缺省情况下,当设备上配置了IGMP Snooping V3版本时,设备是以IGMPv3标准版的简化版机制来处理收到的IGMPv3报文的。

  2. 执行命令commit,提交配置。

(可选)配置静态路由器端口

背景信息

路由器端口一般是二层设备上朝向上游三层组播设备(组播路由器或三层交换机)的接口。VLAN内使能IGMP Snooping功能后,加入该VLAN的接口会从组播协议报文中学习表项。当一个接口接收到IGMP Query报文或PIM Hello报文时,二层设备会标识该接口为动态路由器端口。路由器端口主要有两个功能:

  • 接收上游的组播数据。
  • 指导IGMP Report/Leave报文转发。当VLAN内收到IGMP Report/Leave报文后,仅会向该VLAN内的路由器端口转发。

动态路由器端口会定时老化,当动态路由器端口在其老化时间超时前没有收到IGMP Query或者PIM Hello报文,设备将把该接口从路由器端口列表中删除。如果希望某接口长期稳定的转发IGMP Report/Leave报文到上游IGMP查询器,可配置该接口为静态路由器端口。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. (可选)配置禁止动态学习路由器端口。

    1. 执行命令vlan vlan-id,进入VLAN视图。

    2. 执行命令igmp snooping router-learning disable,禁止动态学习路由器端口。

    3. 执行命令quit,退出VLAN视图。

缺省情况下,VLAN的路由器端口动态学习功能处于使能状态。

  1. 执行命令interface interface-type interface-number,进入接口视图。

  2. 执行命令igmp snooping static-router-port vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>,配置接口为静态路由器端口。

  3. 执行命令commit,提交配置。

(可选)配置静态成员端口

背景信息

成员端口一般是设备上朝向接收者主机的接口,表示该接口下有组播组成员,可以通过组播协议动态学习或静态配置。VLAN内使能IGMP Snooping功能后,加入该VLAN的接口会从组播协议报文中学习表项。当一个接口收到IGMP Report报文时,设备会标识该接口为动态成员端口。动态成员端口会定时老化。

如果接口所连接的主机需要固定接收发往某组播组或组播源组的数据,可以配置该接口静态加入该组播组或组播源组,成为静态成员端口。静态成员端口不会老化。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令interface interface-type interface-number,进入接口视图。

  3. (可选)执行命令igmp snooping learning disable vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10> | all },禁止动态学习组播成员端口。

    缺省情况下,成员端口动态学习功能处于使能状态。禁止动态学习组播成员端口功能之后,如果要完成组播数据的转发,接口只能静态加入组播组。

  4. 执行命令igmp snooping static-group [ source-address source-ip-address ] group-address group-ip-address vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>,配置接口静态加入组播组,接口成为静态成员端口。也可以通过命令igmp snooping static-group [ source-address source-ip-address ] group-address group-ip-address1 to group-ip-address2 vlan vlan-id将接口批量加入组播组。

  5. 执行命令commit,提交配置。

(可选)配置IGMP Snooping查询器

背景信息

通过使能IGMP Snooping,二层设备就可以通过侦听IGMP查询器与用户主机间的IGMP协议报文,动态建立二层组播转发表项,实现二层组播。

但是当出现下面的情况时,即使二层设备运行了IGMP Snooping,也会由于侦听不到IGMP协议报文,而无法正常动态建立二层组播转发表项:

  • 上游三层组播设备在接口上未运行IGMP协议,而是配置了静态组播组。
  • 组播源和用户主机同属于一个二层网络,不需要三层组播设备。

此时,可通过在二层组播设备上配置IGMP Snooping查询器,代替三层组播设备向用户主机发送IGMP Query报文,从而解决此问题。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping querier enable,使能IGMP Snooping查询器功能。

    img

  • 如果与VLAN对应的三层VLANIF接口使能了三层组播功能(例如IGMP、PIM),则不能在该VLAN内使能IGMP Snooping查询器功能。
  • 使能IGMP Snooping查询器功能后,交换机会定时以广播的方式向VLAN内所有接口(包括路由器端口)发送IGMP Query报文,如果组播网络中已经存在IGMP查询器,可能会引起IGMP查询器重新选举。此时,建议不配置此功能;如果一定要配置IGMP Snooping查询器功能,请确保交换机发送的普遍组查询报文的源IP地址比上游IGMP查询器的IP地址大。
  • 在同一VLAN内,IGMP Snooping查询器功能和IGMP Snooping Proxy功能不能同时配置。
  1. (可选)执行命令igmp snooping querier-election,配置查询器选举功能。

    在同一VLAN下的多台设备都使能了查询器功能,需要配置该功能。在多台设备中选举出一台设备作为查询器,代替上游路由器向用户端发送Query报文。

  2. (可选)配置查询器参数。

    img

在配置参数时,要确保“IGMP查询报文最大响应时间”<“IGMP普遍组查询报文发送间隔”。

查询器参数 配置命令 参数说明 缺省值 支持的版本
普遍组查询报文的发送间隔 igmp snooping query interval query-interval 查询器周期性的发送普遍组查询报文,维护VLAN内的组成员关系,本参数定义了发送该报文的时间间隔。 60秒查询器发送普遍组查询报文的时间间隔的缺省值为60秒,但是RFC规定的缺省值是125秒。目前有些厂商是按照RFC实现的,即缺省值是125秒。为了与这些厂商的设备互通,需要修改其中之一的配置,使查询器发送普遍组查询报文的时间间隔保持一致。 IGMPv1、IGMPv2、IGMPv3
IGMP健壮系数 igmp snooping robust-count robust-count 健壮系数用来规定以下两个值:当查询器启动时发送“健壮系数”次的“普遍组查询报文”,发送时间间隔为“普遍组查询报文发送间隔”的1/4。当设备收到Leave报文后,发送“健壮系数”次的“IGMP特定组查询报文”,发送间隔为“特定组查询报文发送间隔”。 2 IGMPv1、IGMPv2、IGMPv3
IGMP查询报文的最大响应时间 igmp snooping query max-response-time max-response-time 当交换机收到主机的IGMP Report报文后,成员端口老化时间设置为:普遍组查询报文的发送间隔 × IGMP健壮系数 + 最大响应时间。组播组成员接收到一个IGMP查询报文后,会在最大响应时间内发送Report报文。 10秒 IGMPv2、IGMPv3
特定组查询报文的发送间隔 igmp snooping query last-member-interval last-member-interval 当交换机收到主机退出某组播组的Leave报文时,重置成员端口老化时间为:特定组查询报文发送间隔 × IGMP健壮系数。即会连续发送“IGMP健壮系数”次特定组成员查询报文,询问该组播组是否还存在成员。本参数定义了发送该报文的时间间隔。 1秒 IGMPv2、IGMPv3
  1. 执行命令quit,返回到系统视图。

  2. (可选)执行命令igmp snooping send-query source-address ip-address,配置IGMP普遍组查询报文的源IP地址。

    缺省情况下,IGMP Snooping查询器发送普遍组查询报文时源IP地址为192.168.0.1。当该地址已被网络中的其他设备占用时,可使用本命令配置为其他地址。如果系统视图和VLAN视图同时配置igmp-snooping send-query source-address,则VLAN视图下的配置优先生效。

  3. 执行命令commit,提交配置。

(可选)配置Report和Leave报文抑制

背景信息

IGMP协议通过周期性的查询和响应来维护组成员关系。在此过程中,如果多个成员加入了相同的组播组,会不断上送相同的Report报文给IGMP路由器。同时,当IGMPv2或IGMPv3的主机在离开某个组播组时,也会重复发送Leave报文。为了节约带宽,可以在二层设备上配置Report和Leave报文抑制功能。

当配置了对Report和Leave报文抑制后,针对每一个组播组,交换机会在第一次有成员加入需要建立组播表项,以及响应IGMP查询报文时,向上游转发一份Report报文;在最后一个组成员离开需要删除组播表项时,向上游转发一份Leave报文。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping report-suppress,配置对Report和Leave报文进行抑制。

    img

配置此功能需注意以下几点:

  • 在某VLAN下配置了报文抑制功能后,不能在与之对应的三层VLANIF接口使能三层组播功能(例如IGMP、PIM)。
  • 在同一VLAN内,Report和Leave报文抑制功能和IGMP Snooping Proxy不能同时配置。
  1. 执行命令commit,提交配置。

(可选)配置IPv4 Router-Alert选项

背景信息

出于兼容性考虑,缺省情况下交换机不对Router-Alert选项进行检查,当收到IGMP报文时,不管其IP报头中是否携带Router-Alert选项,设备都会将其送给上层协议进行处理。为了提高系统性能、减少不必要的开支,同时出于协议安全性的考虑,可以配置对Router-Alert选项进行检查,当收到的IGMP报文中没有携带Router-Alert选项时,就丢弃该报文。

缺省情况下,交换机在发送的IGMP报文中携带Router-Alert选项。

操作步骤

  1. 执行命令system-view,进入系统视图。
  2. 执行命令vlan vlan-id,进入VLAN视图。
  3. 执行命令igmp snooping require-router-alert,配置设备对接收的IGMP报文进行Router-Alert检查。
  4. 执行命令undo igmp snooping send-router-alert disable,配置设备发送的IGMP报文中携带Router-Alert选项。
  5. 执行命令commit,提交配置。

(可选)配置IGMP Snooping抑制动态加入

背景信息

当上游三层设备为其他厂商设备,并且在用户主机侧接口上配置了静态组播组,不允许下游用户主机动态加入或离开组播组时,可以在设备上配置IGMP Snooping抑制动态加入,禁止向上游设备转发包含静态组地址信息的Report和Leave报文。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping static-group suppress-dynamic-join,配置设备不转发包含静态组地址信息的Report和Leave报文。

    缺省情况下,设备收到包含静态组地址信息的Report和Leave报文后会向路由器端口转发。

  4. 执行命令commit,提交配置。

检查IGMP Snooping基本功能的配置结果

背景信息

完成上述配置后,可以在任意视图下执行以下命令,查看IGMP Snooping的配置、转发表项等信息。

操作步骤

  • 执行命令display igmp snooping [ vlan [ vlan-id ] ] configuration,查看IGMP Snooping的配置信息。
  • 执行命令display igmp snooping [ vlan [ vlan-id ] ],查看IGMP Snooping的运行参数信息。
  • 执行命令display igmp snooping port-info [ vlan vlan-id [ group-address group-address ] ] [ verbose ],查看组播组的成员端口信息。
  • 执行命令display igmp snooping router-port [ vlan vlan-id ],查看路由器端口信息。
  • 执行命令display multicast layer-2 ip fib [ vlan vlan-id [ [ source source-address ] group group-address ] ],查看VLAN内二层组播转发表信息。
  • 执行命令display multicast layer-2 forwarding-mode vlan [ vlan-id ],查看VLAN内组播数据转发模式。
  • 使用命令display igmp snooping querier vlan [ vlan-id ],查看IGMP Snooping查询器使能信息。

配置IGMP Snooping Proxy

IGMP Snooping Proxy功能在IGMP Snooping的基础上使交换机代替上游三层设备向下游主机发送IGMP Query报文和代替下游主机向上游设备发送IGMP Report和Leave报文,这样能够有效的节约上游设备和本设备之间的带宽。

前置任务

使能IGMP Snooping功能

背景信息

当三层设备没有启用IGMP时,例如只配置了静态组播组,网络中就不会有IGMP查询器来维护组成员关系。通过在二层设备上配置IGMP Snooping Proxy功能,可以使其发送Query报文,充当IGMP查询器。

当网络中运行了IGMP时,为了减少上游三层设备收到的IGMP Report报文和Leave报文的数量,可以在二层设备上部署IGMP Snooping Proxy功能,使其能够代理下游主机来向上游设备发送成员关系报告报文。

配置了IGMP Snooping Proxy功能的设备称为IGMP Snooping代理,在其上游设备看来,它就相当于一台主机;在其下游设备看来,它相当于一台查询器。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping proxy,使能IGMP Snooping Proxy功能。

    img

  • 如果与VLAN对应的三层VLANIF接口使能了三层组播功能(例如IGMP、PIM),则不能在该VLAN内使能IGMP Snooping Proxy功能。
  • 在指定VLAN内,可同时配置查询器和报文抑制功能共同完成IGMP Snooping Proxy功能。如果配置了IGMP Snooping Proxy功能,不能再配置查询器或报文抑制功能。有关查询器和报文抑制功能的配置请参见(可选)配置IGMP Snooping查询器(可选)配置Report和Leave报文抑制
  1. (可选)执行命令igmp snooping proxy router-protocol-pass,配置VLAN内对协议报文的处理方式为透传。

    缺省情况下,使能IGMP Snooping Proxy的设备会终结收到的协议报文,并从报文中学习到组播转发项。如果组网中上下游设备均使能IGMP Snooping Proxy,可以配置本命令,使得设备将从路由器端口收到的协议报文透传到其他路由器端口,并不学习此报文表项,防止上下游设备间互相学习表项影响表项老化。

  2. (可选)执行命令quit,退回到系统视图。

  3. (可选)执行命令interface interface-type interface-number,进入接口视图。

  4. (可选)执行命令igmp snooping proxy-uplink-port vlan vlan-id,配置设备禁止向路由器端口转发IGMP Query报文。

    启用IGMP Snooping Proxy功能后,交换机会定时以广播的方式向VLAN内所有接口(包括路由器端口)发送IGMP Query报文,可能会引起IGMP查询器重新选举。当上游已经启用IGMP时,配置此命令可以禁止交换机向路由器端口转发Query报文,避免查询器重新选举。

  5. 执行命令commit,提交配置。

检查配置结果

配置完成后,在任意视图下执行display igmp snooping [ vlan [ vlan-id ] ] configuration命令,可以查看到VLAN的IGMP Snooping Proxy配置情况。

配置IGMP Snooping策略

通过配置IGMP Snooping策略,可以控制用户对组播节目的点播,提高二层组播网络的可控性和安全性。

前置任务

配置IGMP Snooping基本功能

配置流程

以下任务是并列的、可选的,可以根据需要选择执行下面的配置任务。

配置组播组过滤策略

背景信息

组播组过滤策略主要用于对VLAN内的主机加入的组播组进行限制。本功能仅对动态加入的组生效,对静态组播组无效。本功能需要结合ACL使用,先创建ACL并在其规则中定义组播组过滤策略。ACL的配置方法,请参见《CloudEngine 9800, 6800, 5800系列交换机 配置指南-安全》中的“ACL配置”。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 通过以下两种方式配置组播组过滤策略,来满足不同的生效范围:

    • 配置VLAN内的组播组过滤策略。
      1. 执行命令vlan vlan-id,进入VLAN视图。
      2. 执行命令igmp snooping group-policy { acl-number | acl-name acl-name } [ version version-number ],配置VLAN内的组播组过滤策略。
    • 配置接口下的组播组过滤策略。
      1. 执行命令interface interface-type interface-number,进入接口视图。
      2. 执行命令igmp snooping group-policy { acl-number | acl-name acl-name } [ version version-number ] vlan { vlan-id1 [ to vlan-id2 ] }&<1-10>,配置接口下的组播组过滤策略。

    缺省情况下,VLAN内的主机可以加入任何组播组。如果不指定应用组播组过滤策略的IGMP报文版本,则交换机对接收到的所有IGMP报文都应用该组播组过滤策略。

    如果接口视图和VLAN视图都配置了针对同一VLAN的组播组过滤策略,先根据接口视图上配置的过滤策略进行判断,再根据VLAN视图上配置的过滤策略进行判断。

    img

创建VLAN的组播组过滤策略的ACL时,默认ACL规则permit对所有组播组都适用,如果要配置只允许接收某个组的组播数据,需要结合rule deny source any命令一起使用。

  1. 执行命令commit,提交配置。

配置接口下组播数据过滤

背景信息

当网络管理员希望拒绝某特定的组播数据报文时,可以在交换机接口下配置组播数据过滤,拒绝来自指定VLAN的组播数据报文。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令interface interface-type interface-number,进入接口视图。

  3. 执行命令multicast deny-vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>,对指定VLAN内的组播数据进行过滤。

    img

执行本命令时指定的VLAN应该是接口已经加入的VLAN。否则配置没有意义。

使用此命令只过滤同时满足以下条件的组播数据报文:

  • 报文目的MAC为IP组播MAC地址(即0x01005E开头的IPv4组播MAC地址)。
  • 报文封装的协议类型为UDP类型。
  1. 执行命令commit,提交配置。

配置丢弃未知组播流

背景信息

未知组播流,即组播转发表中不存在对应表项的组播报文。缺省情况下,交换机对未知组播流的处理方式为在VLAN内广播。通过配置丢弃未知组播流,可以节省瞬时带宽占用率。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令multicast drop-unknown,配置丢弃未知组播流。

    img

配置multicast drop-unknown命令后,

  • 对收到的未知组播数据报文,设备会将原始报文丢弃,表项生成后组播流可以转发。
  • 对于CE9860EI,对收到的使用保留组播地址的某些协议报文,如PIM Hello、OSPF、BFD报文等,设备会将其丢弃;对IGMP报文,如果设备未使能组播任何功能,则丢弃,如果设备使能了组播的功能,则不影响IGMP报文的正常处理。
  1. 执行命令commit,提交配置。

配置对组播报文的目的MAC地址和目的IP地址映射关系进行校验

背景信息

IP组播MAC地址与IP地址之间存在如下映射关系:IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位;IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。

配置multicast mac-ip-check enable命令后,设备会对收到的组播报文的目的MAC地址与目的IP地址进行校验,并进行如下处理:

  • 对于CE6881、CE5881、CE6881K、CE6820、CE6863K、CE6881E和CE6863,组播报文的目的MAC地址与目的IP地址不符合上述映射关系时,设备会将其丢弃;
  • 对于CE9860EI,组播报文的目的MAC地址与目的IP地址不符合上述映射关系时:
    • 若设备上仅配置了三层组播,没有配置二层组播IGMP Snooping和MLD Snooping,则该组播流量不会再向下游设备转发,但会在本设备的入VLAN内广播;
    • 若设备上配置了二层组播IGMP Snooping或MLD Snooping,则该组播流量在本设备的入VLAN内广播;
    • 如需防止上述两点中组播流量在入VLAN内的广播,可以在入VLAN内配置multicast drop-unknow将不符合映射关系的组播流丢弃。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令multicast mac-ip-check enable,配置设备对组播报文的目的MAC地址和目的IP地址映射关系进行校验。

    缺省情况下,设备不对组播报文的目的MAC地址和目的IP地址映射关系进行校验。

  3. 对于CE9860EI,还需要配置以下步骤将不符合映射关系的组播流丢弃。

    1. 执行命令vlan vlan-id,进入VLAN视图。
    2. 执行命令multicast drop-unknown,配置丢弃未知组播流。
  4. 执行命令commit,提交配置。

配置Report/Leave报文过滤策略

背景信息

当管理员希望过滤来自某些特定主机的IGMP Report/Leave报文时,可以配置Report/Leave报文过滤策略提高组播业务部署的安全性。

本功能需要结合ACL使用。当使用基本ACL时,可以对指定源地址的IGMP Report/Leave报文进行过滤。当使用高级ACL时,可以对目的IP地址和源IP地址的IGMP Report/Leave报文进行过滤。ACL的配置方法,请参见《CloudEngine 9800, 6800, 5800系列交换机 配置指南-安全》中的“ACL配置”。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping ip-source-policy { acl-number | acl-name acl-name },配置Report/Leave报文过滤策略,VLAN内的主机只能动态加入符合ACL规则的组播组。

    缺省情况下,VLAN内没有配置Report/Leave报文过滤策略。

  4. 执行命令commit,提交配置。

配置Query报文过滤策略

背景信息

如果网络中存在攻击者伪造自己是IGMP查询器,发送了比当前IGMP查询器IP地址小的查询报文,从而导致运行了IGMP Snooping的交换机把IGMP成员报告报文转发到攻击者的网络接口,造成组播流量不能正常转发。此时可以通过配置IGMP Query报文源地址过滤策略,只允许某些源IP地址的IGMP Query报文通过,拒绝其他IGMP Query报文,以提高二层组播网络的安全性。

本功能需要结合ACL使用。当IGMP Query报文的源IP地址在ACL规则permit参数允许范围内,才允许通过。ACL的配置方法,请参见《CloudEngine 9800, 6800, 5800系列交换机 配置指南-安全》中的“ACL配置”。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping query ip-source-policy { acl-number | acl-name acl-name },配置Query报文过滤策略。

    缺省情况下,VLAN内没有配置IGMP Query报文过滤策略。

  4. 执行命令commit,提交配置。

配置VLAN的组播组类型

背景信息

组播服务模型分为ASM模型(Any-Source Multicast)和SSM模型(Source-Specific Multicast),ASM模型中的报文是不携带组播源的报文,而SSM模型的报文是携带组播源的报文。它们使用不同的组播组地址来区分。如果需要控制VLAN内只学习ASM或者SSM范围的组的IGMP报文,就可以使用本功能。

img

本功能仅限用于设备上配置的IGMP Snooping版本为IGMPv3,不能在IGMPv1和IGMPv2版本中使用。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping { asm-only | ssm-only | asm-ssm },配置VLAN内的组播组类型。

    缺省情况下,VLAN内组播组类型为asm-ssm

  4. 执行命令commit,提交配置。

配置VLAN内由组播流触发的表项老化时间

背景信息

当组播源不再发送某个组播组的组播数据时,设备需要将对应的(S,G)或(,G)表项删除,因此需要不断探测发往该组播组的组播流的存在情况。配置VLAN内由组播流触发的表项老化时间后,如果设备在指定时间内没有接收到发往某个组播组的组播数据流,就将对应的(S,G)或(,G)表项删除,从而及时更新组播表项、释放表项资源。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令multicast layer-2 source-lifetime lifetime,配置VLAN内由组播流触发的表项老化时间。

    缺省情况下,由组播流触发的表项老化时间是210秒。

    根据网络中需要使用的组播表项规格,对老化时间可以进行灵活配置。在使用大规格组播表项的场景下,如果配置时间过短,表项不能完全生成;如果配置时间过长,不用的表项不能及时删除,系统资源得不到释放。建议配置值如下:

    表9-7 配置VLAN内组播表项的老化时间

    表项规模 建议配置值
    1000条以内 使用缺省值
    1000~2000条 1000秒
    2000~8000条 2000秒
    8000条以上 3000秒或4000秒
  4. 执行命令commit,提交配置。

检查IGMP Snooping策略的配置结果

前提条件

完成IGMP Snooping策略配置以后,可以在任意视图下执行以下命令,查看策略的配置和应用情况。

操作步骤

  • 执行命令display igmp snooping [ vlan [ vlan-id ] ] configuration,查看IGMP Snooping的配置信息。

    通过查看IGMP Snooping的配置信息,可查看到VLAN下的IGMP Snooping策略的配置情况。

  • 执行命令display multicast layer-2 ip fib [ vlan vlan-id [ [ source source-address ] group group-address ] ],查看VLAN内二层组播转发表信息。

    通过查看二层组播转发表项,可以检查IGMP Snooping策略的应用情况。

配置IGMP Snooping成员关系快速刷新

配置成员关系快速刷新,使组播组成员加入或者离开组播组时设备能够快速响应成员变化,可以提高组播业务运行效率和用户体验。

前置任务

配置IGMP Snooping基本功能

配置流程

以下功能是并列、可选的,可以根据需要进行配置。

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

背景信息

设备在收到不同IGMP协议报文之后,会为成员端口启动不同时长的老化定时器:

  • 当设备的成员端口收到下游主机的Report报文后,将接口老化时间设置为:健壮系数 × 普遍组查询报文发送时间间隔 + 最大响应时间。
  • 当设备的成员端口收到下游主机的Leave报文后,将接口老化时间设置为:特定组查询报文发送时间间隔 × 健壮系数。

在部署二层组播网络时,要确保所有二层组播设备的用于计算动态成员端口老化时间的相关参数保持一致,尤其是IGMP Snooping普遍组查询时间间隔。否则可能造成二层组播业务运行不正常。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping query interval query-interval,配置IGMP Snooping普遍组查询报文的时间间隔。

    缺省情况下,IGMP Snooping普遍组查询时间间隔为60秒。

  4. 执行命令igmp snooping robust-count robust-count,配置IGMP Snooping健壮系数。

    缺省情况下,IGMP健壮系数为2。

  5. 执行命令igmp snooping query max-response-time max-response-time,配置IGMP Snooping最大响应时间。

    缺省情况下,IGMP Snooping的最大响应时间是10秒。

  6. 执行命令igmp snooping query last-member-interval last-member-interval,配置IGMP Snooping特定组查询报文时间间隔。

    缺省情况下,IGMP Snooping特定组查询时间间隔为1秒。

  7. 执行命令commit,提交配置。

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

背景信息

路由器端口用来向上游三层设备发送Report/Leave报文和接收上游设备的组播数据报文。在配置IGMP Snooping功能后,设备可以动态学习路由器端口,实时监测上游组播数据的下发。当网络发生拥塞或者网络稳定性不佳时,动态路由器端口在其老化时间超时前没有收到IGMP普遍组查询报文或者PIM Hello报文,设备将把该接口从路由器端口列表中删除,可能造成组播数据中断,此时可以将路由器端口老化时间值适当调大。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping router-aging-time router-aging-time,配置动态路由器端口老化时间。

    缺省情况下,通过IGMP普遍组查询报文学到的路由器端口老化时间为180秒;通过PIM Hello报文学到的路由器端口老化时间为Hello报文中Holdtime值。

  4. 执行命令commit,提交配置。

配置成员端口快速离开

背景信息

成员端口快速离开是指当交换机从成员端口接收到IGMP Leave报文时,不再重置老化定时器等待转发表项老化,而是立即将该成员端口在转发表项中删除。

img

  • 只有当VLAN内的每个接口下都只有一个接收者主机时,可以使能该VLAN的成员端口快速离开功能。
  • 只有当交换机在VLAN内可以处理IGMPv2或IGMPv3报文时,配置成员端口快速离开功能才有意义。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping prompt-leave [ group-policy { acl-number | acl-name acl-name } ],配置快速离开功能。

    缺省情况下,不允许成员端口快速离开。

    可以通过group-policy参数,对快速离开的组播组进行限制。此时需要创建ACL并配置规则。默认ACL规则permit对所有组播组都适用,如果要配置针对某个组的快速离开功能,需要结合rule deny source any命令一起使用。ACL的配置方法,请参见《CloudEngine 9800, 6800, 5800系列交换机配置指南-安全》中“ACL配置”。

  4. 执行命令commit,提交配置。

配置主机跟踪功能

背景信息

对于IGMPv3场景,VLAN中的IGMPv3组播用户通过组播组接收组播流量,当组播用户离开组播组时,IGMP查询器会发送特定组查询,待超过等待周期未响应,才认为组播用户已离开并删除相应的转发表项。这就导致在等待响应报文的时间段内,仍在向组播用户转发组播流量,增加组播用户切换组播节目的延迟时间,同时占用带宽。

为解决上述问题,可以配置主机跟踪功能。该功能配置生效后,IGMP查询器会记录组播用户的加入状态,待组播用户发送离开消息后,即可立即离开,无需再发送特定的组查询报文。

配置主机跟踪功能时,需要在VLAN下配置IGMP Snooping可处理IGMPv3报文。主机跟踪功能仅适用于组播用户和组播设备均使用IGMPv3协议的场景。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping explicit-tracking,配置VLAN内的主机跟踪功能。

    缺省情况下,VLAN内的主机跟踪功能处于关闭状态。

  4. 执行命令commit,提交配置。

配置网络拓扑变化时发送Query报文

背景信息

当二层网络拓扑发生变化时,组播报文的转发路径可能发生变化。配置交换机在链路故障时主动发送IGMP Query报文,当组播组成员回应IGMP Report报文时,设备根据Report报文更新成员端口信息,将组播数据流及时切换到新的转发路径上。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令igmp snooping send-query enable,配置设备在网络拓扑变化时发送IGMP普遍组查询报文。

    缺省情况下,当网络拓扑变化时,设备不会主动发送IGMP普遍组查询报文。

    配置本命令后,当设备感知二层网络拓扑发生变化时,会主动发送IGMP普遍组查询报文(报文源地址默认为192.168.0.1),保证设备能够及时更新端口信息,减少下游组成员接收组播数据中断时间。

  3. (可选)执行命令igmp snooping send-query source-address ip-address,配置IGMP普遍组查询报文的源IP地址。

    缺省情况下,响应拓扑变化时发送的普遍组查询报文源地址为192.168.0.1。当该地址已被网络中的其他设备占用时,可使用本命令配置为其他地址。如果系统视图和VLAN视图同时配置igmp-snooping send-query source-address,则VLAN视图下的配置优先生效。

  4. 执行命令commit,提交配置。

检查IGMP Snooping成员关系快速刷新的配置结果

前提条件

完成成员关系快速刷新配置以后,可以在任意视图下执行以下命令,查看IGMP Snooping配置和转发表项信息。

操作步骤

  • 执行命令display igmp snooping [ vlan [ vlan-id ] ] configuration,查看IGMP Snooping的配置信息。
  • 执行命令display multicast layer-2 ip fib [ vlan vlan-id [ [ source source-address ] group group-address ] ],查看VLAN内二层组播转发表信息。

配置IGMP Snooping SSM Mapping

在二层网络中,如果某些用户主机只能运行IGMPv1或IGMPv2,但是这些用户希望享受SSM服务,就需要在设备上配置IGMP Snooping SSM Mapping功能。

前置任务

已完成使能IGMP Snooping功能

配置流程

一般情况下配置IGMP Snooping SSM Mapping功能即可,如果需要改变SSM组地址范围,可以选配(可选)配置SSM组策略

(可选)配置SSM组策略

背景信息

缺省情况下,SSM组范围是232.0.0.0~232.255.255.255。如果用户加入的组播组地址不在SSM组范围内,需要先在VLAN上配置SSM组策略,将组播组地址加入到SSM组地址范围。SSM组策略需要结合ACL使用,ACL的配置方法,请参见《CloudEngine 9800, 6800, 5800系列交换机 配置指南-安全》中的“ACL配置”。

img

创建SSM策略的ACL时,默认ACL规则deny对所有组播组都适用,如果要配置某个组地址在SSM组地址范围之外,需要结合rule permit source any命令一起使用。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping ssm-policy { basic-acl-number | acl-name acl-name },配置SSM组策略。

    配置SSM组策略后,该策略允许的组播组都将作为SSM范围内的组对待。

  4. 执行命令commit,提交配置。

配置IGMP Snooping SSM Mapping功能

背景信息

  • 配置SSM Mapping功能,可以使组播组与组播源之间能够建立一一对应的映射关系。
  • 配置VLAN内IGMP Snooping的版本为3,才能支持SSM Mapping功能。
  • 虽然配置SSM-Mapping时,需要在VLAN下指定IGMP的版本号为3,但是在向路由器端口转发IGMPv2协议报文时,并不会将其转换为Version 3版本。此时可以通过在交换机上配置IGMP Snooping Proxy或者IGMP Snooping Report Suppress功能将其转换为Version 3的协议报文向上游发送。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令vlan vlan-id,进入VLAN视图。

  3. 执行命令igmp snooping version 3,配置VLAN内IGMP Snooping的版本号为3。

    默认版本号为2,但是IGMPv2版本不支持SSM Mapping功能。

  4. 执行命令igmp snooping ssm-mapping enable [ policy policy-name ],使能VLAN内的SSM Mapping功能。

    缺省情况下,VLAN内SSM Mapping功能未使能。

  5. 配置组播组与组播源的映射。

    以下配置中组播组地址为SSM组策略范围内的组播组地址。如何配置SSM组地址的范围,请参见(可选)配置SSM组策略

    • 如果步骤4中没有选择policy policy-name参数,则执行igmp snooping ssm-mapping group-address { group-mask | mask-length } source-address命令配置组播组和组播源的映射。

    • 如果步骤4中选择了policy policy-name参数,进行如下配置。

      1. 执行命令quit,返回系统视图。
      2. 执行命令ssm-mapping policy policy-name,进入SSM Mapping策略视图。
      3. 执行命令group group-address { group-mask-length | group-mask } source source-address,配置组播组和组播源的映射。

    两种配置的区别在于:SSM Mapping策略下的映射,可以被多个VLAN引用;VLAN下进行的配置,只在该VLAN内有效。如果有多个VLAN要使用相同的映射关系,推荐使用SSM Mapping策略来实现。

  6. 执行命令commit,提交配置。

检查IGMP Snooping SSM Mapping的配置结果

背景信息

完成IGMP Snooping SSM Mapping功能配置以后,可以在任意视图下执行以下命令,查看SSM组映射信息。

操作步骤

  • 执行命令display igmp snooping port-info [ vlan vlan-id [ group-address group-address ] ] [ verbose ],查看端口表项信息。

维护IGMP Snooping

IGMP Snooping的维护,包括清除IGMP Snooping表项、清除IGMP Snooping统计信息、监控IGMP Snooping运行状况、配置存储的无效二层组播协议报文的最大个数。

清除IGMP Snooping表项

背景信息

IGMP Snooping表项包括静态表项和动态表项,两者的清除方法不一样。

img

静态表项被清除后无法自动恢复,直到再次执行命令配置静态成员端口。

清除动态表项后,该VLAN内的主机接收某些组播流暂时性中断,直到主机再次发出IGMP Report报文,设备重新生成转发表项后,主机才能再收到组播流。

操作步骤

  • 在接口视图下执行命令undo igmp snooping static-group [ source-address source-ip-address ] group-address group-ip-address vlan { all | { vlan-id1 [ to vlan-id2 ] } &<1-10> },取消接口静态加入组播组的配置。

    也可以通过以下命令批量取消接口上加入的组播组地址。

    • undo igmp snooping static-group [ source-address source-ip-address ] group-address group-ip-address1 to group-ip-address2 vlan vlan-id
    • undo igmp snooping static-group [ source-address source-ip-address ] group-address all vlan { all | { vlan-id1 [ to vlan-id2 ] } &<1-10> }
  • 在用户视图下执行命令reset igmp snooping group { all | vlan { all | vlan-id } },清除动态组表项。

  • 在用户视图下执行命令reset igmp snooping qinq-group interface interface-type interface-number.subinterface-number [ pe-vid pe-vid [ group-address [ mask { group-mask | group-mask-length } ] [ source-address [ mask { source-mask | source-mask-length } ] ] ] ],清除三层子接口下组播组的端口信息表项。

    img

CE9860EI不支持此命令。

清除IGMP Snooping统计信息

背景信息

IGMP Snooping的统计信息主要包括VLAN内接收到的Report、Leave、Query、Hello等协议报文的数量,通过该命令可以将这些统计计数置0,便于重新统计。

img

清除IGMP Snooping的统计信息后,以前的统计信息将无法恢复,务必仔细确认。

操作步骤

  • 在用户视图下执行命令reset igmp snooping statistics { all | vlan { vlan-id | all } },清除IGMP Snooping统计信息。

监控IGMP Snooping运行状况

背景信息

在日常维护工作中,可以在任意视图下选择执行以下命令,了解IGMP Snooping的运行状况。

操作步骤

  • 执行命令display igmp snooping [ vlan [ vlan-id ] ],查看VLAN内IGMP Snooping的运行参数信息。

  • 执行命令display igmp snooping [ vlan [ vlan-id ] ] configuration,查看VLAN内IGMP Snooping的配置信息。

  • 执行命令display igmp snooping qinq-port-info interface interface-type interface-number.subinterface-number [ group-address group-address ],查看三层子接口下组播组的端口信息表项。

    img

CE9860EI不支持此命令。

  • 执行命令display igmp snooping router-port [ vlan vlan-id ],查看路由器端口信息。

  • 执行命令display igmp snooping querier vlan [ vlan-id ],查看IGMP Snooping查询器信息。

  • 执行命令display igmp snooping statistics vlan [ vlan-id ],查看IGMP Snooping的统计信息。

  • 执行命令display multicast layer-2 forwarding-mode vlan [ vlan-id ],查看二层组播的转发模式。

  • 执行命令display multicast layer-2 ip fib [ vlan vlan-id [ [ source source-address ] group group-address ] ],查看VLAN内二层组播转发表信息。

  • 执行命令display igmp snooping group [ interface interface-type interface-number { vlan vlan-id | pe-vid pe-vid } [ [ source-address source-address ] group-address group-address ] ],查看动态学习的组播组信息。

配置存储的无效二层组播协议报文的最大个数

背景信息

当组播网络中转发表项无法建立时,可以对设备存储的无效二层组播协议报文的最大个数进行设置,并选择相应的查看命令查看无效二层组播协议报文的统计信息及详细信息,从而分析无效报文,及时准确定位问题,排除故障。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令multicast layer-2 invalid-packet igmp snooping max-count max-number,配置设备存储的无效二层组播协议报文的最大个数。

    缺省情况下,设备存储的二层组播协议无效报文的最大个数是10个。

  3. 执行命令commit,提交配置。

检查配置结果

  • 执行命令display current-configuration | include multicast layer-2 invalid-packet,查看设备存储的无效二层组播协议报文的最大个数。
  • 执行命令display igmp snooping invalid-packet vlan [ vlan-id ] [ message-type { leave | query | report | hello } ],查看存储的无效组播协议报文的统计信息。
  • 执行命令display igmp snooping invalid-packet [ packet-number ] verbose,查看存储的无效协议报文的详细信息。

IGMP Snooping配置举例

针对如何配置IGMP Snooping基本功能、静态端口、IGMP Snooping查询器、IGMP Snooping Proxy、二层组播SSM Mapping,分别提供配置举例。

本节仅列举单特性的配置示例。如果您想了解更多综合场景配置案例、特性典型配置案例、对接案例、替换案例及行业案例,请参考典型配置案例。

配置IGMP Snooping示例

组网需求

图9-7所示组播网络中,路由器Router通过二层设备Switch连接用户网络,Router上运行IGMPv2版本。组播源Source向组播组225.1.1.1~225.1.1.5发送数据,网络中有HostA、HostB、HostC三个接收者。该网络中只允许接收者接收225.1.1.1~225.1.1.3的数据。

图9-7 配置IGMP Snooping组网图

file

配置思路

在二层设备上配置IGMP Snooping基本功能以及组播组过滤策略,可以实现此需求。

  1. 在Switch上创建VLAN并将接口加入VLAN。
  2. 使能全局和VLAN的IGMP Snooping功能。
  3. 配置组播组过滤策略,并在VLAN内应用此策略。

操作步骤

  1. 创建VLAN,配置接口加入VLAN。

     system-view
    [~HUAWEI] sysname Switch
    [*HUAWEI] commit
    [~Switch] vlan 10
    [*Switch-vlan10] quit
    [*Switch] interface 10ge 1/0/1
    [*Switch-10GE1/0/1] port default vlan 10
    [*Switch-10GE1/0/1] quit
    [*Switch] interface 10ge 1/0/2
    [*Switch-10GE1/0/2] port default vlan 10
    [*Switch-10GE1/0/2] quit
    [*Switch] interface 10ge 1/0/3
    [*Switch-10GE1/0/3] port link-type trunk
    [*Switch-10GE1/0/3] port trunk allow-pass vlan 10
    [*Switch-10GE1/0/3] commit
    [~Switch-10GE1/0/3] quit
  2. 使能IGMP Snooping功能。

    # 使能全局的IGMP Snooping功能。

    [~Switch] igmp snooping enable

    # 使能VLAN10的IGMP Snooping功能。

    [*Switch] vlan 10
    [*Switch-vlan10] igmp snooping enable
    [*Switch-vlan10] commit
    [~Switch-vlan10] quit
  3. 配置并应用组播组过滤策略。

    # 配置组播组过滤策略。

    [~Switch] acl 2000
    [*Switch-acl4-basic-2000] rule deny source 225.1.1.4 0
    [*Switch-acl4-basic-2000] rule deny source 225.1.1.5 0
    [*Switch-acl4-basic-2000] commit
    [~Switch-acl4-basic-2000] quit

    # 在VLAN10内应用组播组过滤策略。

    [~Switch] vlan 10
    [~Switch-vlan10] igmp snooping group-policy 2000
    [*Switch-vlan10] commit
    [~Switch-vlan10] quit
  4. 验证配置结果。

    # 查看Switch上的成员端口信息。

    [~Switch] display igmp snooping port-info vlan 10 
    -------------------------------------------------------------------------------
     Flag: S:Static     D:Dynamic     M:Ssm-mapping                                
           A:Active     P:Protocol    T:Trill                               
                        (Source, Group)  Port                                  Flag
    -------------------------------------------------------------------------------
    VLAN 10, 5 Entry(s)                                                            
                         (*, 225.1.1.1)                                        PA- 
                                         10GE1/0/1                             -D- 
                                         10GE1/0/2                             -D- 
                                                           2 port(s) include       
                         (*, 225.1.1.2)                                        PA- 
                                         10GE1/0/1                             -D- 
                                         10GE1/0/2                             -D- 
                                                           2 port(s) include       
                         (*, 225.1.1.3)                                        PA- 
                                         10GE1/0/1                             -D- 
                                         10GE1/0/2                             -D- 
                                                           2 port(s) include       
                         (*, 225.1.1.4)                                        -A- 
                         (*, 225.1.1.5)                                        -A- 
    -------------------------------------------------------------------------------

    由显示信息可知,组225.1.1.1~225.1.1.3已在Switch上动态生成的成员端口为10GE1/0/1和10GE1/0/2。而组225.1.1.4和组225.1.1.5没有生成成员端口。

    # 查看Switch上的路由器端口信息。

    [~Switch] display igmp snooping router-port vlan 10 
    Port Name                            UpTime        Expires       Flags
    -------------------------------------------------------------------------- 
    VLAN 10, 1 router-port(s)
    10GE1/0/3                            12h03m12s     00h02m31s     DYNAMIC

    由显示信息可知,路由器端口是10GE1/0/3。

    # 查看Switch上二层组播转发表。

    [~Switch] display multicast layer-2 ip fib vlan 10
    -------------------------------------------------------------------------------- 
    Forwarding Mode: IP 
    VLAN  Total                      (Source,Group)  Interface 
    -------------------------------------------------------------------------------- 
    10     5
                                    (*, 225.1.1.1)  10GE1/0/1
                                                    10GE1/0/2
                                                    10GE1/0/3
                                    (*, 225.1.1.2)  10GE1/0/1
                                                    10GE1/0/2
                                                    10GE1/0/3
                                    (*, 225.1.1.3)  10GE1/0/1
                                                    10GE1/0/2
                                                    10GE1/0/3
                                    (*, 225.1.1.4)  10GE1/0/3
                                    (*, 225.1.1.5)  10GE1/0/3
    -------------------------------------------------------------------------------- 

    由显示信息可知,转发表中只有组225.1.1.1~225.1.1.3有成员端口,组播数据可以转发给Host。组225.1.1.4和组225.1.1.5没有成员端口,组播数据不会转发给Host。

配置文件

  • Switch的配置文件

    #
    sysname Switch
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    igmp snooping group-policy 2000
    #
    acl number 2000
    rule 5 deny source 225.1.1.4 0
    rule 10 deny source 225.1.1.5 0
    #
    interface 10GE1/0/1
    port default vlan 10
    #
    interface 10GE1/0/2
    port default vlan 10
    #
    interface 10GE1/0/3
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    return

配置使用静态端口实现IPv4二层组播示例

组网需求

图9-8所示组播网络中,路由器Router通过二层设备Switch连接用户网络,Router的用户侧三层VLANIF接口配置了225.1.1.1~225.1.1.5的IGMP静态组,没有运行IGMP协议。网络中有HostA、HostB、HostC、HostD四个接收者,其中HostA和HostB希望长期稳定接收225.1.1.1~225.1.1.3的数据,HostC和HostD希望长期稳定接收225.1.1.4~225.1.1.5的数据。

图9-8 配置静态端口实现二层组播组网图

file

配置思路

在二层设备上配置IGMP Snooping的静态路由器端口和静态成员端口,可以实现此需求。

  1. 在Switch上创建VLAN并将接口加入VLAN。
  2. 使能全局和VLAN的IGMP Snooping功能。
  3. 配置静态路由器端口。
  4. 配置静态成员端口。

操作步骤

  1. 创建VLAN,配置接口加入VLAN。

     system-view
    [~HUAWEI] sysname Switch
    [*HUAWEI] commit
    [~Switch] vlan 10
    [*Switch-vlan10] quit
    [*Switch] interface 10ge 1/0/1
    [*Switch-10GE1/0/1] port default vlan 10
    [*Switch-10GE1/0/1] quit
    [*Switch] interface 10ge 1/0/2
    [*Switch-10GE1/0/2] port default vlan 10
    [*Switch-10GE1/0/2] quit
    [*Switch] interface 10ge 1/0/3
    [*Switch-10GE1/0/3] port link-type trunk
    [*Switch-10GE1/0/3] port trunk allow-pass vlan 10
    [*Switch-10GE1/0/3] commit
    [~Switch-10GE1/0/3] quit
  2. 使能IGMP Snooping功能。

    # 使能全局的IGMP Snooping功能。

    [~Switch] igmp snooping enable

    # 使能VLAN10的IGMP Snooping功能。

    [*Switch] vlan 10
    [*Switch-vlan10] igmp snooping enable
    [*Switch-vlan10] commit
    [~Switch-vlan10] quit
  3. 配置静态路由器端口。

    [~Switch] interface 10GE 1/0/3
    [~Switch-10GE1/0/3] igmp snooping static-router-port vlan 10
    [*Switch-10GE1/0/3] commit
    [~Switch-10GE1/0/3] quit
  4. 配置静态成员端口。

    [~Switch] interface 10ge 1/0/1
    [~Switch-10GE1/0/1] igmp snooping static-group group-address 225.1.1.1 to 225.1.1.3 vlan 10
    [*Switch-10GE1/0/1] quit
    [*Switch] interface 10ge 1/0/2
    [*Switch-10GE1/0/2] igmp snooping static-group group-address 225.1.1.4 to 225.1.1.5 vlan 10
    [*Switch-10GE1/0/2] commit
    [~Switch-10GE1/0/2] quit
  5. 验证配置结果。

    # 查看Switch上的路由器端口信息。

    [~Switch] display igmp snooping router-port vlan 10 
    Port Name                       UpTime        Expires       Flags              
    ---------------------------------------------------------------------          
    VLAN 10, 1 router-port(s)                                                     
    10GE1/0/3                        00h20m09s     --            STATIC

    由显示信息可知,10GE1/0/3已成为静态路由器端口。

    # 查看Switch上的成员端口信息。

    [~Switch] display igmp snooping port-info vlan 10 
    -------------------------------------------------------------------------------
     Flag: S:Static     D:Dynamic     M:Ssm-mapping                                
           A:Active     P:Protocol    T:Trill                               
                        (Source, Group)  Port                                  Flag
    -------------------------------------------------------------------------------
    VLAN 10, 5 Entry(s)                                                            
                         (*, 225.1.1.1)                                        P-- 
                                         10GE1/0/1                             S-- 
                                                           1 port(s) include       
                         (*, 225.1.1.2)                                        P-- 
                                         10GE1/0/1                             S-- 
                                                           1 port(s) include       
                         (*, 225.1.1.3)                                        P-- 
                                         10GE1/0/1                             S-- 
                                                           1 port(s) include       
                         (*, 225.1.1.4)                                        P-- 
                                         10GE1/0/2                             S-- 
                                                           1 port(s) include       
                         (*, 225.1.1.5)                                        P-- 
                                         10GE1/0/2                             S-- 
                                                           1 port(s) include       
    --------------------------------------------------------------------------------

    由显示信息可知,组225.1.1.1~225.1.1.3在Switch上有静态成员端口10GE1/0/1,组225.1.1.4~225.1.1.5在Switch上有静态成员端口10GE1/0/2。

    # 查看Switch上二层组播转发表。

    [~Switch] display multicast layer-2 ip fib vlan 10
    -------------------------------------------------------------------------------- 
    Forwarding Mode: IP 
    VLAN  Total                      (Source,Group)  Interface 
    -------------------------------------------------------------------------------- 
    10     5  
                                    (*, 225.1.1.1)  10GE1/0/1
                                                    10GE1/0/3
                                    (*, 225.1.1.2)  10GE1/0/1
                                                    10GE1/0/3
                                    (*, 225.1.1.3)  10GE1/0/1
                                                    10GE1/0/3
                                    (*, 225.1.1.4)  10GE1/0/2
                                                    10GE1/0/3
                                    (*, 225.1.1.5)  10GE1/0/2
                                                    10GE1/0/3
    -------------------------------------------------------------------------------- 

    由显示信息可知,组225.1.1.1~225.1.1.5在Switch上已生成转发表。

配置文件

  • Switch的配置文件

    #
    sysname Switch
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    #
    interface 10GE1/0/1
    port default vlan 10
    igmp snooping static-group group-address 225.1.1.1 to 225.1.1.3 vlan 10 
    #
    interface 10GE1/0/2
    port default vlan 10
    igmp snooping static-group group-address 225.1.1.4 to 225.1.1.5 vlan 10 
    #
    interface 10GE1/0/3
    port link-type trunk
    port trunk allow-pass vlan 10
    igmp snooping static-router-port vlan 10 
    #
    return

配置IGMP Snooping查询器示例

组网需求

图9-9所示,在一个没有三层设备纯二层网络环境中,组播源Source1和Source2分别向组播组224.1.1.1和225.1.1.1发送组播数据。HostA和HostC加入组播组224.1.1.1,HostB和HostD则加入组播组225.1.1.1,所有接收者均使用IGMPv2。希望通过IGMP Snooping实现二层网络中组播数据的传输。

图9-9 配置IGMP Snooping查询器组网图

file

配置思路

在网络中各Switch上使能IGMP Snooping功能,并配置某一台Switch为IGMP Snooping查询器,可以实现此需求。同时为防止设备在没有二层组播转发表项时将组播数据在VLAN内广播,在所有Switch上都使能丢弃未知组播数据报文功能。

  1. 根据图9-9在所有Switch上创建VLAN并将接口加入VLAN。
  2. 在所有Switch上使能全局和VLAN的IGMP Snooping功能。
  3. 选择距离组播源较近的SwitchA为IGMP Snooping查询器。
  4. 在所有Switch上使能丢弃未知组播数据报文功能。

操作步骤

  1. 在所有Switch上创建VLAN并将接口加入VLAN。

    # 配置SwitchA。

     system-view
    [~HUAWEI] sysname SwitchA
    [*HUAWEI] commit
    [~SwitchA] vlan 10
    [*SwitchA-vlan10] quit
    [*SwitchA] interface 10ge 1/0/1
    [*SwitchA-10GE1/0/1] port default vlan 10
    [*SwitchA-10GE1/0/1] quit
    [*SwitchA] interface 10ge 1/0/2
    [*SwitchA-10GE1/0/2] port link-type trunk
    [*SwitchA-10GE1/0/2] port trunk allow-pass vlan 10
    [*SwitchA-10GE1/0/2] quit
    [*SwitchA] interface 10ge 1/0/3
    [*SwitchA-10GE1/0/3] port default vlan 10
    [*SwitchA-10GE1/0/3] commit
    [~SwitchA-10GE1/0/3] quit

    # SwitchB、SwitchC、SwitchD的配置与此类似,不再赘述。

  2. 在所有Switch上使能全局和VLAN的IGMP Snooping功能。

    # 配置SwitchA。

    [~SwitchA] igmp snooping enable
    [*SwitchA] vlan 10
    [*SwitchA-vlan10] igmp snooping enable
    [*SwitchA-vlan10] commit
    [~SwitchA-vlan10] quit

    # SwitchB、SwitchC、SwitchD的配置与此类似,不再赘述。

  3. 配置SwitchA为查询器。

    [~SwitchA] vlan 10
    [~SwitchA-vlan10] igmp snooping querier enable
    [*SwitchA-vlan10] commit
    [~SwitchA-vlan10] quit
  4. 在所有Switch上使能丢弃未知组播数据报文功能。

    # 配置SwitchA。

    [~SwitchA] vlan 10
    [~SwitchA-vlan10] multicast drop-unknown
    [*SwitchA-vlan10] commit
    [~SwitchA-vlan10] quit

    # SwitchB、SwitchC、SwitchD的配置与此类似,不再赘述。

  5. 验证配置结果。

    # 当IGMP Snooping查询器开始工作之后,除查询器以外的所有设备都能收到IGMP普遍组查询报文。可以通过命令查看IGMP报文的统计信息,例如查看SwitchB上收到的IGMP报文统计信息。

    [~SwitchB] display igmp snooping statistics vlan 10
    IGMP Snooping Packets Counter:                                                  
      Statistics for VLAN 10                                                       
        Receive V1 Report:          0                                                  
        Receive V2 Report:          32                                                 
        Receive V3 Report:          0                                                  
        Receive V1 Query:           0                                                  
        Receive V2 Query:         30                              
        Receive V3 Query:           0                                                  
        Receive Leave:              0                                                  
        Receive Pim Hello:          0                                                  
        Send Query (S=0):           0                                                  
        Send Query (S!=0):          -                                                  
        Proxy Send General Query:                0                                   
        Proxy Send Group-Specific Query:         0                                   
        Proxy Send Group-Source-Specific Query:  0                                   

配置文件

  • SwitchA的配置文件

    #
    sysname SwitchA
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    igmp snooping querier enable
    multicast drop-unknown
    #
    interface 10GE1/0/1
    port default vlan 10
    #
    interface 10GE1/0/2
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    interface 10GE1/0/3
    port default vlan 10
    #
    return
  • SwitchB的配置文件

    #
    sysname SwitchB
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    multicast drop-unknown
    #
    interface 10GE1/0/1
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    interface 10GE1/0/2
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    interface 10GE1/0/3
    port default vlan 10
    #
    interface 10GE1/0/4
    port default vlan 10
    #
    return
  • SwitchC的配置文件

    #
    sysname SwitchC
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    multicast drop-unknown
    #
    interface 10GE1/0/1
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    interface 10GE1/0/2
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    interface 10GE1/0/3
    port default vlan 10
    #
    return
  • SwitchD的配置文件

    #
    sysname SwitchD
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    multicast drop-unknown
    #
    interface 10GE1/0/1
    port default vlan 10
    #
    interface 10GE1/0/2
    port link-type trunk
    port trunk allow-pass vlan 10
    #
    return

配置IGMP Snooping Proxy示例

组网需求

图9-10所示为一个IPv4组播网络,路由器Router通过二层设备Switch连接用户网络,Router运行IGMPv2。网络中接收者主机较多,管理员希望主机在接收组播数据的同时,众多IGMP报文交互不会对Router形成压力。

图9-10 配置IGMP Snooping Proxy功能组网图

file

配置思路

在Switch上配置IGMP Snooping Proxy,可以实现此需求。

  1. 创建VLAN,配置接口加入VLAN。
  2. 使能全局和VLAN的IGMP Snooping功能,实现用户接收组播数据。
  3. 配置IGMP Snooping Proxy,实现IGMP报文代理功能,减少Switch和Router之间报文交互。
  4. 配置Switch不向上游接口发送Query报文,避免引起查询器选举。

操作步骤

  1. 创建VLAN,配置接口加入VLAN。

     system-view
    [~HUAWEI] sysname Switch
    [*HUAWEI] commit
    [~Switch] vlan 10
    [*Switch-vlan10] quit
    [*Switch] interface 10ge 1/0/1
    [*Switch-10GE1/0/1] port default vlan 10
    [*Switch-10GE1/0/1] quit
    [*Switch] interface 10ge 1/0/2
    [*Switch-10GE1/0/2] port default vlan 10
    [*Switch-10GE1/0/2] quit
    [*Switch] interface 10ge 1/0/3
    [*Switch-10GE1/0/3] port link-type trunk
    [*Switch-10GE1/0/3] port trunk allow-pass vlan 10
    [*Switch-10GE1/0/3] commit
    [~Switch-10GE1/0/3] quit
  2. 使能IGMP Snooping功能。

    # 使能全局的IGMP Snooping功能。

    [~Switch] igmp snooping enable

    # 使能VLAN10的IGMP Snooping功能。

    [*Switch] vlan 10
    [*Switch-vlan10] igmp snooping enable
    [*Switch-vlan10] commit

    # 配置IGMP Snooping版本为v3,使设备可以处理所有版本的IGMP报文。

    [~Switch-vlan10] igmp snooping version 3
    [*Switch-vlan10] commit
  3. 使能IGMP Snooping Proxy功能。

    [~Switch-vlan10] igmp snooping proxy
    [*Switch-vlan10] commit
    [~Switch-vlan10] quit
  4. 配置Switch不向上游接口发送Query报文。

    [~Switch] interface 10ge 1/0/3
    [~Switch-10GE1/0/3] igmp snooping proxy-uplink-port vlan 10
    [*Switch-10GE1/0/3] commit
    [~Switch-10GE1/0/3] quit
  5. 验证配置结果。

    # 查看Switch上IGMP报文统计信息。

    [~Switch] display igmp snooping statistics vlan 10
    IGMP Snooping Packets Counter:                                                      
      Statistics for VLAN 10                                                            
        Receive V1 Report:          0                                                   
        Receive V2 Report:          1121                                                
        Receive V3 Report:          0                                                   
        Receive V1 Query:           0                                                   
        Receive V2 Query:           2                                                   
        Receive V3 Query:           0                                                   
        Receive Leave:              0                                                   
        Receive Pim Hello:          4                                                   
        Send Query (S=0):           0                                                   
        Send Query (S!=0):          -                                                   
        Proxy Send General Query:             13                                     
        Proxy Send Group-Specific Query:         0                                      
        Proxy Send Group-Source-Specific Query:  0                                      

    由显示信息可知,Switch作为Proxy发送了普遍组查询报文,IGMP Snooping Proxy功能已生效。

配置文件

  • Switch的配置文件

    #
    sysname Switch
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    vlan 10
    igmp snooping enable
    igmp snooping version 3
    igmp snooping proxy
    #
    interface 10GE1/0/1
    port default vlan 10
    #
    interface 10GE1/0/2
    port default vlan 10
    #
    interface 10GE1/0/3
    port link-type trunk
    port trunk allow-pass vlan 10
    igmp snooping proxy-uplink-port vlan 10 
    #
    return

配置IGMP Snooping SSM Mapping示例

组网需求

图9-11所示组播网络中,路由器Router通过二层设备Switch连接用户网络。Router上运行IGMPv3版本,同时采用ASM和SSM模式提供组播服务。网络中用户主机HostA、HostB、HostC的IGMP版本为IGMPv2,不能升级到IGMPv3。组播源Source1和Source2同时往组播组225.1.1.1发送组播数据,用户主机只想接收Source1发送的数据。

图9-11 配置二层组播SSM Mapping功能组网图

file

配置思路

在Switch上配置IGMP Snooping的SSM Mapping功能,可以实现此需求。

  1. 在Switch上创建VLAN,配置接口加入VLAN。
  2. 使能全局和VLAN的IGMP Snooping功能,实现用户接收组播数据。
  3. 配置IGMP Snooping的SSM组策略,实现用户所在的ASM类型组播组地址加入到SSM组地址范围内。
  4. 配置IGMP Snooping的SSM Mapping功能,实现用户接收指定组播源数据。

操作步骤

  1. 创建VLAN,配置接口加入VLAN。

     system-view
    [~HUAWEI] sysname Switch
    [*HUAWEI] commit
    [~Switch] vlan 10
    [*Switch-vlan10] quit
    [*Switch] interface 10ge 1/0/1
    [*Switch-10GE1/0/1] port default vlan 10
    [*Switch-10GE1/0/1] quit
    [*Switch] interface 10ge 1/0/3
    [*Switch-10GE1/0/3] port link-type trunk
    [*Switch-10GE1/0/3] port trunk allow-pass vlan 10
    [*Switch-10GE1/0/3] commit
    [~Switch-10GE1/0/3] quit
  2. 使能IGMP Snooping功能。

    # 使能全局的IGMP Snooping功能。

    [~Switch] igmp snooping enable

    # 使能VLAN10的IGMP Snooping功能。

    [*Switch] vlan 10
    [*Switch-vlan10] igmp snooping enable
    [*Switch-vlan10] commit
    [~Switch-vlan10] quit
  3. 配置IGMP Snooping的SSM组策略。

    # 创建ACL,配置其规则为允许组225.1.1.1的数据通过。

    [~Switch] acl number 2008
    [*Switch-acl4-basic-2008] rule 5 permit source 225.1.1.1 0
    [*Switch-acl4-basic-2008] commit
    [~Switch-acl4-basic-2008] quit

    # 在VLAN下应用SSM Mapping策略,将组225.1.1.1作为SSM范围的组地址对待。

    [~Switch] vlan 10 
    [~Switch-vlan10] igmp snooping ssm-policy 2008
    [*Switch-vlan10] commit
  4. 配置SSM Mapping功能。

    # 配置Switch上运行IGMPv3版本,使能SSM Mapping功能,并配置映射关系为组225.1.1.1对应的源地址为10.10.1.1。

    [~Switch-vlan10] igmp snooping version 3
    [*Switch-vlan10] igmp snooping ssm-mapping enable 
    [*Switch-vlan10] igmp snooping ssm-mapping 225.1.1.1 32 10.10.1.1
    [*Switch-vlan10] commit
    [~Switch-vlan10] quit
  5. 验证配置结果。

    # 查看VLAN内IGMP Snooping的配置情况。

    [~Switch] display igmp snooping vlan configuration
    IGMP Snooping Configuration for VLAN 10
        igmp snooping enable
        igmp snooping version 3
        igmp snooping ssm-policy 2008
        igmp snooping ssm-mapping enable
        igmp snooping ssm-mapping 225.1.1.1 255.255.255.255 10.10.1.1

    可见VLAN10内已配置了SSM Mapping策略。

    # 查看二层组播转发表。

    [~Switch] display multicast layer-2 ip fib vlan 10
    --------------------------------------------------------------------------------
    Forwarding Mode: IP 
    VLAN  Total                      (Source,Group)  Interface
    -------------------------------------------------------------------------------- 
    10     1 
                            (10.10.1.1, 225.1.1.1)  10GE1/0/1
                                                    10GE1/0/3
    -------------------------------------------------------------------------------- 

    由显示信息可知,Switch上生成(10.10.1.1, 225.1.1.1)表项,是Source1发送的数据。

配置文件

  • Switch的配置文件

    #
    sysname Switch
    #
    vlan batch 10
    #
    igmp snooping enable
    #
    acl number 2008
    rule 5 permit source 225.1.1.1 0
    #
    vlan 10
    igmp snooping enable
    igmp snooping version 3
    igmp snooping ssm-policy 2008
    igmp snooping ssm-mapping enable
    igmp snooping ssm-mapping 225.1.1.1 255.255.255.255 10.10.1.1
    #
    interface 10GE1/0/1
    port default vlan 10
    #
    interface 10GE1/0/3
    port link-type trunk
    port trunk allow-pass vlan 10 
    #
    return 

IGMP Snooping常见配置错误

介绍了常见配置错误导致的故障现象以及处理步骤。

IPv4二层组播流量不通

故障现象

未配置IGMP Snooping时,组播转发正常,配置了IGMP Snooping功能后,发现用户无法收到组播数据。

操作步骤

  1. 检查是否配置的IGMP Snooping Version较低。

    如果配置的IGMP Snooping Version比用户主机的IGMP版本低,设备在收到IGMP Report报文后,只会向路由器端口转发,不会生成成员端口和转发表项。

    执行display igmp snooping configuration命令查看配置信息。如果IGMP Snooping Version比用户主机的IGMP版本低,执行命令igmp snooping version version,配置与用户主机的IGMP版本保持一致。

  2. 检查是否配置的普遍组查询间隔不一致。

    如果当前IGMP Snooping设备的普遍组查询间隔比上游IGMP查询器或者IGMP Snooping设备的数值小,很容易造成当前IGMP Snooping设备的IGMP Snooping表项提前老化,无法转发上游发送过来的组播数据。

    执行display igmp snooping命令查看IGMP Snooping运行参数信息。如果普遍组查询间隔比上游IGMP查询器或者IGMP Snooping设备的数值小,执行命令igmp snooping query-interval query-interval,重新调整IGMP Snooping普遍组查询间隔。建议调整的数值与上下游设备保持一致。

  3. 检查是否禁止了路由器端口动态学习功能。

    如果配置了禁止VLAN的路由器端口动态学习功能,VLAN不再侦听IGMP Query报文,无法生成路由器端口。

    执行display igmp snooping configuration命令查看配置信息,如果有“igmp snooping router-learning disable”,在VLAN下执行undo igmp snooping router-learning disable命令使能VLAN的路由器端口动态学习功能。

  4. 检查是否配置了成员端口快速离开功能。

    当接口下仅有一个成员主机时,才能配置快速离开功能。如果接口下不止一个接收主机,而在VLAN配置了成员端口快速离开功能,则当交换机从成员端口收到IGMP Leave报文时,不发送特定组查询报文,立即将该接口的转发表项从设备的组播转发表中删除,导致流量不通。

    执行display igmp snooping configuration命令查看配置信息,如果有“igmp snooping prompt-leave”,在VLAN视图下,执行undo igmp snooping prompt-leave命令,取消成员端口快速离开功能。

  5. 检查是否配置了检查Router-Alert选项功能。

    如果配置了对Router-Alert选项进行检查,则交换机会检查IGMP报文中的Option字段,对于未携带Router-Alert选项的报文做丢弃处理。

    执行display igmp snooping configuration命令查看配置信息,如果有“igmp snooping require-router-alert”,在VLAN视图下,执行undo igmp snooping require-router-alert命令,取消相关配置。

  6. 检查是否配置了组播组过滤策略。

    如果配置了组播组过滤策略,可能限制了VLAN下的主机加入组播组的范围,可以执行display igmp snooping configuration命令,查看组播组策略限制是否正确。如果配置了ACL规则,再执行display acl命令查看对应的ACL规则是否正确。

  7. 检查是否配置了接口下的二层组播数据过滤功能。

    如果设备接口下配置了二层组播数据过滤功能,会对来自某VLAN的UDP报文进行过滤,导致二层组播流量不通。

    进入物理接口视图,执行undo multicast deny-vlan命令,取消接口下的二层组播数据过滤功能。

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

故障现象

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

操作步骤

  1. 执行display acl命令查看配置的ACL规则,检查其是否匹配想要执行的组播组过滤策略。
  2. 执行display igmp snooping configuration命令查看VLAN下是否应用了正确的组播组策略。如果没有,则使用igmp snooping group-policy命令应用正确的组播组策略。
  3. 执行display current-configuration | include drop-unknown命令查看是否已使能丢弃未知组播数据报文的功能。如果没有使能,则使用multicast drop-unknown命令使能丢弃未知组播数据报文功能。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *