信而泰Renix——MLD Snooping测试介绍
本文关键词:数通一体化测试、流量测试、协议仿真、IPv6测试、链路层。
一、Renix测试软件介绍
Renix 是信而泰推出的适用于研发测试场景的数通一体化测试软件,该软件配合适当的信而泰机箱和接口卡,可对 DUT(被测设备)执行流量测试、协议仿真和性能测试。适用于复杂网络设备在研发阶段的测试,如交换机、路由器、防火墙等。本文我们将为您介绍信而泰Renix——MLD Snooping测试介绍
二、MLD Snooping原理
2.1 MLD Snooping概述
(1)MLD Snooping
·Multicast Listener Discovery Snooping
·组播侦听者发现协议窥探
(2)功能
·实现组播数据在数据链路层的转发和控制
(3)标准
·RFC4541:2006.05
2.2 MLD Snooping概述
(1)定义
MLD Snooping (Multicast Listener Discovery Snooping)是一种IPv6二层组播协议,通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出端口信息,从而管理和控制组播数据报文在数据链路层的转发
(2)目的
·与IPv4组播网络类似,在IPv6组播网络中,组播报文也要不可避免地经过一些二层交换设备。由于组播报文的目的地址为组播组地址,在二层设备上是学习不到这一类MAC表项的,因此组播数据报文就会在所有接口进行广播。
·MLD Snooping有效地解决了这个问题。MLD Snooping是在IPv6组播网络中使用的二层组播协议。配置MLD Snooping后,二层组播设备可以侦听和分析组播用户和上游路由器之间的MLD报文,根据这些信息建立二层组播转发表项,控制组播数据报文转发。这样,就防止了组播数据在二层网络中的广播。
2.3 MLD Snooping工作原理
·在IPv6组播网络中,当组播数据从三层组播设备Router转发下来以后,处于接入边缘的二层设备Switch负责将组播信息转发给用户。当二层设备没有运行MLD Snooping时,组播数据在二层被广播
·使能MLD Snooping功能后,二层设备会侦听主机和上游三层设备之间交互的MLD报文,通过分析报文中携带的信息(报文类型、组播组地址、接收报文的接口等),建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发

2.4 MLD Snooping相关端口-基本概念
结合下图,介绍MLD Snooping中相关端口的概念
·路由器端口:二层设备上朝向三层组播设备(DR或MLD查询器)一侧的接口,二层设备从此接口接收组播数据报文。
·成员端口:又称组播组成员端口,表示二层设备上朝向组播组成员一侧的端口,二层设备往此接口发送组播数据报文。
·路由器端口和成员端口,是二层组播转发表项中的一个重要信息:出接口。其中路由器端口相当于上游接口,成员端口相当于下游接口。

2.5 MLD Snooping工作机制
二层设备运行MLD Snooping后,收到不同的MLD协议报文会进行不同的处理,并在此过程中建立起二层组播转发表项
·对MLD普遍组查询报文的处理
·对MLD报告报文的处理
·对MLD离开报文的处理
·对MLD特定源组查询报文/MLD最后侦听者查询报文的处理
2.6 MLD Snooping-对普遍组查询报文的处理
(1)MLD工作阶段:普遍组查询
·MLD查询器定期向网段内的所有主机与路由器(FF02::1)发送MLD普遍查询报文,以查询该网段有哪些组播组的成员。
(2)处理方式:向除接收接口外的其他所有接口转发,并对接收接口做如下处理。
·如果路由器端口列表中已包含该动态路由器端口,则重置老化定时器。
·如果路由器端口列表中尚未包含该接口,则将其添加进去,并启动老化定时器。

2.7 MLD Snooping-对报告报文的处理
(1)MLD工作阶段:成员报告关系
·成员收到MLD普遍组查询报文后,回应MLD报告报文
·成员主动向MLD查询器发送MLD报告报文以声明加入该组播组
(2)处理方式:向所有路由器端口转发。从报文中解析出主机要加入的组播组地址,并对接收接口做如下处理。
·不存在该组对应的转发表项,则创建转发表项,将该接口作为动态成员端口添加到出接口列表中,并启动老化定时器。
·已存在该组对应的转发表项,但出接口列表中未包含该接口,则将该接口作为动态成员端口添加到出接口列表,并启动老化定时器。
·已存在该组所对应的转发表项,且出接口列表中已包含该动态成员端口,则重启其老化定时器。

2.8MLD Snooping-对离开报文的处理
(1)MLD工作阶段:成员离开组播组-两个阶段
·成员发送MLD离开报文,以通知路由器自己离开组播组。
·MLD查询器向组播组发送MLD最后侦听者查询报文/MLD特定源组查询报文。
(2)处理方式:判断离开的组是否存在对应的转发表项,以及转发表项出接口列表中是否包含离开报文的接收端口。
·不存在该组的转发表项,或者该组转发表项的出接口列表中不包含接收接口,二层设备不转发该离开报文,直接丢弃。
·存在该组的转发表项,且转发表项的出接口列表中包含该接口,二层设备会将离开报文向所有路由器端口转发。
2.9 MLD Snooping对特殊报文的处理
(1)MLD Snooping对MLD最后侦听者查询报文的处理
·向有特定组成员的接口转发
(2)MLD Snooping对MLD特定源组查询报文的处理
·向有特定组成员的接口转发
2.10 MLD Snooping-对IPv6 PIM Hello报文的处理
当二层设备收到IPv6 PIM Hello报文时,向除接收接口外的其他所有接口转发,并对接收接口做如下处理:
·如果路由器端口列表中包含该动态路由器端口,则重置其老化定时器
·如果路由器端口列表中未包含该接口,则将其添加进去,并启动老化定时器
三、测试用例
3.1 MLD Snooping测试用例-模拟组网
模拟组网
·主播用户和三层组播设备之间通过二层交换机连接。
·两台主机模拟通过二层设备加入组播组。
·组播源发送IPv6类型的组播数据,通过二层设备时,如果二层设备上没有配置MLD Snooping,会被广播到所有主机上。
·如果二层设备上配置MLD Snooping,IPv6类型的组播数据会被转发到加入到组播组的用户主机上。

3.2 MLD Snooping测试用例
(1)测试目的
·验证DUT基本的MLD Snooping功能。
·验证二层组播转发功能。
(2)测试步骤
·按图连接好拓扑。
·测试仪端口T1连接MLD Router的G 0/0/1接口,T1上构建组播数据流量,模拟组播源。
·MLD Router的G 0/0/1接口配置PIM IPv6 SM,转发组播数据流量。
·MLD Router的G 0/0/2接口配置MLD。
·DUT上配置MLD Snooping。
·T2和T3端口模拟组播主机。
(3)预期结果
·测试仪端口T2模拟的主机可以成功加入组播组。
·MLD Router上能够查到组播成员,DUT上能查到二层组播转发表。
·测试仪T2端口能够收到T1发送的流量。
·关闭DUT上的MLD Snooping时,T2和T3端口都能收到T1发送的组播数据流量。
·停止MLD协议仿真,测试仪T2和T3端口不能收到T1发送的组播数据流量。

四、DUT配置
4.1使用案例-MLD Router上的配置
(1)
#
ipv6
#
vlan batch 100 200
#
multicast ipv6 routing-enable
#
interface Vlanif200
ipv6 enable
ipv6 address 2020::2/64
mld enable
#
interface Vlanif100
ipv6 enable
ipv6 address 2010::2/64
pim ipv6 sm
#
(2)
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 200
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 100
#
4.2使用案例-DUT上的配置
(1)
#
vlan batch 200
#
mld-snooping enable
#
acl ipv6 number 2000
rule 0 permit source FF16::1/128 #
vlan 200
mld-snooping enable
mld-snooping group-policy 2000
#
(2)
#
interface GigabitEthernet0/0/1
port link-type hybrid
port hybrid pvid vlan 200
port hybrid untagged vlan 200
#
interface GigabitEthernet0/0/2
port link-type hybrid
port hybrid pvid vlan 200
port hybrid untagged vlan 200
#
interface GigabitEthernet0/0/3
port link-type hybrid
port hybrid pvid vlan 200
port hybrid untagged vlan 200
#
五、测试仪配置
(1)准备工作:添加机框

(2)准备工作:预约端口

(3)选择MLD向导

(4)MLD向导-选择端口
选择端口T2创建MLD协议仿真

(5)MLD向导-选择端口
选择端口T2创建MLD协议仿真

(6)MLD向导-选择封装
·选择封装,按需求选择封装
·默认即可

(7)MLD向导-配置接口
配置接口,可以不勾选MAC地址学习

(8)MLD向导-配置链路层
配置链路层,填写模拟主机的MAC地址

(9)MLD向导-配置网络层
配置网络层,填写模拟主机的IPv6地址和网关地址

(10)MLD向导-配置MLD协议
配置MLD协议,填写MLD版本及组播组地址

(11)MLD向导-预览MLD配置
预览MLD配置,点击“完成”,结束MLD向导配置

(12)配置验证流量
在T1端口上添加IPv6地址,并学习到网关的MAC地址

(13)配置验证流量
操作步骤
·添加T1到组播组的绑定流
·源接口选择T1端口下的interface
·目的接口选择建立的IPv6组播组地址


(14)测试过程
·DUT上未启动MLD Snooping时,发送组播流量
·DUT上启动MLD Snooping、主机未添加到组播组时,发送组播流量
·DUT上启动MLD Snooping、主机加入到组播组时,发送组播流量
·DUT上启动MLD Snooping、主机离开组播组,发送组播流量
(15)DUT上未启动MLD Snooping时,发流验证
T2上启动MLD协议,DUT上不启动MLD Snooping协议,发送组播数据
组播数据在二层设备上泛洪,所以T2和T3端口都能接收到组播数据

(16)查看设备上MLD和MLD Snooping状态

MLD路由器上可以查看到组信息
![]()
DUT上查看不到组播转发表项
(17)DUT上启动MLD Snooping协议,发流验证
·DUT上启动MLD Snooping协议、T2上不启动MLD协议, 发送组播数据
·组播数据在二层设备上按照转发表转发组播数据,但此时没有组成员加入组,所以T2和T3端口都不能接收到组播数据

(18)DUT上启动MLD Snooping协议,发流验证
·T2上启动MLD协议,DUT上启动MLD Snooping协议,发送组播数据
·组播数据在二层设备上按照转发表项转发数据,所以T2端口能接收到组播数据



