网络笔记_IGMP因特网组管理协议

目录

 

前言

接收端如何接收组播数据

组播组管理协议工作机制

IGMP

IGMP版本

IGMPv1报文格式

IGMPv1的简单实验

IGMPv1的工作机制

IGMPv1成员加入

IGMPv1问题一:组成员离开

IGMPv1问题二:查询器选举

IGMPv2报文格式

IGMPv2工作机制

IGMPv2对IGMPv1的改进:组成员的离开

IGMPv3概述

SSM模型中的新需求

IGMPv3工作机制及改进之处

IGMPv3主机和路由器交互过程-普遍组查询

IGMPv3主机和路由器交互过程-特定源组查询

IGMP版本比较

配置


前言

  • 组播通信中,发送者将组播数据发送到特定的组播地址。要使组播报文最终能够到达接收者,需要某种机制使与连接潜在接收者网段的组播路由器能够了解到该网段内有哪些组播接收者,保证接收者可以加入到相应的组播组中接收数据。
  • IGMP(Internet Group Management Protocol)因特网组管理协议,是TCP/Ip协议族中负责IP组播成员管理的协议,它用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
 

接收端如何接收组播数据

  • 接收者与路由器间需要交换哪些信息
    • 接收者需声明自己要接收哪个组的数据
    • 路由器需了解哪些组播组存在接收者
  • 人工配置这些信息,有哪些问题
    • 实时性差;
    • 灵活性差;
    • 工作量大、易出错
 
网络笔记_IGMP因特网组管理协议_第1张图片
 
 

组播组管理协议工作机制

  • 主机加入或离开组播组
  • 路由器维护组播组
  • 查询器选举
  • 成员报告抑制
 
网络笔记_IGMP因特网组管理协议_第2张图片
 
 
 

IGMP

Internet Group Management Protocol,因特网组管理协议
  • 负责组播成员管理,运行在主机和组播路由器之间(面向终端的接口);
  • 主机侧:通过IGMP向路由器通告组成员关系;
  • 路由器侧:通过IGMP协议维护组成员关系;
网络笔记_IGMP因特网组管理协议_第3张图片
 
 
 

IGMP版本

版本
备注
IGMPv1
定义了基本的组成员 查询报告过程。RFC1112
IGMPv2
在IGMPv1的基础上添加了 查询器选举离开组机制。RFC2236
IGMPv3
成员可以 指定接收不接收某些组播源的报文。RFC3376
  • 所有IGMP版本都支持ASM(Any Source Multicast,任意源组播)模型
  • IGMPv3可以直接应用于SSM(SSM:Source Specific Multicast,特定源组播)模型,而IGMPv1和IGMPv2则需要 SSM-Mapping技术的支持
  • 运行IGMP高版本的路由器可以识别低版本的成员报告(向低兼容)
 
 
 

IGMPv1报文格式

网络笔记_IGMP因特网组管理协议_第4张图片
版本:版本字段包含IGMP版本标识,因此设置为1;
类型
  • 成员关系查询(0x11)(Query)
  • 成员关系报告(0x12)(Report)
组地址
  • 当一个成员关系报告正被发送时,组地址字段包含组播地址
  • 当用于成员关系查询时,本字段为0,并被主机忽略
路由器周期性的发送 成员关系查询,默认查询 周期为60秒(普遍组查询)
 
成员关系报告的发送可以被动发送也可主动发送
  • 被动发送:主机收到成员关系查询消息后,发送成员关系报告
  • 主动发送:主机主动发送成员关系报告
 

IGMPv1的简单实验

拓扑图
网络笔记_IGMP因特网组管理协议_第5张图片
R1配置如下:
sys
sysn R1
multicast routing-enable
int g0/0/0
ip add 1.0.0.254 24
igmp version 1
igmp enable

 

将PC1配置地址为1.0.0.1 掩码255.0.0.0,组播选择版本1,组播地址输入225.1.1.1,点击加入。
 
在R1上进行验证,可查看端口g0/0/0端口的IGMP组信息(eNSP模拟器有bug,需要在PC机上加入组后,立即验证。超过130秒后则该信息为空):
dis igmp group int g0/0/0 verbose

 

网络笔记_IGMP因特网组管理协议_第6张图片
 
网络笔记_IGMP因特网组管理协议_第7张图片
 
 
 

IGMPv1的工作机制

  • 普遍组查询与响应
    • 如图,首先,RTA会周期性地向224.0.0.1这个地址发送查询信息。注:224.0.0.1表示所有节点;
    • 当收到查询信息后,会被动的发送一个响应报告;或正好处于查询信息之间,也可以主动的发送一个响应报告(如果对该组感兴趣的话)
  • 响应抑制机制
    • 如图,如主机A与主机C处于同一网段,且对同一个组信息感兴趣,当RTA发送一个查询报文后,主机A和主机C会启动一个计时器0~10秒的随机值,假定A为3秒,C为5秒,他们同时收到查询报文后,A达到超时时间,发送一个响应报文,C监听到A已经发送了一个响应报文,那么C就不会再发送响应报文。
  • 每个收到查询的主机会启动一个计时器,默认0~10秒随机值,超时后发送报告
网络笔记_IGMP因特网组管理协议_第8张图片
 
 

IGMPv1成员加入

  • 主机申请加组
网络笔记_IGMP因特网组管理协议_第9张图片
 
 
 

IGMPv1问题一:组成员离开

  • 静默离开 
查询 130秒无响应则认为组内不存在组播成员。
网络笔记_IGMP因特网组管理协议_第10张图片
 
备注: 130秒 = 60 * 2 + 10,即组成员关系超时时间 = IGMP普遍查询消息发送间隔 * 健壮系数 + 最大查询响应时间
 
 

IGMPv1问题二:查询器选举

  • 查询器选举依赖于组播路由协议(PIM)
网络笔记_IGMP因特网组管理协议_第11张图片
 
 

IGMPv2报文格式

网络笔记_IGMP因特网组管理协议_第12张图片
类型
  • 成员关系查询(0x11)
    • 常规查询:用于确定哪些组播组是有效的,即该组是否还有成员在使用,常规查询地址由全零表示;
    • 指定组查询:用于查询特定的组播组是否还有组成员。
  • 版本1成员关系报告(0x12)
  • 版本2成员关系报告(0x16)
  • 离开组消息(0x17)
最大响应时间
  • 以0.1秒为单位
  • 默认值是100,即10秒
  • IGMPv2增加最大响应时间字段,以动态地调整主机对组查询报文的响应时间。(响应时间解释:当一个组成员离开,组路由器发送特定组查询,如果有些回复慢的主机在这个响应时间内如果没有及时回复,则该组路由器就会将该组播组信息删除,那么该主机就不会再收到该组播组发送出来的信息)
  • 常规组为10秒
  • 特定组为1秒(可使用命令修改)
 
校验和
组地址
  • 在成员查询消息中,发送一个常规查询时组地址域设为0,当发送一个特定组查询时,则应设置组的地址;
  • 在成员报告或离开组的消息中,组的地址域保留了要报告或要离开的地址。
 
 
 

IGMPv2工作机制

  • 独立的查询器选举机制
  • IP地址最小的获胜
网络笔记_IGMP因特网组管理协议_第13张图片
验证查询器命令:
dis igmp int g0/0/0
网络笔记_IGMP因特网组管理协议_第14张图片
 
 
 

IGMPv2对IGMPv1的改进:组成员的离开

如图,假定主机A离开该组,会发送一个Leave报文,而RTA并不会立即删除该主机,而是会发送一个特定组查询,用来看是否有主机进行回应,如果有回应,则不会删除该连接;
当发送2次特定组查询后仍没有收到成员报告,那么就认为组播组G2中不存在组成员,则删除该组。
网络笔记_IGMP因特网组管理协议_第15张图片
 
 

IGMPv3概述

  • 服务于SSM模型
  • 增加了主机的控制能力,对组播源进行过滤
  • 取消了成员报告抑制机制
  • 过滤模式包含 INCLUDEEXCLUDE
  • 尚未得到广泛支持
 

SSM模型中的新需求

  • 只接受特定源发送的组播数据
网络笔记_IGMP因特网组管理协议_第16张图片
 
 

IGMPv3工作机制及改进之处

  • 仍然周期性的发送普遍组查询224.0.0.1
  • 但主机响应时会标明自己想要的是该组播组中的某一个源组播地址(或多个)
 
网络笔记_IGMP因特网组管理协议_第17张图片
 
 
 

IGMPv3主机和路由器交互过程-普遍组查询

IGMPv3中六种类型及含义
 
类型
含义
MODE_IS_INCLUDE
添加一个组播地址
MODE_IS_EXCLUDE
删除一个组播地址
CHANGE_TO_INCLUDE_MODE
将原删除的组播地址改为添加进来的组播地址
CHANGE_TO_EXCLUDE_MODE
将原添加进来的组播地址改为删除的组播地址
ALLOW_NEW_SOURCES
在原有组播地址基础之上再添加新的组播地址
BLOCK_OLD_SOURCES
删除旧的组播地址
网络笔记_IGMP因特网组管理协议_第18张图片
 

IGMPv3主机和路由器交互过程-特定源组查询

 
网络笔记_IGMP因特网组管理协议_第19张图片
 
网络笔记_IGMP因特网组管理协议_第20张图片
 

IGMP版本比较

 
机制
IGMPv1
IGMPv2
IGMPv3
查询器选举
依靠其他协议
自己选举
(比较IP地址,小的成功)
 自己选举
成员离开方式
静默离开
主动发送离开报文
没有定义专门的成员离开报文,成员离开通过特定类型的报告报文来传达
特定组查询
不支持
支持
支持
指定源、组
不支持
不支持
支持
ASM模型
支持
支持
支持
SSM模型
需要IGMP SSM Mapping支持
需要IGMP SSM Mapping支持
支持
 

配置

命令

备注

multicast routing-enable

启用组播路由

(组播的前置条件)

igmp enable

接口开启IGMP

igmp version 2

配置IGMP版本为2

display igmp interface 

验证IGMP接口

display igmp group 

验证IGMP组信息

igmp static-group 225.1.1.1

配置静态IGMP表项
 

你可能感兴趣的:(网络笔记)