IGMP协议测试实操(信而泰原创文章)

一、前言:

IGMP协议用于IPv4系统向任何邻居组播路由器报告其组播成员资格。IP组播路由器自己本身也可以是一到多个组播组的成员。这时,组播路由器要实现协议的组播路由器部分。

IGMP存在三个不同版本,Version 1在RFC-1112中声明,是第一个广泛使用的IGMP版本;Version 2在RFC-2236中声明,添加了“低离开延迟”和特定组查询功能;Version 3在RFC-3376中声明,添加了“源过滤”机制。允许系统选择想要接收的特定组播源或者排除不想接收的特定组播源。

IGMPv3同路由器的交互过程同IGMPv2相同。但是在IGMP v1\v2中,主机只依据组地址来决定加入某个组并从任何一个源接收发给该组地址的组播流。下面我们通过一个表格来直观的对比一下:


二、IGMPv1/v2/v3对比

img1

接下来,我们以IGMPv3为例,并利用BigTao-V系列网络测试仪进行协议测试实操


三、IGMP协议测试验证(以V3为例)

IGMPv3 典型场景

目的

·验证IGMPv3的加入/离开/查询机制

测试仪配置

·测试仪Port1模拟2个组播源, 发送组播数据, 组播源IP分别是30.1.1.2, 30.1.1.3

·测试仪Port2模拟IGMPv3主机, 加入组播组(232.1.1.1)

路由器配置

·在2个接口上分别IP地址

·在2个接口上需要启用PIM

img2

路由器配置命令思科路由器为例

!

ip multicast-routing

!

interface GigabitEthernet1/0/1

 ip address 30.1.1.1 255.255.255.0

 ip pim sparse-mode

!

interface GigabitEthernet1/0/2

 ip address 192.168.1.1 255.255.255.0

 ip pim sparse-mode

 ip igmp version 3

!

ip pim rp-address 30.1.1.1

!

ip pim ssm default

!


配置步骤

·全局启用组播路由

·在2个接口上启用PIM

·配置RP地址(静态)


G1/0/2配置IGMPv3版本

·接口启用PIM以后, IGMP自动启用

·路由器默认版本为IGMPv2


启动SSM

·默认是PIM SM模式, 一定要为SSM才行


准备工作: 添加机框

img3

准备工作: 预约端口

img4

IGMPv3协议测试验证

IGMPv3 主机配置

选择IGMP向导

img5


选择端口

·选择Port2模拟主机

img6


选择封装

默认配置

img7


配置接口

默认配置

img8

配置链路层

·可以默认

·也可以修改MAC地址

img9


配置网络层

·IPv4地址: 模拟的host地址

·IPv4网关: 路由器接口地址

img10



配置IGMP

·版本: IGMPv3

·过滤模式: include

·起始地址: 30.1.1.2

·“想要接收 源为30.1.1.2, 组为232.1.1.1的组播流量

img11


预览IGMP

预览IGMP

img12

查看IGMP配置: 自动生成

查看配置

·在Port2下自动生成IGMP 配置

img13



查看IGMP配置: 组播组

img14


学习ARP

img15


IGMPv3组播流配置

添加IPv4接口

·模拟组播服务器

·进行两次操作, 添加2个接口

img16


编辑IPv4接口

img17



学习ARP

img18


添加组播流

·使用绑定流量来配置会更简单

·绑定流量会自动的完成组播IP到组播MAC转换

img19



选择端口

两个端口都需要选择

img20

选择端点

多对多模式

选择端点

·源: 组播源接口

·目的: 组播组

img21


常规配置

·帧长度

·净荷等

img22



帧内容

自动填充

·不需要手工填写

帧内容: 第一条流预览

·目的MAC: 232.1.1.1对应的组播MAC

·源MAC: 组播源接口的MAC

·源IP: 组播源接口的IP

·目的IP: 组播组的地址

img23



接收端口

默认配置

img24


查看组播流量

自动创建2条组播流量

·模拟两个不同的组播源

·修改流名称(可选)

img25



IGMPv3结果查看

修改流发送模式

·负载类型: 基于流

·负载单位: 百分比

img26


修改负载大小

负载大小

·源1发送的修改为20%, 即200M

·源2发送的修改为30%, 即300M

img27


发送组播流

发送2条组播流

查看统计

·Port1有发送统计

·Port2没有接收统计

img28



加入组播组

加入组播组

·选中 IGMP host

·启用IGMP协议

·主机状态: Member

查看统计

·Port1有发送统计

·Port2 有接收统计, 接收到组播流了

img29



查看统计: 组播数据报文统计

img30


查看统计: 协议报文统计

img31


抓包: 组播数据报文

img32



IGMPv3原理验证

加入组播组: IGMPv3 Report

img33



捕获控制报文

·修改为Control Plane

·默认只捕获 数据报文

img34


加入组播组: 查看Router表项

IGMP Group表项

·主机通过G1/0/2接口加入组播组232.1.1.1

·Expires: 超时时间, stopped

·Flags: SSM

·Group mode: Include

img35


组播组查询: IGMPv3 普通组查询

IGMPv3查询器

·由LAN上IP地址最小的路由器担任

·周期性(1分钟)发送普通组查询报文


注意点

·必须要有查询器

·否则3分钟左右, 流量就会停止转发

img36



组播组查询: IGMPv3 特定源组查询

IGMPv3查询器发送

·查询器收到主机发送的leave(Report, TO-IN)以后, 会发送特定组查询报文


注意点

·查询器只有在收到主机发送的leavel报文时, 才会发送特定组查询

·其它的时候, 路由器周期性发送普通组查询

img37



离开组: RENIX配置

停止IGMP协议

·主机 发送IGMPv3 Report(TO-IN)报文

·主机离开以后, 不会再响应查询器发送的查询报文


IGMPv3 离开组

·查询器(路由器)收到Report(TO-IN)以后, 会发送2个特定源组查询报文, 询问网络上是否有主机仍然需要接收这个组的特定报文

离开组: 查看路由器

img38


离开组: 查看路由器

离开组

·路由器在发送2个特定组查询以后, 如果没有收到回复, 就会立刻(3秒内)删除表项, 停止转发数据

img39


以上就是IGMPv3协议测试的全部内容。