IGMP基础

IGMP的作用 IGMP(Internet Group Management Protocol,因特网组管理协议),用于让组播网络感知到组成员的位置和所加组播组。 当一个报文从组播源发出时,组播源是不关注接收者的位置信息的,组播数据转发需要依靠组播网络才能将数据发送至组播成员,此时组播网络就要依靠IGMP来感知组播组成员。 有两种方法来感知,一种是手工静态配置,在组播路由器上静态指定连接组播成员的接口,静态配置组成员加组信息。 另一种就是IGMP协议通知组播网络,组播网络根据IGMP消息感知组播成员所在接口,以及组成员加组信息。 IGMP概述 IGMP是TCP/IP协议族中负责IPv4组播成员管理的协议,用来在接收者主机和与其直接相邻的组播路由器之间建立和维护组播组成员关系。 组播路由器与组成员之间交互报文后会生成IGMP路由表项和IGMP组表项,二者将帮助设备生成组播路由表项 IGMP组表项和IGMP路由表项 IGMP组表项是由用户主机发送的IGMP加入报文触发创建的,用于维护组加入信息并通知组播路由协议(例如PIM协议)创建相应的(* ,G)表项。 IGMP路由表项是用来扩展组播路由表项的出接口 在最后一跳组播路由器上,IGMP组表项和IGMP路由表项和组播协议路由表(PIM表)汇总生成组播路由表项。 IGMP工作原理 IGMP共有三个版本,分别是 IGMPv1、v2和v3。 IGMPv1 IGMPv1主要基于查询和响应机制完成组播组管理 查询和响应机制由两种报文实现: 普遍组查询报文(General Query,以下简称查询报文):查询器向共享网络上所有主机和路由器发送查询报文,用于查询哪些组播组存在成员。 成员关系报告报文(Report,以下简称报告报文):主机向查询器发送的报文,用于申请加入某个组播组或应答查询报文。 IGMP是组播报文,因此在一个多路访问网络中只需要一个组播路由器发送查询报文即可,该组播路由器称为IGMP查询器(Querier) IGMPv1查询器选举机制 IGMPv1中没有基于IGMP的查询器选举机制,因此需要依赖组播路由协议(PIM)进行查询器选举,IGMPv1将PIM选举出唯一的组播信息转发者(Assert Winner或DR)作为查询器。查询器和非查询器都能收到报告报文。 报文格式 IGMPv1查询报文和报告报文均为组播报文,查询报文的目的IP地址为224.0.0.1,报告报文的目的地址为加入的组播组IP地址,同时报告报文中的Group Address也会指明加入的组播组地址。 加组过程 IGMP查询器使用224.0.0.1作为目的地址,向同一网段内的所有主机和路由器周期性(缺省为60s)发送查询报文,收到该查询报文的组成员在本地启动定时器(缺省情况下定时器范围为0-10s),第一个定时器超时的组成员发送针对该组的报告报文。 IGMP查询器收到组播成员的报告报文后,生成IGMP组表项和(* ,G1)以及IGMP路由表项,” * ”代表任意组播源,和IGMP路由表项。网络中一旦有组播组G1的数据到达路由器,将向该网段进行转发。 报告报文抑制机制 在上图中,如果组成员1上的定时器先超时,则组成员1发送报告报文,此时也想加入组G1的组成员2收到此报告报文,则停止本地定时器,不会发送针对G1的报告报文,这样抑制了报告报文,减少网段上的流量。 离组过程 IGMPv1没有专门定义离开组消息,当组播组成员离开组播组时,将不会再对查询报文做出回应。 当网段中不存在特定组的组成员,查询器不会受到特定组成员的报告报文,则在一定时间(缺省值为130s)后,删除特定组对应的组播转发表项。...

更新: 2022-03-30 · 创建: 2022-03-30 · 2 分钟 · McLsk888