HCIE数通知识精-MSDP 技术(part-2)

2021-07-27 16:22:13 浏览数 (1)

(1)对等体建立过程

1.1.1. MSDP对等体建立

MSDP对等体通过TCP连接建立,使用端口639。

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

图1 MSDP对等体建立过程

如图1所示,RouterA和RouterB之间建立MSDP对等体的过程如下:

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

2. 在两端使能MSDP并互相指定对方为MSDP对等体后,两端比较建立连接使用的地址:

· RouterA的地址较小,进入Connect状态,向RouterB发起连接,并启动ConnectRetry定时器。该定时器用于定义连接重试的周期。

· RouterB的地址较大,进入Listen状态,等待对端进行连接。

3. TCP连接建立成功后,两端的MSDP会话进入Up状态。

4. MSDP对等体两端发送KeepAlive消息,通知对方保持MSDP连接状态。

1.1.2. MSDP认证

在TCP连接建立时进行加密认证,可以保证安全性。配置了认证功能后,MSDP对等体两端必须都使用相同的加密算法和密码,才能正常建立TCP连接,否则不建立连接。MSDP支持MD5和Keychain两种加密方式,二者在使用时互斥,MSDP对等体之间只能选择一种方式加密。

(2)组播源信息在域间的传递

如图1所示,PIM-SM网络被划分为4个PIM-SM域。PIM-SM1域内存在激活的组播源(Source),RP1通过组播源注册过程了解到了该组播源的存在。如果PIM-SM2和PIM-SM3域也希望知道该组播源的具体位置,进而能够从该组播源获取组播数据,则需要在RP1与RP2、RP2与RP3之间分别建立MSDP对等体关系。

图1 组播源信息在域间的传递

组播源信息在域间传递的过程如下:

1. 当PIM-SM1域内的组播源Source向组播组G发送第一个组播数据包时,DR1(Designated Router)将该组播数据封装在注册报文(Register Message)中,并发给RP1。RP1因此获知了该组播源的相关信息。

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

3. RP2接收到该SA消息后,执行RPF(Reverse PathForwarding)检查。检查通过,向RP3转发,同时检查本域内是否存在组G成员。由于PIM-SM2域内没有组G的接收者,故RP2不做其他动作。

4. RP3接收到该SA消息后,执行RPF检查,检查通过。由于PIM-SM3域内存在组G成员,会通过IGMP协议在RP3上生成(*,G)表项,表示本域内存在组G成员。

5. RP3创建(S,G)表项,向组播源Source逐跳发送(S,G)加入报文,创建一条从Source到RP3的组播路径(SPT)。组播数据沿SPT到达RP3后,再沿RPT向接收者转发。

6. 当接收者侧DR3收到Source发出的组播数据后,可以自行决定是否发起SPT切换。

(3) 控制SA消息的转发

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

1.1.1. SA消息的RPF检查规则

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

RPF检查的主要规则为:MSDP设备收到SA消息后,根据MRIB(Multicast RPFRouting Information Base)确定到源RP(即创建该SA消息的RP)最佳路径的下一跳是哪个对等体,这个对等体也称为“RPF对等体”。如果发现SA消息是从RPF对等体发出的,则接收该SA消息并向其他对等体转发。MRIB包括:MBGP、组播静态路由、单播路由(包括BGP、IGP)。

此外,还有如下的一些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消息。

1.1.2. MSDP全连接组(Mesh Group)

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

Mesh Group成员可以都属于同一个PIM-SM域,也可以分布在多个PIM-SM域中;可以都位于同一个AS,也可以位于多个AS中。

属于同一个Mesh Group的所有成员之间必须两两建立MSDP对等体连接,并承认对方为该Mesh Group的成员。如图1中的RouterA、RouterB、RouterC和RouterD,加入同一个Mesh Group,则必须在每台路由器上配置与其他三台路由器建立MSDP对等体关系。

图1 Mesh Group内部成员之间的MSDP对等体连接

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

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

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

1.1.3. SA消息过滤

缺省情况下,MSDP不过滤SA消息,从一个域中发出的SA消息可以被传递到全网的MSDP对等体。

然而,有些PIM-SM域的(S,G)表项只适用于本域内指导转发,如一些本地组播应用使用了全局的组播组地址,或组播源用的是私网地址10.x.x.x。如果不加过滤,这些(S,G)表项就会经过SA消息传递到其他MSDP对等体。针对这种情况,可以配置SA消息的过滤规则(一般使用ACL定义过滤的规则),并在创建、转发或接收SA消息时使用这些规则,就可以实现SA消息过滤。

0 人点赞