08-MSDP配置
本章节下载: 08-MSDP配置 (726.41 KB)
目 录
本文中所提到的DR(Designated Router,指定路由器)、BSR(Bootstrap Router,自举路由器)、C-BSR(Candidate-BSR,候选BSR)、RP(Rendezvous Point,汇集点)、C-RP(Candidate-RP,候选RP)、SPT(Shortest Path Tree,最短路径树)和RPT(Rendezvous Point Tree,共享树)等概念的详细介绍,请参见“IP组播配置指导”中的“PIM”。
MSDP(Multicast Source Discovery Protocol,组播源发现协议)是为了解决多个PIM-SM(Protocol Independent Multicast-Sparse Mode,协议无关组播—稀疏模式)域之间的互连而开发的一种域间组播解决方案,用来发现其它PIM-SM域内的组播源信息。
在基本的PIM-SM模式下,组播源只向本PIM-SM域内的RP注册,且各域的组播源信息是相互隔离的,因此RP仅知道本域内的组播源信息,只能在本域内建立组播分发树,将本域内组播源发出的组播数据分发给本地用户。如果能够有一种机制,将其它域内的组播源信息传递给本域内的RP,则本域内的RP就可以向其它域内的组播源发起加入过程并建立组播分发树,从而实现组播数据的跨域传输。
基于这一设想,MSDP通过在网络中选取适当的设备建立MSDP对等体关系,以连通各PIM-SM域的RP。通过在各MSDP对等体之间交互SA(Source Active,信源有效)报文来共享组播源信息。
· MSDP的适用前提:域内组播路由协议必须是PIM-SM。
· MSDP仅对ASM(Any-Source Multicast,任意信源组播)模型有意义。
通过在网络中配置一对或多对MSDP对等体,形成彼此相连的一张“MSDP连通图”,以连通各个PIM-SM域的RP。通过这些MSDP对等体之间的接力,可以把某RP发出的SA报文传递给其它所有的RP。
图1-1 MSDP对等体的位置
如图1-1所示,MSDP对等体可以创建在任意的PIM-SM路由器上,在不同角色的PIM-SM路由器上所创建的MSDP对等体的功能有所不同:
(1) 在RP上创建的MSDP对等体
· 源端MSDP对等体:即离组播源(Source)最近的MSDP对等体(通常也就是源端RP,如RP 1)。源端RP创建SA报文并发送给远端MSDP对等体,通告在本RP上注册的组播源信息。源端MSDP对等体必须配置在RP上,否则将无法向外发布组播源信息。
· 接收者端MSDP对等体:即离接收者(Receiver)最近的MSDP对等体(如RP 3)。接收者端MSDP对等体在收到SA报文后,根据该报文中所包含的组播源信息,跨域加入以该组播源为根的SPT;当来自该组播源的组播数据到达后,再沿RPT向本地接收者转发。
· 中间MSDP对等体:即拥有多个远端MSDP对等体的MSDP对等体(如RP 2)。中间MSDP对等体把从一个远端MSDP对等体收到的SA报文转发给其它远端MSDP对等体,其作用相当于传输组播源信息的中转站。
(2) 在普通的PIM-SM路由器(非RP)上创建的MSDP对等体
如Router A和Router B,其作用仅限于将收到的SA报文转发出去。
对于通过BSR机制动态选举RP的PIM-SM网络来说,RP是由C-RP选举产生的。为了增强其网络的健壮性,一个PIM-SM域内往往存在不止一个C-RP。由于无法预计RP选举的结果,为了保证选举获胜的C-RP能始终位于“MSDP连通图”上,需要在所有的C-RP之间建立MSDP对等体关系。而选举落败的C-RP在“MSDP连通图”上所担当的角色相当于普通的PIM-SM路由器。
如图1-2所示,PIM-SM 1域内存在激活的组播源(Source),RP 1通过组播源注册过程了解到了该组播源的存在。如果PIM-SM 2和PIM-SM 3域也希望知道该组播源的具体位置,进而能够从该组播源获取组播数据,则需要在RP 1与RP 3、RP 2与RP 3之间分别建立MSDP对等体关系。
图1-2 MSDP实现域间组播示意图
借助MSDP对等体进行PIM-SM域间组播的工作过程如下:
(1) 当PIM-SM 1域内的组播源向组播组G发送第一个组播数据包时,DR 1将该组播数据封装在注册报文(Register Message)中,并发给RP 1。RP 1因此获知了该组播源的相关信息。
(2) RP 1作为源端RP,创建SA报文,并周期性地向其它MSDP对等体发送。SA报文中包含组播源的地址S、组播组的地址G以及创建该SA报文的源端RP(即RP 1)的地址。
(3) MSDP对等体对收到的SA报文进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以及各种转发策略的过滤,从而只接受和转发来自正确路径并通过过滤的SA报文,以避免SA报文传递环路;另外,可以在MSDP对等体之间配置MSDP全连接组(Mesh Group),以避免SA报文在MSDP对等体之间的泛滥。
(4) SA报文在MSDP对等体之间转发,最终该组播源的相关信息将传遍所有建立了MSDP对等体关系的PIM-SM域(即PIM-SM 2和PIM-SM 3)。
(5) PIM-SM 2中的RP 2在收到该SA报文后,检查本域内是否有组播组G的接收者(Receiver)存在:
· 如果有接收者,RP 2与接收者之间维护组播组G的RPT。RP 2创建(S,G)表项,向组播源方向逐跳发送(S,G)加入报文(Join Message),从而跨越各PIM-SM域在沿途形成SPT。组播数据沿SPT到达RP 2后,再沿RPT向接收者转发。当接收者侧的DR 2收到来自组播源的组播数据后,可根据配置来决定是否发起SPT切换;
· 如果没有接收者,RP 2不会创建(S,G)表项,也不会向组播源方向发送加入报文。
· MSDP全连接组:要求所有组成员之间两两建立MSDP对等体关系,且所有组成员均使用相同的组名称。
· 在使用MSDP进行域间组播时,RP在收到组播源的信息后就不再需要依赖其它PIM-SM域内的RP,此时接收者可以跨越各PIM-SM域内的RP,而直接加入基于组播源的SPT。
如图1-3所示,网络中有五个自治系统AS 1~AS 5,AS内部使用IGP互联,AS之间使用BGP或MBGP互联。每个AS中包含至少一个PIM-SM域,且每个PIM-SM域中包含至少一个RP。各RP之间建立起MSDP对等体关系,其中RP 3、RP 4和RP 5之间建立MSDP全连接组,并在RP 7上将RP 6配置为其静态RPF对等体。
设备对于来自静态RPF对等体的SA报文不进行RPF检查,直接接受并向其它对等体转发。
图1-3 SA报文的RPF检查规则
对照图1-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报文来自同一个AS的MSDP对等体(RP 2),且该对等体是到源端RP最佳路径上的下一跳,于是RP 3接受该SA报文并向其它对等体(RP 4和RP 5)转发。
(3) 当RP 4和RP 5分别收到RP 3发来的SA报文时:由于SA报文来自同一个全连接组的MSDP对等体(RP 3),于是RP 4和RP 5均接受该SA报文并不再向本组其它成员转发,而只向本组之外的其它MSDP对等体(RP 6)转发。
(4) 当RP 6收到RP 4和RP 5(假设RP 5的IP地址较大)发来的SA报文时:尽管同处AS 3的RP 4和RP 5都与RP 6建立了MSDP对等体关系,但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报文时:属于不同AS的MSDP对等体之间存在BGP或MBGP路由。由于SA报文来自不同AS的MSDP对等体(RP 7),且该对等体是到源端RP的BGP或MBGP路由的下一跳,于是RP 8接受该SA报文并向其它对等体(RP 9)转发。
(7) 当RP 9收到RP 8发来的SA报文时:由于只有一个MSDP对等体(RP 8),于是RP 9接受该SA报文。
对于由其它路径到来的SA报文,MSDP对等体将不接受也不转发。
PIM-SM要求每个组播组只能有一个激活的RP,因此当某RP失效时,可能导致其对应组播组的流量中断。Anycast-RP机制通过为同一组播组设置具有相同地址的多个RP,组播源和接收者各自就近选择RP进行注册或加入,这些RP之间则进行组播源信息的同步,从而实现了RP间的冗余备份。Anycast-RP具有以下优点:
· RP路径最优:组播源向距离最近的RP进行注册,建立路径最优的SPT;接收者向距离最近的RP发起加入,建立路径最优的RPT。
· RP冗余备份:当某RP失效后,原先在该RP上注册或加入的组播源或接收者会自动选择就近的RP进行注册或加入,从而实现了RP间的冗余备份。
Anycast-RP可以通过以下两种方式实现:
· 基于PIM-SM实现:通过对RP进行一定的扩展来实现,不需要依赖MSDP。详细介绍请参见“IP组播配置指导”中的“PIM”。
· 基于MSDP实现:通过为同一组播组设置具有相同地址的多个RP,并在这些RP之间建立MSDP对等体关系来实现。本文主要介绍这种实现方式。
基于MSDP的实现如图1-4所示。在一个PIM-SM域内,组播源(Source)向组播组G发送组播数据,接收者(Receiver)是组播组G的成员。分别在Router A和Router B上配置相同的IP地址(即Anycast-RP地址,通常使用私有地址),将这些接口配置为C-RP,并在Router A和Router B之间建立MSDP对等体关系。
· 通常在设备的逻辑接口(如LoopBack接口)上配置Anycast-RP地址。
· 充当Anycast-RP的接口地址必须为主机地址(即子网掩码为255.255.255.255)。
· MSDP对等体的地址不能与Anycast-RP地址相同。
图1-4 基于MSDP实现Anycast-RP示意图
基于MSDP实现Anycast-RP的工作过程如下:
(1) 当组播源测DR收到来自组播源的组播数据时,选择距离最近的RP(本例中为RP 1)进行注册。
(2) 当接收者侧DR收到接收者的加入请求时,向距离最近的RP(本例中为RP 2)发送加入报文,从而形成以该RP为根的RPT。
(3) 各RP之间通过交互SA报文,共享组播源信息。当RP 2获得组播源信息后,向组播源方向发送加入报文,从而在沿途形成SPT。
(4) 当组播数据沿SPT到达RP 2后,再沿RPT向接收者转发;接收者侧DR收到组播数据后,可根据配置来决定是否发起SPT切换。
属于同一实例的组播路由器各接口之间可以建立MSDP对等体。通过在MSDP对等体之间交互SA报文,可以实现跨域的VPN组播。
应用多实例的组播路由器,为其所支持的每一个实例都独立维护了一套MSDP机制,包括:SA缓存、对等体连接、定时器、发送缓存和PIM交互的缓冲区。同时,保证不同实例之间信息隔离。所以,只有属于同一实例的MSDP和PIM-SM信息才可以交互。
与MSDP相关的协议规范有:
· RFC 3618:Multicast Source Discovery Protocol (MSDP)
· RFC 3446:Anycast Rendevous Point (RP) mechanism using Protocol Independent Multicast (PIM) and Multicast Source Discovery Protocol (MSDP)
表1-1 MSDP配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置MSDP基本功能 |
使能MSDP |
必选 |
|
创建MSDP对等体 |
必选 |
||
配置静态RPF对等体 |
可选 |
||
配置MSDP对等体连接 |
配置MSDP对等体描述信息 |
可选 |
|
配置MSDP全连接组 |
可选 |
||
配置MSDP对等体连接控制 |
可选 |
||
配置SA报文 |
使能在SA报文中封装组播数据报文 |
可选 |
|
配置创建SA报文的生成RP |
可选 |
||
配置SA请求报文 |
可选 |
||
配置SA报文过滤规则 |
可选 |
||
配置SA报文缓存 |
可选 |
||
配置MSDP NSR功能 |
可选 |
||
配置设备发送的MSDP协议报文的DSCP优先级 |
可选 |
本节的所有配置都是在PIM-SM域内的RP上进行的,这些RP将成为MSDP对等体的一端。
在配置MSDP基本功能之前,需完成以下任务:
· 配置任一单播路由协议,实现域内网络层互通
· 配置PIM-SM,实现域内组播
在配置MSDP各功能之前,必须先使能MSDP。
表1-2 使能MSDP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IP组播路由,并进入MRIB视图 |
multicast routing [ vpn-instance vpn-instance-name ] |
缺省情况下,IP组播路由处于关闭状态 本命令的详细介绍请参见“IP组播命令参考”中的“组播路由与转发” |
退回系统视图 |
quit |
- |
使能MSDP,并进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
MSDP处于关闭状态 |
MSDP对等体使用地址对来标识,即本端MSDP对等体地址和远端MSDP对等体地址。需要在互为对等体的两端都创建MSDP对等体。
如果某接口同时作为MSDP对等体和BGP/MBGP对等体中的一端,则建议为MSDP对等体配置与BGP或MBGP对等体相同的IP地址。
表1-3 创建MSDP对等体
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
创建MSDP对等体 |
peer peer-address connect-interface interface-type interface-number |
缺省情况下,不存在MSDP对等体 |
通过配置静态RPF对等体可以免除对收到的SA报文进行RPF检查。
如果在一台设备上只配置了一个MSDP对等体,则该MSDP对等体将被当作静态RPF对等体。
表1-4 配置静态RPF对等体
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
配置静态RPF对等体 |
static-rpf-peer peer-address [ rp-policy ip-prefix-name ] |
缺省情况下,不存在静态RPF对等体 |
在配置MSDP对等体连接之前,需完成以下任务:
· 配置任一单播路由协议,实现域内网络层互通
· 配置MSDP基本功能
管理员可以通过MSDP对等体的描述信息方便地区分不同的MSDP对等体,从而更好地管理MSDP对等体。
表1-5 配置MSDP对等体描述信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
配置MSDP对等体的描述信息 |
peer peer-address description text |
缺省情况下,MSDP对等体不存在描述信息 |
一个自治系统内可能包含多个MSDP对等体,为了避免这些MSDP对等体之间泛滥SA报文,可以使用MSDP全连接组来优化数据流量。
构成全连接组的MSDP对等体,一方面将来自组外并通过了RPF检查的SA报文转发给组内的其它成员;另一方面,对来自组内成员的SA报文不经RPF检查就接受,也不在组内进行重复转发。这种操作既避免了SA报文的泛滥,同时还由于不需要在MSDP对等体之间运行BGP或MBGP,所以也就简化了对等体RPF检查机制。
通过为多个MSDP对等体配置相同的全连接组名称,可以建立MSDP全连接组。
· 在配置MSDP全连接组之前,应使各设备之间保持两两互连。
· 如果在同一MSDP对等体上多次配置加入全连接组,最后一个配置有效。
表1-6 配置MSDP全连接组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
把MSDP对等体加入全连接组 |
peer peer-address mesh-group name |
缺省情况下,MSDP对等体不属于全连接组 |
MSDP对等体之间使用TCP进行连接(端口号为639),用户可以手工关闭或重建MSDP对等体连接,灵活控制MSDP对等体之间的会话。当关闭了MSDP对等体连接后,MSDP对等体之间不再传递SA报文,TCP连接关闭,并不再重试建立连接,但配置信息会被保留。
当MSDP对等体之间建立会话后,会定时互发Keepalive报文(其发送间隔被称为保活时间),以免对端认为会话已中断。如果一端在保持时间内未收到对端的Keepalive报文或其它报文,便断开此会话。由于MSDP对等体之间没有保活时间和保持时间的协商机制,因此必须为两端配置相同的保活时间和保持时间,且保活时间必须小于保持时间。
当新创建了MSDP对等体、或重新启动了被关闭的MSDP对等体连接、或发生故障的MSDP对等体尝试恢复工作时,需要在MSDP对等体之间建立TCP连接。用户可以灵活地调整建立MSDP对等体连接的重试周期。
为了提高MSDP的安全性,可以配置MSDP对等体在建立TCP连接时进行MD5认证。该认证并不能对MSDP报文进行认证,它只是为TCP连接设置MD5认证密钥,并由TCP完成认证。如果认证失败,则无法建立TCP连接。
参与MD5认证的两端MSDP对等体必须配置相同的认证方式和密钥,否则将由于不能通过认证而无法建立TCP连接。
表1-7 配置MSDP对等体连接控制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
关闭MSDP对等体连接 |
shutdown peer-address |
缺省情况下,MSDP对等体的连接处于开启状态 |
配置MSDP对等体会话的保活时间和保持时间 |
timer keepalive keepalive holdtime |
缺省情况下,MSDP会话的保活时间为60秒,保持时间为75秒 本命令会对已建立的MSDP会话立即生效 |
配置建立MSDP对等体连接的重试周期 |
timer retry interval |
缺省情况下,建立MSDP对等体连接的重试周期为30秒 |
配置MSDP对等体建立TCP连接时进行MD5认证 |
peer peer-address password { cipher | simple } password |
缺省情况下,MSDP对等体建立TCP连接时不进行MD5认证 |
在配置SA报文之前,需完成以下任务:
· 配置任一单播路由协议,实现域内网络层互通
· 配置MSDP基本功能
某些组播源发送组播数据的时间间隔较长,超出了(S,G)表项的超时时间。在这种情况下,源端DR只能将组播数据逐个封装在注册报文中,发送给源端RP。源端RP使用SA报文将(S,G)信息传输给远端RP。然后,远端RP向源端DR发起加入过程,并创建SPT。由于(S,G)表项已超时,远端用户将永远无法收到该组播源发出的组播数据。
当在源端RP上使能了在SA报文中封装组播数据报文的功能后,源端RP会将组播数据报文封装在SA报文中发送出去。远端RP收到该SA报文后解封装,并将组播数据报文沿RPT传输给本域内的用户。
表1-8 使能在SA报文中封装组播数据报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
使能在SA报文中封装组播数据报文 |
encap-data-enable |
缺省情况下,在SA报文中只包含(S,G)表项,不封装组播数据报文 |
SA报文缺省由实际RP创建。当MSDP对等体对收到的SA报文进行RPF检查时,如果发现其携带的RP地址与本端RP的地址相同,就会丢弃该报文。但在Anycast-RP应用中,恰恰要求在不同设备上配置IP地址相同的RP,并在这些RP之间建立MSDP对等体关系,这将导致在这些MSDP对等体之间传递的SA报文无法通过对方的RPF检查。为了解决这个问题,就不能使用实际RP来创建SA报文,而必须使用一个虚拟的RP来创建SA报文(我们称之为生成RP),并将MSDP对等体建立在生成RP之间。
表1-9 配置SA报文的生成RP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
将接口配置为创建SA报文的生成RP |
originating-rp interface-type interface-number |
缺省情况下,创建SA报文的RP为实际RP |
缺省情况下,当一个新接收者加入时,设备不会主动向其MSDP对等体发送SA请求报文,而是等待其MSDP对等体在下一个周期发来的SA报文,这将延迟接收者获取组播源信息的时间。为了尽快让新接收者了解到当前活跃的组播源信息,需要主动向MSDP对等体发送SA请求报文。
在使能发送SA请求报文功能之前,必须首先关闭SA报文缓存机制,否则设备不会向外发送SA请求报文。
表1-10 配置SA请求报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
使能发送SA请求报文 |
peer peer-address request-sa-enable |
缺省情况下,设备收到新的组加入报文时,不向其MSDP对等体发送SA请求报文,而是等待下一周期SA报文的到来 |
配置SA请求报文的过滤规则 |
peer peer-address sa-request-policy [ acl ipv4-acl-number ] |
缺省情况下,不对SA请求报文进行过滤 |
通过配置SA报文的创建规则,设备可以在创建SA报文时,对其通告的(S,G)表项进行过滤,从而实现在创建SA报文时对组播源消息传播的控制。
通过配置接收或转发SA报文的过滤规则,设备可以在接收或转发SA报文时,对其通告的(S,G)转发项进行过滤,从而实现在接收和转发SA报文时,对组播源消息传播的控制。
通过配置封装在SA报文中组播数据报文的TTL阈值,可以对组播数据报文在SA报文中的封装以及传输范围进行限制:
· 设备在创建封装有组播数据报文的SA报文之前,先检查该组播数据报文IP头的TTL值:如果小于阈值,则不创建该SA报文;如果大于或等于阈值,则将组播数据报文封装在SA报文中并转发出去。
· 设备在收到封装有组播数据报文的SA报文之后,先将该组播数据报文IP头的TTL值减1,再检查此时的TTL值:如果小于阈值,则不再向其指定的MSDP对等体转发;如果大于或等于阈值,则重新将组播数据报文封装在SA报文中并转发出去。
表1-11 配置SA报文过滤规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
配置SA报文的创建规则 |
import-source [ acl ipv4-acl-number ] |
缺省情况下,在创建SA报文时,对其通告的(S,G)表项不作限制 |
配置接收或转发SA报文的过滤规则 |
peer peer-address sa-policy { export | import } [ acl ipv4-acl-number ] |
缺省情况下,不对接收或转发的SA报文进行过滤 |
配置封装在SA报文中组播数据报文的最小TTL值 |
peer peer-address minimum-ttl ttl-value |
缺省情况下,封装在SA报文中组播数据报文的最小TTL值为0 |
为了减少获取组播信息的延迟时间,可以在设备上使能SA报文缓存机制,即在本地缓存SA报文中所包含的(S,G)表项。缓存的(S,G)表项越多,所占用的内存空间越大。
在使能了SA报文缓存机制后,当收到一个新的组加入报文(*,G)时,设备首先查找SA缓存:
· 如果缓存中没有对应的(S,G),便等候其MSDP对等体在下一个周期发来的SA报文;
· 如果缓存中有对应的(S,G),则直接加入以S为根的SPT。
为了有效防止设备受到DoS(Denial of Service,拒绝服务)攻击,可以在设备上配置可缓存(S,G)表项的最大数量。
表1-12 配置SA报文缓存
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
使能SA报文缓存机制 |
cache-sa-enable |
在缺省情况下,SA报文缓存机制处于使能状态,即在设备收到SA报文后缓存其中包含的(S,G)表项 |
配置缓存指定MSDP对等体(S,G)表项的最大值 |
peer peer-address sa-cache-maximum sa-limit |
缺省情况下,可缓存从任一MSDP对等体学到的(S,G)表项的最大数量为4294967295 |
MSDP NSR(Nonstop Routing,不间断路由)通过将MSDP协议的必要协议状态和数据(如MSDP对等体信息和远端源信息)从主进程备份到备进程。使得MSDP协议的主进程中断时,备份进程能够无缝地接管主进程的工作,从而确保邻接设备感知不到MSDP协议中断,保持路由信息,并保证组播转发不会中断。
msdp non-stop-routing |
缺省情况下,MSDP NSR功能处于关闭状态 |
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定设备发送的MSDP协议报文的DSCP优先级。
表1-14 配置设备发送的MSDP协议报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
配置设备发送的MSDP协议报文的DSCP优先级 |
dscp dscp-value |
缺省情况下,设备发送的MSDP协议报文的DSCP优先级为48 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MSDP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除MSDP的统计信息。
表1-15 MSDP显示和维护
操作 |
命令 |
显示MSDP对等体的简要信息 |
display msdp [ vpn-instance vpn-instance-name ] brief [ state { connect | disabled | established | listen | shutdown } ] |
显示MSDP NSR状态信息 |
display msdp non-stop-routing status |
显示MSDP对等体的详细状态信息 |
display msdp [ vpn-instance vpn-instance-name ] peer-status [ peer-address ] |
显示SA缓存中的(S,G)表项信息 |
display msdp [ vpn-instance vpn-instance-name ] sa-cache [ group-address | source-address | as-number ] * |
显示SA缓存中(S,G)表项的数量 |
display msdp [ vpn-instance vpn-instance-name ] sa-count [ as-number ] |
重置与MSDP对等体的TCP连接,并清除MSDP对等体的所有统计信息 |
reset msdp [ vpn-instance vpn-instance-name ] peer [ peer-address ] |
清除SA缓存中的(S,G)表项 |
reset msdp [ vpn-instance vpn-instance-name ] sa-cache [ group-address ] |
在不重置MSDP对等体的情况下,清除MSDP对等体的统计信息 |
reset msdp [ vpn-instance vpn-instance-name ] statistics [ peer-address ] |
· 网络中存在两个自治系统:AS 100和AS 200,各AS内部采用OSPF协议、AS之间则采用BGP协议以保证单播路由的畅通;
· PIM-SM 1属于AS 100,PIM-SM 2和PIM-SM 3属于AS 200,每个PIM-SM域分别拥有至少一个组播源(Source)或接收者(Receiver);
· 将Switch B、Switch C和Switch E各自的LoopBack0接口分别配置为各自PIM-SM域的C-BSR和C-RP;
· 通过在各PIM-SM域的RP之间建立MSDP对等体,从而实现各PIM-SM域之间组播源信息的共享。
图1-5 PIM-SM域间组播配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int103 |
10.110.1.2/24 |
Switch D |
Vlan-int104 |
10.110.4.2/24 |
|
Vlan-int100 |
10.110.2.1/24 |
|
Vlan-int300 |
10.110.5.1/24 |
|
Vlan-int200 |
10.110.3.1/24 |
Switch E |
Vlan-int105 |
10.110.6.1/24 |
Switch B |
Vlan-int103 |
10.110.1.1/24 |
|
Vlan-int102 |
192.168.3.2/24 |
|
Vlan-int101 |
192.168.1.1/24 |
|
Loop0 |
3.3.3.3/32 |
|
Loop0 |
1.1.1.1/32 |
Switch F |
Vlan-int105 |
10.110.6.2/24 |
Switch C |
Vlan-int104 |
10.110.4.1/24 |
|
Vlan-int400 |
10.110.7.1/24 |
|
Vlan-int102 |
192.168.3.1/24 |
Source 1 |
- |
10.110.2.100/24 |
|
Vlan-int101 |
192.168.1.2/24 |
Source 2 |
- |
10.110.5.100/24 |
|
Loop0 |
2.2.2.2/32 |
|
|
|
按照组网图配置各接口的IP地址和子网掩码,并在AS内的各交换机上配置OSPF协议。
(1) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Switch A上使能IP组播路由,在主机侧接口Vlan-interface200上使能IGMP,并在其它接口上使能PIM-SM。
<SwitchA> system-view
[SwitchA] multicast routing
[SwitchA-mrib] quit
[SwitchA] interface vlan-interface 103
[SwitchA-Vlan-interface103] pim sm
[SwitchA-Vlan-interface103] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] pim sm
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] igmp enable
[SwitchA-Vlan-interface200] quit
Switch B、Switch C、Switch D、Switch E和Switch F上的配置与Switch A相似,配置过程略。
# 在Switch B上配置BSR的服务边界。
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] pim bsr-boundary
[SwitchB-Vlan-interface101] quit
Switch C和Switch E上的配置与Switch B相似,配置过程略。
(2) 配置C-BSR和C-RP的位置
# 在Switch B上将LoopBack0接口配置为C-BSR和C-RP。
[SwitchB] pim
[SwitchB-pim] c-bsr 1.1.1.1
[SwitchB-pim] c-rp 1.1.1.1
[SwitchB-pim] quit
Switch C和Switch E上的配置与Switch B相似,配置过程略。
(3) 配置BGP协议,将BGP与OSPF互相引入
# 在Switch B上配置EBGP对等体,并引入OSPF路由。
[SwitchB] bgp 100
[SwitchB-bgp] router-id 1.1.1.1
[SwitchB-bgp] peer 192.168.1.2 as-number 200
[SwitchB-bgp] address-family ipv4 unicast
[SwitchB-bgp-ipv4] import-route ospf 1
[SwitchB-bgp-ipv4] peer 192.168.1.2 enable
[SwitchB-bgp-ipv4] quit
# 在Switch C上配置EBGP对等体,并引入OSPF路由。
[SwitchC] bgp 200
[SwitchC-bgp] router-id 2.2.2.2
[SwitchC-bgp] peer 192.168.1.1 as-number 100
[SwitchC-bgp] address-family ipv4 unicast
[SwitchC-bgp-ipv4] import-route ospf 1
[SwitchC-bgp-ipv4] peer 192.168.1.1 enable
[SwitchC-bgp-ipv4] quit
# 在Switch B的OSPF中引入BGP。
[SwitchB] ospf 1
[SwitchB-ospf-1] import-route bgp
[SwitchB-ospf-1] quit
# 在Switch C的OSPF中引入BGP。
[SwitchC] ospf 1
[SwitchC-ospf-1] import-route bgp
[SwitchC-ospf-1] quit
(4) 配置MSDP对等体
# 在Switch B上配置MSDP对等体。
[SwitchB] msdp
[SwitchB-msdp] peer 192.168.1.2 connect-interface vlan-interface 101
[SwitchB-msdp] quit
# 在Switch C上配置MSDP对等体。
[SwitchC] msdp
[SwitchC-msdp] peer 192.168.1.1 connect-interface vlan-interface 101
[SwitchC-msdp] peer 192.168.3.2 connect-interface vlan-interface 102
[SwitchC-msdp] quit
# 在Switch E上配置MSDP对等体。
[SwitchE] msdp
[SwitchE-msdp] peer 192.168.3.1 connect-interface vlan-interface 102
[SwitchE-msdp] quit
# 显示Switch B上BGP IPv4单播对等体或对等体组的信息。
[SwitchB] display bgp peer ipv4
BGP local router ID: 1.1.1.1
Local AS number: 100
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
192.168.1.2 200 24 21 0 6 00:20:07 Established
# 显示Switch C上BGP IPv4单播对等体或对等体组的信息。
[SwitchC] display bgp peer ipv4
BGP local router ID: 2.2.2.2
Local AS number: 1
Total number of peers: 1 Peers in established state: 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
192.168.1.1 100 18 16 0 1 00:20:07 Established
# 显示Switch C上BGP IPv4单播路由的信息。
[SwitchC] display bgp routing-table ipv4
Total number of routes: 5
BGP local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - dampened, h - history,
s - suppressed, S - stale, i - internal, e - external
Origin: i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 1.1.1.1/32 192.168.1.1 0 0 100?
* >i 2.2.2.2/32 0.0.0.0 0 0 ?
* > 192.168.1.0 0.0.0.0 0 0 ?
* > 192.168.1.1/32 0.0.0.0 0 0 ?
* > 192.168.1.2/32 0.0.0.0 0 0 ?
当PIM-SM 1和PIM-SM 2域内的组播源Source 1和Source 2发送组播信息时,PIM-SM 1和PIM-SM 3域内的接收者能收到该组播信息。
# 显示Switch B上MSDP对等体的简要信息。
[SwitchB] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
192.168.1.2 Established 00:12:57 200 13 0
# 显示Switch C上MSDP对等体的简要信息。
[SwitchC] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
192.168.3.2 Established 01:43:57 ? 8 0
192.168.1.1 Established 01:43:57 ? 13 0
# 显示Switch E上MSDP对等体的简要信息。
[SwitchE] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
192.168.3.1 Established 01:07:57 200 8 0
# 显示Switch B上MSDP对等体的详细状态信息。
[SwitchB] display msdp peer-status
Description:
Information about connection status:
State: Established
Up/down time: 00:15:47
Resets: 0
Connection interface: Vlan-interface101 (192.168.1.1)
Received/sent messages: 16/16
Discarded input messages: 0
Discarded output messages: 0
Elapsed time since last connection or counters clear: 00:17:40
Mesh group peer joined: momo
Last disconnect reason: Hold timer expired with truncated message
Truncated packet: 5 bytes in buffer, type: 1, length: 20, without packet time: 75s
Information about (Source, Group)-based SA filtering policy:
Import policy: None
Export policy: None
Information about SA-Requests:
Policy to accept SA-Requests: None
Sending SA-Requests status: Disable
Minimum TTL to forward SA with encapsulated data: 0
SAs learned from this peer: 0, SA cache maximum for the peer: 4294967295
Input queue size: 0, Output queue size: 0
Counters for MSDP messages:
RPF check failure: 0
Incoming/outgoing SA: 0/0
Incoming/outgoing SA-Request: 0/0
Incoming/outgoing SA-Response: 0/0
Incoming/outgoing Keepalive: 867/867
Incoming/outgoing Notification: 0/0
Incoming/outgoing Traceroutes in progress: 0/0
Incoming/outgoing Traceroute reply: 0/0
Incoming/outgoing Unknown: 0/0
Incoming/outgoing data packet: 0/0
· 网络中存在两个自治系统:AS 100和AS 200,各AS内部采用OSPF协议、AS之间则采用BGP协议以保证单播路由的畅通;
· PIM-SM 1属于AS 100,PIM-SM 2和PIM-SM 3属于AS 200,每个PIM-SM域分别拥有至少一个组播源(Source)或接收者(Receiver);
· 将Switch A、Switch D和Switch G各自的LoopBack0接口分别配置为各自PIM-SM域的C-BSR和C-RP;
· 根据RPF规则,设备接受来自其静态RPF对等体且被过滤策略所允许的SA报文。通过在各PIM-SM域的RP之间建立MSDP对等体,并在各MSDP对等体之间建立静态RPF对等体,从而在不改变单播拓扑的基础上实现各PIM-SM域之间组播源信息的共享。
图1-6 借助静态RPF对等体的AS间组播配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Source 1 |
- |
192.168.1.100/24 |
Switch D |
Vlan-int105 |
10.110.5.1/24 |
Source 2 |
- |
192.168.3.100/24 |
|
Vlan-int103 |
10.110.3.2/24 |
Switch A |
Vlan-int101 |
10.110.1.1/24 |
|
Loop0 |
2.2.2.2/32 |
|
Vlan-int102 |
10.110.2.1/24 |
Switch E |
Vlan-int105 |
10.110.5.2/24 |
|
Loop0 |
1.1.1.1/32 |
|
Vlan-int300 |
192.168.3.1/24 |
Switch B |
Vlan-int101 |
10.110.1.2/24 |
Switch F |
Vlan-int106 |
10.110.6.1/24 |
|
Vlan-int100 |
192.168.1.1/24 |
|
Vlan-int104 |
10.110.4.2/24 |
|
Vlan-int103 |
10.110.3.1/24 |
Switch G |
Vlan-int106 |
10.110.6.2/24 |
Switch C |
Vlan-int102 |
10.110.2.2/24 |
|
Vlan-int400 |
192.168.4.1/24 |
|
Vlan-int200 |
192.168.2.1/24 |
|
Loop0 |
3.3.3.3/32 |
|
Vlan-int104 |
10.110.4.1/24 |
|
|
|
按照组网图配置各接口的IP地址和掩码,并在AS内的各交换机上配置OSPF协议。
(1) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Switch C上使能IP组播路由,在主机侧接口Vlan-interface200上使能IGMP,并在其它接口上使能PIM-SM。
<SwitchC> system-view
[SwitchC] multicast routing
[SwitchC-mrib] quit
[SwitchC] interface vlan-interface 102
[SwitchC-Vlan-interface102] pim sm
[SwitchC-Vlan-interface102] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] igmp enable
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 104
[SwitchC-Vlan-interface104] pim sm
[SwitchC-Vlan-interface104] quit
Switch A、Switch B、Switch D、Switch E、Switch F和Switch G上的配置与Switch C相似,配置过程略。
# 在Switch B上配置BSR的服务边界。
[SwitchB] interface vlan-interface 103
[SwitchB-Vlan-interface103] pim bsr-boundary
[SwitchB-Vlan-interface103] quit
Switch C、Switch D和Switch F上的配置与Switch B相似,配置过程略。
(2) 配置C-BSR和C-RP的位置
# 在Switch A上将LoopBack0接口配置为C-BSR和C-RP。
[SwitchA] pim
[SwitchA-pim] c-bsr 1.1.1.1
[SwitchA-pim] c-rp 1.1.1.1
[SwitchA-pim] quit
Switch D和Switch G上的配置与Switch A相似,配置过程略。
(3) 配置BGP协议,将BGP与OSPF互相引入
# 在Switch B上配置EBGP对等体,并引入OSPF路由。
[SwitchB] bgp 100
[SwitchB-bgp] router-id 1.1.1.2
[SwitchB-bgp] peer 10.110.3.2 as-number 200
[SwitchB-bgp] address-family ipv4 unicast
[SwitchB-bgp-ipv4] peer 10.110.3.2 enable
[SwitchB-bgp-ipv4] import-route ospf 1
[SwitchB-bgp-ipv4]quit
[SwitchB-bgp] quit
# 在Switch D上配置EBGP对等体,并引入OSPF路由。
[SwitchD] bgp 200
[SwitchD-bgp] router-id 2.2.2.2
[SwitchD-bgp] peer 10.110.3.1 as-number 100
[SwitchD-bgp] address-family ipv4 unicast
[SwitchD-bgp-ipv4] peer 10.110.3.1 enable
[SwitchD-bgp-ipv4] import-route ospf 1
[SwitchD-bgp-ipv4]quit
[SwitchD-bgp] quit
# 在Switch C上配置EBGP对等体,并引入OSPF路由。
[SwitchC] bgp 100
[SwitchC-bgp] router-id 1.1.1.3
[SwitchC-bgp] peer 10.110.4.2 as-number 200
[SwitchC-bgp] address-family ipv4 unicast
[SwitchC-bgp-ipv4] peer 10.110.4.2 enable
[SwitchC-bgp-ipv4] import-route ospf 1
[SwitchC-bgp-ipv4]quit
[SwitchC-bgp] quit
# 在Switch F上配置EBGP对等体,并引入OSPF路由。
[SwitchF] bgp 200
[SwitchF-bgp] router-id 3.3.3.1
[SwitchF-bgp] peer 10.110.4.1 as-number 100
[SwitchF-bgp] address-family ipv4 unicast
[SwitchF-bgp-ipv4] peer 10.110.4.1 enable
[SwitchF-bgp-ipv4] import-route ospf 1
[SwitchF-bgp-ipv4]quit
[SwitchF-bgp] quit
# 在Switch B的OSPF中引入BGP。
[SwitchB] ospf 1
[SwitchB-ospf-1] import-route bgp
[SwitchB-ospf-1] quit
# 在Switch D的OSPF中引入BGP。
[SwitchD] ospf 1
[SwitchD-ospf-1] import-route bgp
[SwitchD-ospf-1] quit
# 在Switch C的OSPF中引入BGP。
[SwitchC] ospf 1
[SwitchC-ospf-1] import-route bgp
[SwitchC-ospf-1] quit
# 在Switch F的OSPF中引入BGP。
[SwitchF] ospf 1
[SwitchF-ospf-1] import-route bgp
[SwitchF-ospf-1] quit
(4) 配置MSDP对等体及静态RPF对等体
# 配置Switch D和Switch G作为Switch A的MSDP对等体及静态RPF对等体。
[SwitchA] ip prefix-list list-dg permit 10.110.0.0 16 greater-equal 16 less-equal 32
[SwitchA] msdp
[SwitchA-msdp] peer 10.110.3.2 connect-interface vlan-interface 101
[SwitchA-msdp] peer 10.110.6.2 connect-interface vlan-interface 102
[SwitchA-msdp] static-rpf-peer 10.110.3.2 rp-policy list-dg
[SwitchA-msdp] static-rpf-peer 10.110.6.2 rp-policy list-dg
[SwitchA-msdp] quit
# 配置Switch A作为Switch D的MSDP对等体及静态RPF对等体。
[SwitchD] ip prefix-list list-a permit 10.110.0.0 16 greater-equal 16 less-equal 32
[SwitchD] msdp
[SwitchD-msdp] peer 10.110.1.1 connect-interface vlan-interface 103
[SwitchD-msdp] static-rpf-peer 10.110.1.1 rp-policy list-a
[SwitchD-msdp] quit
# 配置Switch A作为Switch G的MSDP对等体及静态RPF对等体。
[SwitchG] ip prefix-list list-a permit 10.110.0.0 16 greater-equal 16 less-equal 32
[SwitchG] msdp
[SwitchG-msdp] peer 10.110.2.1 connect-interface vlan-interface 106
[SwitchG-msdp] static-rpf-peer 10.110.2.1 rp-policy list-a
[SwitchG-msdp] quit
# 显示Switch A上BGP对等体的信息。
[SwitchA] display bgp peer ipv4
没有显示信息输出,说明Switch A与Switch D、Switch A与Switch G之间均未建立BGP对等体关系。
当PIM-SM 1和PIM-SM 2域内的组播源Source 1和Source 2发送组播信息时,PIM-SM 1和PIM-SM 3域内的接收者能收到该组播信息。
# 显示Switch A上MSDP对等体的简要信息。
[SwitchA] display msdp brief
Configured Established Listen Connect Shutdown Disabled
2 2 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
10.110.3.2 Established 01:07:08 ? 8 0
10.110.6.2 Established 00:16:39 ? 13 0
# 显示Switch D上MSDP对等体的简要信息。
[SwitchD] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
10.110.1.1 Established 01:07:09 ? 8 0
# 显示Switch G上MSDP对等体的简要信息。
[SwitchG] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
10.110.2.1 Established 00:16:40 ? 13 0
· PIM-SM域内拥有多个组播源(Source)和接收者(Receiver),并在域内运行OSPF协议以提供单播路由;
· 通过配置Anycast-RP,使接收者侧DR能够向拓扑距离最近的RP发起加入,组播源侧DR也向拓扑距离最近的RP发起注册;
· 将Switch B和Switch D各自的LoopBack10接口配置为C-BSR、LoopBack20接口配置为C-RP;
· Switch B的Router ID为1.1.1.1,Switch D的Router ID为2.2.2.2,在Switch B和Switch D之间建立MSDP对等体关系。
图1-7 Anycast-RP应用配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Source 1 |
- |
10.110.5.100/24 |
Switch C |
Vlan-int101 |
192.168.1.2/24 |
Source 2 |
- |
10.110.6.100/24 |
|
Vlan-int102 |
192.168.2.2/24 |
Switch A |
Vlan-int300 |
10.110.5.1/24 |
Switch D |
Vlan-int200 |
10.110.3.1/24 |
|
Vlan-int103 |
10.110.2.2/24 |
|
Vlan-int104 |
10.110.4.1/24 |
Switch B |
Vlan-int100 |
10.110.1.1/24 |
|
Vlan-int102 |
192.168.2.1/24 |
|
Vlan-int103 |
10.110.2.1/24 |
|
Loop0 |
2.2.2.2/32 |
|
Vlan-int101 |
192.168.1.1/24 |
|
Loop10 |
4.4.4.4/32 |
|
Loop0 |
1.1.1.1/32 |
|
Loop20 |
10.1.1.1/32 |
|
Loop10 |
3.3.3.3/32 |
Switch E |
Vlan-int400 |
10.110.6.1/24 |
|
Loop20 |
10.1.1.1/32 |
|
Vlan-int104 |
10.110.4.2/24 |
按照组网图配置各接口的IP地址和子网掩码,并在PIM-SM域内的各交换机上配置OSPF协议。
(1) 使能IP组播路由,并使能PIM-SM和IGMP
# 在Switch B上使能IP组播路由,在主机侧接口Vlan-interface100上使能IGMP,并在其它接口上使能PIM-SM。
<SwitchB> system-view
[SwitchB] multicast routing
[SwitchB-mrib] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] igmp enable
[SwitchB-Vlan-interface100] quit
[SwitchB] interface vlan-interface 103
[SwitchB-Vlan-interface103] pim sm
[SwitchB-Vlan-interface103] quit
[SwitchB] interface Vlan-interface 101
[SwitchB-Vlan-interface101] pim sm
[SwitchB-Vlan-interface101] quit
[SwitchB] interface loopback 0
[SwitchB-LoopBack0] pim sm
[SwitchB-LoopBack0] quit
[SwitchB] interface loopback 10
[SwitchB-LoopBack10] pim sm
[SwitchB-LoopBack10] quit
[SwitchB] interface loopback 20
[SwitchB-LoopBack20] pim sm
[SwitchB-LoopBack20] quit
Switch A、Switch C、Switch D和Switch E上的配置与Switch B相似,配置过程略。
(2) 配置C-BSR和C-RP的位置
# 在Switch B上将LoopBack10配置为C-BSR,将LoopBack20配置为C-RP。
[SwitchB] pim
[SwitchB-pim] c-bsr 3.3.3.3
[SwitchB-pim] c-rp 10.1.1.1
[SwitchB-pim] quit
Switch D上的配置与Switch B相似,配置过程略。
(3) 配置MSDP对等体
# 在Switch B的LoopBack0接口上配置MSDP对等体。
[SwitchB] msdp
[SwitchB-msdp] originating-rp loopback 0
[SwitchB-msdp] peer 2.2.2.2 connect-interface loopback 0
[SwitchB-msdp] quit
# 在Switch D的LoopBack0接口上配置MSDP对等体。
[SwitchD] msdp
[SwitchD-msdp] originating-rp loopback 0
[SwitchD-msdp] peer 1.1.1.1 connect-interface loopback 0
[SwitchD-msdp] quit
# 显示Switch B上MSDP对等体的简要信息。
[SwitchB] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
2.2.2.2 Established 00:10:57 ? 0 0
# 显示Switch D上MSDP对等体的简要信息。
[SwitchD] display msdp brief
Configured Established Listen Connect Shutdown Disabled
1 1 0 0 0 0
Peer address State Up/Down time AS SA count Reset count
1.1.1.1 Established 00:10:57 ? 0 0
当Source 1(10.110.5.100/24)开始向组播组G(225.1.1.1)发送组播信息时,Host A加入组播组G。通过比较Switch B与Switch D上PIM路由表的内容,可知当前的有效RP为Switch B:Source 1向Switch B注册,Host A向Switch B加入。
# 显示Switch B上PIM路由表的内容。
[SwitchB] display pim routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, 225.1.1.1)
RP: 10.1.1.1 (local)
Protocol: pim-sm, Flag: WC
UpTime: 00:15:04
Upstream interface: Register-Tunnel0
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstream interfaces: 1
1: Vlan-interface100
Protocol: igmp, UpTime: 00:15:04, Expires: -
(10.110.5.100, 225.1.1.1)
RP: 10.1.1.1 (local)
Protocol: pim-sm, Flag: SPT 2MSDP ACT
UpTime: 00:46:28
Upstream interface: Vlan-interface103
Upstream neighbor: 10.110.2.2
RPF prime neighbor: 10.110.2.2
Downstream interface(s) information:
Total number of downstream interfaces: 1
1: Vlan-interface100
Protocol: pim-sm, UpTime: - , Expires: -
# 显示Switch D上PIM路由表的内容。
[SwitchD] display pim routing-table
Switch D上没有信息输出。
Host A离开组播组G,Source 1也停止向组播组G发送组播数据。当Source 2(10.110.6.100/24)开始向组播组G发送组播信息时,Host B加入组播组G。通过比较Switch B与Switch D上PIM路由的显示信息,可知当前的有效RP为Switch D:Source 2向Switch D注册,Host B向Switch D加入。
# 显示Switch B上PIM路由表的内容。
[SwitchB] display pim routing-table
Switch B上没有信息输出。
# 显示Switch D上PIM路由表的内容。
[SwitchD] display pim routing-table
Total 1 (*, G) entry; 1 (S, G) entry
(*, 225.1.1.1)
RP: 10.1.1.1 (local)
Protocol: pim-sm, Flag: WC
UpTime: 00:12:07
Upstream interface: Register-Tunnel0
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstream interfaces: 1
1: Vlan-interface200
Protocol: igmp, UpTime: 00:12:07, Expires: -
(10.110.6.100, 225.1.1.1)
RP: 10.1.1.1 (local)
Protocol: pim-sm, Flag: SPT 2MSDP ACT
UpTime: 00:40:22
Upstream interface: Vlan-interface104
Upstream neighbor: 10.110.4.2
RPF prime neighbor: 10.110.4.2
Downstream interface(s) information:
Total number of downstream interfaces: 1
1: Vlan-interface200
Protocol: pim-sm, UpTime: - , Expires: -
· 网络中存在三个PIM-SM域,各域内部以及域之间均运行OSPF协议以提供单播路由;
· 将Switch A、Switch C和Switch D各自的LoopBack0接口分别配置为各自PIM-SM域的C-BSR和C-RP;
· 分别在Switch A与Switch C、Switch C与Switch D之间建立MSDP对等体关系;
· 组播源Source 1向组播组225.1.1.0/30和226.1.1.0/30发送组播数据,组播源Source 2向组播组227.1.1.0/30发送组播数据;
· 通过配置SA报文过滤规则,使接收者Host A和Host B只能接收发往组播组225.1.1.0/30和226.1.1.0/30的组播数据,而Host C则只能接收发往组播组226.1.1.0/30和227.1.1.0/30的组播数据。
图1-8 SA报文过滤机制配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Source 1 |
- |
10.110.3.100/24 |
Switch C |
Vlan-int300 |
10.110.4.1/24 |
Source 2 |
- |
10.110.6.100/24 |
|
Vlan-int104 |
10.110.5.1/24 |
Switch A |
Vlan-int100 |
10.110.1.1/24 |
|
Vlan-int101 |
192.168.1.2/24 |
|
Vlan-int102 |
10.110.2.1/24 |
|
Vlan-int103 |
192.168.2.2/24 |
|
Vlan-int101 |
192.168.1.1/24 |
|
Loop0 |
2.2.2.2/32 |
|
Loop0 |
1.1.1.1/32 |
Switch D |
Vlan-int400 |
10.110.6.1/24 |
Switch B |
Vlan-int200 |
10.110.3.1/24 |
|
Vlan-int500 |
10.110.7.1/24 |
|
Vlan-int102 |
10.110.2.2/24 |
|
Vlan-int104 |
10.110.5.2/24 |
|
Vlan-int103 |
192.168.2.1/24 |
|
Loop0 |
3.3.3.3/32 |
按照组网图配置各接口的IP地址和掩码,并在各交换机上配置OSPF协议。
(1) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Switch A上使能IP组播路由,在主机侧接口Vlan-interface100上使能IGMP,并在其它接口上使能PIM-SM。
<SwitchA> system-view
[SwitchA] multicast routing
[SwitchA-mrib] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] igmp enable
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] pim sm
[SwitchA-Vlan-interface101] quit
[SwitchA] interface vlan-interface 102
[SwitchA-Vlan-interface102] pim sm
[SwitchA-Vlan-interface102] quit
[SwitchA] interface loopback 0
[SwitchA-LoopBack0] pim sm
[SwitchA-LoopBack0] quit
Switch B、Switch C和Switch D上的配置与Switch A相似,配置过程略。
# 在Switch C上配置BSR的服务边界。
[SwitchC] interface vlan-interface 101
[SwitchC-Vlan-interface101] pim bsr-boundary
[SwitchC-Vlan-interface101] quit
[SwitchC] interface vlan-interface 103
[SwitchC-Vlan-interface103] pim bsr-boundary
[SwitchC-Vlan-interface103] quit
[SwitchC] interface vlan-interface 104
[SwitchC-Vlan-interface104] pim bsr-boundary
[SwitchC-Vlan-interface104] quit
Switch A、Switch B和Switch D上的配置与Switch C相似,配置过程略。
(2) 配置C-BSR和C-RP的位置
# 在Switch A上将LoopBack0接口配置为C-BSR和C-RP。
[SwitchA] pim
[SwitchA-pim] c-bsr 1.1.1.1
[SwitchA-pim] c-rp 1.1.1.1
[SwitchA-pim] quit
Switch C和Switch D上的配置与Switch A相似,配置过程略。
(3) 配置MSDP对等体
# 在Switch A上配置MSDP对等体。
[SwitchA] msdp
[SwitchA-msdp] peer 192.168.1.2 connect-interface vlan-interface 101
[SwitchA-msdp] quit
# 在Switch C上配置MSDP对等体。
[SwitchC] msdp
[SwitchC-msdp] peer 192.168.1.1 connect-interface vlan-interface 101
[SwitchC-msdp] peer 10.110.5.2 connect-interface vlan-interface 104
[SwitchC-msdp] quit
# 在Switch D上配置MSDP对等体。
[SwitchD] msdp
[SwitchD-msdp] peer 10.110.5.1 connect-interface vlan-interface 104
[SwitchD-msdp] quit
(4) 配置SA报文过滤规则
# 在Switch C上配置不向Switch D转发有关(Source 1,225.1.1.0/30)的SA报文。
[SwitchC] acl advanced 3001
[SwitchC-acl-ipv4-adv-3001] rule deny ip source 10.110.3.100 0 destination 225.1.1.0 0.0.0.3
[SwitchC-acl-ipv4-adv-3001] rule permit ip source any destination any
[SwitchC-acl-ipv4-adv-3001] quit
[SwitchC] msdp
[SwitchC-msdp] peer 10.110.5.2 sa-policy export acl 3001
[SwitchC-msdp] quit
# 在Switch D上配置不创建有关Source 2的SA报文。
[SwitchD] acl basic 2001
[SwitchD-acl-ipv4-basic-2001] rule deny source 10.110.6.100 0
[SwitchD-acl-ipv4-basic-2001] quit
[SwitchD] msdp
[SwitchD-msdp] import-source acl 2001
[SwitchD-msdp] quit
通过使用display msdp sa-cache命令可以查看交换机上SA缓存中的(S,G)表项信息。例如:
# 显示Switch C上SA缓存中的(S,G)表项信息。
[SwitchC] display msdp sa-cache
Total Source-Active Cache - 8 entries
Matched 8 entries
Source Group Origin RP Pro AS Uptime Expires
10.110.3.100 225.1.1.0 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 225.1.1.1 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 225.1.1.2 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 225.1.1.3 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 226.1.1.0 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 226.1.1.1 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 226.1.1.2 1.1.1.1 ? ? 02:03:30 00:05:31
10.110.3.100 226.1.1.3 1.1.1.1 ? ? 02:03:30 00:05:31
# 显示Switch D上SA缓存中的(S,G)表项信息。
[SwitchD] display msdp sa-cache
Total Source-Active Cache - 4 entries
Matched 4 entries
Source Group Origin RP Pro AS Uptime Expires
10.110.3.100 226.1.1.0 1.1.1.1 ? ? 00:32:53 00:05:07
10.110.3.100 226.1.1.1 1.1.1.1 ? ? 00:32:53 00:05:07
10.110.3.100 226.1.1.2 1.1.1.1 ? ? 00:32:53 00:05:07
10.110.3.100 226.1.1.3 1.1.1.1 ? ? 00:32:53 00:05:07
配置了MSDP对等体,但其状态一直显示为disabled。
· 所配置的本地接口地址与MSDP对等体地址之间,建立起基于TCP连接的MSDP对等体关系;
· 如果本地接口地址与对端设备上所配置的MSDP对等体地址不一致,TCP连接就不会建立起来;
· 如果两个MSDP对等体之间没有路由,TCP连接也不会建立起来。
(1) 检查各设备之间的路由是否通达。通过命令display ip routing-table查看各设备之间单播路由是否正确。
(2) 检查将成为MSDP对等体的两个设备间是否存在到达对方的单播路由。
(3) 检查MSDP对等体之间的接口地址是否匹配。通过命令display current-configuration查看本地接口地址是否与对端MSDP对等体地址一致,应确保一致。
MSDP没有将(S,G)转发项通过SA报文发送出去。
· 命令import-source用于控制将本域的(S,G)表项通过SA报文发送给MSDP对等体。如果没有指定参数ipv4-acl-number则表示默认过滤掉所有的(S,G)表项,即不通告本域的所有(S,G)表项;
· 未配置import-source命令时,系统将发送本域的所有(S,G)信息。如果MSDP没有将本域的(S,G)表项通过SA报文发送出去,应检查import-source命令的配置是否正确。
(1) 检查各设备之间的路由是否通达。通过命令display ip routing-table查看各设备之间单播路由是否正确。
(2) 检查将成为MSDP对等体的两个设备间是否存在到达对方的单播路由。
(3) 检查命令import-source及其参数ipv4-acl-number的配置情况,确保ACL规则能够过滤合适的(S,G)信息。
在Anycast-RP的应用中,各RP之间没有互相交换其本地注册的(S,G)信息。
· 在Anycast-RP应用中,通过将同一PIM-SM域内的RP配置为MSDP对等体,可以实现RP间的冗余备份;
· MSDP对等体地址不能与Anycast-RP地址相同,且C-BSR和C-RP必须配置在不同的设备或接口上;
· 在使用originating-rp命令进行配置后,MSDP将利用该命令所指定的接口地址替换SA报文中的RP地址;
· 当MSDP对等体对收到的SA报文进行RPF检查时,如果发现RP地址为本地地址,将拒绝接收SA报文。
(1) 检查各设备之间的路由是否通达。通过命令display ip routing-table查看各设备之间单播路由是否正确。
(2) 检查将成为MSDP对等体的两个设备间是否存在到达对方的单播路由。
(3) 检查originating-rp命令的配置情况。在Anycast-RP的应用环境中,一定要配置originating-rp命令,而且originating-rp命令所指定的接口地址要与建立MSDP对等体连接的本地接口地址相同。
(4) 检查所配置的C-BSR地址是否与Anycast-RP的地址不同,应确保两个地址不同。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!