PIM-SM 基础知识问答
1.PIM-SM和PIM-DM的共同功能有什么?
答:通过交换Hello消息发现邻居
单播路由表发生变化后需要重新计算RPF接口
MA网络中选举一台DR
MA网络中使用剪除覆盖机制
MA网络中选举一台Forwarder
2.共享树的根在哪里?
答:RP(Rendezvous Point,聚合点)
3.有几种发现RP的方式?分别是什么?
答:三种
sloggi什么意思
(1)在所有路由器上静态配置RP的地址
(2)利用Bootstrap协议来指定和宣告RP
(3)利用Auto-RP协议来指定和宣告RP
4.要运行Bootstrap路由器必须指定哪两种路由器?
答:C-BSR(Candidate Bootstrap Router), C-RP(Candidate Rendezvous Point)
5.描述Bootstrap协议选举RP的过程。
答:一般将同一组路由器同时配置为C-BSR和C-RP。
(1)从C-BSR中选出BSR
每台C-BSR都被指定了一个0~255之间的优先级(默认0)和一个cfbBSR IP地址。一旦被配置为C-BSR,路由器就会发送小学一年级英语Bootstraperect消息并启动一个130秒的引导定时器。当其收到Bootstrap消息后会与自己的BSR 优先级和BSR IP地址进行对比。先比较BSR,如果相同
再比较IP,都是较高的胜出,胜出者宣称自己为BSR并每60秒发送一条Bootstrap消息,其他路由器则继续监听BSR的批评与自我批评范文Bootstrap消息,如果130秒内没有收到BSR的Bootstrap消息则认为网络中无BSR,宣称自己为BSR并发送Bootstrap消息(如果还有多个路由器则继续进行比较最终定出BSR)。
(2)C-RP向BSR发送my favourite asonC-RP-Advertiment
每台C-RP也被指定一个0~255之间的优先级和RP IP地址(可以将路由器配置为某些特定多播组的C-RP,也可以配置为所有多播组的C-RP)。当C-RP接收到Bootstrap消息后,就开始向BSR单播发送Candidate-RP-Advertiment
(3)BSR编译RP-Set吗并通过Bootstrap消息通告给整个PIM域
(4)当某台路由器收到IGMP消息或PIM Join消息要加入某共享树时,检查从BSR收到的RP-Set并选出RP
RP-Set中参数的比较顺序:C-RP优先级最低 > 哈希函数的输出值最大 > C-RP IP地址最小
6.Bootstrap消息由谁发出?有什么特点?使用的目的地址是多少?有什么作用?
答:当路由器被配置为C-BSR后就会发出Bootstrap消息,用来选举BSR,当BSR选举出来后,就仅由BSR发送此消息。
Bootstrap消息使用地址224.0.0.13(All PIM Routers),且TTL为1。当PIM路由器接收到一条Bootstrap消息后,会通过所有接口(除接收的接口)向外发送该消息的拷贝。该过程可以将Bootstrap消息泛洪到整个PIM域。
Bootstrap消息的作用是宣告发信路由器的优先级和BSR IP地址。当BSR将C-RP的优先级及相关的多播组编译成RP-Set后通过Bootstrap消息在整个PIM域中宣告该RP-Set。
7.Auto-RP协议与Bootstrap协议的相同点是什么?区别是什么?
答:Auto-RP和Bootstrap协议都需要在PIM-SM中指派C-RP,并通过指派的IP地址(通常是环回接口的地址)来标识C-RP。Auto-RP需要指定一个或多个RP映射代理(RP mapping agent),其作用与BSR相似。
区别在于:
Auto-RP是Cisco专有协议,而Bootstrap是开放标准协议。
BSR是从一组C-BSR中选举出来的,而RP mapping agent是直接指派的。
awful的反义词Bootstrap收集C-RP信息并编码为RP-Set在整个多播域中进行宣告,每台路由器都单独进行RP选举。而RP mapping agent是将多播组映射到RP。
Bootstrap协议使用多播组地址224.0.0.13,而Auto-RP使用的是两个保留的多播地址224.0.1.39和224.0.1.40。
8.Auto-RP是如何工作的?
答:当某台Cisco PIM-SM路由器被配置为一个或多个多播组的C-RP时,它会在RP-Announce消息中宣告自己是这些多播组的C-RP,并每隔60秒将这些消息多播到保留的Cisco-RP-Announce地址224.0.1.39。PIM域中已配置的RP mapping agent将监听该地址,并从接收到的全部RP-Announce消息中为该多播组选出一个RP(IP地址最大)。marionnette
RP mapping agent在RP-Discovery消息中宣告完整的group-to-RP映射列表,并以60秒为间隔将这些消息多播到Cisco-RP-Discovery地址224.0.1.40。所有的Cisco PIM-SM路由器都会监听该地址,因此都可以掌握每个多播组的RP情况。
9.多播分布树中分为哪几类设备?哪几个段(gment)?
答:分为5类设备:sources, first-hop, others, last-hop(leaf), receivers
sources指的就是多播源。first-hop是与源直连的路由器。receivers指的是多播组组成员。last-hop(也叫leaf)是与组成员直连的路由器。others指其他多播路由器。
分为3个段:source gment, receiver gment, others(multicast network)
source gment指的是sources和first-hop之间的段。receiver gment指的是receivers和last-hop之间的段。而others指的就是其他剩余的段,也就是sources和receivers之间的段。
10.描述共享树的建立过程(RPT)
答:当PIM-SM DR(leaf)从某台希望加入某多播组的主机接收到IGMP membership report消息之后,先检查自己多播表中是否已经存在该多播组的路由表项,如果存在,只需将接受到IGMP消息的接口添加进OIL。如果无相应表项,则需要为该多播组创建一个(*,G)表项,并将接口添加进OIL。
之后,路由器会查找group-to-RP映射列表中的该多播组(查到该多播组RP的单播地址),通过单播路由表找到去往特定RP的路由,并将去往RP的(上行)接口加入到入站(RPF)接口中。
之后,路由器将通过RPF接口向224.0.0.13发送一条Join/Prune消息,该消息中包含了想要加入的多播组的地址和RP的地址。此外,还设置了两个标记,WC-bit(wildcard bit)和RPT-bit(RP-Tree bit),其中WC-bit=1表示加入地址是RP地址,而不是源地址,RPT-bit=1表示该消息沿多播树被传播到RP。
当上游路由器接收到Join/Prune消息后,可能会执行以下4种操作之一:
如果该路由器不是RP,但位于共享树上,那么该路由器会将接收到Join/Prune消息的接口加入到该多播组的OIL中;
如果该路由器不是RP,且不位于共享树上,那么该路由器将创建一个(*,G)表项,并沿着RP方向向上游邻居发送自己的Join/Prune消息;
如果该路由器是RP,且其路由表中已经存在该多播组的路由表项,那么该路由器会将接收
到Join/Prune消息的接口加入到该多播组的OIL中;
如果该路由器是RP,但其路由表中没有该多播组的路由表项,那么该路由器将创建一个(*,G)表项,并将接收到Join/Prune消息的接口加入到该多播组的OIL中。
11.如何维护共享树?
答:多播树建立后,路由器就开始周期性地(60秒)向上游邻居发送Join/Prune消息,以保持激活(holdtime默认3分钟,包含在Join/Prune消息中)。如果holdtime过期,则将下游邻居从其多播组表项的出站接口列表中删除。leaf路由器(DR)如果连接在MA网络中,PIM-SM也使用剪除覆盖机制。
12.PIM-SM使用的是单向树还是多向树?为什么?什么协议使用了双向树?有什么缺点?
答:PIM-SM的多播树是单向树,因为PIM-SM使用了RPF检查,多播流量只能从RP向下传送到树枝,单向流量可以清晰地定义入站或RPF接口。
CBT使用的是双向树(即多播包可以从核心路由器往下传送到树枝,也可以从树枝往上传
送到核心路由器)。这样一来,很难保证无环路拓扑结构,原因是无“上游”和“下游”之分,也就无法执行RPF检查。
13.多播源如何将自己的多播流量发送给RP?描述其过程。
答:使用源注册(source register)。
当PIM-SM路由器(first-hop)首次接收到其直连多播源的多播包时,会在其group-to-RP映射表中查找目的多播组的RP(并结合单播表查出如何去往RP)。之后路由器将多播包封装在PIM Register消息中,以单播的方式发送给RP(Registerpjm是单播包,目的地址为RP的地址)。
RP接收到Register消息后就将多播包解封装出来,查看其多播路由表,如果已经存在该组播的路由表项,则在其OIL中所有接口上转发该多播包。之后RP在其多播表中创建一个(S,G)表项,并通过多播传送一条Join/Prune消息来建立一个去往源DR(first-hop)的SPT,这条消息包含了多播源地址,WC-bit=0且RPT-bit=0,表示该路径是有源SPT,而不是共享RPT。
建立SPT后,RP向多播源DR(first-hop)发送一条Register Stop消息(也是单播),以终止Register消息的发送。
14.如果RP收到Register消息但其没有该多播组成员会怎样处理?
如果RP接收到首个Register消息后没有该多播组成员,那么RP将不构建SPT,而是立即向多播源DR(first-hop)发送一条Register Stop消息。RP有此多播组的(*,G)表项,以后有组成员加入时可疑启用SPT。
15.有什么办法防止RP失效而引起不断向RP发送Register消息?描述其过程。
答:Register Suppression(注册抑制)。当DR接收到Register Stop消息后,会启动一个60s的Register-Suppression timer(注册抑制定时器)。在该定时器到期前5秒(55秒时),DR会先发送一条携带Null-Register(空注册)bit标记的i wanna love youRegister消息,如果收到一条来自RP的Register Stop消息回应,那么就重置定时器。