MLD协议测试——网络测试仪实操
一、简介
1. MLD简介
MLD
· Multicast Listener Discovery Protocol
· 组播侦听者发现协议
功能
· 在终端主机和与其直接相邻的组播路由器之间建立/维护组播组成员关系
标准
· RFC2710: MLD, 1999.10
· RFC3810: MLDv2, 2004.06
其定义是:组播侦听者发现协议MLD(Multicast Listener Discovery)是负责IPv6组播成员管理的协议,用来在IPv6成员主机和与其直接相邻的组播路由器之间建立和维护组播组成员关系。MLD通过在成员主机和组播路由器之间交互MLD报文实现组成员管理功能,MLD报文封装在IPv6报文中。
在功能上:出现于IPv4时代的组播技术,有效解决了单点发送、多点接收的问题,实现了网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。在IPv6网络中,组播技术的应用得到了进一步的丰富和加强。MLD可以理解为IGMP的IPv6版本,两者的协议行为完全相同,区别仅仅在于报文格式。
因此,MLD定义了一个IPv6网段内组播路由器与成员主机之间如何建立和维护组成员关系
2.IGMP与MLD
MLDv1的工作机制与IGMPv2相同,基于查询和响应机制完成对IPv6组播组成员的管理。MLDv2在MLDv1的基础上,增加的主要功能是成员主机可以指定接收或不接收某些组播源的报文。MLD两个版本在演进过程中对协议报文的处理是向前兼容的,即运行MLDv2的组播路由器可以识别MLDv1的协议报文。

这里,我们以MLDv1进行举例:
3.MLDv1工作原理
MLDv1主要基于查询和响应机制完成对IPv6组播组成员的管理
· 查询器选举机制
· 加入IPv6组播组机制
· 离开IPv6组播组机制
MLDv1包含四种报文
· 普遍组查询报文(General Query):查询器向共享网络上所有主机和路由器发送的查询报文,用于了解哪些组播组存在成员;
· 特定组查询报文(Multicast Address Specific Query):查询器向共享网段内指定组播组发送的查询报文,用于查询该组播组是否存在成员;
· 成员报告报文(Multicast Listener Report):主机向查询器发送的报告报文,用于申请加入某个组播组或者应答查询报文;
· 成员离开报文(Multicast Listener Done):主机离开组播组时主动向查询器发送的报文,用于宣告自己离开了某个组播组。
4.MLDv1:查询器选举机制
网段内有多个IPv6组播组路由器时,需要确定一台路由器作为查询器发送查询报文
· 所有Router都网络中发送MLD普遍查询报文;
· 收到其他router的普遍查询报文后,自行与自己的IPv6地址比较,地址最小的成为查询器;
· 所有非查询器上会启动一个定时器(Other Querier Present Timer)。在定时器超时前收到来自查询器的MLD查询报文,则重置该定时器;否则,认为查询器失效,并发起新的查询器选举。

5.MLDv1:普遍组查询和响应机制
通过普遍组查询和响应,MLD查询器可以了解到该网段内那些组播组存在成员
· MLD查询器发送目的地址为FF02::1的普遍查询报文,收到该查询报文的组成员启动定时器;
· 第一个定时器查实的组成员发送针对该组的报告报文;
· 其余组成员收到此报告报文后,停止定时器,不再发送针对该组的报告报文,此功能被抑制;
· MLD查询器收到组成员报告报文后,知道本网段内存在组播组G1的成员,并由IPv6组播路由协议生成(*,G1)组播转发表项,一旦有组播组G1的数据到达路由器,就向该网段转发。

6.MLDv1:加入IPv6组播组机制
网段内有新成员需要加入组播组时,会主动向MLD查询器发送报告报文,不必等待普遍查询报文的到来
· 右图三个主机分别向G1、G2发送报告报文,MLD查询器接收到成员报告报文后,了解到网段中有G1 和G2的成员,IPv6路由组播协议生成(*,G1)和(*,G2)组播转发表项
· MLD查询器周期性地以组播方式向本网段的所有主机和路由器发送普遍查询报文,主机分别响应G1和G2的查询,HostC被HostB的组成员关系报告报文抑制,不发送成员关系报告报文

7.MLDv1:离开IPv6组播组机制
通过离开组机制,MLD查询器可以及时了解到网段内哪些组播组已不存在成员,从而及时更新组成员关系,减少网络中冗余的组播流量
· Host B向网段内所有组播路由器发送针对组G1的离开报文;
· MLD查询器收到离开报文,会发送针对组G1的特定组查询报文,同时查询器启动组成员关系定时器(Timer-Membership);
· 网段内还存在组G1的其他成员Host C,Host C收到特定组查询报文后会立即发送针对组G1的报告报文,查询器收到报告报文后会继续维护该组成员关系;
· 如果网段内不存在组G1的其他成员,查询器将不会收到针对组G1的报告报文,在组成员关系定时器(Timer-Membership)超时后,查询器将删除记录的(*,G1)组信息。

二、测试用例(以BigTao-V网络测试仪为例)
MLD测试用例
测试目的
· 验证DUT基本的MLD功能
· 验证组播流量转发功能
测试步骤
· 按图连接好拓扑
· 测试仪端口T1连接DUT的G 0/0/1接口
· DUT的G 0/0/1接口配置MLD
· 测试仪端口T2连接DUT的G 0/0/2接口,构建组播数据流量,T1能够接收到组播数据流量
· DUT的G 0/0/2接口配置PIM IPv6 SM,转发组播数据流量
预期结果
· 测试仪端口T1模拟的主机可以成功加入组播组
· DUT能够查到组播成员
· 测试仪T1端口能够收到T2发送的流量
· 停止MLD协议仿真,测试仪T1端口不能收到T2发送的流量

三、DUT配置
1. 使用案例
#
vlan batch 500 600
#
multicast ipv6 routing-enable
#
interface Vlanif500
ipv6 enable
ipv6 address 2010::2/64
mld enable
#
interface Vlanif600
ipv6 enable
ipv6 address 2020::2/64
pim ipv6 sm
#
#
interface GigabitEthernet0/0/21
port link-type access
port default vlan 500
#
interface GigabitEthernet0/0/22
port link-type access
port default vlan 600
#
四、测试仪配置
1. 准备工作: 添加机框

2.准备工作: 预约端口

3.添加Interface


4.修改Interface
· 使能“启用网关MAC地址学习”
· 地址数量,代表模拟的主机个数
· IPv6地址,代表主机的起始IP
· IPv6网关地址,代表对接端口的IPv6地址
· IPv6 Link Local地址,链路本地地址


5.新建MLD协议

6.编辑MLD协议
· 选择MLD协议版本,本例采用MLDv1版本
· 将Interface和MLD协议关联

7.添加组播组
操作步骤
· 选中MLDv1
· 点击 “编辑MLD组成员关系”
· 编辑组播起始地址和组播地址个数

8.配置验证流量
操作步骤
· 添加T2到T1的流
· 源MAC填写任意单播地址(也可以不修改);目MAC填写对应组播组的MAC地址,比如ff1e::1对应的组播MAC地址是3333-0000-0001
· 源IPv6和DUT对端IPv6设置成同网段,本例中编辑为2020::10;目的IPv6填写T1所添·加的组播组的IP地址ff1e::1


9.启动MLD
· 主机状态变为“Member”表示添加组播组成功
· 可在DUT上查看加入组播组状态,发送报告报文的主机是FE80::200:10FF:FE00:1,加入的组播组是FF1E::1


10.发流验证
订阅“Port Stream Statistic”统计
发流验证
· 选中流量
· 点击s发送
没有丢包,说明组播流量可以正常转发,与预期结果一致

点击“停止MLD协议”
流量不通,说明主机离开了组播组ff1e::1,与预期结果一致

11.查看帮助文档
在“帮助”文档中查看更详细信息

以上就是MLD协议测试的全部内容。
MLD协议测试——网络测试仪实操的更多相关文章
- ISISv4协议测试——网络测试仪实操
文章关键词 ISIS协议:路由协议:协议测试: 一.文章简介: isis是一种与ospf很相似的网络协议(属于动态路由协议),它被应用在巨大规模网络,如运营商以及银行等.同样的它也是基于链路状态算法, ...
- IGMP协议测试-网络测试仪实操
一.前言:IGMP协议用于IPv4系统向任何邻居组播路由器报告其组播成员资格.IP组播路由器自己本身也可以是一到多个组播组的成员.这时,组播路由器要实现协议的组播路由器部分. IGMP存在三个不同版本 ...
- RFC3918协议测试——网络测试仪实操
一.简介1.RFC3918简介历史· 在1999年3月成为正式标准 功能· 评测网络互连设备或网络系统的性能· 网络设备: 交换机,路由器- 内容· 定义了一整套测试方法,为不同厂家的设备/系统提供了 ...
- PPPoE协议测试——网络测试仪实操
前言: 与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式 ADSL 就使用了PPPoE协议. 随着低成本的宽带技术变得日益流行 ...
- RFC2889广播时延测试——网络测试仪实操
一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...
- RFC3918组播组容量测试——网络测试仪实操
一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...
- RFC3918组转发矩阵测试——网络测试仪实操
一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...
- RFC3918聚合组播吞吐量测试——网络测试仪实操
一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...
- RFC2889错误帧过滤测试----网络测试仪实操
一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...
随机推荐
- Ajax_axios发送ajax请求
Ajax_axios发送ajax请求 这篇笔记主要讲一下axios基本的发送ajax请求的方法 axios在当前的前端行业里面是用的比较热门的一个 下面给大家分享一下它axios的一个基本用法 这段代 ...
- python中True和False
python中只有0代表False,只有1代表True,注意只有!! if x: print('True') 只要x是非零数值.非空字符串.非空list等,就判断为True,否则为False.
- linux系统——Redis集群搭建(主从+哨兵模式)
趁着这几天刚好有点空,就来写一下redis的集群搭建,我跟大家先说明,本文的redis集群因为linux服务器只是阿里云一台服务器,所以集群是redis启动不同端口,但是也能达到集群的要求.其实不同服 ...
- Spring源码-IOC部分-循环依赖-用实例证明去掉二级缓存会出现什么问题【7】
实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] Spring ...
- 【然天一】随机读写(4k)百盘天梯
随机读写适用于大量小文件的读写,是最贴近办公和编程的使用场景.现在很多硬盘厂商只宣传它们的连续读写(Seq),但除了游戏和视频剪辑场景之外并没有什么卵用. 总结一下: 傲腾秒杀全部 NAND SLC ...
- eslint规则详解
{ // 环境定义了预定义的全局变量. "env": { //环境定义了预定义的全局变量.更多在官网查看 "browser":true, "node& ...
- 在终端或idea编译工具中的terminal中运行mvn install 失败
原因是因为操作系统的差异导致,把所有参数加上引号即可. 如下所示: mvn install:install-file "-Dfile=cobra.jar" "-Dgrou ...
- 鸿蒙轻内核源码分析:文件系统LittleFS
摘要:本文先介绍下LFS文件系统结构体的结构体和全局变量,然后分析下LFS文件操作接口. 本文分享自华为云社区<# 鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS>,作者: ...
- X000100
P3172 [CQOI2015]选数 gcd 为 \(K\) 不太好办,所以我们先把它转化成 gcd 为 1 的问题: scanf("%d%d%d%d",&n,&k ...
- 使用Xamarin开发移动应用示例——数独游戏(八)使用MVVM实现完成游戏列表页面
项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们已经完成了游戏的大部分功能,玩家可以玩预制的数独游戏,也可以自己添加 ...