PIM协议简介

PIM是什么 PIM(Protocol Independent Multicast,协议无关组播)协议的主要作用是构建组播分发树。 在IP组播和IGMP基础中提到,组播网络中的组播路由器需要根据组播分发树将组播数据转发到组播组成员,而组播路由协议中最常用的PIM协议的主要作用就是来构建这棵分发树。相比于其他组播路由协议,PIM更为具体的作用是生成AS域内的组播分发树 MDT(组播分发树)特点:无论网络中有多少组成员,每条链路上相同的组播数据最多只有一份。被传递的组播数据在距离组播源尽可能远的分叉路口才开始复制和分发。 PIM的协议无关指的是与单播路由协议无关,PIM不需要维护专门的单播路由信息,它直接利用单播路由表的路由信息,对组播信息执行[RPF检查](../ip组播基础 #组播转发) PIM直接封装在IP报文中,协议号为103,PIM常用版本为PIMv2,组播地址为224.0.0.13 PIM协议有两种模式: PIM-DM(PIM-Dense Mode,PIM密集模式),主要用于组成员较少且相对密集的组播网络中,构建MDT的思路是将组播流量在全网扩散,然后剪枝没有组成员的路径。PIM-DM只有ASM模型。 PIM-SM(PIM-Sparse Mode,PIM稀疏模式),其中还能分为PIM-SM(ASM)和PIM-SM(SSM),主要用于组成员较多且较稀疏的组播网络中,构建MDT的思路是先收集组成员信息,然后再形成MDT。 MDT分类 MDT分为SPT和RPT,其中SPT以组播源为根,组播组成员为叶子,而RTP以RP(Rendezvous Point)为根,组播组成员为叶子。 SPT又称为源树,在PIM-DM和PIM-SM中均有使用;RPT称为共享树,主要在PIM-SM中使用。 工作原理 前面提到PIM有两种模式,分别是PIM-DM和PIM-SM,下面将分别介绍两种模式的工作机制。 介绍之前,首先要知道PIM网络中的PIM路由表。PIM路由表是通过PIM协议建立的组播协议路由表,存在两种表项: (S,G)主要用于建立SPT,对PIM-DM和PIM-SM适用 (* ,G)主要用于建立RPT,对PIM-SM适用 PIM路由器上可能同时存在两种表项,当收到源地址为S,组地址为G的组播报文,且RPF检查通过的情况下,先检查是否存在(S,G)表项,如果存在则直接由(S,G)路由表项指导转发,否则则先依照(* ,G)路由表项创建(S,G)表项,然后再根据(S,G)表项指导转发。 不同的组播路由器的组播路由表由不同的表项汇总合成。在最后一跳路由器上组播路由表项主要基于PIM路由表项、IGMP组表项和IGMP路由表项汇总形成;其余的则基于PIM路由表项生成。 注意 组播路由表项只能基于PIM(S,G)生成,PIM(* ,G)缺少入接口信息无法形成组播路由表项。 PIM-DM PIM-DM通过“扩散-剪枝”的方式形成SPT,除了扩散剪枝,还会设计邻居发现、嫁接、断言和状态刷新机制。 邻居发现 组播转发路径只能在PIM邻居之间建立,邻居发现主要通过 PIM Hello 包完成。 当路由器接口激活PIM后,接口便周期性发送PIM Hello数据包,目的地址为224.0.0.13。邻居关系同样使用Hello报文维持,邻居超时时间默认为10s,超时时间内收不到邻居发来的Hello报文,则删除邻居关系。 Hello报文中携带多项PIM协议报文参数,主要用于PIM邻居之间PIM协议报文的控制: DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。...

更新: 2022-04-02 · 创建: 2022-04-02 · 1 分钟 · McLsk888

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

IP组播基础

基本概念 组播一般用来承载点到多点的业务,相较于单播和广播承担,具有节省网络资源和提高信息传输的安全性。 报文格式 与单播的报文格式相似,目的 IP 地址为 224.0.0.0-239.255.255.255 ,组播目的 MAC 地址由组播 IP 地址映射而来。 其中组播 IP 地址又分为五个范围: 范围 含义 224.0.0.0-224.0.0.255 为路由协议预留的永久组地址 224.0.1.0-231.255.255.255 ,233.0.0.0-238.255.255.255 Any-Source临时组播地址 232.0.0.0-232.255.255.255 Source-Specific临时组播组地址 239.0.0.0-239.255.255.255 本地管理的Any-Source临时组播组地址 组播 MAC 的生成过程: 规定高24位为 0x01005e ,第25位为0,低23位为IPv4组播地址的低23位。即我们所熟知的 01-00-5e-xx-xx-xx 注意 组播MAC地址不能作为源地址,只能作为目的MAC地址 除了与 IP 组播地址有映射关系的组播 MAC,还有一些熟知的组播MAC,是与组播IP地址不存在关系的,例如 STP 中,BPDU被封装在以太网帧中,数据帧的目的MAC为 01-80-c2-00-00-00 。这两种MAC组播地址的共同点是第一个字节的最低bit位都为 1 服务模型 组播组成员在接收组播数据时,对于组播数据源进行选择,产生了ASM(Any-Source Multicast,任意源组播)和SSM(Source-Specific Multicast,指定源组播)两种组播服务模型。...

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