MSDP技术介绍


MSDP

MSDP简介

MSDP概述

MSDPMulticast Source Discovery Protocol(组播源发现协议)的简称,是为了解决多个PIM-SMProtocol Independent Multicast Sparse Mode,协议无关组播—稀疏模式)域之间的互连而开发的一种域间组播解决方案,用来发现其它PIM-SM域内的组播源信息。

在基本的PIM-SM模式下,组播源只向本PIM-SM域内的RP注册,且各域的组播源信息是相互隔离的,因此RP仅知道本域内的组播源信息,只能在本域内建立组播分发树,将本域内组播源发出的组播数据分发给本地用户。如果能够有一种机制,将其它域内的组播源信息传递给本域内的RP,则本域内的RP就可以向其它域内的组播源发起加入过程并建立组播分发树,从而实现组播数据的跨域传输。

基于这一设想,MSDP通过在网络中选取适当的路由器建立MSDP对等体关系,以连通各PIM-SM域的RP。通过在各MSDP对等体之间交互SASource Active,信源有效)消息来共享组播源信息。

  注意:

l      MSDP的适用前提:域内组播路由协议必须是PIM-SM

l      MSDP仅对ASMAny-Source Multicast,任意信源组播)模型有意义。

 

MSDP原理

1. MSDP对等体

通过在网络中配置一对或多对MSDP对等体,形成彼此相连的一张“MSDP连通图”,以连通各个PIM-SM域的RP。通过这些MSDP对等体之间的接力,可以把某RP发出的SA消息传递给其它所有的RP

图1 MSDP对等体的位置

1所示,MSDP对等体可以创建在任意的PIM-SM路由器上,在不同角色的PIM-SM路由器上所创建的MSDP对等体的功能有所不同:

(1)        RP上创建的MSDP对等体

l              源端MSDP对等体:即离组播源(Source)最近的MSDP对等体(通常也就是源端RP,如RP 1)。源端RP创建SA消息并发送给远端MSDP对等体,通告在本RP上注册的组播源信息。源端MSDP对等体必须配置在RP上,否则将无法向外发布组播源信息。

l              接收者端MSDP对等体:即离接收者(Receiver)最近的MSDP对等体(如RP 3)。接收者端MSDP对等体在收到SA消息后,根据该消息中所包含的组播源信息,跨域加入以该组播源为根的SPT;当来自该组播源的组播数据到达后,再沿RPT向本地接收者转发。

l              中间MSDP对等体:即拥有多个远端MSDP对等体的MSDP对等体(如RP 2)。中间MSDP对等体把从一个远端MSDP对等体收到的SA消息转发给其它远端MSDP对等体,其作用相当于传输组播源信息的中转站。

(2)        在普通的PIM-SM路由器(非RP)上创建的MSDP对等体

Router ARouter B,其作用仅限于将收到的SA消息转发出去。

&  说明:

对于通过BSR机制动态选举RPPIM-SM网络来说,RP是由C-RP选举产生的。为了增强其网络的健壮性,一个PIM-SM域内往往存在不止一个C-RP。由于无法预计RP选举的结果,为了保证选举获胜的C-RP能始终位于“MSDP连通图”上,需要在所有的C-RP之间建立MSDP对等体关系。而选举落败的C-RP在“MSDP连通图”上所担当的角色相当于普通的PIM-SM路由器。

 

2. 借助MSDP对等体实现域间组播

2所示,PIM-SM 1域内存在激活的组播源(Source),RP 1通过组播源注册过程了解到了该组播源的存在。如果PIM-SM 2PIM-SM 3域也希望知道该组播源的具体位置,进而能够从该组播源获取组播数据,则需要在RP 1RP 3RP 2RP 3之间分别建立MSDP对等体关系。

图2 MSDP对等体示意图

借助MSDP对等体进行域间组播的工作过程如下:

(1)        PIM-SM 1域内的组播源向组播组G发送第一个组播数据包时,DR 1将该组播数据封装在注册消息(Register Message)中,并发给RP 1RP 1因此获知了该组播源的相关信息。

(2)        RP 1作为源端RP,创建SA消息,并周期性地向其它MSDP对等体发送。SA消息中包含组播源的地址S、组播组的地址G以及创建该SA消息的源端RP(即RP 1)的地址。

(3)        MSDP对等体对收到的SA消息进行RPFReverse Path Forwarding,逆向路径转发)检查,以及各种转发策略的过滤,从而只接受和转发来自正确路径并通过过滤的SA消息,以避免SA消息传递环路;另外,可以在MSDP对等体之间配置MSDP全连接组(Mesh Group),以避免SA消息在MSDP对等体之间的泛滥。

(4)        SA消息在MSDP对等体之间转发,最终该组播源的相关信息将传遍所有建立了MSDP对等体关系的PIM-SM域(即PIM-SM 2PIM-SM 3)。

(5)        PIM-SM 2中的RP 2在收到该SA消息后,检查本域内是否有组播组G的接收者(Receiver)存在:

l              如果有接收者,RP 2与接收者之间维护组播组GRPTRP 2创建(SG)表项,向源端的DR 1逐跳发送(SG)加入消息(Join Message),从而跨越各PIM-SM域直接加入以该组播源为根的SPT。组播数据沿SPT到达RP 2后,再沿RPT向接收者转发。当接收者端的DR 2收到来自组播源的组播数据后,可以自行决定是否发起从RPTSPT的切换;

l              如果没有接收者,RP 2不会创建(SG)表项,也不加入以该组播源为根的SPT

&  说明:

l      MSDP全连接组:要求所有组成员之间两两建立MSDP对等体关系,且所有组成员均使用相同的组名称。

l      在使用MSDP进行域间组播时,RP在收到组播源的信息后就不再需要依赖其它PIM-SM域内的RP,此时接收者可以跨越各PIM-SM域内的RP,而直接加入基于组播源的SPT

 

3. SA消息的RPF检查规则

3所示,网络中有五个自治系统AS 1AS 5AS内部使用IGP互联,AS之间使用BGPMBGP互联。每个AS中包含至少一个PIM-SM域,且每个PIM-SM域中包含至少一个RP。各RP之间建立起MSDP对等体关系,其中RP 3RP 4RP 5之间建立MSDP全连接组,并在RP 7上将RP 6配置为其静态RPF对等体。

&  说明:

PIM-SM域内只存在一个MSDP对等体时,该域又称为STUB域(如3中的AS 4)。STUB域内的MSDP对等体可以同时拥有多个远端MSDP对等体,用户可以从中选取其中一个或多个配置为静态RPF对等体。对于来自静态RPF对等体的SA消息不进行RPF检查,直接接受并向其它对等体转发。

 

图3 SA消息的RPF检查规则

对照3,这些MSDP对等体将按照如下RPF检查规则处理收到的SA消息:

(1)        RP 2收到RP 1发来的SA消息时

由于SA消息中所携带的源端RP的地址与MSDP对等体的地址相同,说明发出SA消息的MSDP对等体就是创建该SA消息的RP,于是RP 2接受该SA消息并向其它对等体(RP 3)转发。

(2)        RP 3收到RP 2发来的SA消息时

由于SA消息来自同一个ASMSDP对等体(RP 2),且该对等体是到源端RP最佳路径上的下一跳,于是RP 3接受该SA消息并向其它对等体(RP 4RP 5)转发。

(3)        RP 4RP 5分别收到RP 3发来的SA消息时

由于SA消息来自同一个全连接组的MSDP对等体(RP 3),于是RP 4RP 5均接受该SA消息并不再向本组其它成员转发,而只向本组之外的其它MSDP对等体(RP 6)转发。

(4)        RP 6收到RP 4RP 5(假设RP 5IP地址较大)发来的SA消息时

尽管同处AS 3RP 4RP 5都与RP 6建立了MSDP对等体关系,但由于RP 5IP地址较大,于是RP 6只接受IP地址较高的MSDP对等体(RP 5)发来的SA消息。

(5)        RP 7收到RP 6发来的SA消息时

由于SA消息来自其静态RPF对等体(RP 6),于是RP 7接受该SA消息并向其它对等体(RP 8)转发。

(6)        RP 8收到RP 7发来的SA消息时

属于不同ASMSDP对等体之间存在BGPMBGP路由。由于SA消息来自不同ASMSDP对等体(RP 7),且该对等体是到源端RPBGPMBGP路由的下一跳,于是RP 8接受该SA消息并向其它对等体(RP 9)转发。

(7)        RP 9收到RP 8发来的SA消息时

由于只有一个MSDP对等体(RP 8),于是RP 9接受该SA消息。

对于由其它路径到来的SA消息,MSDP对等体将不接受也不转发。

4. 借助MSDP对等体实现域内Anycast RP

Anycast RP(任播RP)是指在同一个PIM-SM域内设置两个或多个具有相同地址的RP,并在这些RP之间建立MSDP对等体关系,以实现域内各RP之间的负载分担和冗余备份。

4所示,在一个PIM-SM域内,组播源(Source)向组播组G发送组播数据,接收者(Receiver)是组播组G的成员。分别在Router ARouter B上配置相同的IP地址(称为Anycast RP地址,通常使用私有地址),同时将这些接口配置为C-RP,并在Router ARouter B之间建立MSDP对等体关系。

&  说明:

通常在设备的逻辑接口(如Loopback接口)上配置Anycast RP地址。

 

图4 Anycast RP典型组网图

Anycast RP的工作过程如下:

(1)        组播源选择距离最近的RP进行注册。如:SourceRP 1注册,注册消息中封装有Source发出的组播数据。当该注册消息到达RP 1后,进行解封装。

(2)        接收者向距离最近的RP发送加入消息,加入以该RP为根的RPT。如:Receiver加入以RP 2为根的RPT

(3)        RP之间通过发送SA消息,共享注册的组播源信息。如:RP 1创建一个SA消息,发送给RP 2,该SA消息中封装有Source发出的组播数据。当该SA消息到达RP 2后,进行解封装。

(4)        接收者沿RPT收到组播数据后,直接加入以该组播源为根的SPT。如:RP 2沿RPT将组播数据向下转发。当Receiver收到来自Source的组播数据后,直接加入以Source为根的SPT

Anycast RP的意义如下:

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

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

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

  注意:

l      必须为Anycast RP地址配置32位的子网掩码(即255.255.255.255),也即将其配置为一个主机地址。

l      MSDP对等体的地址不能与Anycast RP地址相同。

 

多实例的MSDP

属于同一实例的组播路由器各接口之间可以建立MSDP对等体。通过在MSDP对等体之间交互SA消息,可以实现跨域的VPN组播。

应用多实例的组播路由器,为其所支持的每一个实例都独立维护了一套MSDP机制,包括:SA缓存、对等体连接、定时器、发送缓存和PIM交互的缓冲区。同时,保证不同实例之间信息隔离。所以,只有属于同一实例的MSDPPIM-SM信息才可以交互。

附件下载

联系我们