MLD Snooping

功能介绍

MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)通过侦听三层组播设备和主机间的协议报文来管理和控制IPv6组播流在数据链路层内的转发,实现二层组播功能。

通常情况下,尤其是在一些局域网环境里面,组播报文需要经过二层交换设备。如图1-1所示,PIM组播设备将报文转发给用户主机时会经过二层交换机。由于在二层设备上学习不到组播组地址,因此报文会在VLAN内广播。既浪费带宽,又影响安全性。配置MLD Snooping功能后,二层交换机可以侦听用户主机和上游PIM组播设备的MLD协议报文,从而建立二层组播表项,控制组播数据报文只往特定用户主机转发,防止组播数据在二层网络中广播。

MLD Snooping组网图

image.png

MLD Snooping基本原理

MLD Snooping作为二层组播基本功能,实现了组播数据报文在链路层的转发和控制。通过侦听、分析用户主机和三层组播设备间的协议报文建立和维护二层组播转发表项,从而实现组播数据在链路层上的按需转发。

如图1-2所示,当二层组播设备没有运行MLD Snooping时,IPv6组播报文在VLAN内被广播;如图1-3当二层组播设备运行了MLD Snooping后,IPv6组播报文只发给组成员接收者,防止组播数据在二层网络中的广播。

未开启MLD Snooping下的组播传输过程

image.png

开启MLD Snooping下的组播传输过程

image.png

MLD Snooping接口分类

MLD Snooping功能是基于VLAN进行的,相关的端口也是指VLAN内部的成员口。运行MLD Snooping的设备将VLAN内的接口标识为路由连接口或成员口,从而能够管理和控制IP组播流在VLAN内的转发。

MLD Snooping的两类端口

image.png

路由连接口(Multicast Router Port):二层组播设备上连接三层组播设备的端口,指示组播源的方向。通过监听MLD报文,二层组播设备可以自动发现并维护动态路由连接口。也允许用户配置静态路由连接口。

成员口(Member Port):二层组播设备上连接组成员主机的端口,指示组成员的方向。又称侦听者端口(Listener Port)。通过监听MLD报文,二层组播设备可以自动发现并维护动态成员口。也允许用户配置静态成员口。

如图1-4所示,在二层组播设备上运行MLD Snooping,组播流从路由连接口进入,从成员口发出。

MLD Snooping工作机制

运行MLD Snooping的设备通过对收到的MLD报文进行分析,发现并识别路由连接口和成员口,从而建立并维护MLD Snooping转发表项。运行MLD Snooping的设备可以识别并处理如下几类MLD报文:

MLD Query报文

三层组播设备定期向本地网段内的所有主机与组播设备(地址为FF02::1)发送MLD一般组查询报文,以查询该网段有哪些IPv6组播组的成员。在收到MLD普遍组查询报文时,将其通过给VLAN内除接收端口以外的其他所有端口转发出去,并对该报文的接收端口做如下处理:

如果该端口已经在路由连接口列表中,则重置其老化定时器。

如果该端口不在路由连接口列表中,则将其添加到路由连接口列表中,并启动其老化定时器。

当收到MLD的特定组源查询报文,不会对上述的定时器进行更新处理。

MLD Report报文

当组成员主机收到Query报文后,会应答Report报文。如果主机要加入某个组,也会主动发送Report报文。

运行MLD Snooping的设备在收到Report报文时,将其向VLAN 内的所有路由连接口转发出去,从该报文中解析出主机要加入的IPv6组播组地址,并对该报文的接收端口做如下处理:

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

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

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

MLD Leave报文

当主机离开IPv6组播组时,会通过发送MLD离开组报文(地址为FF02::2),通知组播设备本主机离开了某个IPv6组播组。运行MLD Snooping的设备在收到Leave报文时,在此VLAN内执行如下动作:

将Leave报文从所有路由连接口转发出去。

如果收到Leave报文的端口是动态成员口,且配置了快速离开功能,端口将立即从指定组的MLD Snooping转发表项中删除,该端口不再作为指定组的动态成员口。

如果收到Leave报文的端口是动态成员口,且未配置快速离开功能,则该端口状态保持不变,老化时间超时后,端口从指定组的MLD Snooping转发表项中删除,该端口不再作为指定组的动态成员口。

协议规范

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

配置任务概览

MLD Snooping配置任务如下:

配置MLD Snooping基本功能。以下配置任务请选择其中一项进行配置。

配置IVGL模式下的MLD Snooping基本功能

配置SVGL模式下的MLD Snooping基本功能

配置IVGL-SVGL模式下的MLD Snooping基本功能

(可选)配置MLD Snooping版本

配置协议报文处理参数。以下所有配置任务均为可选配置,请根据实际情况选择配置。

配置静态路由连接口

配置静态成员口

配置Report报文的抑制功能

配置端口快速离开功能

配置动态学习路由连接口功能

配置动态路由连接口老化时间

配置动态成员口老化时间

配置查询报文响应时间

配置组播安全控制。以下所有配置任务均为可选配置,请根据实际情况选择配置。

配置Profile

配置接口组播组过滤

配置接口组播组最大个数限制

配置源端口检查

配置MLD协议报文合法性检查

(可选)配置对QinQ的处理

配置MLD Snooping基本功能

功能简介

运行MLD Snooping的设备可为用户VLAN提供独立组播服务或公共组播服务,分别工作在以下三种模式:

IVGL(Independent VLAN Group Learning,基于独立VLAN的组播学习):MLD Snooping为每一个用户VLAN提供独立组播服务。

SVGL(Shared VLAN Group Learning,基于共享VLAN的组播学习):MLD Snooping为用户VLAN提供公共组播服务。

IVGL-SVGL(混杂模式):为用户VLAN同时提供公共组播服务和独立组播服务。

配置限制与指导

SVGL模式与IPv6组播功能相冲突。如果设备上要求同时开启IPv6组播功能,则必须选择MLD Snooping的IVGL模式。

当工作模式为SVGL或者IVGL-SVGL时,必需关联一个Profile用于指定SVGL模式应用的组播组范围。

配置任务简介

MLD Snooping基本功能的所有配置任务请选择其中一项进行配置。

配置IVGL模式下的MLD Snooping基本功能

配置SVGL模式下的MLD Snooping基本功能

配置IVGL-SVGL模式下的MLD Snooping基本功能

配置IVGL模式下的MLD Snooping基本功能

功能简介

在IVGL模式下,运行MLD Snooping的设备为每一个用户VLAN提供独立组播服务。组播流只能在所属VLAN内转发,用户主机只能在所属VLAN内申请组播流。

配置限制与指导

若无特殊要求,建议在所有连接用户主机的二层接入设备上开启全局MLD Snooping功能。

开启全局MLD Snooping功能后,则所有VLAN上均开启了MLD Snooping功能,可以在任意VLAN上关闭MLD Snooping功能,关闭任何一个VLAN的组播服务,都不会影响其他VLAN的组播服务。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

开启IVGL模式下的IPv6 MLD Snooping功能。

ipv6 mld snooping ivgl

缺省情况下,MLD Snooping功能处于关闭状态。

(可选)在指定VLAN上关闭MLD Snooping功能。

no ipv6 mld snooping vlan vlan-id

缺省情况下,全局MLD Snooping功能处于开启状态,所有VLAN的MLD Snooping功能也处于开启状态。全局MLD Snooping功能处于关闭状态,所有VLAN的MLD Snooping功能也处于关闭状态。

全局MLD Snooping功能处于开启状态,才能在指定VLAN上关闭MLD Snooping功能。

配置SVGL模式下的MLD Snooping基本功能

功能简介

在SVGL模式下,运行MLD Snooping的设备可以为用户VLAN提供公共组播服务。公共组播服务常用于为多个VLAN的用户提供相同的视频点播,相比独立组播服务,可以节约带宽。

公共组播服务的VLAN分为Shared VLAN和Sub VLAN。Shared VLAN中的SVGL组地址范围的组播流被转发到Sub VLAN;Sub VLAN中的用户主机向Shared VLAN申请SVGL组地址范围的组播流。

配置限制与指导

可共享VLAN的组播服务,配置完SVGL模式后,需要关联SVGL模式下的组范围。

公共组播服务只能应用在Shared VLAN和Sub VLAN中,使用SVGL组地址范围。

配置准备

在配置SVGL关联的组范围前,需保证对应的Profile已经创建并指定允许通过或者禁止通过过滤器的组范围。关于Profile配置的详细介绍,请参见“1.6.4  配置Profile”。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

开启SVGL模式下的IPv6 MLD Snooping功能。

ipv6 mld snooping svgl

缺省情况下,MLD Snooping功能处于关闭状态。

配置SVGL关联的组范围。

ipv6 mld snooping svgl profile profile-number

缺省情况下,未指定运行在SVGL模式下的组范围。

(可选)指定Shared VLAN。

ipv6 mld snooping svgl vlan vlan-id

缺省情况下,SVGL的共享VLAN为VLAN 1。

配置IVGL-SVGL模式下的MLD Snooping基本功能

功能简介

IVGL-SVGL模式也称为混杂模式。在IVGL-SVGL模式下,运行MLD Snooping的设备可以为用户VLAN同时提供公共组播服务和独立组播服务。

在Shared VLAN和Sub VLAN中,SVGL组地址范围的组播流适用公共组播服务,其他组播流适用独立组播服务。

其他VLAN(除Shared VLAN和Sub VLAN以外的VLAN)适用独立组播服务。

配置限制与指导

配置完IVGL-SVGL模式后,需要关联SVGL模式下的组范围。

将用户VLAN设置为Shared VLAN或Sub VLAN,则同时享受公共组播服务和独立组播服务;将用户VLAN设置为其他VLAN,则享受独立组播服务。

配置准备

在配置SVGL关联的组范围前,需保证对应的Profile已经创建并指定允许通过或者禁止通过过滤器的组范围。关于Profile配置的详细介绍,请参见“1.6.4  配置Profile”。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

开启IVGL-SVGL模式下的IPv6 MLD Snooping功能。

ipv6 mld snooping ivgl-svgl

缺省情况下,MLD Snooping功能处于关闭状态。

(可选)指定Shared VLAN。

ipv6 mld snooping svgl vlan vlan-id

缺省情况下,SVGL的共享VLAN为VLAN 1。

配置MLD Snooping版本

功能简介

配置MLD Snooping版本可以指定MLD Snooping可以处理的MLD报文的版本。

配置MLD Snooping v2版本可以处理MLDv1和MLDv2报文的全部信息。

MLD Snooping v1版本对于MLDv2仅做简单处理,不处理报文携带的源信息。

配置限制与指导

当版本发生变更时,删除相应的MLD Snooping动态转发表项。

配置准备

配置MLD Snooping基本功能。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置MLD Snooping版本。

ipv6 mld snooping version { 1 | 2 }

缺省情况下,运行MLD Snooping v1版本。

配置协议报文处理参数

功能简介

通过控制协议报文的处理,二层组播设备可以建立静态组播表项,也可以建立动态组播表项。其中通过调整各项参数还可以实现动态组播表项及MLD Snooping成员关系快速刷新。

配置限制与指导

必须配置MLD Snooping基本功能,相关配置功能才能生效。

配置任务简介

协议报文处理参数调优功能的所有配置任务均为可选配置,请根据实际情况选择配置。

配置静态路由连接口

配置静态成员口

配置Report报文的抑制功能

配置端口快速离开功能

配置动态学习路由连接口功能

配置动态路由连接口老化时间

配置动态成员口老化时间

配置查询报文响应时间

配置静态路由连接口

功能简介

路由连接口的作用是接收上游组播数据和指导MLD Report/Leave报文转发。当接口配置为静态路由连接口,该接口不会老化,长期稳定地转发MLD Report/Leave报文到上游MLD查询器。

配置限制与指导

在SVGL模式下,如果未配置Sub VLAN,则只有属于Shared VLAN的静态路由连接口的配置可生效,其他情况可配置但不生效;如果配置了Sub VLAN,则属于Shared VLAN或者非Sub VLAN的静态路由连接口的配置可生效,其他情况可配置但不生效。

在SVGL-IVGL模式下,如果未配置Sub VLAN,所有VLAN的静态路由连接口的配置均可生效;如果配置了Sub VLAN,则属于Shared VLAN或者非Sub VLAN的静态路由连接口的配置可生效,其他情况可配置但不生效。

在IVGL模式下,所有VLAN的静态路由连接口的配置均可生效。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置静态路由连接口。

ipv6 mld snooping vlan vlan-id mrouter interface interface-type interface-number

缺省情况下,未配置静态路由连接口。

配置静态成员口

功能简介

配置连接成员主机的接口为静态成员口,则成员主机无论是加入组播组都可接收指定组播组的组播流,静态成员端口不会被老化。

配置限制与指导

在SVGL模式下,如果未配置Sub VLAN,则只有属于Shared VLAN的静态成员口的配置可生效,其他情况可配置但不生效;如果配置了Sub VLAN,则属于Shared VLAN或者非Sub VLAN的静态成员口的配置可生效,其他情况可配置但不生效。

在SVGL-IVGL模式下,如果未配置Sub VLAN,所有VLAN的静态成员口的配置均可生效;如果配置了Sub VLAN,则属于Shared VLAN或者非Sub VLAN的静态成员的配置可生效,其他情况可配置但不生效。

在IVGL模式下,所有VLAN的静态成员口的配置均可生效。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置静态成员口。

ipv6 mld snooping vlan vlan-id static ipv6-group-address interface interface-type interface-number

缺省情况下,未配置静态成员口。

配置Report报文的抑制功能

功能简介

MLD协议通过周期性地进行查询报文和Report报文的交互维护组成员关系。如果网络中有多个成员主机加入同一个组播组,就会造成网络中有大量的MLD协议报文上送给MLD组播设备,浪费网络带宽并影响MLD组播设备的性能。配置Report报文抑制可以改善这种情况。

配置Report报文抑制,在一个查询间隔内只会把第一个收到的特定VLAN和组的Report报文转发给路由连接口,后继的Report报文将不继续向路由连接口转发,这样可以减少网络中的报文数量。

配置限制与指导

只能抑制MLDv1的Report报文,对MLDv2的Report报文无效。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置Report报文的抑制功能。

ipv6 mld snooping suppression enable

缺省情况下,Report报文抑制功能处于关闭状态。

配置端口快速离开功能

功能简介

启用端口快速离开功能后,当设备某端口收到Leave报文(包括MLDv1的Leave报文以及MLDv2中INCLUDE类型并且不带任何源地址的Report报文)时,直接从对应的转发表项的成员口中删除该端口。此后,当设备收到对应的特定组查询报文和组播数据报文时,设备不再向该端口转发。

配置限制与指导

端口快速离开功能仅适用于设备一个端口下只连接一台主机的情况,可以节约带宽和资源。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置端口快速离开功能。

ipv6 mld snooping fast-leave enable

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

配置动态学习路由连接口功能

功能简介

在一些测试场景中,用户主机可能会发出查询报文和PIMv6邻居消息。当二层设备收到主机发送的查询报文或PIM邻居消息后,会将接收端口学习为动态路由接口,导致VLAN内的所有组播报文都向此接口转发,使主机接收到大量无用的组播报文。同时,用户主机发出查询报文和PIMv6邻居消息可能会影响三层组播路由协议状态(如查询器和DR选举等)。此时可以配置关闭动态学习路由连接口功能解决问题,从而提高网络安全。

配置限制与指导

关闭动态学习路由连接口功能与开启静态路由连接口的功能互不影响。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置动态学习路由连接口功能。

ipv6 mld snooping [ vlan vlan-id ] mrouter learn

缺省情况下,动态学习路由连接口功能处于开启状态。

配置动态路由连接口老化时间

功能简介

路由连接口的作用是接收上游组播数据和指导MLD Report/Leave报文转发。二层设备MLD Snooping功能开启后,可以动态学习路由连接口,为上游设备转发组播报文。当网络不稳定或者发送拥塞时,如果动态路由连接口在老化时间超时前没有收到上游设备发过来的查询报文或者邻居消息,则设备将动态路由连接口删除,可能造成组播数据中断。

配置限制与指导

可根据网络的负载情况调整路由连接口的老化时间。网络负载比较大时可把路由连接口的老化时间适当调大。如果设置的老化时间过短可能会导致路由连接口频繁的添加和删除,造成数据中断。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置动态路由连接口老化时间。

ipv6 mld snooping dyn-mr-aging-time dynamic-mroute-aging-time

缺省情况下,动态路由连接口的老化时间为300秒。

配置动态成员口老化时间

功能简介

动态成员端口老化时间是指当设备的某端口收到主机发送的加入某IP组播组的MLD Join加入报文时,为该动态成员端口设置的老化时间。在收到MLD Join加入报文后,会重置该动态成员端口的老化定时器。如果定时器超时,则认为该端口下不存在接收组播报文的用户主机,组播设备就会把该端口从MLD Snooping的成员口中删除。

配置限制与指导

可根据网络的负载情况调整成员口的老化时间,当网络负载比较大时,可把动态成员口的老化时间调大。如果动态成员口设置过小,可能导致动态成员口频繁的添加和删除,造成数据中断。

配置完该命令,后面收到的MLD Join加入报文时设置的动态成员端口老化定时器的值为host-aging-time。此配置在配置完后立即生效,当前已开启的成员口的定时器会被更新。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

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

ipv6 mld snooping host-aging-time host-aging-time

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

配置查询报文响应时间

功能简介

设备直连网段中的主机在收到设备的查询报文后,需要在最大响应时间内应答Report报文。本功能可以在设备上配置最大响应时间,要求主机在收到设备发送的查询报文后应答Report报文。如果主机在最大响应时间内没有应答Report报文,设备将认为该直连网段内不存在组成员,并删除组信息。

配置限制与指导

在收到MLD普通查询报文后,组播设备会更新所有成员口的老化定时器,定时器时间为最大响应时间,定时器到期时,则认为该接口不再有成员需要接收组播流,该接口就会从MLD Snooping转发表中删除。

在收到MLD特定组查询报文后,组播设备会对该特定组的所有成员口启动老化定时器,定时器时间为最长响应时间,当定时器到期时,则认为该端口不再有成员接收组播流,组播设备就会把该端口从MLD Snooping的转发表中删除。

对于MLDv2的特定源组查询报文,不做定时器的更新处理。

该命令配置的查询报文最大响应时间需要等待下次收到查询报文时才生效。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置查询报文响应时间。

ipv6 mld snooping query-max-response-time query-max-response-time

缺省情况下,查询报文最大响应时间为10秒。

配置组播安全控制

功能简介

运行MLD Snooping的设备,通过配置组播安全控制,能够控制组播服务范围和负荷,并能够有效的防范非法组播流,提高二层组播网络的安全性。

配置准备

配置MLD Snooping基本功能。

配置任务简介

组播安全控制所有配置任务均为可选配置,请根据实际情况选择配置。

配置Profile

配置接口组播组过滤

配置接口组播组最大个数限制

配置源端口检查

配置MLD协议报文合法性检查

配置Profile

功能简介

Profile用于定义允许或禁止用户点播的组地址范围,供其他功能引用:

配置SVGL模式时,引用Profile来定义SVGL组地址范围。

配置端口过滤器时,引用Profile来定义端口下允许/禁止用户点播的组地址范围。

配置VLAN过滤器时,引用Profile来定义VLAN中允许/禁止用户点播的组地址范围。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

创建Profile。

ipv6 mld profile profile-number

缺省情况下,未创建任何过滤模板。

设置Profile组范围。

range start-ipv6-address [ end-ipv6-address ]

缺省情况下,Profile中未定义组范围。

可同时配置多个Range范围,若两个Range之间存在交接,将自动对Range进行合并。

设置Profile过滤动作。以下配置步骤互斥,请选择其中一项进行配置。

设置Profile过滤动作为Deny。

deny

如果只配置Deny动作,未配置任何组范围,相当于未Deny任何组,效果为Permit所有组。

设置Profile过滤动作为Permit。

permit

如果只配置Permit动作,未配置任何组范围,相当于未Permit任何组,效果为Deny所有组。

缺省情况下,Profile执行Deny动作

配置接口组播组过滤

功能简介

一般情况下设备运行端口加入任意组。控制用户点播的组地址范围,可以为用户定制组播服务范围,保障运营商利益,防范非法组播流。

配置限制与指导

将Profile应用在端口上,可以限制端口下允许用户加入的组。

配置准备

配置组地址范围限制前,需保证对应的Profile已经创建并指定允许通过或者禁止通过过滤器的组范围。关于Profile配置的详细介绍,请参见“1.6.4  配置Profile”。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

进入接口配置模式。

进入二层以太网接口配置模式。

interface ethernet-type interface-number

进入二层聚合接口配置模式。

interface aggregateport interface-number

配置接口组播组过滤。

ipv6 mld snooping filter profile-number

缺省情况下,接口上的组播组过滤功能处于关闭状态。

配置接口组播组最大个数限制

功能简介

如果用户同时点播的组播流过多,会对设备性能产生很大的压力。限制同时点播的组的个数,可以有效保障带宽。可以在接口上限制加入的组播组数量。

配置限制与指导

只对接口上动态加入的组进行统计,不包含静态配置的组。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

进入接口配置模式。

进入二层以太网接口配置模式。

interface ethernet-type interface-number

进入二层聚合接口配置模式。

interface aggregateport interface-number

配置接口组播组最大个数限制。

ipv6 mld snooping max-groups max-groups-number

缺省情况下,接口能够动态加入的组播组个数为64000。

配置源端口检查

功能简介

通过开启源端口检查功能,限制用户只能接收从路由连接口进来的组播流,防范终端用户发送非法组播流。

当开启源端口检查功能时,只有从路由连接口进入的组播流才是合法的;而从非路由连接口进入的组播流是非法的,将被丢弃。

当关闭源端口检查功能时,从任何端口进入的组播流均是合法的。

配置限制与指导

如果需要只允许接收从路由连接口进来的组播流,可进行该配置。

启用源端口检查后,若环境中不存在任何路由连接口,设备接收到的组播数据流将被丢弃。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置源端口检查。

ipv6 mld snooping source-check port

缺省情况下,源端口检查功能处于关闭状态。

配置MLD协议报文合法性检查

功能简介

对MLD协议报文进行严格的检查,检查MLD报文的IP及MAC的映射关系是否正确,检查Query报文及Done是否符合RFC标准。

检查MLD协议报文的IPv6地址及MAC地址的合法性,检查目的MAC地址是否为33开头,并且目的MAC地址和目的IP地址的后32位要相同。

检查MLD Query报文的是否符合RFC标准,普遍组查询报文目的IP应为FF02::1,组IP为::;特定组查询报文目的IP地址要和组IP地址相同。

检查MLD Done报文的合法性,Done报文目的MAC应为3333.0000.0002并且目的IP为FF02::2。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置检查协议报文的合法性。请至少选择其中一项进行配置。

配置MLD协议报文的IP及MAC合法性检查。

ipv6 mld snooping check-ipmac

缺省情况下,MLD报文的目的IP及MAC合法性检查处于开启状态。

配置MLD Query报文的合法性检查。

ipv6 mld snooping check-query

缺省情况下,MLD Query报文合法性检查处于关闭状态。

配置MLD Done报文的合法性检查。

ipv6 mld snooping check-done

缺省情况下,MLD Done报文合法性检查功能处于关闭状态。

配置对QinQ的处理

功能简介

当在设备开启MLD Snooping和配置了Dot1q-tunnel端口之后,对于从Dot1q-tunnel端口收到的MLD报文,MLD Snooping支持以下的两种处理方式。

方式一:将组播表项建立在MLD报文所在的VLAN上。在MLD报文所在的VLAN上转发MLD报文,称为报文透传功能。比如:设备开启MLD Snooping,设备的端口A为Dot1q-tunnel端口,端口A的缺省VLAN为VLAN 1,且端口A允许VLAN 1和VLAN 10的报文通过。当向端口A发送VLAN 10的组播请求报文时,MLD Snooping将建立VLAN 10的组播表项,并将组播请求报文转发到VLAN 10的路由连接口上。

方式二:将组播表项建立在Dot1q-tunnel端口的缺省VLAN上。为组播报文添加一层Dot1q-tunnel端口缺省VLAN的VLAN Tag之后,再将其在Dot1q-tunnel端口的缺省VLAN内转发。比如:设备开启MLD Snooping,设备的端口A为Dot1q-tunnel端口,端口A的缺省VLAN为VLAN 1,且端口A允许VLAN 1和VLAN 10的报文通过。当向端口A发送VLAN 10的组播请求报文时,MLD Snooping将建立VLAN 1的组播表项,并为组播请求报文添加一层VLAN 1的VLAN Tag之后,再将其转发到VLAN 1的路由连接口上。

配置限制与指导

如果QinQ接口需要在报文携带的VLAN-ID的VLAN上进行组播报文的转发,需进行QinQ报文透传配置。

配置准备

配置MLD Snooping基本功能。

配置QinQ基本功能。配置QinQ的详细介绍,请参见“以太网交换配置指南”中的“QinQ”。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置QinQ报文透传。

ipv6 mld snooping tunnel

缺省情况下,QinQ透传MLD报文的功能处于关闭状态。

监视与维护

可以通过show命令行查看功能配置后的运行情况以验证配置效果。

同时还可以通过执行clear命令来清除各类信息。

注意

在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。

MLD Snooping监视与维护

作用

命令

清除MLD Snooping组播转发表项

clear ipv6 mld snooping gda-table

清除MLD Snooping的统计信息

clear ipv6 mld snooping statistics

查看MLD Snooping当前模式

show ipv6 mld snooping

查看MLD Snooping转发表项

show ipv6 mld snooping gda-table

查看MLD Snooping统计信息

show ipv6 mld snooping statistics

查看MLD Snooping路由连接口

show ipv6 mld snooping mrouter

查看MLD Snooping接口信息,接口过滤Profile和最大加入组限制

show ipv6 mld snooping interfaces [ interface-type interface-type interface-number ]

查看MLD Snooping单个VLAN组播信息

show ipv6 mld snooping vlan vlan-id

查看MLD Profile

show ipv6 mld profile profile-number

典型配置举例

IVGL模式的MLD Snooping基本功能配置举例

组网需求

如图1-5所示的组播网络中。路由器DeviceA通过交换机DeviceB连接用户网络,DeviceA上运行MLD。组播源Source向组播组FF14::10发送数据。网络中有HostA、HostB和HostC是三个主机。其中HostA和HostC加入组播组FF14::10,只有HostA和B能接收到组播源Source发到组播组FF14::10的组播数据。

组网图

IVGL模式的MLD Snooping基本功能配置组网图

image.png

配置要点

在交换机DeviceB上配置MLD Snooping基本功能以实现以上需求。

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

在DeviceA上开启组播路由功能及PIM-SMv6相关功能。

在DeviceB上开启MLD Snooping功能,运行IVGL模式。

配置步骤

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

# DeviceA上配置IPv6地址及其单播路由协议。

DeviceA> enable

DeviceA# configure terminal

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# no switchport

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 address 1012::1/64

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 ospf 4949 area 0

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# interface GigabitEthernet 0/48

DeviceA(config-if-GigabitEthernet 0/48)# no switchport

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 address 1011::2/64

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 ospf 4949 area 0

DeviceA(config-if-GigabitEthernet 0/48)# exit

DeviceA(config)# ipv6 router ospf 4949

DeviceA(config-router)# exit

# DeviceB上配置IPv6地址、VLAN及其单播路由协议。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# vlan 49

DeviceB(config-vlan)# exit

DeviceB(config)# interface vlan 49

DeviceB(config-if-VLAN 49)# ipv6 address 1011::1/64

DeviceB(config-if-VLAN 49)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 49)# exit

DeviceB(config)# interface GigabitEthernet 0/18

DeviceB(config-if-GigabitEthernet 0/18)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/18)# exit

DeviceB(config)# interface GigabitEthernet 0/19

DeviceB(config-if-GigabitEthernet 0/19)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/19)# exit

DeviceB(config)# interface GigabitEthernet 0/20

DeviceB(config-if-GigabitEthernet 0/20)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/20)# exit

DeviceB(config)# interface GigabitEthernet 0/22

DeviceB(config-if-GigabitEthernet 0/22)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/22)# exit

DeviceB(config)# ipv6 router ospf 4949

DeviceB(config-router)# exit

在DeviceA上开启组播路由功能及PIM-SMv6相关功能。

DeviceA(config)# ipv6 multicast-routing

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 pim sparse-mode

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# interface GigabitEthernet 0/48

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 pim sparse-mode

DeviceA(config-if-GigabitEthernet 0/48)# exit

DeviceA(config)# ipv6 pim bsr-candidate GigabitEthernet 0/47

DeviceA(config)# ipv6 pim rp-candidate GigabitEthernet 0/47

在DeviceB上开启MLD Snooping功能,运行IVGL模式。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld snooping ivgl

验证配置结果

# 组播源Source(1012::2)向组播组G(FF14::10)发送报文。使HostA和HostC加入G。

# 使用show ipv6 mld snooping gda-table查看设备DeviceB的MLD Snooping转发表项,成员口仅包含GigabitEthernet 0/19和GigabitEthernet 0/20。

DeviceB# show ipv6 mld snooping gda-table

Multicast Switching Cache Table

D: DYNAMIC

S: STATIC

M: MROUTE

(*, FF14::10, 49):

VLAN(49) 3 OPORTS:

GigabitEthernet 0/18(M)

GigabitEthernet 0/19(M)

GigabitEthernet 0/20(DM)

# 使用show ipv6 mld snooping查看设备DeviceB的MLD Snooping工作模式为IVGL。

DeviceB# show ipv6 mld snooping

MLD-snooping mode: IVGL

Source port check: Disable

MLD Fast-Leave: Disable

MLD Report suppress: Disable

Query Max Response Time: 10 (Seconds)

Dynamic Mroute Aging Time: 300(Seconds)

Dynamic Host Aging Time: 260(Seconds)

MLD Snooping version: 1

MLD Tunnel: Disable

vlan 49

-------------

MLD Snooping state: Enabled

Multicast router learning mode: Enable

MLD Fast-Leave: Enabled

MLD VLAN Mode: STATIC

配置文件

DeviceA的配置文件

hostname DeviceA

!

ipv6 multicast-routing

!

interface GigabitEthernet 0/47

no switchport

ipv6 address 1012::1/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

!

interface GigabitEthernet 0/48

no switchport

ipv6 address 1011::2/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

!

ipv6 pim bsr-candidate GigabitEthernet 0/47

ipv6 pim rp-candidate GigabitEthernet 0/47

!

DeviceB的配置文件

hostname DeviceB

!

vlan range 1,49

!

interface GigabitEthernet 0/18

switchport access vlan 49

!

interface GigabitEthernet 0/19

switchport access vlan 49

!

interface GigabitEthernet 0/20

switchport access vlan 49

!

interface GigabitEthernet 0/22

switchport access vlan 49

!

interface VLAN 49

ipv6 address 1011::1/64

ipv6 ospf 4949 area 0

!

Ipv6 mld snooping ivgl

!

常见错误

未能正确选择MLD Snooping的工作模式。

SVGL模式的MLD Snooping基本功能配置举例

组网需求

如图1-6所示的组播网络中。路由器DeviceA通过交换机DeviceB连接用户网络,DeviceA上运行MLD,并直连组播源。组播源Source向组播组FF14::10发送数据。网络中HostA、HostB和HostC分别连接到VLAN101、VLAN102和VLAN103,三台主机均加入组播组FF14::10。HostA、HostB和HostC都能接收到组播源Source发到组播组FF14::10的组播数据。

组网图

SVGL模式MLD Snooping基本功能配置组网图

image.png

配置要点

在交换机DeviceB上配置MLD Snooping基本功能以实现以上需求。

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

在DeviceA上开启组播路由功能及PIM-SMv6相关功能。

在DeviceB上开启MLD Snooping功能,运行SVGL模式。

在DeviceB上配置MLD Snooping SVGL模式关联的组范围,并指定Shared VLAN和Sub VLAN。

配置步骤

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

# DeviceA上配置IP地址及其单播路由协议。

DeviceA> enable

DeviceA# configure terminal

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# no switchport

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 address 1012::1/64

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 ospf 4949 area 0

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# vlan 104

DeviceA(config)# interface vlan 104

DeviceA(config-if-VLAN 104)# ipv6 address 1011::2/64

DeviceA(config-if-VLAN 104)# ipv6 ospf 4949 area 0

DeviceA(config-if-VLAN 104)# exit

DeviceA(config)# interface GigabitEthernet 0/48

DeviceA(config-if-GigabitEthernet 0/48)# switchport mode trunk

DeviceA(config-if-GigabitEthernet 0/48)# switchport trunk native vlan 104

DeviceA(config-if-GigabitEthernet 0/48)# exit

DeviceA(config)# ipv6 router ospf 4949

DeviceA(config-router)# exit

# DeviceB上配置IPv6地址、VLAN及其单播路由协议。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# vlan range 101-104

DeviceB(config-vlan-range)# exit

DeviceB(config)# interface VLAN 101

DeviceB(config-if-VLAN 101)# ipv6 address 1010::1/64

DeviceB(config-if-VLAN 101)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 101)# exit

DeviceB(config)# interface VLAN 102

DeviceB(config-if-VLAN 102)# ipv6 address 1020::1/64

DeviceB(config-if-VLAN 102)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 102)# exit

DeviceB(config)# interface VLAN 103

DeviceB(config-if-VLAN 103)# ipv6 address 1030::1/64

DeviceB(config-if-VLAN 103)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 103)# exit

DeviceB(config)# interface VLAN 104

DeviceB(config-if-VLAN 104)# ipv6 address 1011::2/64

DeviceB(config-if-VLAN 104)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 104)# exit

DeviceB(config)# interface GigabitEthernet 0/18

DeviceB(config-if-GigabitEthernet 0/18)# switchport mode trunk

DeviceB(config-if-GigabitEthernet 0/18)# switchport trunk native vlan 104

DeviceB(config-if-GigabitEthernet 0/18)# exit

DeviceB(config)# interface GigabitEthernet 0/19

DeviceB(config-if-GigabitEthernet 0/19)# switchport access vlan 103

DeviceB(config-if-GigabitEthernet 0/19)# exit

DeviceB(config)# interface GigabitEthernet 0/20

DeviceB(config-if-GigabitEthernet 0/20)# switchport access vlan 101

DeviceB(config-if-GigabitEthernet 0/20)# exit

DeviceB(config)# interface GigabitEthernet 0/22

DeviceB(config-if-GigabitEthernet 0/22)# switchport access vlan 102

DeviceB(config-if-GigabitEthernet 0/22)# exit

DeviceB(config)# ipv6 router ospf 4949

DeviceB(config-router)# exit

在DeviceA上开启组播路由功能及PIM-SM相关功能。

DeviceA(config)# ipv6 multicast-routing

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 pim sparse-mode

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# interface vlan 104

DeviceA(config-if-VLAN 104)# ipv6 pim sparse-mode

DeviceA(config-if-VLAN 104)# exit

DeviceA(config)# ipv6 pim bsr-candidate GigabitEthernet 0/47

DeviceA(config)# ipv6 pim rp-candidate GigabitEthernet 0/47

在DeviceB上开启MLD Snooping功能,运行IVGL模式。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld snooping svgl

在DeviceB上配置MLD Snooping SVGL模式关联的组范围,并指定Shared VLAN。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld profile 1

DeviceB(config-profile)# permit

DeviceB(config-profile)# range ff13::1 ff14::fff

DeviceB(config-profile)# exit

DeviceB(config)# ipv6 mld snooping svgl profile 1

DeviceB(config)# ipv6 mld snooping svgl vlan 104

验证配置结果

# 组播源Source(1012::2)向组播组G(FF14::10)发送报文。使HostA、HostB和HostC加入G。

# 通过show ipv6 mld snooping gda-table命令,查看设备DeviceB的MLD Snooping转发表项,成员口包含GigabitEthernet 0/19、GigabitEthernet 0/20和GigabitEthernet 0/22。

DeviceB# show ipv6 mld snooping gda-table

Multicast Switching Cache Table

D: DYNAMIC

S: STATIC

M: MROUTE

(*, FF14::10, 104):

VLAN(104) 1 OPORTS:

GigabitEthernet 0/18(M)

VLAN(101) 1 OPORTS:

GigabitEthernet 0/20(D)

VLAN(103) 1 OPORTS:

GigabitEthernet 0/19(D)

VLAN(102) 1 OPORTS:

GigabitEthernet 0/22(D)

# 通过show ipv6 mld snooping命令,查看设备DeviceB的MLD Snooping工作模式为SVGL。

DeviceB# show ipv6 mld snooping

MLD-snooping mode: SVGL

SVGL vlan: 104

SVGL profile number: 1

Source port check: Disable

MLD Fast-Leave: Disable

MLD Report suppress: Disable

Query Max Response Time: 10 (Seconds)

Dynamic Mroute Aging Time: 300(Seconds)

Dynamic Host Aging Time: 260(Seconds)

MLD Snooping version: 1

MLD Tunnel: Disable

配置文件

DeviceA的配置文件

hostname DeviceA

!

ipv6 multicast-routing

!

vlan 104

!

interface GigabitEthernet 0/47

no switchport

ipv6 address 1012::1/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

interface GigabitEthernet 0/48

switchport mode trunk

switchport trunk native vlan 104

!

interface VLAN 104

ipv6 address 1011::2/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode!

!

ipv6 router ospf 4949

graceful-restart

!

ipv6 pim bsr-candidate GigabitEthernet 0/47

ipv6 pim rp-candidate GigabitEthernet 0/47

!

DeviceB的配置文件

hostname DeviceB

!

ipv6 mld profile 1

permit

range FF13::1 FF14::FFF

!

vlan range 1,101-104

!

interface GigabitEthernet 0/18

switchport mode trunk

switchport trunk native vlan 104

!

interface GigabitEthernet 0/19

switchport access vlan 103

!

interface GigabitEthernet 0/20

switchport access vlan 101

!

interface GigabitEthernet 0/22

switchport access vlan 102

!

interface VLAN 101

ipv6 address 1010::1/64

ipv6 ospf 4949 area 0

!

interface VLAN 102

ipv6 address 1020::1/64

ipv6 ospf 4949 area 0

!

interface VLAN 103

ipv6 address 1030::1/64

ipv6 ospf 4949 area 0

!

interface VLAN 104

ipv6 address 1011::2/64

ipv6 ospf 4949 area 0

!

ipv6 router ospf 4949

graceful-restart

!

ipv6 mld snooping svgl vlan 104

ipv6 mld snooping svgl profile 1

ipv6 mld snooping svgl

!

常见错误

未配置SVGL模式允许的组范围。

发送的组播流不在SVGL允许的组范围内。

IVGL-SVGL模式的MLD Snooping基本功能配置举例

组网需求

如图1-7所示的组播网络中。路由器DeviceA和DeviceC通过交换机DeviceB连接用户网络,DeviceA和DeviceC上运行MLD,并直连组播源。组播源Source1向组播组FF14::10发送数据,组播源Source2向组播组FF15::11发送数据,。网络中HostA、HostB和HostC分别连接到VLAN101、VLAN102和VLAN103,HostB和HostC加入组播组FF14::10,HostA加入组播组FF14::10和组播组FF15::11。HostB和HostC都能接收到组播源Source1发到组播组FF14::10的组播数据,HostA能接收到组播源Source1发到组播组FF14::10的组播数据和组播源Source2发到组播组FF15::11的组播数据。HostA、HostB和HostC享受公共组播服务的同时HostA还可以享受独立组播服务。

组网图

IVGL-SVGL模式MLD Snooping基本功能配置组网图

image.png

配置要点

在交换机DeviceB上配置IVGL-SVGL模式的MLD Snooping基本功能以实现以上需求。

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

在DeviceA和DeviceC上开启组播路由功能及PIM-SMv6相关功能。

在DeviceB上开启MLD Snooping功能,运行IVGL-SVGL模式。

在DeviceB上配置MLD Snooping SVGL模式关联的组范围,并指定Shared VLAN和Sub VLAN。

配置步骤

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

# DeviceA上配置IPv6地址及其单播路由协议。

DeviceA> enable

DeviceA# configure terminal

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# no switchport

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 address 1012::1/64

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 ospf 4949 area 0

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# vlan 104

DeviceA(config)# interface vlan 104

DeviceA(config-if-VLAN 104)# ipv6 address 1011::2/64

DeviceA(config-if-VLAN 104)# ipv6 ospf 4949 area 0

DeviceA(config-if-VLAN 104)# exit

DeviceA(config)# interface GigabitEthernet 0/48

DeviceA(config-if-GigabitEthernet 0/48)# switchport mode trunk

DeviceA(config-if-GigabitEthernet 0/48)# switchport trunk native vlan 104

DeviceA(config-if-GigabitEthernet 0/48)# exit

DeviceA(config)# ipv6 router ospf 4949

DeviceA(config-router)# exit

# DeviceB上配置IPv6地址、VLAN及其单播路由协议。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# vlan range 101-104

DeviceB(config-vlan-range)# exit

DeviceB(config)# interface VLAN 101

DeviceB(config-if-VLAN 101)# ipv6 address 1010::1/64

DeviceB(config-if-VLAN 101)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 101)# exit

DeviceB(config)# interface VLAN 102

DeviceB(config-if-VLAN 102)# ipv6 address 1020::1/64

DeviceB(config-if-VLAN 102)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 102)# exit

DeviceB(config)# interface VLAN 103

DeviceB(config-if-VLAN 103)# ipv6 address 1030::1/64

DeviceB(config-if-VLAN 103)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 103)# exit

DeviceB(config)# interface VLAN 104

DeviceB(config-if-VLAN 104)# ipv6 address 1011::2/64

DeviceB(config-if-VLAN 104)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 104)# exit

DeviceB(config)# interface GigabitEthernet 0/18

DeviceB(config-if-GigabitEthernet 0/18)# switchport mode trunk

DeviceB(config-if-GigabitEthernet 0/18)# switchport trunk native vlan 104

DeviceB(config-if-GigabitEthernet 0/18)# exit

DeviceB(config)# interface GigabitEthernet 0/19

DeviceB(config-if-GigabitEthernet 0/19)# switchport access vlan 103

DeviceB(config-if-GigabitEthernet 0/19)# exit

DeviceB(config)# interface GigabitEthernet 0/20

DeviceB(config-if-GigabitEthernet 0/20)# switchport access vlan 101

DeviceB(config-if-GigabitEthernet 0/20)# exit

DeviceB(config)# interface GigabitEthernet 0/21

DeviceB(config-if-GigabitEthernet 0/21)# switchport access vlan 101

DeviceB(config-if-GigabitEthernet 0/21)# exit

DeviceB(config)# interface GigabitEthernet 0/22

DeviceB(config-if-GigabitEthernet 0/22)# switchport access vlan 102

DeviceB(config-if-GigabitEthernet 0/22)# exit

DeviceB(config)# ipv6 router ospf 4949

DeviceB(config-router)# exit

# DeviceC上配置IPv6地址及其单播路由协议。

DeviceC> enable

DeviceC# configure terminal

DeviceC(config)# interface GigabitEthernet 0/21

DeviceC(config-if-GigabitEthernet 0/21)# no switchport

DeviceC(config-if-GigabitEthernet 0/21)# ipv6 address 1000::1/64

DeviceC(config-if-GigabitEthernet 0/21)# ipv6 ospf 4949 area 0

DeviceC(config-if-GigabitEthernet 0/21)# exit

DeviceC(config)# interface GigabitEthernet 0/23

DeviceC(config-if-GigabitEthernet 0/23)# no switchport

DeviceC(config-if-GigabitEthernet 0/23)# ipv6 address 1010::3/64

DeviceC(config-if-GigabitEthernet 0/23)# ipv6 ospf 4949 area 0

DeviceC(config-if-GigabitEthernet 0/23)# exit

DeviceC(config)# ipv6 router ospf 4949

DeviceC(config-router)# exit

在DeviceA和DeviceC上开启IPv6组播路由功能及PIM-SMv6相关功能。

# DeviceA上开启IPv6组播路由功能及PIM-SMv6相关功能。

DeviceA(config)# ipv6 multicast-routing

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 pim sparse-mode

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# interface vlan 104

DeviceA(config-if-VLAN 104)# ipv6 pim sparse-mode

DeviceA(config-if-VLAN 104)# exit

DeviceA(config)# ipv6 pim bsr-candidate GigabitEthernet 0/47

DeviceA(config)# ipv6 pim rp-candidate GigabitEthernet 0/47

# 在DeviceC上开启IPv6组播路由功能及PIM-SMv6相关功能。

DeviceC(config)# ipv6 multicast-routing

DeviceC(config)# interface GigabitEthernet 0/21

DeviceC(config-if-GigabitEthernet 0/21)# no switchport

DeviceC(config-if-GigabitEthernet 0/21)# ipv6 pim sparse-mode

DeviceC(config-if-GigabitEthernet 0/21)# exit

DeviceC(config)# interface GigabitEthernet 0/23

DeviceC(config-if-GigabitEthernet 0/23)# ipv6 pim sparse-mode

DeviceC(config-if-GigabitEthernet 0/23)# exit

在DeviceB上开启MLD Snooping功能,运行IVGL-SVGL模式。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld snooping ivgl-svgl

在B上配置MLD Snooping SVGL模式关联的组范围,并指定Shared VLAN。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld profile 1

DeviceB(config-profile)# permit

DeviceB(config-profile)# range ff13::1 ff14::fff

DeviceB(config-profile)# exit

DeviceB(config)# ipv6 mld snooping svgl profile 1

DeviceB(config)# ipv6 mld snooping svgl vlan 104

验证配置结果

# 通过show ipv6 mld snooping gda-table命令,查看DeviceB上的MLD Snooping转发表项,表项(*,FF14::10,104)的成员口包含GigabitEthernet 0/22、GigabitEthernet 0/20和GigabitEthernet 0/19;(*,FF15::11,101)的成员口为GigabitEthernet 0/20。

DeviceB# show ipv6 mld snooping gda-table

Multicast Switching Cache Table

D: DYNAMIC

S: STATIC

M: MROUTE

(*, FF15::11, 101):

VLAN(101) 2 OPORTS:

GigabitEthernet 0/20(D)

GigabitEthernet 0/21(M)

(*, FF14::10, 104):

VLAN(104) 1 OPORTS:

GigabitEthernet 0/18(M)

VLAN(103) 1 OPORTS:

GigabitEthernet 0/19(D)

VLAN(102) 1 OPORTS:

GigabitEthernet 0/22(D)

VLAN(101) 1 OPORTS:

GigabitEthernet 0/20(D)

# 通过show ipv6 mld snooping命令,查看DeviceB上的MLD Snooping工作模式为IVGL-SVGL。

DeviceB# show ipv6 mld snooping

MLD-snooping mode: IVGL-SVGL

SVGL vlan: 104

SVGL profile number: 1

Source port check: Disable

MLD Fast-Leave: Disable

MLD Report suppress: Disable

Query Max Response Time: 10 (Seconds)

Dynamic Mroute Aging Time: 300(Seconds)

Dynamic Host Aging Time: 260(Seconds)

MLD Snooping version: 1

MLD Tunnel: Disable

vlan 1

-------------

MLD Snooping state: Enabled

Multicast router learning mode: Enable

MLD Fast-Leave: Enabled

MLD VLAN Mode: STATIC

vlan 101

-------------

MLD Snooping state: Enabled

Multicast router learning mode: Enable

MLD Fast-Leave: Enabled

MLD VLAN Mode: STATIC

vlan 102

-------------

MLD Snooping state: Enabled

Multicast router learning mode: Enable

MLD Fast-Leave: Enabled

MLD VLAN Mode: STATIC

vlan 103

-------------

MLD Snooping state: Enabled

Multicast router learning mode: Enable

MLD Fast-Leave: Enabled

MLD VLAN Mode: STATIC

vlan 104

-------------

MLD Snooping state: Enabled

Multicast router learning mode: Enable

MLD Fast-Leave: Enabled

MLD VLAN Mode: STATIC

配置文件

DeviceA的配置文件

hostname DeviceA

!

ipv6 multicast-routing

!

vlan 104

!

interface GigabitEthernet 0/47

no switchport

ipv6 address 1012::1/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

interface GigabitEthernet 0/48

switchport mode trunk

switchport trunk native vlan 104

!

interface VLAN 104

ipv6 address 1011::2/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode!

!

ipv6 router ospf 4949

graceful-restart

!

ipv6 pim bsr-candidate GigabitEthernet 0/47

ipv6 pim rp-candidate GigabitEthernet 0/47

!

DeviceB的配置文件

hostname DeviceB

!

ipv6 mld profile 1

permit

range FF13::1 FF14::FFF

!

vlan range 1,101-104

!

interface GigabitEthernet 0/18

switchport mode trunk

switchport trunk native vlan 104

!

interface GigabitEthernet 0/19

switchport access vlan 103

!

interface GigabitEthernet 0/20

switchport access vlan 101

!

interface GigabitEthernet 0/21

switchport access vlan 101

!

interface GigabitEthernet 0/22

switchport access vlan 102

!

interface VLAN 101

ipv6 address 1010::1/64

ipv6 ospf 4949 area 0

!

interface VLAN 102

ipv6 address 1020::1/64

ipv6 ospf 4949 area 0

!

interface VLAN 103

ipv6 address 1030::1/64

ipv6 ospf 4949 area 0

!

interface VLAN 104

ipv6 address 1011::2/64

ipv6 ospf 4949 area 0

!

ipv6 router ospf 4949

graceful-restart

!

ipv6 mld snooping svgl vlan 104

ipv6 mld snooping svgl profile 1

ipv6 mld snooping ivgl-svgl

!

DeviceC的配置文件

hostname DeviceC

!

ipv6 multicast-routing

!

interface GigabitEthernet 0/21

no switchport

ipv6 address 1000::1/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

!

interface GigabitEthernet 0/23

no switchport

ipv6 address 1010::3/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

!

ipv6 router ospf 4949

graceful-restart

!

常见错误

未配置SVGL模式允许的组范围。

发送的组播流不在SVGL允许的组范围内。

IVGL模式的组播流组地址在SVGL范围内,导致无法进行IVGL转发。

静态端口实现二层组播配置举例

组网需求

如图1-8所示的组播网络中。HostA、HostB和HostC需要长期稳定的接收组播源发送到特定组播组的数据。路由器DeviceA通过二层设备DeviceB连接用户网,DeviceA的用户侧接口配置了FF14::10~FF14::12的MLD静态组。网络中的HostA和HostB希望长期稳定接收FF14::10的组播数据,HostC希望长期接收FF14::11的组播数据。

组网图

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

image.png

配置要点

在DeviceB上配置MLD Snooping的静态路由连接口和静态成员端口,可以实现该需求。

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

在DeviceA上开启组播路由功能及MLD静态组。

在DeviceB上开启MLD Snooping功能。

在DeviceB上配置静态路由连接口和静态成员口。

配置步骤

在网络中配置IPv6地址、VLAN及单播路由协议,实现各个节点单播路由可达。

# DeviceA上配置IPv6地址及其单播路由协议。

DeviceA> enable

DeviceA# configure terminal

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# no switchport

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 address 1012::1/64

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 ospf 4949 area 0

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# interface GigabitEthernet 0/48

DeviceA(config-if-GigabitEthernet 0/48)# no switchport

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 address 1011::2/64

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 ospf 4949 area 0

DeviceA(config-if-GigabitEthernet 0/48)# exit

DeviceA(config)# ipv6 router ospf 4949

DeviceA(config-router)# exit

# DeviceB上配置IPv6地址、VLAN及其单播路由协议。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# vlan 49

DeviceB(config-vlan)# exit

DeviceB(config)# interface vlan 49

DeviceB(config-if-VLAN 49)# ipv6 address 1011::1/64

DeviceB(config-if-VLAN 49)# ipv6 ospf 4949 area 0

DeviceB(config-if-VLAN 49)# exit

DeviceB(config)# interface GigabitEthernet 0/18

DeviceB(config-if-GigabitEthernet 0/18)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/18)# exit

DeviceB(config)# interface GigabitEthernet 0/19

DeviceB(config-if-GigabitEthernet 0/19)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/19)# exit

DeviceB(config)# interface GigabitEthernet 0/20

DeviceB(config-if-GigabitEthernet 0/20)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/20)# exit

DeviceB(config)# interface GigabitEthernet 0/22

DeviceB(config-if-GigabitEthernet 0/22)# switchport access vlan 49

DeviceB(config-if-GigabitEthernet 0/22)# exit

DeviceB(config)# ipv6 router ospf 4949

DeviceB(config-router)# exit

在DeviceA上开启IPv6组播路由功能及PIM-SMv6相关功能。

DeviceA(config)# ipv6 multicast-routing

DeviceA(config)# interface GigabitEthernet 0/47

DeviceA(config-if-GigabitEthernet 0/47)# ipv6 pim sparse-mode

DeviceA(config-if-GigabitEthernet 0/47)# exit

DeviceA(config)# interface GigabitEthernet 0/48

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 mld static-group ff14::10

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 mld static-group ff14::11

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 mld static-group ff14::12

DeviceA(config-if-GigabitEthernet 0/48)# ipv6 pim sparse-mode

DeviceA(config-if-GigabitEthernet 0/48)# exit

DeviceA(config)# ipv6 pim bsr-candidate GigabitEthernet 0/47

DeviceA(config)# ipv6 pim rp-candidate GigabitEthernet 0/47

在DeviceB上开启MLD Snooping基本功能。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld snooping ivgl

在DeviceB上静态路由连接口和静态成员口。

DeviceB> enable

DeviceB# configure terminal

DeviceB(config)# ipv6 mld snooping vlan 49 static ff14::11 interface GigabitEthernet 0/19

DeviceB(config)# ipv6 mld snooping vlan 49 static ff14::10 interface GigabitEthernet 0/22

DeviceB(config)# ipv6 mld snooping vlan 49 static ff14::10 interface GigabitEthernet 0/20

DeviceB(config)# ipv6 mld snooping vlan 49 mrouter interface GigabitEthernet 0/18

验证配置结果

# 通过show ipv6 mld snooping mrouter静态路由连接口为GigabitEthernet 0/18。

DeviceB# show ipv6 mld snooping mrouter

Multicast Switching Mroute Port

D: DYNAMIC

S: STATIC

(*, *, 49):

VLAN(49)  1 MROUTES:

GigabitEthernet 0/18(DS)

(*, *, 101):

VLAN(101)  1 MROUTES:

GigabitEthernet 0/21(D)

# 通过show ipv6 mld snooping gda-table查看组播组FF14::10对应的静态成员口为GigabitEthernet 0/20和GigabitEthernet 0/22,组播组FF14::11对应的静态成员口为GigabitEthernet 0/19。

DeviceB# show ipv6 mld snooping gda-table

Multicast Switching Cache Table

D: DYNAMIC

S: STATIC

M: MROUTE

(*, FF14::10, 49):

VLAN(49) 3 OPORTS:

GigabitEthernet 0/18(M)

GigabitEthernet 0/20(S)

GigabitEthernet 0/22(S)

(*, FF14::11, 49):

VLAN(49) 2 OPORTS:

GigabitEthernet 0/18(M)

GigabitEthernet 0/19(S)

配置文件

DeviceA的配置文件

hostname DeviceA

!

ipv6 multicast-routing

!

interface GigabitEthernet0/47

no switchport

ipv6 address 1012::1/64

ipv6 ospf 4949 area 0

ipv6 pim sparse-mode

!

interface GigabitEthernet0/48

no switchport

ipv6 address 1011::2/64

ipv6 ospf 4949 area 0

ipv6 mld static-group ff14::10

ipv6 mld static-group ff14::11

ipv6 mld static-group ff14::12

ipv6 pim sparse-mode

!

Ipv6 router ospf 4949

graceful-restart

!

ipv6 pim bsr-candidate GigabitEthernet 0/47

ipv6 pim rp-candidate GigabitEthernet 0/47

!

DeviceB的配置文件

hostname DeviceB

!

vlan range 1,49

!

interface GigabitEthernet 0/18

switchport access vlan 49

!

interface GigabitEthernet 0/19

switchport access vlan 49

!

interface GigabitEthernet 0/20

switchport access vlan 49

!

interface GigabitEthernet 0/22

switchport access vlan 49

!

interface VLAN 49

ipv6 address 1011::1/64

ipv6 ospf 4949 area 0

!

router ospf 49

graceful-restart

!

ipv6 mld snooping ivgl

!

ipv6 mld snooping vlan 49 static FF14::11 interface GigabitEthernet 0/19

ipv6 mld snooping vlan 49 static FF14::10 interface GigabitEthernet 0/22

ipv6 mld snooping vlan 49 static FF14::10 interface GigabitEthernet 0/20

ipv6 mld snooping vlan 49 mrouter interface GigabitEthernet 0/18

!

常见错误

MLD Snooping基本功能没有配置,或配置失败。