IP组播基础及工作原理实战——5

本文深入解析PIM-SM(SSM模型)的工作原理,介绍SSM模型如何借助PIM-SM的部分技术和IGMPv3/MLDv2实现无需RP、RPT和注册组播源的直接SPT构建。详细阐述SSM模型特点、关键技术和应用场景,以及PIM-SM在单自治域的应用。同时,讲解MSDP基础及工作原理,包括MSDP对等体建立、SA消息转发控制、MSDP在PIM-SM域间组播应用等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PIM-SMSSM模型)工作原理

 

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

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

在SSM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、构建SPT。其中“邻居发现”机制与PIM-DM邻居发现机制一样,而“DR竞选”机制与PIM-SM(ASM模型)的“DR竞选”机制一样。

下图为PIM-SM(SSM模型)的SPT构建原理。具体过程如下:

(1)担当组成员端DR的RouterD、RouterE借助IGMPv3/MLDv2协议了解到用户主机有到相同组播组不同组播源的组播需要,于是分别逐跳向源方向(SSM模型中组播源是已知的)发送Join报文。

(2)沿途各PIM路由器通过提取Join报文中的相关信息分别创建(S1,G)、(S2,G)表项,最终就形成了从源S1到组成员HostA、源S2到组成员HostB的SPT。

(3)SPT建立后,源端就会将组播报文沿着SPT分发给组成员。

PIM SSM指网络用户预先知道组播源的具体位置,用户在加入组播组时,可以明确指定从哪些源接收信息。

如图所示:某运营商给用户提供IPTV业务,在广州和上海分别提供一台IPTV服务器, IP地址分别为202.10.1.2、 202.10.2.8,对应的组播组地址为232.10.1.2。对于深圳用户,访问广州服务器观看节目的效果要好于上海服务器,所以用户想选择广州服务器收看节目,在加入组播组232.10.1.2时需要指定服务器地址为202.10.1.2,即(S,G)项为(202.10.1.2, 232.10.1.2)。

PIM SSM业务关键技术:

● 用户接入侧运行IGMPv3协议。

● 路由器之间运行PIM SSM协议。

● 用户加入的组播组在SSM组地址范围内。

使用SSM实现组播业务,需要满足如下条件:

 ☆路由器上与组成员相连的接口运行IGMPv3。

 ☆路由器之间运行PIM-SM协议。

 ☆用户加入的组播组在SSM组地址范围内。

SSM模型借助PIM-SM的部分技术和IGMPv3来实现。

必须保证路由器上连接用户主机的接口使能IGMPv3。如果用户主机上的IGMP版本无法升级,则在路由器上配置SSM Mapping,也可以实现SSM。

SSM模型使用了和ASM不同的组播地址范围。 232.0.0.0~232.255.255.255是用户可用的SSM组播组地址。

SSM模型和ASM模型是两个对等的概念,并且是两个完全对等的模型。 SSM模型为指定源组播提供了解决方案,通过IGMPv3来维护主机与路由器之间关系。鉴于PIM-DM模式以扩散/剪枝方式构建以组播源为根的SPT分发树,虽然SPT树路径最短,但是分发树建立过程效率较低,不适合大中型网络。

在实际应用中,通常采用PIM-SM模式中的一部分技术实现SSM模型。由于接收者已经通过其他渠道(如广告咨询等)知道了组播源S的具体位置,因此SSM模型中无需RP节点,无需构建RPT树,无需源注册过程,同时也无需MSDP来发现其他PIM域内的组播源。和ASM模型相比, SSM模型仅需要IGMPv3和PIM-SM部分子集的支持, SSM模型在PIM网

络内的工作过程可以简单地概括为:邻居发现、 DR选举、构建SPT树。

PIM路由器在每个使能了PIM的接口上,对外发送HELLO消息。封装HELLO消息的组播报文的目的地址是224.0.0.13(表示同一网段中所有PIM路由器)、源地址为接口的IP地址、 TTL数值为1。

Hello消息的作用:发现邻居、协调各项协议参数、维持邻居关系。

● 发现PIM邻居:同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。这样在收到HELLO报文以后,直接相连的组播路由器之间,就可以彼此知道自己的邻居信息只有在路由器接收到来自邻居的Hello消息后才会接收其他的PIM控制消息或组播报文从而创建组播路由表项,维护组播分发树

● 协调各项协议参数: HELLO消息中携带多项协议参数,介绍如下:

 ☆ DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。适用于PIM-SM。

 ☆ Holdtime:表示保持邻居为可达状态的超时时间。当网段中各邻居配置的时间不同时,取其中最大的值。

 ☆ LAN_Prune_Delay:表示在共享网络上传递Prune剪枝消息的延迟时间,该选项由三部分组成: Prune剪枝传递延迟、 Prune剪枝否决时间、禁止Join消息抑制能力位。

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

DR(Designated Router)应用在PIM-SM网络中的如下两个位置:

 ☆ 在连接组播源的共享网段,由DR负责向RP发送Register注册消息。与组播源相连的DR称为源端DR。

 ☆ 在连接组成员的共享网段,由DR负责向RP发送Join加入消息。与组成员相连的DR称为组成员端DR。

在组播源或组成员所在的网段,往往同时连接着多台PIM路由器。这些PIM路由器之间通过交互Hello消息成为PIM邻居, Hello消息中携带DR优先级和该网段接口地址。路由器将自身条件与对方报文中携带的信息进行比较,称为DR竞选。规则如下:

☆ DR优先级较高者获胜。

☆ 如果DR优先级相同或该网段存在至少一台路由器不支持在Hello报文中携带DR优先级,则IP地址较大者获胜。

DR只对PIM-SM网络有意义。当连接组成员的共享网段应用IGMPv1时,由DR充当查询器。

如果当前DR出现故障,将导致PIM邻居关系超时,其他PIM邻居之间会触发新一轮的DR竞选过程。

构建为PIM-SM模型服务的RPT树,还是构建为SSM模型服务的SPT树,关键在于接收者准备加入的组播组是否属于SSM组地址范围。如图所示。

假如用户B、 D和E需要接收组播源S的发送的信息,则借助IGMPv3Report消息向最近的DR路由器报告自己要加入指定源S的组播组G,标记为(include S, G);如果需要接收除指定源S外的其他源的信息,则其发送的Report消息可标记为(exclude S, G)。无论如何描述,都表示组播源S的位置对接收者是明确指定的。

接收到该消息的DR路由器判断该消息中的组地址是否在SSM组地址范围内,如果在范围内则构建SSM模型,即随后向指定源S逐跳发送通道订阅的Join消息。沿途所有路由器上都创建Include S或Exclude S的(S, G)表项,从而在网络内构建了一棵以指定组播源S为根,以接收者为叶子节点的SPT树,该树就是SSM模型中的传输通道。如果DR发现消息中的组地址不在SSM组地址范围内,则仍旧按照PIM-SM流程进行后续处理,此时DR需要向RP发送(* G)加入消息,同时需要组播源注册过程

单自治域PIM-SM应用

大多数组播应用还是在单个AS、单个PIM域环境下的,如下图所示

一个比较大型的组播网络,该网络中已经部署了完备的IGP(内部网关路由协议)路由,且任意网段路由可达。网络中的组成员分布相对比较稀疏,要求网络中的用户主机能够按需接收视频点播信息,并在一定程度上节约网络的带宽。

HostA、HostB和HostC为三个末梢网络中的信息接收者,通过组播方式接收视频点播信息,整个PIM域采用PIM-SM方式。RouterA与组播源S1相连,RouterC与组播源S2相连;RouterB连接HostA,RouterE和RouterG连接HostB和HostC。在所有路由器接口上启用PIM-SM协议。

因为网络中的组播源分布比较密集,则可以选择与组播源比较近的核心设备作为C-RP。将RouterC和RouterD的接口配置为C-BSR和C-RP,动态竞选出为PIM-SM网络服务的BSR和RP。在RouterB与HostA之间,RouterE、RouterG与HostB、HostC之间均运行IGMP协议。

RP的部署方式可以基于以下原则(避免在一个PIM域中不同路由器上分别使用静态RP和动态RP,以防止RP信息不一致)。

(1)中小型网络:建议选择静态RP方式,对设备要求低,也比较稳定。

如果网络中只有一个组播源,建议选择直连组播源的设备作为静态RP,这样可以省略组播源DR向RP注册的过程。采用静态RP方式要确保域内所有路由器(包括RP本身)的RP信息以及服务的组播组范围全网一致。

(2)大型网络:可以采用动态RP方式,可靠性高,可维护性强。

如果网络中存在多个组播源,且分布密集,建议选择与组播源比较近的核心设备作为C-RP;如果网络中存在多个用户,且分布密集,建议选择与用户比较近的核心设备作为C-RP。

为路由器接口配置IGMP协议时,请确保接口参数配置的一致性,即遵循如下原则:连接在同一网段的所有路由器必须运行相同的IGMP版本(推荐使用IGMPv2),且各接口参数(如查询定时器、组成员关系保持时间等)必须相同。如果IGMP版本或各参数不相同,会导致不同路由器上IGMP组成员关系不一致。

部署完上述网络后,HostA和HostB根据需要向RP发送Join消息,组播源的信息能够到达接收者。建议在网络边缘配置接口静态接入用户所请求的组播组,可以提高用户收看频道的稳定性。

MSDP基础及工作原理

不同PIM-SM域间的RP信息是隔离的,缺省情况下,组播源只向本域内的RP注册,用户主机只向本域内的RP发起加入,将一个大的PIM-SM网络划分为多个PIM-SM域后,如何实现PIM-SM域间组播,使本PIM-SM域内的用户主机能够接收到其他域内组播源发出的组播数据就成了现实的问题。这就是MSDP诞生的背景。它可使不同PIM-SM域的RP之间能够互相通信,发现并共享其他PIM-SM域内的组播源信息。但目前MSDP只支持在IPv4网络部署,且仅对PIM-SMASM模型)有意义,因为在SSM模型中无MSDP所需的RP配置。

MSDP里使用的是域间信源树而不是公共树,而且要求域内组播路由协议必须是PIM-SM。

一、MSDP对等体概述

MSDP要互连不同PIM-SMRP的过程就是需要在不同域之间建立对等体(peer,主要用于不同ISP网络间。通常,ISP并不希望借助其他ISP的RP来向自己的用户提供服务。这一方面是出于安全性考虑,另一方面如果其他ISP的RP发生故障导致业务中断,用户投诉的却是自己的服务。借助MSDP,每个ISP可以实现依靠自己的RP来向Internet转发和接收组播数据。

使用MSDP实现跨域组播的首要任务是建立MSDP对等体。通过配置MSDP对等体使各个PIM-SM域的RP之间建立MSDP对等体关系,各MSDP对等体之间彼此首尾相连,形成一张“MSDP连通图”,连接各PIM-SM域RP。

MSDP对等体并不是只能配置在RP上,MSDP对等体可以创建在任意的PIM路由器上。如上图中RouterA和RouterB上,其作用仅限于将收到的SA消息转发出去。但为了保证网络中所有RP都能参与源信息共享,且尽量缩小“MSDP连通图”的规模,推荐的配置方案:在且仅在网络中所有RP上配置MSDP对等体

二、MSDP对等体建立流程

MSDP对等体通过TCP传输层协议连接建立,使用的端口为TCP639。两台设备使能MSDP并互相指定对方为MSDP对等体后,两端先比较IP地址,IP地址较小的一端会启动连接重试定时器(ConnectRetry timer),并主动发起TCP连接。IP地址较大的一端负责确认是否有TCP连接在端口639建立。TCP连接建立后,MSDP对等体关系就建立了,对等体之间通过KeepAlive(保持活跃)消息维持连接关系

在RouterA和RouterB之间MSDP对等体的建立流程为:

(1)起始状态下,两台路由器的MSDP会话状态都是Down。

(2)在两端使能MSDP并互相指定对方为MSDP对等体后,两端比较建立连接使用的IP地址:由于RouterAIP地址较小,所以进入Connect(连接)状态,向RouterB发起连接,并启动ConnectRetry定时器。该定时器用于定义连接重试的周期。RouterB的IP地址较大,此时进入Listen(监听)状态,等待对端的TCP连接。

(3)TCP连接建立成功后,两端的MSDP会话均进入Up状态,代表着MSDP对等体建立成功。随后各自向对方发送KeepAlive消息,通知对方保持MSDP连接状态。

在MSDP对等体建立TCP连接过程中可以进行加密认证,以保证MSDP对等体建立的安全性。配置了认证功能后,MSDP对等体两端必须都使用相同的加密算法和密码,才能正常建立TCP连接。MSDP支持MD5和Keychain两种加密方式。

三、基于MSDP的Anycast RP

MSDP是用于PIM-SM域间的组播网络连接,但是MSDP在PIM-SM域内也有一种特殊的应用,那就是他的一种特殊RP——“任播RP”(Anycast RP功能。它用来解决传统PIM-SM域中每个组播组只能映射到一个RP,当网络负载较大或流量过于集中时可能导致的压力过大、RP失效后收敛较慢、组播转发路径非最优等问题。

通过MSDP的Anycast RP功能,可以在同一PIM-SM域内配置多个具有相同IP地址的RP(相当于一个RP虚拟组,就像VRRP、HSRP中的虚拟组一样)。这些相同的IP地址都配置在loopback接口上,且这些RP之间在一个PIM-SM域内建立MSDP对等体关系,从而实现RP路径最优及负载分担。通过Anycast RP,可以实现以下三方面好处:

(1)RP路径最优:组播源向距离最近的RP进行注册,建立路径最优的SPT;接收者向距离最近的RP发起加入,建立路径最优的RPT。

(2)RP间的负载分担:每个RP上只需维护PIM-SM域内的部分源/组信息、转发部分的组播数据,从而实现了RP间的负载分担。

(3)RP间的冗余备份:当某RP失效后,原先在该RP上注册或加入的组播源或接收者会自动选择就近的RP进行注册或加入操作,从未实现了RP间的冗余备份。

如下图,在PIM-SM域内组播源Source1和Source2向组播组G发送组播数据,Receiver1和Receiver2是组播组G的成员。为了减轻单台RP的负荷,希望采用AnycastRP来实现多RP负载均衡。

(1)在PIM-SM域内选取多台路由器(如RouterA和RouterB)成为待选RP。

(2)在这些路由器上各准备一个Loopback接口,并配置相同的接口地址,如上图两路由器的Loopback1接口。

(3)采用以下方式之一配置RP

使用静态RP:在全域的所有PIM-SM路由器上配置静态RP的IP地址,即上面在RouterA的Loopback1接口上配置的IP地址。

使用C-RP:在RouterA和RouterB上使用Loopback1接口配置C-RP,然后在网络中配置C-BSR,选举产生BSR,用于集中管理组播域中的RP、组播源注册和组成员加入消息。注意:C-RP的地址不能与C-BSR的地址相同

(4)在RouterA和RouterB两个路由器之间配置建立PIM-SM域内的MSDP对等体连接。要注意,此时不能使用两路由器上Loopback1接口上的RP IP地址,而要使用路由器实际连接的物理接口IP地址

四、组播源信息在域间的传递

各个PIM-SM域的RP之间配置了MSDP对等体关系后,MSDP对等体之间通过交互SASourceActive)消息(SA消息中携带组播源DRRP上注册时的(S,G)信息)在各MSDP对等体之间的消息传递,这样任意一个RP发出的SA消息能够被其他所有的RP收到。

如下图,PIM-SM网路被划分为4个PIM-SM域。PIM-SM1域内的组播源Source向组G发送数据。PIM-SM3域内的Receiver为组G成员,RP3和Receiver之间维护了一棵关于组G的RPT(RP-rooted Shared Tree,根RP共享树)。

通过在RP1、RP2和RP3之间建立MSDP对等体关系,可以使Receiver(接收者)接收到Source发出的组播数据,具体过程如下:

(1)Source向组G发送组播数据。DR1将组播数据封装在Register消息中发给RP1。RP1作为源端RP,创建SA消息,携带Source的IP地址、组G地址和RP1地址发送给对等体RP2。

(2)RP2接收到该SA消息后,执行RPF(Reverse PathForwarding,逆向路径转发)检查,通过后向RP3转发。

(3)RP3接收到该SA消息后,同样先执行RPF检查,由于RP3上存在(*G)表项,表示本域内存在组G成员,RP3直接创建(S,G)表项。——那么RP2只转发,不创建(S,G)表项,只有路由器中存在(*G)表项,才创建(S,G

(4)然后RP3Source方向逐跳发送(S,G)加入消息,创建一条从SourceRP3的组播路径(源树)。组播数据沿源树到达RP3后,在沿RPT向接收者转发。

(5)接收者接收到组播数据后,自行决定是否发起SPT切换。

五、SA消息转发的控制

在MSDP协议中,SA(源激活)消息在MSDP对等体之间转发,除了RPF检查,还可以配置各种转发策略的过滤,从而只接收和转发来自正确路径并通过过滤的SA消息,以避免SA消息传递环路。另外,可以MSDP对等体之间配置MSDP全连接组(Mesh Group,以避免SA消息在MSDP对等体之间的泛滥。

1、SA消息的RPF检查规则

为了防止SA消息在MSDP对等体之间被循环转发,MSDP对接收到的SA消息执行RPF检查,在消息传递的入方向上进行严格的控制。不符合RPF规则的SA消息,将被丢弃。

RPF检查的主要规则:MSDP设备收到SA消息后,根据MRIBMulticastRPF Routing Information Base,组播RPF路由信息库)确定到源RP(即创建该SA消息的RP)最佳路径的下一跳是哪个对等体。这个对等体也称为RPF对等体”。如果发现SA消息是从RPF对等体发出的,则接收该SA消息,并向其他对等体转发。

此外,还有如下的一些RPF检查规则,SA消息在转发时必须遵守:

(1)发出SA消息的对等体就是源RP,则接收该SA消息并向其他对等体转发。

(2)接收从静态RPF对等体到来的SA消息。一台路由器可以同时与多个路由器建立MSDP对等体关系。用户可以从这些远端对等体中选取一个或多个配置为静态RPF对等体。

(3)如果一台路由器只拥有一个远端MSDP对等体,则该远端对等体自动成为RPF对等体,路由器接收从该远端对等体发来的SA消息。

(4)发出SA消息的对等体与本地路由器属于同一Mesh Group,则接收该SA消息。来自Mesh Group的SA消息不再向属于该Mesh Group的成员转发,但向该Mesh Group之外的所有对等体转发。

(5)到达源RP的路由需要跨越多个AS,接收从下一跳AS(以AS为单位)中的对等体发出的SA消息,如果该AS中存在多个远端MSDP对等体,则接收从IP地址最高的对等体发来的SA消息。

2、MSDP全连接组(Mesh Group)

当网络中存在多个MSDP对等体时,很容易导致SA消息在对等体之间泛滥。同时,MSDP对等体对每一个到来的SA报文进行RPF检查,给系统造成很大的负担。将多个MSDP对等体加入同一个全连接组(Mesh Group,就可以大幅度减少在这些MSDP对等体之间传递的SA消息。

Mesh Group成员可以都属于同一个PIM-SM域,也可以分布在多个PIM-SM域中;可以都位于同一个AS,也可以位于多个AS中。但属于同一个MeshGroup的所有成员之间必须两两建立MSDP对等体连接,并承认对方为该Mesh Group的成员。

如上图中RouterA、RouterB、RouterC和RouterD,加入同一个MeshGroup,则必须在每台路由器上配置与其他三台路由器建立MSDP对等体关系。

当Mesh Group内部成员接收到SA消息后,首先检查该SA消息的来源。

(1)如果该SA消息来自MeshGroup外部的某个MSDP对等体,则对该SA消息进行RPF检查。如果检查通过,向Mesh Group内其他所有成员转发。

(2)如果该SA消息来自MeshGroup内部成员,则不进行RPF检查,直接接收。同时也不再向Mesh Group内其他成员转发。

3、SA消息过滤

缺省情况下,MSDP不过滤SA消息,从一个域中发出的SA消息可以被传递到全网的MSDP对等体。然而有些PIM-SM域的(S,G)表项只适用于本域内转发,如一些本地组播应用使用了全局的组播组地址,或组播源用的是私网地址10.x.x.x。

如果不加过滤,这些(S,G)表项就会经过SA消息传递到其他MSDP对等体。针对这种情况,可以配置SA消息的过滤规则(一般使用ACL定义过滤的规则),并在创建、转发或接收SA消息时使用这些规则,就可以实现SA消息过滤。

● MSDP是主要为了在多个PIM-SM域之间提供连接,从而让PIM-SM域与PIM-SM域之间通过SA消息相互学习组播源(S, G)信息。每个PIM-SM域内的RP都可以建立一个或多个MSDP对等体关系,而该对等体关系使用TCP作为其传输协议,端口号为639。

● 当PIM-SM域内存在对某组播流(S, G)感兴趣的接收者时,则使用与PIM-SM中同样的方法构造SPT。

● 注: MSDP除了可以工作在PIM-SM外,还可以工作在任何协议之间来建立MSDP对等体关系。

● Source Active (SA) 消息:

☆ 由RP为当前域里活动源周期发起SA消息,并发送到所有活动地MSDP对等体。

☆ 当一个MSDP Speaker收到一条SA消息后,进行MSDP RPF检测,通过检测的SA消息则转发到该所有的MSDP对等体,反之则丢弃。需要注意, SA消息不会返回到接收该SA消息的对等体上。——这里说的MSDP Speaker是否就是MSDP对等体

☆ 对于一些边缘域(例如:某个PIM-SM域只有一条MSDP对等体。)不需要进行MSDP RPF检测。

☆ MSDP speakers可以缓存SA消息。正常情况下,这些消息不会被存储,目的是为了减少设备内存的使用。但是通过缓存SA消息可以减少MSDP的收敛时间,而并不需要等待SA周期时间结束。

☆ 在同一域内的非缓存MSDP Speakers可以通过请求MSDP Speakers活动源组的信息。

● 1.组播源的指定 PIM-SM 路由器(一般是在本地距信源最近的 PIM-SM 路由器)将组播源发出的数据封装在一个Register 报文里,发给域内的 RP;

● 2.RP 将报文解封装,沿域内的共享树向下转发给域内的所有成员,域内成员可以选择是否切换到信源树上。这里都是PIM-SM的典型工作过程,在此不再解释;

● 3.同时,RP 收到报文后,生成一个 SA(Source Active)报文,发送给MSDP对等体(其它PIM-SM域内RP)。每个SA报文中包含组播源的 IP 地址、组播组地址和生成报文的RP的地址。只要组播源在发送数据,RP 就周期性地发送SA报文;

● 4.如果在对等方RP所在的域里有接收者,则对等方RP在把报文向收端发送的同时,直接向组播源发送PIM-SM Join报文注意不是向组播源所在的域的RP发送报文

● PIM-SM Domain C的RP向组播源发送组加入信息(S, G),申请加入SPT。

● 逆向转发路径建立起来,源端发出的数据直接发送到PIM-SM Domain C的 RP 上, RP 开始转发数据。

● Domain C 中的组成员就可以选择是否切换到 SPT 上,因为此时组成员已经知道组播源的 IP 地址信息。这个过程与 PIM-SM 中的一样。

● 加入SPT后的数据转发路径

● MSDP全网组主要是为了减少SA消息的泛洪在同一个域内。特别地,当一个域内的多台MSDP Speaker全连接,可以把它们配置在同一个全网组内。需要注意,全网组里的组成员不会转发SA消息到该组里的其它组成员。所有为了能确保把SA消息发送到所有MSDP对等体上,在全网组里的组成员都应该全连接。

● Mesh-Group的工作机制:

☆从组成员里收到的SA消息,不转发到其它组成员。

☆从非组成员里收到的SA消息,通过MSDP RPF检测后,转发给所有组成员和MSDP对等体。

● Type (8 bits)

 描述消息类型

● Length (16 bits)

 描述消息的总长度,最短长度为4字节,除Keepalive外;最长长度为9192。

● Value (variable length)

 描述消息内容

● Type

 类型1,代表: IPv4 Source-Active.

● Length x

 控制消息的长度, X=8+条目数量的长度。

下面是同样的类型1的格式:

字段

长度

说明

Type

1 字节

消息类型,值为 1。

Length

2 字节

整个 TLV 的长度。

Entry Count

1 字节

消息中包含的(S, G)项总数。

RP Address

4 字节

源 RP 地址。

(S, G) Entry
[1]...[N]

变长

(源,组)信息。

Resv

3 字节

保留字段,发送报文时置 0;接收到报文时,对该字段不做任何处理。

Sprefix Len

1 字节

源地址掩码长度,以 32 位传输。

Group Address

4 字节

组地址。

Source
Address

4 字节

组播源地址。

● 一个Keepalive会被发送到该MSDP对等体在一个KeepAlive周期内。该消息必须保持MSDP连接存活

● 该消息的长度为3字节。 Type占1字节,长度占2字节。——所以长度(Length)字段固定为3。

● MSDP使用TCP作为该协议的传输协议。 MSDP对等体之间,其中一方通过等待收听端口号为639的新TCP连接,而另外一方则创建一个到该端口的活动连接。拥有高IP地址的对等体会被认为收听方。但注意,该方法的缺点在于建立的时间完全依赖活动方和connect retry timer,而被动方不会主动建立连接。

● 一个MSDP对等体初始状态: DISABLE

● 事件

● E1) 使能MSDP对等体关系

● E2) 自己的IP地址 < 对等体IP地址——由其发起连接

● E3) 自己的IP地址 >对等体IP地址——639端口启动监听,等待连接

● E4) 建立TCP连接 (活动方)

● E5) 建立TCP连接 (被动方)

● E6) ConnectRetry timer超时

● E7) 关闭MSDP对等体 (例如:对等体IP地址发生改变)

● E8) Hold Timer超时

● E9) MSDP报文格式检测错误

● E10) 检测到其它错误

MSDP的应用

MSDP既可以应用于不同PIM-SM域之间,又可以应用于同一PIM-SM域内;既可以应用于不同AS的PIM-SM域之间,又可应用于同一个AS的PIM域之间。

1、MSDP在AS内PIM-SM域间组播应用

组播源和组成员处于同一AS内不同PIM-SM域间,可以在RP上配置MSDP对等体,实现域间组播。如下图,在两个PIM-SM域的RP之间配置MSDP对等体,可以共享对方域内的组播源信息。

2、MBGP在AS间PIM-SM域间组播的应用

MBGP也可应用于不同AS间的PIM-SM域间,此时在MSDP对等体之间建立MBGP对等体,可以保证SA消息顺利通过RPF检查。配置时将MBGP对等体和MSDP对等体建立在相同的接口上。

如上图,在各个PIM-SM中的RP并不直接相连,且与ASBR不在同一台路由器上。在它们之间建立MSDP对等体后,为了保证SA消息顺利通过RPF检查,在这些RP之间配置MBGP对等体

(1)IBGP:在属于同一ASRP之间建立IBGP对等体。例如:RP1和RP2、RP3和RP4。

(2)EBGP:在属于不同ASRP之间建立EBGP对等体。例如:RP1和RP3、RP2和RP4。

3、使用静态RPF对等体实现AS间组播

在上面介绍SA消息的RPF检查规则中提到,如果收到的SA消息是从“RPF对等体”发来的,则接收该消息并向其他对等体转发。如果在MSDP对等体之间手工指定对方为静态RPF对等体,从静态RPF对等体收到的SA消息将不做RPF检查。

静态RPF配置不当容易引起SA消息环路,慎重使用。通常在跨AS的MSDP对等体之间建立静态RPF对等体。如下图,在RP1和RP2之间配置MSDP对等体;在RP1和RP2上分别配置对方为自己的静态RPF对等体。

4、Anycast RP

MSDP可以在PIM-SM域内通过AnycastRP功能得到应用,实现域内多个RP间的负载分担和容错。

如上图,Switch1和Switch2作为RP,两者之间建立MSDP对等体关系。借助MSDP对等体进行域内组播,接收者选择距离最近的RP发送加入消息以构建RPT树;组播源可以选择距离最近的RP进行注册,RP之间交互SA消息,共享源信息。RP加入以源端DR为根的SPT,引入组播数据;接收者接收到组播数据后自行决定是否发起SPT切换。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaoa000

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值