IGMP协议基础,组播配置和过程解析(华为)
IGMP协议基础,组播配置和过程解析(华为)
预备知识:知道什么是组播。会配OSPF,会看Wireshark工具
新概念:
IGMP简介: 网路群组管理协议(Internet Group Management Protocol或简写IGMP)是用于管理网路协议多播组成员的一种通信协议
D类地址:(224.0.0.1~239.255.255.254)
- 224.0.0.0~224.0.0.255 永久组地址(保留组地址)
224.0.0.1:发给网段内所有主机,(可以说是组播里的广播) - 224.0.1.0~231.255.255.255
- 233.0.0.0~238.255.255.255 ASM组播地址,全网范围内有效。
- 232.0.0.0~232.255.255.255 缺省情况下的SSM组播地址,全网范围内有效。
- 239.0.0.0~239.255.255.255 本地管理组地址,仅在本地管理域内有效。在不同的管理域内重复使用相同的本地管理组地址不会导致冲突。(类似C类地址的192.168.1.0,不上公网)
查询器: 负责发送查询报文,并接收主机反馈的加入报文和离开报文,通常是某个接口
IGMP报文格式:
- 普遍组查询报文(General Query):组播查询网络上所有主机,路由器,用于了解哪些组播组存在成员。
- 成员报告报文(Report):主机向查询器发送报告,申请加组或应答
- 成员离开报文(Leave):成员离开组播组时主动向查询器发送的报文,宣告自己离开了某个组播组。
IGMPv1:
IGMPv2:
- 从报文看到v2版本去掉的版本号。
- 添加了一个最大响应时间,即可以自定义最大响应时间,默认10秒,单位改为0.1秒。
- 添加了一条指定组查询,在查询时不用发给所有组。
- 添加一条离开组消息,成员离开组时主动发送。
- v2增加了查询器选举(v1最大响应时间10秒,单位1秒,查询器选举用的pim协议)
IGMPv3:
该版本添加了指定组播源和组播组的功能,由于v3版本出现不产品会出现不兼容问题。所以并并不广泛应用。主流还是v2版本
以v2版本介绍运行过程
加入组: 在该局域网中,路由器每60秒发送一次查询报文,其他PC收到查询报文后会触发抑制响应机制,然后发送报告到该组,路由器收到后就知道组里有成员,从组播源接收组播消息,下发。(PC可以主动申请加组)
抑制响应机制: 路由器(查询器)并不关心组内成员的数量,只要有成员就行。所以并不需要所有PC都发送报告。在每一个PC收到查询报文后会进行计时(时间是查询报文中的最大响应时间里取随机数),计时结束后发送报告到该组,其他PC收到报告后就不发送报告了查询器也就收了一份报告,省带宽
PC离组: PC主动发送离组报告,路由器(查询器)接收后会连续发送两个查询报文,确认是否还有PC在组内,这两个报文最大响应时间都是1秒,若没收到报告就关闭该组的组播发送(在思科的设备中是只发一个查询,时间2秒)
实验环节:
实验环境: windows10, eNSP 4.0.1 + VLC 3.0.18
命令:
multicast routing-enable //开启组播功能(全局模式)
pim dm //开启pim协议的dm模式(接口模式)
igmp enable //开启igmp协议功能在这里插入代码片(接口模式)
igmp version 2 //选择版本(接口模式)
拓扑结构以下,PC,路由器,组播源均配置完ip,路由,全网可通(使用OSPF)
1. 组播源配置
打开设置把vlc.exe路径给上去,(没装VLC的话去官网下载安装https://www.videolan.org/vlc/)
配置组播源: 给个组播组地址,再给要播放的视频,运行后能弹出播放窗口并且播放就🆗啦
2. 路由器端配置:(注意当前接口位置)
[R3]multicast routing-enable //开启组播功能
[R3-GigabitEthernet0/0/3]pim dm //开启pim协议的dm模式
[R3-GigabitEthernet0/0/3]igmp enable //开启igmp协议功能
[R3-GigabitEthernet0/0/3]igmp version 2 //选择版本
[R3-GigabitEthernet0/0/3]int gi0/0/2
[R3-GigabitEthernet0/0/2]pim dm
[R2]multicast routing-enable
[R2-GigabitEthernet0/0/2]pim dm
[R2-GigabitEthernet0/0/1]pim dm
[R1]multicast routing-enable
[R1-GigabitEthernet0/0/1]pim dm
[R1-GigabitEthernet0/0/1]igmp enable
[R1-GigabitEthernet0/0/1]igmp version 2
[R1-GigabitEthernet0/0/2]pim dm
[R1-GigabitEthernet0/0/2]igmp enable
[R1-GigabitEthernet0/0/2]igmp version 2
[R1-GigabitEthernet0/0/3]pim dm
[R1-GigabitEthernet0/0/3]igmp enable
[R1-GigabitEthernet0/0/3]igmp version 2
[R1]interface Ethernet0/0/1
[R1-Ethernet0/0/1]pim dm
总的来说就是路由器开启组播功能,接口开启pim协议,又接到成员的接口还要开启IGMP并选择版本
3. PC端:
填写组播组ip,加入组后启动VLC,正常播放就ok啦(有几秒延迟是正常的)
注意这里播放界面左上角地址和服务器端是不一样的
接下来是拓展,查看其过程,探究各个版本区别。
display igmp interface
display igmp group
Last Reporter:记录者,就是给他发查询报告那个
Uptime:已启用时间
Expires:到期时间,最大时间为130秒,60秒发送一次查询,收到查询报告后时间刷新回130秒
拓展:发几个实验过程中抓的包,说明一下细节
R1的g0/0/2
可以看到查询器(192.168.2.2)每60秒就有一个查询报文发到224.0.0.1
IGMP报文中组地址为全0
这个是PC主动发起的查询报告(Report)
PC主动发起的离组报文,
上图看到PC2离组后查询器(192.168.2.2)每隔1秒发送一个查询报文到指定组239.1.1.1,最大响应时间为1秒,确定组内是否还有成员
PC端改版本1可以看到PC以v1版本发送报告,v1版本的PC可以接收v2版本的查询,因为两版本查询报文的类型字段相同(0x11)
v3版本
#############################################################################
拓展理论:有几个知识点由于篇幅没写,自行学习。
组播MAC地址: IPv4组播地址映射到链路层中的地址
查询器选举: 内容不多
Pim协议: 主要理解分发树啥的,明白pim dm模式和sm模式细节。内容有点多
IGMP Snooping: 二层交换机要用的,毕竟他不懂ipv4
总结: 理解IGMP报文格式,版本区别,运行机制,配置过程
文章表达不太清晰,如有疑问请大胆提出
文章为本人学习笔记及经验,如有表达不恰或者错误请谅解。欢迎各位路人甲反馈。