08-MSDP配置
本章节下载: 08-MSDP配置 (524.2 KB)
目 录
l 本文所指的路由器代表运行了路由协议的三层设备。
l 本文中所提到的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”。
l MSDP功能中所指的“接口”为三层口,包括VLAN接口、三层以太网端口等。三层以太网端口是指被配置为三层模式的以太网端口,有关以太网端口模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网端口配置”。
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,信源有效)消息来共享组播源信息。
l MSDP的适用前提:域内组播路由协议必须是PIM-SM。
l 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对等体
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 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)存在:
l 如果有接收者,RP 2与接收者之间维护组播组G的RPT。RP 2创建(S,G)表项,向源端的DR 1逐跳发送(S,G)加入消息(Join Message),从而跨越各PIM-SM域直接加入以该组播源为根的SPT。组播数据沿SPT到达RP 2后,再沿RPT向接收者转发。当接收者端的DR 2收到来自组播源的组播数据后,可以自行决定是否发起从RPT向SPT的切换;
l 如果没有接收者,RP 2不会创建(S,G)表项,也不加入以该组播源为根的SPT。
l MSDP全连接组:要求所有组成员之间两两建立MSDP对等体关系,且所有组成员均使用相同的组名称。
l 在使用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对等体将不接受也不转发。
Anycast RP(任播RP)是指在同一个PIM-SM域内设置两个或多个具有相同地址的RP,并在这些RP之间建立MSDP对等体关系,以实现域内各RP之间的负载分担和冗余备份。
如图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地址。
图1-4 MSDP实现域内Anycast RP示意图
Anycast RP的工作过程如下:
(1) 组播源选择距离最近的RP进行注册。如:Source向RP 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对等体之间交互SA消息,可以实现跨域的VPN组播。
应用多实例的组播路由器,为其所支持的每一个实例都独立维护了一套MSDP机制,包括:SA缓存、对等体连接、定时器、发送缓存和PIM交互的缓冲区。同时,保证不同实例之间信息隔离。所以,只有属于同一实例的MSDP和PIM-SM信息才可以交互。
与MSDP相关的协议规范有:
l RFC 3618:Multicast Source Discovery Protocol (MSDP)
l 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请求消息 |
可选 |
||
配置SA消息过滤规则 |
可选 |
||
配置SA消息缓存 |
可选 |
本节的所有配置都是在PIM-SM域内的RP上进行的,这些RP将成为MSDP对等体的一端。
在配置MSDP基本功能之前,需完成以下任务:
l 配置任一单播路由协议,实现域内网络层互通
l 配置PIM-SM,实现域内组播
在配置MSDP基本功能之前,需准备以下数据:
l MSDP对等体的IP地址
l 表示RP地址过滤策略的地址前缀列表
在配置MSDP各功能之前,必须先使能MSDP。
表1-2 使能公网实例中的MSDP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IP组播路由 |
multicast routing-enable |
必选 缺省情况下,IP组播路由处于关闭状态 |
使能MSDP,并进入公网实例MSDP视图 |
msdp |
必选 缺省情况下,MSDP处于关闭状态 |
表1-3 使能VPN实例中的MSDP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VPN实例,并进入VPN实例视图 |
ip vpn-instance vpn-instance-name |
- |
配置VPN实例的RD |
route-distinguisher route-distinguisher |
必选 缺省情况下,VPN实例没有RD |
使能IP组播路由 |
multicast routing-enable |
必选 缺省情况下,IP组播路由处于关闭状态 |
退回系统视图 |
quit |
- |
使能MSDP,并进入VPN实例MSDP视图 |
msdp vpn-instance vpn-instance-name |
必选 缺省情况下,MSDP处于关闭状态 |
l 有关ip vpn-instance和route-distinguisher命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“MCE”。
l 有关multicast routing-enable命令的详细介绍,请参见“IP组播命令参考”中的“组播路由与转发”。
MSDP对等体使用地址对来标识,即本端MSDP对等体地址和远端MSDP对等体地址。需要在互为对等体的两端都创建MSDP对等体连接。
表1-4 创建MSDP对等体连接
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
创建MSDP对等体连接 |
peer peer-address connect-interface interface-type interface-number |
必选 缺省情况下,没有创建MSDP对等体连接 |
如果某接口同时作为MSDP对等体和BGP/MBGP对等体中的一端,则建议为MSDP对等体配置与BGP或MBGP对等体相同的IP地址。
通过配置静态RPF对等体可以免除对收到的SA消息进行RPF检查。
表1-5 配置静态RPF对等体
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
配置静态RPF对等体 |
static-rpf-peer peer-address [ rp-policy ip-prefix-name ] |
必选 缺省情况下,没有配置静态RPF对等体 |
如果在一台路由器上只配置了一个MSDP对等体,则该MSDP对等体将被当作静态RPF对等体。
在配置MSDP对等体连接之前,需完成以下任务:
l 配置任一单播路由协议,实现域内网络层互通
l 配置MSDP基本功能
在配置MSDP对等体连接之前,需准备以下数据:
l MSDP对等体的描述信息
l MSDP全连接组的名称
l 建立MSDP对等体连接的重试周期
l MSDP对等体建立TCP连接时进行MD5认证的密钥
管理员可以通过MSDP对等体的描述信息方便地区分不同的MSDP对等体,从而更好地管理MSDP对等体。
表1-6 配置MSDP对等体描述信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例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全连接组。
表1-7 配置MSDP全连接组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
把MSDP对等体加入全连接组 |
peer peer-address mesh-group name |
必选 缺省情况下,MSDP对等体不属于任何全连接组 |
l 在配置MSDP全连接组之前,应使各路由器之间保持两两互连。
l 如果在同一MSDP对等体上多次配置加入全连接组,最后一个配置有效。
MSDP对等体之间使用TCP进行连接(端口号为639),用户可以手工关闭或重建MSDP对等体连接,灵活控制MSDP对等体之间的会话。当关闭了MSDP对等体连接后,MSDP对等体之间不再传递SA消息,TCP连接关闭,并不再重试建立连接,但配置信息会被保留。
当新创建了MSDP对等体、或重新启动了被关闭的MSDP对等体连接、或发生故障的MSDP对等体尝试恢复工作时,需要在MSDP对等体之间建立TCP连接。用户可以灵活地调整建立MSDP对等体连接的重试周期。
为了提高MSDP的安全性,可以配置MSDP对等体在建立TCP连接时进行MD5认证。该认证并不能对MSDP报文进行认证,它只是为TCP连接设置MD5认证密钥,并由TCP完成认证。如果认证失败,则无法建立TCP连接。
表1-8 配置MSDP对等体连接控制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
手工关闭MSDP对等体连接 |
shutdown peer-address |
可选 缺省情况下,MSDP对等体处于连接状态 |
配置建立MSDP对等体连接的重试周期 |
timer retry interval |
可选 缺省情况下,建立MSDP对等体连接的重试周期为30秒 |
配置MSDP对等体建立TCP连接时进行MD5认证 |
peer peer-address password { cipher | simple } password |
可选 缺省情况下,MSDP对等体建立TCP连接时不进行MD5认证 |
参与MD5认证的两端MSDP对等体必须配置相同的认证方式和密钥,否则将由于不能通过认证而无法建立TCP连接。
在配置SA消息传递之前,需完成以下任务:
l 配置任一单播路由协议,实现域内网络层互通
l 配置MSDP基本功能
在配置SA消息传递之前,需准备以下数据:
l 表示SA请求消息过滤规则的ACL规则
l 表示SA消息创建规则的ACL规则
l 表示接收或转发SA消息的过滤规则的ACL规则
l 封装在SA消息中组播数据报文的TTL(Time to Live,生存时间)阈值
l 可缓存从指定MSDP对等体学到的(S,G)表项的最大数量
某些组播源发送组播数据的时间间隔较长,超出了(S,G)表项的超时时间。在这种情况下,源端DR只能将组播数据逐个封装在注册消息中,发送给源端RP。源端RP使用SA消息将(S,G)信息传输给远端RP。然后,远端RP向源端DR发起加入过程,并创建SPT。由于(S,G)表项已超时,远端用户将永远无法收到该组播源发出的组播数据。
当在源端RP上使能了在SA消息中封装组播数据报文的功能后,源端RP会将组播数据报文封装在SA消息中发送出去。远端RP收到该SA消息后解封装,并将组播数据报文沿RPT传输给本域内的用户。
MSDP对等体之间传递SA消息,当路由器对收到的SA消息进行RPF检查时,如果发现对端RP的地址与本地RP的地址相同,就会丢弃该SA消息。但在Anycast RP应用中,要求在同一个PIM-SM域内的两台或多台路由器上配置IP地址相同的RP,并在这些路由器之间建立MSDP对等体关系,因此必须为SA消息指定一个与实际RP的地址不同的逻辑RP地址(即逻辑接口上的RP地址),以通过RPF检查。
表1-9 配置SA消息内容
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
使能在SA消息中封装组播数据报文 |
encap-data-enable |
可选 缺省情况下,在SA消息中只包含(S,G)表项,不封装组播数据报文 |
配置接口地址为SA消息的RP地址 |
originating-rp interface-type interface-number |
可选 缺省情况下,SA消息的RP地址为PIM的RP地址 |
缺省情况下,当一个新接收者加入时,路由器不会主动向其MSDP对等体发送SA请求消息,而是等待其MSDP对等体在下一个周期发来的SA消息,这将延迟接收者获取组播源信息的时间。为了尽快让新接收者了解到当前活跃的组播源信息,需要主动向MSDP对等体发送SA请求消息。
表1-10 配置SA请求消息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例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 acl-number ] |
可选 缺省情况下,不对SA请求消息进行过滤 |
在使能发送SA请求消息功能之前,必须首先关闭SA消息缓存机制,否则设备不会向外发送SA请求消息。
通过配置SA消息的创建规则,路由器可以在创建SA消息时,对其通告的(S,G)表项进行过滤,从而实现在创建SA消息时对组播源消息传播的控制。
通过配置接收或转发SA消息的过滤规则,路由器可以在接收或转发SA消息时,对其通告的(S,G)转发项进行过滤,从而实现在接收和转发SA消息时,对组播源消息传播的控制。
通过配置封装在SA消息中组播数据报文的TTL阈值,可以对组播数据报文在SA消息中的封装以及传输范围进行限制:
l 路由器在创建封装有组播数据报文的SA消息之前,先检查该组播数据报文IP头的TTL值:如果小于阈值,则不创建该SA消息;如果大于或等于阈值,则将组播数据报文封装在SA消息中并转发出去。
l 路由器在收到封装有组播数据报文的SA消息之后,先将该组播数据报文IP头的TTL值减1,再检查此时的TTL值:如果小于阈值,则不再向其指定的MSDP对等体转发;如果大于或等于阈值,则重新将组播数据报文封装在SA消息中并转发出去。
表1-11 配置SA消息过滤规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例MSDP视图 |
msdp [ vpn-instance vpn-instance-name ] |
- |
配置SA消息的创建规则 |
import-source [ acl acl-number ] |
必选 缺省情况下,在创建SA消息时,对其通告的(S,G)表项不作限制 |
配置接收或转发SA消息的过滤规则 |
peer peer-address sa-policy { import | export } [ acl acl-number ] |
必选 缺省情况下,不对接收或转发的SA消息进行过滤 |
配置封装在SA消息中组播数据报文的TTL阈值 |
peer peer-address minimum-ttl ttl-value |
可选 缺省情况下,封装在SA消息中组播数据报文的TTL阈值为0 |
为了减少获取组播信息的延迟时间,可以在路由器上使能SA消息缓存机制,即在本地缓存SA消息中所包含的(S,G)表项。缓存的(S,G)表项越多,所占用的内存空间越大。
在使能了SA消息缓存机制后,当收到一个新的组加入消息(*,G)时,路由器首先查找SA缓存:
l 如果缓存中没有对应的(S,G),便等候其MSDP对等体在下一个周期发来的SA消息;
l 如果缓存中有对应的(S,G),则直接加入以S为根的SPT。
为了有效防止路由器受到DoS(Denial of Service,拒绝服务)攻击,可以在路由器上配置可缓存(S,G)表项的最大数量。
表1-12 配置SA消息缓存
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入公网实例或VPN实例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)表项的最大数量为8192 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MSDP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除MSDP的统计信息。
表1-13 MSDP显示和维护
操作 |
命令 |
查看MSDP对等体的简要信息 |
display msdp [ all-instance | vpn-instance vpn-instance-name ] brief [ state { connect | down | listen | shutdown | up } ] [ | { begin | exclude | include } regular-expression ] |
查看MSDP对等体的详细状态信息 |
display msdp [ all-instance | vpn-instance vpn-instance-name ] peer-status [ peer-address ] [ | { begin | exclude | include } regular-expression ] |
查看SA缓存中的(S,G)表项信息 |
display msdp [ all-instance | vpn-instance vpn-instance-name ] sa-cache [ group-address | source-address | as-number ] * [ | { begin | exclude | include } regular-expression ] |
查看SA缓存中(S,G)表项的数量 |
display msdp [ all-instance | vpn-instance vpn-instance-name ] sa-count [ as-number ] [ | { begin | exclude | include } regular-expression ] |
重置与MSDP对等体的TCP连接 |
reset msdp [ all-instance | vpn-instance vpn-instance-name ] peer [ peer-address ] |
清除SA缓存中的(S,G)表项 |
reset msdp [ all-instance | vpn-instance vpn-instance-name ] sa-cache [ group-address ] |
清除MSDP对等体的统计信息 |
reset msdp [ all-instance | vpn-instance vpn-instance-name ] statistics [ peer-address ] |
l 网络中存在两个自治系统:AS 100和AS 200,各AS内部采用OSPF协议、AS之间则采用BGP协议以保证单播路由的畅通;
l PIM-SM 1属于AS 100,PIM-SM 2和PIM-SM 3属于AS 200,每个PIM-SM域分别拥有至少一个组播源(Source)或接收者(Receiver);
l 将Switch B、Switch C和Switch E各自的Loopback0接口分别配置为各自PIM-SM域的C-BSR和C-RP;
l 通过在各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 |
|
|
|
(1) 配置IP地址和单播路由协议
请按照图1-5配置各接口的IP地址和子网掩码,具体配置过程略。
配置AS内的各交换机之间采用OSPF协议进行互连,确保各AS内部在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。
(2) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Switch A上使能IP组播路由,在各接口上使能PIM-SM,并在主机侧接口Vlan-interface200上使能IGMP。
<SwitchA> system-view
[SwitchA] multicast routing-enable
[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] pim sm
[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相似,配置过程略。
(3) 配置C-BSR和C-RP的位置
# 在Switch B上将Loopback0接口配置为C-BSR和C-RP。
[SwitchB] pim
[SwitchB-pim] c-bsr loopback 0
[SwitchB-pim] c-rp loopback 0
[SwitchB-pim] quit
Switch C和Switch E上的配置与Switch B相似,配置过程略。
(4) 配置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] import-route ospf 1
[SwitchB-bgp] 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] import-route ospf 1
[SwitchC-bgp] 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
(5) 配置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
(6) 检验配置效果
通过使用display bgp peer命令可以查看交换机之间BGP对等体的关系。例如:
# 查看Switch B上BGP对等体关系的信息。
[SwitchB] display bgp peer
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:13:09 Established
# 查看Switch C上BGP对等体关系的信息。
[SwitchC] display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 200
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:12:04 Established
通过使用display bgp routing-table命令可以查看交换机上的BGP路由表。例如:
# 查看Switch C上BGP路由表的信息。
[SwitchC] display bgp routing-table
Total Number of Routes: 5
BGP Local router ID is 2.2.2.2
Status codes: * - valid, ^ - VPNv4 best, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
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域内的接收者能收到该组播信息。通过使用display msdp brief命令可以查看交换机之间MSDP对等体建立情况。例如:
# 查看Switch B上MSDP对等体建立情况的简要信息。
[SwitchB] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
1 1 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
192.168.1.2 Up 00:12:27 200 13 0
# 查看Switch C上MSDP对等体建立情况的简要信息。
[SwitchC] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
2 2 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
192.168.3.2 Up 00:15:32 200 8 0
192.168.1.1 Up 00:06:39 100 13 0
# 查看Switch E上MSDP对等体建立情况的简要信息。
[SwitchE] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
1 1 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
192.168.3.1 Up 01:07:08 200 8 0
# 查看Switch B上MSDP对等体的详细信息。
[SwitchB] display msdp peer-status
MSDP Peer Information of VPN-Instance: public net
MSDP Peer 192.168.1.2, AS 200
Description:
Information about connection status:
State: Up
Up/down time: 00:15:47
Resets: 0
Connection interface: Vlan-interface101 (192.168.1.1)
Number of sent/received messages: 16/16
Number of discarded output messages: 0
Elapsed time since last connection or counters clear: 00:17:51
Information about (Source, Group)-based SA filtering policy:
Import policy: none
Export policy: none
Information about SA-Requests:
Policy to accept SA-Request messages: 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: none
Input queue size: 0, Output queue size: 0
Counters for MSDP message:
Count of RPF check failure: 0
Incoming/outgoing SA messages: 0/0
Incoming/outgoing SA requests: 0/0
Incoming/outgoing SA responses: 0/0
Incoming/outgoing data packets: 0/0
l 网络中存在两个自治系统:AS 100和AS 200,各AS内部采用OSPF协议、AS之间则采用BGP协议以保证单播路由的畅通;
l PIM-SM 1属于AS 100,PIM-SM 2和PIM-SM 3属于AS 200,每个PIM-SM域分别拥有至少一个组播源(Source)或接收者(Receiver);
l 将Switch A、Switch D和Switch G各自的Loopback0接口分别配置为各自PIM-SM域的C-BSR和C-RP;
l 根据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 |
|
|
|
(1) 配置IP地址和单播路由协议
请按照图1-6配置各接口的IP地址和掩码,具体配置过程略。
配置AS内的各交换机之间采用OSPF协议进行互连,确保AS内部在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。
(2) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Switch C上使能IP组播路由,在各接口上使能PIM-SM,并在主机侧接口Vlan-interface200上使能IGMP。
<SwitchC> system-view
[SwitchC] multicast routing-enable
[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] pim sm
[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相似,配置过程略。
(3) 配置C-BSR和C-RP的位置
# 在Switch A上将Loopback0接口配置为C-BSR和C-RP。
[SwitchA] pim
[SwitchA-pim] c-bsr loopback 0
[SwitchA-pim] c-rp loopback 0
[SwitchA-pim] quit
Switch D和Switch G上的配置与Switch A相似,配置过程略。
(4) 配置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] import-route ospf 1
[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] import-route ospf 1
[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] import-route ospf 1
[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] import-route ospf 1
[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
(5) 配置MSDP对等体及静态RPF对等体
# 配置Switch D和Switch G作为Switch A的MSDP对等体及静态RPF对等体。
[SwitchA] ip ip-prefix 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 ip-prefix 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 ip-prefix 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
(6) 检验配置效果
通过使用display bgp peer命令可以查看交换机之间BGP对等体建立情况。Switch A上无任何信息输出,说明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域内的接收者能收到该组播信息,通过使用display msdp brief命令可以查看交换机之间MSDP对等体的建立情况。例如:
# 查看Switch A上MSDP对等体的简要信息。
[SwitchA] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
2 2 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
10.110.3.2 Up 01:07:08 ? 8 0
10.110.6.2 Up 00:16:39 ? 13 0
# 查看Switch D上MSDP对等体的简要信息。
[SwitchD] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
1 1 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
10.110.1.1 Up 01:07:09 ? 8 0
# 查看Switch G上MSDP对等体的简要信息。
[SwitchG] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
1 1 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
10.110.2.1 Up 00:16:40 ? 13 0
l PIM-SM域内拥有多个组播源(Source)和接收者(Receiver),并在域内运行OSPF协议以提供单播路由;
l 通过配置Anycast RP,使接收者侧DR能够向拓扑距离最近的RP发起加入,组播源侧DR也向拓扑距离最近的RP发起注册;
l 将Switch B和Switch D各自的Loopback10接口配置为C-BSR、Loopback20接口配置为C-RP;
l 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 |
(1) 配置IP地址和单播路由协议
请按照图1-7配置各接口的IP地址和子网掩码,具体配置过程略。
配置PIM-SM域内的各交换机之间采用OSPF协议进行互连,确保PIM-SM域内部在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。
(2) 使能IP组播路由,并使能PIM-SM和IGMP
# 在Switch B上使能IP组播路由,在各接口上使能PIM-SM,并在主机侧接口Vlan-interface100上使能IGMP。
<SwitchB> system-view
[SwitchB] multicast routing-enable
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] igmp enable
[SwitchB-Vlan-interface100] pim sm
[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相似,配置过程略。
(3) 配置C-BSR和C-RP的位置
# 在Switch B上将Loopback10配置为C-BSR,将Loopback20配置为C-RP。
[SwitchB] pim
[SwitchB-pim] c-bsr loopback 10
[SwitchB-pim] c-rp loopback 20
[SwitchB-pim] quit
Switch D上的配置与Switch B相似,配置过程略。
(4) 配置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
(5) 检验配置效果
通过使用display msdp brief命令可以查看交换机之间MSDP对等体建立情况。
# 查看Switch B上MSDP对等体的简要信息。
[SwitchB] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
1 1 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
2.2.2.2 Up 00:10:17 ? 0 0
# 查看Switch D上MSDP对等体的简要信息。
[SwitchD] display msdp brief
MSDP Peer Brief Information of VPN-Instance: public net
Configured Up Listen Connect Shutdown Down
1 1 0 0 0 0
Peer's Address State Up/Down time AS SA Count Reset Count
1.1.1.1 Up 00:10:18 ? 0 0
通过使用display pim routing-table命令可以查看交换机上的PIM路由。
当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
VPN-Instance: public net
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
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 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 downstreams: 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
VPN-Instance: public net
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
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 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 downstreams: 1
1: Vlan-interface200
Protocol: pim-sm, UpTime: - , Expires: -
l 网络中存在三个PIM-SM域,各域内部以及域之间均运行OSPF协议以提供单播路由;
l 将Switch A、Switch C和Switch D各自的Loopback0接口分别配置为各自PIM-SM域的C-BSR和C-RP;
l 分别在Switch A与Switch C、Switch C与Switch D之间建立MSDP对等体关系;
l 组播源Source 1向组播组225.1.1.0/30和226.1.1.0/30发送组播数据,组播源Source 2向组播组227.1.1.0/30发送组播数据;
l 通过配置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 |
(1) 配置IP地址和单播路由协议
请按照图1-8配置各接口的IP地址和掩码,具体配置过程略。
配置各交换机之间采用OSPF协议进行互连,确保PIM-SM域内部以及各PIM-SM域之间在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。
(2) 使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界
# 在Switch A上使能IP组播路由,在各接口上使能PIM-SM,并在主机侧接口Vlan-interface100上使能IGMP。
<SwitchA> system-view
[SwitchA] multicast routing-enable
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] igmp enable
[SwitchA-Vlan-interface100] pim sm
[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相似,配置过程略。
(3) 配置C-BSR和C-RP的位置
# 在Switch A上将Loopback0接口配置为C-BSR和C-RP。
[SwitchA] pim
[SwitchA-pim] c-bsr loopback 0
[SwitchA-pim] c-rp loopback 0
[SwitchA-pim] quit
Switch C和Switch D上的配置与Switch A相似,配置过程略。
(4) 配置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
(5) 配置SA消息过滤规则
# 在Switch C上配置不向Switch D转发有关(Source 1,225.1.1.0/30)的SA消息。
[SwitchC] acl number 3001
[SwitchC-acl-adv-3001] rule deny ip source 10.110.3.100 0 destination 225.1.1.0 0.0.0.3
[SwitchC-acl-adv-3001] rule permit ip source any destination any
[SwitchC-acl-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 number 2001
[SwitchD-acl-basic-2001] rule deny source 10.110.6.100 0
[SwitchD-acl-basic-2001] quit
[SwitchD] msdp
[SwitchD-msdp] import-source acl 2001
[SwitchD-msdp] quit
(6) 检验配置效果
通过使用display msdp sa-cache命令可以查看交换机上SA缓存中的(S,G)表项信息。例如:
# 查看Switch C上SA缓存中的(S,G)表项信息。
[SwitchC] display msdp sa-cache
MSDP Source-Active Cache Information of VPN-Instance: public net
MSDP Total Source-Active Cache - 8 entries
MSDP 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
MSDP Source-Active Cache Information of VPN-Instance: public net
MSDP Total Source-Active Cache - 4 entries
MSDP 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对等体,但其状态一直显示为down。
l 所配置的本地接口地址与MSDP对等体地址之间,建立起基于TCP连接的MSDP对等体关系;
l 如果本地接口地址与对端路由器上所配置的MSDP对等体地址不一致,TCP连接就不会建立起来;
l 如果两个MSDP对等体之间没有路由,TCP连接也不会建立起来。
(1) 检查各路由器之间的路由是否通达。通过命令display ip routing-table查看各路由器之间单播路由是否正确。
(2) 检查将成为MSDP对等体的两个路由器间是否存在到达对方的单播路由。
(3) 检查MSDP对等体之间的接口地址是否匹配。通过命令display current-configuration查看本地接口地址是否与对端MSDP对等体地址一致,应确保一致。
MSDP没有将(S,G)转发项通过SA消息发送出去。
l 命令import-source用于控制将本域的(S,G)表项通过SA消息发送给MSDP对等体。如果没有指定参数acl-number则表示默认过滤掉所有的(S,G)表项,即不通告本域的所有(S,G)表项;
l 未配置import-source命令时,系统将发送本域的所有(S,G)信息。如果MSDP没有将本域的(S,G)表项通过SA消息发送出去,应检查import-source命令的配置是否正确。
(1) 检查各路由器之间的路由是否通达。通过命令display ip routing-table查看各路由器之间单播路由是否正确。
(2) 检查将成为MSDP对等体的两个路由器间是否存在到达对方的单播路由。
(3) 检查命令import-source及其参数acl-number的配置情况,确保ACL规则能够过滤合适的(S,G)信息。
在Anycast RP的应用中,各RP之间没有互相交换其本地注册的(S,G)信息。
l 在Anycast RP应用中,通过将同一PIM-SM域内的RP配置为MSDP对等体,可以实现RP间的负载分担;
l MSDP对等体地址不能与Anycast RP地址相同,且C-BSR和C-RP必须配置在不同的设备或接口上;
l 在使用originating-rp命令进行配置后,MSDP将利用该命令所指定的接口地址替换SA消息中的RP地址;
l 当MSDP对等体对收到的SA消息进行RPF检查时,如果发现RP地址与本地配置的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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!