HCIE 面试资料-PIM

PIM

PIM(Protocol Independent Multicast)协议无关组播
利用单播路由表和RPF检查
PIM使用IP封装协议号103
组播分发树是指从组播源到接收者之间形成的一个单向无环数据传输路径。组播分发树有两类:SPT和RPT

RPF检查
RPF单播逆向路径转发(Reverse path forwarding)
当收到一份组播报文后,会根据报文的源地址,进行单播路由表找到源地址的路由,查看到路由表项的出接口是否与收到的组播报文的入接口一致,则认为报文从正确的接口到达,保证了整个转发路径的一致和正确,如果未通过就丢弃报文

如果收到一张路由表上的多条等价路由,优先选优先级值最小的,优先级相同组播静态路由>MBGP路由>MIGP路由>单播路由,会把下一跳地址最大的作为RPF路由

PIM-DM密集模式

采用push(推)模式转发组播报文
建立SPT(Shortest Path Tree,最短路径树)

通过周期性(3分钟)的扩散——剪枝,来构建一棵无环的SPT树

PIM-DM的邻居发现
PIM设备在每个使能了PIM的接口上,都会对外发送Hello消息。封装Hello消息的组播报文有如下特点:

  • 目的地址是224.0.0.13,表示同一网段中所有PIM设备
  • 源地址为接口的IP地址
  • TTL数值为1,仅发送给邻居接口

Hello协商的参数:

  • DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。(默认1)
  • Holdtime:表示保持邻居为可达状态的超时时间(105s)。
  • LAN_Delay:表示共享网段内传输Prune消息的延迟时间(向上游传递下游的剪枝消息5s)。
  • Override-Interval:表示Hello消息中携带的否决剪枝的时间间隔(向下游发送剪枝后等待下游发join25s)。

维持邻居关系:
PIM设备之间周期性地发送Hello消息。如果Holdtime超时还没有收到该PIM邻居发出的新的Hello消息,则认为该邻居不可达,将其从邻居列表中清除。
PIM邻居的变化将导致网络中组播拓扑的变化。如果组播分发树上的某上游邻居或下游邻居不可达,将导致组播路由重新收敛,组播分发树迁移。

周期(30s)发送Hello报文,Hello信息超时时间是105s

PIM-DM的DR选举
需要网段中的所有路由器都支持DR优先级
DR优先级大的路由器成为DR,优先级相同由IP地址大的成为DR,DR出现故障会重新选举DR
DR值为0~2^32-1
默认为1
只为了帮助IGMPv1选举查询器

PIM-DM的扩散
PIM-DM假设网络中的每个子网都存在至少一个组播组成员,因此组播数据将周期性(3分钟)扩散到网络中的所有节点,网络中所有的PIM设备都能接收到组播数据。
当接收到组播源发送的组播报文时:
1、路由器接收到组播报文会进行RPF检查
2、如果通过检查,就创建(S,G)表项,然后将数据向所有下游PIM-DM节点转发,这个过程成为扩散(Flooding)

PIM-DM的剪枝
放了防止下游没有组播成员,扩散组播报文会导致链路带宽浪费,需要剪枝
1、当下游没有组播组成员,则路由器向上游发送Prune消息,通知上游节点不用再转发数据到该分支
2、上游节点收到后,就将相应的接口从组播转发表项(S,G)相应的输出发送表中删除,剪枝持续到PIM-DM只剩下必要的分支,这样就建成了一个以组播源为根的SPT树

PIM-DM的状态刷新
状态刷新(State-Refresh)
被剪枝的节点会开启剪枝定时器,默认210s,当定时器超时会重新对被从组播转发表项删除的接口重新发送组播报文,重新开始扩散——剪枝
为了让剪枝定时器不超时,就周期(60s)发送状态刷新消息,防止定时器超时(由第一条组播路由器发送,不是组播源)

PIM-DM的嫁接
嫁接(Graft)机制:为了防止新出现的成员不能快速得到组播数据,当有新成员加入组播组后,会快速收到组播报文
1、当新成员发送组播组成员加入报文IGMP report,
2、路由器收到后会觉得这个新成员有转发组播数据的需求,就会马上向上游发送Graft消息,请求上游路由器恢复对应出接口的转发
3、上游收到后会Graft报文后会回复Graft Ack并将连接的RTE的出接口恢复为转发状态

PIM-DM的Assert机制
如果出现以下情况,表示可能还存在其他的组播转发者
1、该组播报文不能通过RPF检测
2、接收到该组播报文的接口是本路由器上(S,G)表项中的一个下游接口
此时才会进行断言机制

断言机制:避免重复组播报文
当组播源的组播数据被多台路由器转发给相同的成员,会造成资源浪费

为了避免浪费PIM路由器在收到下游接口的相同组播报文后,会以组播的方式向该下游接口发送Assert消息,其中目的网段为244.0.0.13,源地址为下游接口地址,TTL为1,其他路由器收到对方报文携带的参数后进行比较
1、收到组播源的单播路由协议优先级高的(数值小的)
2、优先级相同比较路由开销(开销小的)
3、开销也相同,则接收者广播网络接口IP值大的
竞选结束后:
获胜的一方Assert Winner,将负责后续对网段组播报文的转发
失败的一方Assert Loser,后续不会对该网段转发组播报文,PIM路由器也会从(S,G)表中的下游接口删除

Assert winner周期性发送Assert消息,维持Assert winner的状态。若Assert loser的定时器超时后,Assert loser仍没有收到Assert winner的Assert消息,则重新添加下游接口转发组播数据。

PIM-DM的局限性
PIM-DM适用于组播成员分布较为密集的网络,而在组播成员分布比较稀疏的网络中会给网络带来极大的负担

配置PIM-DM
在系统视图下multicast routing-enable
在每个路由器的每个接口下配置pim dm

PIM-SM稀疏模式

基本功能在ASM模型中
使用pull(拉)的方式转发组播报文
PIM的主要功能:建立SPT树(Shortest Path Tree,最短路径树)和RPT树(Rendezvous Point Tree,汇聚点树也称共享树)
适用于组播成员比较稀疏的网络

PIM-SM的邻居发现
PIM设备在每个使能了PIM的接口上,都会对外发送Hello消息。封装Hello消息的组播报文有如下特点:

  • 目的地址是224.0.0.13,表示同一网段中所有PIM设备
  • 源地址为接口的IP地址
  • TTL数值为1,仅发送给邻居接口

Hello协商的参数:

  • DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。
  • Holdtime:表示保持邻居为可达状态的超时时间。
  • LAN_Delay:表示共享网段内传输Prune消息的延迟时间。
  • Override-Interval:表示Hello消息中携带的否决剪枝的时间间隔。

维持邻居关系:
PIM设备之间周期性地发送Hello消息。如果Holdtime超时还没有收到该PIM邻居发出的新的Hello消息,则认为该邻居不可达,将其从邻居列表中清除。
PIM邻居的变化将导致网络中组播拓扑的变化。如果组播分发树上的某上游邻居或下游邻居不可达,将导致组播路由重新收敛,组播分发树迁移。

周期(30s)发送Hello报文,Hello信息超时时间是105s

PIM-SM的DR选举
每个网段会选举DR
PIM设备之间通过交互Hello消息成为PIM邻居,Hello消息中携带DR优先级和该网段接口地址
需要网段中的所有路由器都支持DR优先级
DR优先级大的路由器成为DR,优先级相同由IP地址大的成为DR,DR出现故障会重新选举DR
DR值为0~2^32-1
默认为1

PIM-SM的RP发现
RP(Rendezvous Point)汇聚点
RP是PIM-SM的核心交换机,担当RPT树根节点
共享树里所有组播流量都要经过RP转发给接收者
C-BSR(候选自枚举路由器Candidate-Bootstrap Router)
BSR(自枚举路由器Bootstrap Router)
C-RP(候选汇聚点)

可以静态指定也可以动态选举

  • 静态RP选举
    静态指定需要管理员在每台PIM-SM路由器上进行配置,让每台路由器都知道RP的位置

  • 动态RP选举
    1、使用动态RP,必须配置C-BSR和C-RP ,由C-BSR竞选产生BSR。
    最初,每个C-BSR都认为自己是BSR,向全网发送Bootstrap消息。Bootstrap消息中携带C-BSR地址、C-BSR的优先级。每一台路由器都收到所有C-BSR发出的Bootstrap消息,通过比较这些C-BSR信息,竞选产生BSR。竞选规则如下:
    a. 优先级较高者获胜(优先级数值越大优先级越高)
    b. 如果优先级相同,IP地址较大者获胜
    由于所有路由器使用相同的竞选规则,所以得到的获胜BSR也相同。网络中的所有路由器都知道BSR的地址
    2、C-RP向BSR发送C-RP Advertisement消息,消息中携带C-RP地址、服务的组范围和C-RP优先级等。
    3、BSR将这些信息汇总为RP-Set,封装在Bootstrap消息中,发布给全网的每一台PIM-SM设备。
    4、各路由器根据RP-Set,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选出该组RP
    a. 与用户加入的组地址匹配的C-RP服务的组范围掩码最长者获胜。
    b. 则比较C-RP优先级,C-RP优先级较高者获胜(优先级数值越大优先级越低)。
    c. 如果优先级相同,则执行Hash函数,计算结果较大者获胜。(计算内容组地址、Hash Mask(由BSR通告)、C-RP地址)
    d. 如果以上都相同,则C-RP地址较大者获胜。

PIM-SM的RPT的建立
组播源加入
当网络中出现活跃的组播源时(组播源向组播组发送组播数据),组播源端DR将组播数据封装在Register中单播发给RP,在RP上创建(S,G)表项,注册源信息

成员加入
1、当网络中组成员加入某个组播组时,向组播组发送IGMP成员报告
2、最后一跳路由器(接收者DR)向RP发送Join消息,在通向RP沿途路由器都会生成(*,G)组播转发条目,生成一棵以RP为根的RPT树

当网络中同时出现组成员和向该组发送数据的组播源时,以RP为中转站,组播数据先被封装在Register消息中单播发往RP,再沿RPT到达组成员
RPT实现了组播数据按需转发的目的,减少无需求数据对网络带宽的占用

Register注册消息:
封装的IP报文源地址为源端DR,目的地址为RP,使用单播方式
一个Register消息只能封装一个组播数据报文,只携带一跳(S,G)信息

PIM-SM的SPT切换
由于一个组播组只对应一个RP,只构建一棵RPT树,在未进行SPT切换的情况下,所有发往该组的组播报文都必须封装在Register消息中发往RP,RP解封装后,再沿RPT分发。
由于所有通过 RPT转发的组播数据报文必须经过RP中转,所以当组播数据报文逐渐增多,会对RP形成巨大的负担,所以创建一条从组播源直接到接收者的转发链路

  • RP触发SPT切换
    RP收到源端DR的Register消息后,将封装在Register消息中的组播数据沿RPT转发给组成员,同时RP会向源端DR发送SPT Join消息,建立RP到源的SPT。
    SPT建立成功后,当RP从SPT接收到第一个组播数据报文后,RP停止使用Register消息,使源端DR和RP免除了频繁的封装/解封装。组播数据从与组播源直接相连的路由器,通过SPT树转发到RP,再沿RPT转发给组成员。

  • 组成员端DR触发SPT切换。
    1、组播数据由RPT转发,成员端DR向RP发送(*,G) Join消息
    2、成员端DR周期检测组播报文的转发速率,一旦发现(S,G)报文的转发速率超过阈值(RPT不一定是路径最短的树),则触发SPT切换
    3、成员端DR直接向组播源端DR发送(S,G) Join消息,当接收者DR收到沿SPT发来的组播数据后,丢弃沿RPT发来的组播数据,同时向RP发送Prune消息,删除RPT中的此接收者,实现从RPT向SPT的切换
    4、数据转发组播源—>组播源端DR—>成员端DR—>成员(不再经过RP)

PIM-DM的Assert机制
如果出现以下情况,表示可能还存在其他的组播转发者
1、该组播报文不能通过RPF检测
2、接收到该组播报文的接口是本路由器上(S,G)表项中的一个下游接口
此时才会进行断言机制

断言机制:避免重复组播报文
当组播源的组播数据被多台路由器转发给相同的成员,会造成资源浪费

为了避免浪费PIM路由器在收到邻居路由器发送的相同组播报文后,会以组播的方式向本网段的所有PIM路由器发送Assert消息,其中目的网段为244.0.0.13,源地址为下游接口地址,TTL为1,其他路由器收到对方报文携带的参数后进行比较
1、收到组播源的单播路由协议优先级高的(数值小的)
2、优先级相同比较路由开销(开销小的)
3、开销也相同,则接收者广播网络接口IP值大的
竞选结束后:
获胜的一方Assert Winner,将负责后续对网段组播报文的转发
失败的一方Assert Loser,后续不会对该网段转发组播报文,PIM路由器也会从(S,G)表中的下游接口删除

Assert winner周期性发送Assert消息,维持Assert winner的状态。若Assert loser的定时器超时后,Assert loser仍没有收到Assert winner的Assert消息,则重新添加下游接口转发组播数据。

DR切换延迟
DR Switchover Delay
如果当前DR出现故障,导致PIM邻居关系超时(105s),其他PIM邻居会重新选举DR
缺省情况,接口从DR变为非DR,路由器会立即停止使用此接口转发数据。如果此时新DR的组播数据还未到达,那么将会出现短暂的组播数据断流。
在配置PIM DR延迟切换后,当某个使能PIM-SM的接口由于收到一个新邻居的Hello消息导致该接口由DR变为非DR时,该接口在延迟时间超时前仍然具有部分DR功能,并继续转发组播数据。

配置PIM-SM
在系统视图下multicast routing-enable
在每个路由器的每个接口下配置pim sm
要配置静态RP,需要在每个接口下配置 pim(开启pim功能)static-rp 2.2.2.2 指定RP

PIM GR
平滑重启GR(Graceful Restart)属于高可靠性HA(High Availability)技术的一种,实现协议重启时业务的不间断转发(Multicast Non-Stop Forwarding)能力。PIM GR是一种组播协议GR。在具有双主控板的设备上,PIM GR可以在设备进行主备倒换时实现用户组播流量的正常转发。

目前,仅PIM-SM(ASM模型)与PIM-SM(SSM模型)支持PIM GR,PIM-DM不支持PIM GR。

基本原理:
PIM GR依赖于单播GR。设备进行主备倒换期间,新主控板的PIM协议需要从下游邻居重新学习PIM加入状态,同时还需要从IGMP成员主机学习加入的组成员。新主控板的PIM协议通过以上过程完成如下动作:
1、重新计算PIM组播路由表项。
2、维持下游邻居的加入状态。
3、更新转发平面的组播路由表项。

通过PIM GR,设备可以达到主备倒换后快速恢复新的主用主控板的PIM路由表项及刷新接口板组播转发表项的目的,从而最大限度地减少主备倒换对用户组播流量转发的影响。

PIM SSM模型
SSM模型是借助PIM-SM的部分技术和IGMPv3/MLDv2来实现的,无需维护RP、无需构建RPT、无需注册组播源,可以直接在源与组成员之间建立SPT。

SSM的特点是网络用户能够预先知道组播源的具体位置。因此用户在加入组播组时,可以明确指定从哪些源接收信息。组成员端DR了解到用户主机的需求后,直接向源端DR发送Join报文。Join报文逐跳向上传输,在源与组成员之间建立SPT。

在SSM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、构建SPT。

配置优先级
需要在公网或VPN实例下执行multicast routing-enable
在PIM视图下执行命令 c-bsr interface-type interface-number priority 配置c-bsr接口同时可以指定优先级
在PIM视图下执行命令 c-bsr priority 优先级值 是配置的全局c-bsr的优先级,如果两者都 配置带接口的有限

猜你喜欢

转载自blog.csdn.net/PanJWei/article/details/114998121