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:
在这里插入图片描述

  1. 从报文看到v2版本去掉的版本号。
  2. 添加了一个最大响应时间,即可以自定义最大响应时间,默认10秒,单位改为0.1秒。
  3. 添加了一条指定组查询,在查询时不用发给所有组。
  4. 添加一条离开组消息,成员离开组时主动发送。
  5. 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报文格式,版本区别,运行机制,配置过程

文章表达不太清晰,如有疑问请大胆提出
文章为本人学习笔记及经验,如有表达不恰或者错误请谅解。欢迎各位路人甲反馈。