MPLS GR
MPLS GR(Graceful Restart,优雅重启)是指在LDP协议重启过程中,报文的转发表项没有发生任何改变,保证系统数据转发不间断,从而实现MPLS应用业务的高可靠性。MPLS GR主要包括LDP GR、L2VPN GR和L3VPN GR。
LDP GR指借助邻居设备的帮助,实现主备切换或发生LDP协议重启的设备转发不中断。
L2VPN GR指VPWS(Virtual Private Wire Service,虚拟专线服务)和VPLS(Virtual Private LAN Service,虚拟专用局域网服务)业务转发不中断。L3VPN GR指L3VPN业务转发不间断。当设备的控制面出现故障时,转发面仍然正常进行VPN数据转发,从而保护网络上的VPN业务不受影响。
根据GR能力,分为GR-Capable设备、GR-Aware设备和GR-Unaware设备。
GR-Capable设备
GR-Capable设备具有GR能力,通常配备双管理板,即硬件1+1冗余,能够在主从管理板切换的时候,通告周边邻居,保持转发表项,并且切换后能够重建路由表,不会产生路由振荡,报文的转发路径也不会发生任何改变,从而保证整个系统转发数据不间断。
GR-Aware设备
GR-Aware设备具有GR感知能力,可能不具备双管理板,但是能够感知到邻居发生GR并且辅助邻居完成GR过程。
GR-Unaware设备
GR-Unaware设备没有GR感知能力,无法感知到邻居设备发生GR,也不能辅助邻居设备完成GR过程。一般是指系统软件不支持GR特性或者GR特性被关闭的设备。
在设备重启过程中,根据担当角色可以划分为GR-Restarter设备和GR-Helper设备。
GR-Restarter设备
GR-Restarter设备指由管理员触发或故障触发重启的设备,必须是具备GR能力的设备,如GR-Capable设备。
GR-Helper设备
GR-Restarter的邻居,至少是GR感知设备,如GR-Capable设备或GR-Aware设备。
LDP GR与IGP(Interior Gateway Protocol,内部网关协议)GR配合可以实现普通MPLS或L2VPN的不间断转发,LDP GR与BGP GR配合可以实现L3VPN的不间断转发。对于VPWS和VPLS业务,它们除了使用MPLS基础网络业务用于建立公网隧道外,还使用扩展LDP协议分发VC标签建立虚拟线路。所以,要实现VPWS和VPLS业务转发不中断,还必须结合扩展LDP GR特性。扩展LDP GR特性与基础的LDP GR特性实现原理相同,只是备份的MPLS转发表项不同,因此本章主要介绍LDP GR的工作原理。
要建立一个具有GR能力的LDP会话,需要会话两端的设备都支持并开启LDP GR功能,否则只能建立普通的LDP会话。LDP会话建立时的主动方如果支持并开启LDP GR功能,则在Initialization消息中会携带FT Session TLV信息。
LDP会话建立时的被动方接收到携带FT Session TLV的Initialization消息,可以根据自身情况选择是否在Initialization消息携带FT Session TLV。如果自身支持并开启LDP GR功能,则在Initialization消息中也携带FT Session TLV,从而建立起一个具有GR能力的LDP会话。如果被动方在Initialization消息中不携带FT Session TLV,则会建立一个普通的、没有GR能力的LDP会话。如果被动方接收到的Initialization消息没有携带FT Session TLV,那么不管它是否在发送的Initialization消息携带FT Session TLV,建立的都将是一个普通的、没有GR能力的LDP会话。
两台支持LDP GR功能的LSR之间建立LDP会话的过程如图1-1所示。
LSR1通过在Initialization消息中携带FT Session TLV可选参数表明它支持LDP GR功能。
LSR2接收到带有FT Session TLV的Initialization消息,且自身也支持LDP GR,则同样在Initialization消息中携带FT Session TLV可选参数。
LSR1接收到LSR2的Initialization消息后,一个具有GR能力的LDP会话建立完成。
LSR1和LSR2交换地址消息和标签映射消息。
由于某种原因,LSR1设备的LDP进程发生重启。LSR1会保留所有LDP添加和维护的MPLS转发项并对这些转发项设置“陈旧的”标志,同时启动MPLS Forwarding State Holding Timer。
LSR2感知到它与LSR1之间具有GR能力的LDP会话断开,将保留与该会话相关的MPLS转发项并为转发项添加“陈旧的”标志。同时比较自身配置的Liveness Timer和收到的FT Session TLV中的FT Reconnect Timeout值的大小,以较小值启动Liveness Timer定时器,并在Liveness Timer定时器被触发前保留带有“陈旧的”标志的转发表项。
LSR1重新与LSR2建立会话时,将Initialization消息FT Session TLV中的Recovery Time设置为MPLS Forwarding State Holding Timer的剩余值。
LSR2接收到LSR1发来的带有FT Session TLV的Initialization消息,检查到其中的Recovery Time不为0,于是继续保留“陈旧的”的转发表项,并停止Liveness Timer定时器计数,同时比较自身配置的Recovery Time和收到的FT Session TLV的Recovery Time值的大小,以较小值启动Recovery Timer定时器,并在Recovery Timer定时器被触发前保留这些“陈旧的”的转发项。
LSR1和LSR2重新交换地址消息和标签映射消息,根据交换信息删除或保留MPLS转发表项的“陈旧的”标志。
GR过程结束,LSR1和LSR2删除各自带有“陈旧的”标志的MPLS转发表项。
RFC 3036:LDP Specification
RFC 3037:LDP Applicability
RFC 3215:LDP State Machine
RFC 3478:Graceful Restart Mechanism for Label Distribution Protocol
RFC 3479:Fault Tolerance for the Label Distribution Protocol (LDP)
RFC 4724:Graceful Restart Mechanism for BGP
RFC 4781:Graceful Restart Mechanism for BGP with MPLS
MPLS GR配置任务如下:
配置LDP GR
开启LDP协议的GR功能后,当设备发生协议重启或者手工进行主从切换时,可以保留MPLS转发表项,设备仍然按照原来的表项转发报文,从而保证流量转发不中断,同时保证协议重启或主从切换前后MPLS转发状态的一致性以及流量转发不中断。
LDP邻居存活时间
只有充当GR-Helper角色时,才会使用LDP邻居存活时间。
GR-Helper角色会比较自身配置的neighbor-liveness-time时间和收到的LDP会话重连时间的大小,选取较小值启动存活定时器,并在存活定时器超时前保留“陈旧的”表项。
LDP会话重连时间
在GR过程中,充当GR-Restarter和GR-Helper角色都会使用LDP会话重连时间。
对于GR-Restarter来说,LDP会话重连时间是用于保留“陈旧的”表项时间。
LDP会话恢复时间
只有充当GR-Helper角色时,才会使用LDP会话恢复时间。
GR-Helper角色会比较自身配置的recovery-time和收到的LDP会话恢复时间的大小,选取较小值来启动恢复定时器,并在恢复定时器超时前保留“陈旧的”表项。
LDP邻居存活时间为Helper等待Restarter重启并重新建立会话的时间,若Restarter重启需要较长时间,可适当增加LDP邻居存活时间。
LDP会话重连时间为Restarter保持转发表项不变更的时间。如果本设备配置的业务和MPLS表项较多,发生故障时与邻居重新建立连接需要较长的时间。为保证邻居能够等待本设备完成重启,需要调整本设备的reconnection-time以及邻居设备的LDP邻居存活时间。在典型的L3VPN场景下,该时间大约为每100个VPN业务增加1分钟。
LDP会话恢复时间为Helper和Restarter重新建立会话后,Helper协助Restarter恢复表项的时间。当MPLS表项较多,需要较长时间恢复,因此需要适当延长LDP会话恢复时间。
开启LDP协议的GR功能不会影响LDP会话,即不会造成LDP会话重启等异常。
必须重启LDP会话,新配置的LDP协议GR功能变更才会生效,之前建立的会话不受影响。
必须重启LDP会话,新配置的LDP邻居存活时间才会生效。
必须重启LDP会话,新配置的LDP会话重连时间才会生效。
必须重启LDP会话,新配置的LDP会话恢复时间才会生效。
GR过程中拓扑变更(比如删除GR前使用的LSR ID对应的IP地址、链路变更等),将可能导致GR失效引发断流。
在配置MPLS LDP协议GR之前,需完成以下任务:
配置IGP GR功能。
配置MPLS LDP会话。
在配置MPLS LDP协议GR之前,需准备以下数据:
LDP邻居存活时间。
LDP会话重连时间。
LDP会话恢复时间。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启LDP协议,并进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
开启LDP协议的GR功能。
graceful-restart
缺省情况下,设备开启LDP协议后将自动开启LDP协议的GR功能。
默认开启GR功能以支持进程重启,若无特殊要求,不应关闭LDP GR功能。
(可选)配置LDP邻居存活时间。
graceful-restart timer neighbor-liveness neighbor-liveness-time
缺省情况下,LDP邻居存活时间为120秒。
(可选)配置LDP会话重连时间。
graceful-restart timer reconnect reconnect-time
缺省情况下,LDP会话重连时间为300秒。
(可选)配置LDP会话恢复时间。
graceful-restart timer recovery recovery-time
缺省情况下,LDP会话恢复时间为120秒。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
MPLS GR监视与维护
作用 |
命令 |
---|---|
查看LDP GR会话和会话参数信息 |
show mpls ldp graceful-restart [ all | vrf vrf-name ] |
开启LDP GR调试开关 |
debug mpls ldp graceful-restart |
实现主备倒换或LDP协议重启的设备转发不中断。
PE和P设备组成MPLS网络。
PE和P设备支持LDP协议,并具有GR能力。
以PE1和P设备为例,配置PE1和P设备的LDP GR功能。其中PE1设备是GR-Capable设备,扮演GR-Restarter角色;P设备是GR-Aware设备,扮演GR-Helper角色。
配置接口IP地址和OSPF协议,实现各节点之间的互通。
开启全局和接口MPLS转发能力,配置LDP协议,使网络能够转发MPLS流量。
开启OSPF GR和LDP GR功能,配置LDP GR协议的相关参数。
重启LDP会话,使配置生效。
配置各接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip address 192.168.100.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# ip address 192.168.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface loopback 0
PE1(config-Loopback 0)# ip address 192.168.0.1 255.255.255.255
PE1(config-Loopback 0)# exit
PE1(config)# router ospf 1
PE1(config-router)# network 192.168.100.0 0.0.0.255 area 0
PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0
PE1(config-router)# network 192.168.0.1 0.0.0.0 area 0
PE1(config-router)# exit
# 设备P的配置。
P> enable
P# configure terminal
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# ip address 192.168.1.2 255.255.255.0
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# ip address 192.168.2.1 255.255.255.0
P(config-if-Gigabitethernet 0/2)# exit
P(config)# interface loopback 0
P(config-Loopback 0)# ip address 192.168.0.2 255.255.255.255
P(config-Loopback 0)# exit
P(config)# router ospf 1
P(config-router)# network 192.168.1.0 0.0.0.255 area 0
P(config-router)# network 192.168.2.0 0.0.0.255 area 0
P(config-router)# network 192.168.0.2 255.255.255.255 area 0
P(config-router)# exit
配置MPLS转发和LDP协议。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# label-switching
PE1(config-if-Gigabitethernet 0/2)# mpls ip
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# exit
# 设备P的配置。
P(config)# mpls ip
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# label-switching
P(config-if-Gigabitethernet 0/1)# mpls ip
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# label-switching
P(config-if-Gigabitethernet 0/2)# mpls ip
P(config-if-Gigabitethernet 0/2)# exit
P(config)# mpls router ldp
P(config-mpls-router)# ldp router-id interface loopback 0 force
P(config-mpls-router)# exit
开启OSPF GR和LDP GR功能,配置LDP GR协议的相关参数。
# 设备PE1的配置。
PE1(config)# router ospf 1
PE1(config-router)# graceful-restart
PE1(config-router)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# graceful-restart
PE1(config-mpls-router)# graceful-restart timer reconnect 300
PE1(config-mpls-router)# graceful-restart timer neighbor-liveness 120
PE1(config-mpls-router)# graceful-restart timer recovery 120
PE1(config-mpls-router)# end
# 设备P的配置。
P(config)# router ospf 1
P(config-router)# graceful-restart
P(config-router)# exit
P(config)# mpls router ldp
P(config-mpls-router)# graceful-restart
P(config-mpls-router)# graceful-restart timer reconnect 300
P(config-mpls-router)# graceful-restart timer neighbor-liveness 120
P(config-mpls-router)# graceful-restart timer recovery 120
P(config-mpls-router)# end
重启LDP会话,使配置生效。以PE1为例,P的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1# clear mpls ldp neighbor all *
分别在PE1和P上通过show mpls ldp graceful-restart命令查看当前具有GR能力的LDP会话,通过show mpls ldp neighbors命令查看某个会话是否有GR能力。
# 设备PE1的验证结果。
PE1# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 192.168.0.2:0, State: estab
PE1# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.2:0; Local LDP Ident: 192.168.0.1:0
TCP connection: 192.168.0.2.36659 - 192.168.0.1.646
State: OPERATIONAL; Msgs sent/recv: 103/107; UNSOLICITED
Up time: 00:20:59
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/2, Src IP addr: 192.168.1.2
Addresses bound to peer LDP Ident:
192.168.0.2 192.168.1.2
# 设备P的验证结果。
P# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 192.168.0.1:0, State: estab
P# show mpls ldp neighbor
Default VRF:
Peer LDP Ident: 192.168.0.1:0; Local LDP Ident: 192.168.0.2:0
TCP connection: 192.168.0.1.646 - 192.168.0.2.36659
State: OPERATIONAL; Msgs sent/recv: 106/105; UNSOLICITED
Up time: 00:21:02
Graceful Restart enabled; Peer reconnect time (msecs): 300000
LDP discovery sources:
Link Peer on GigabitEthernet 0/1, Src IP addr: 192.168.1.1
Addresses bound to peer LDP Ident:
192.168.0.1 192.168.1.1
PE1的配置文件
hostname PE1
!
mpls ip
!
interface GigabitEthernet 0/1
ip address 192.168.100.1 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 192.168.1.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 192.168.0.1 255.255.255.255
!
router ospf 1
graceful-restart
network 192.168.0.1 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.100.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart
!
P的配置文件
hostname P
!
mpls ip
!
interface GigabitEthernet 0/1
ip address 192.168.1.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
ip address 192.168.2.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 192.168.0.2 255.255.255.255
!
router ospf 1
graceful-restart
network 192.168.0.2 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart
!
保证VPWS和VPLS业务转发不中断。
PE和CE相连的接口工作在Access模式,即CE通过Access链路接入PE。PE为该Access口所在的VLAN建立伪线服务。由于工作在Ethernet模式,PE1和PE2间建立的伪线传送的帧不带VLAN tag 10标记。
设备CE、PE和P支持IGP协议,并具有GR能力。
设备PE和P支持LDP协议,并具有GR能力。
PE和P设备组成ISP(Internet Service Provider,网络服务提供商)网络。
PE设备是GR-Capable设备,P设备是GR-Aware设备。
L2VPN GR配置组网图(交换机)
配置接口IP地址和OSPF协议,实现各节点之间的互通。
开启全局MPLS和接口MPLS转发能力,配置LDP协议,使网络能够转发MPLS流量。
配置VPWS。
开启OSPF GR和LDP GR协议,配置LDP GR协议的相关参数。
重启LDP会话,使之配置生效。
配置各接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip address 20.20.20.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# interface loopback 0
PE1(config-Loopback 0)# ip address 10.10.10.1 255.255.255.255
PE1(config-Loopback 0)# exit
PE1(config)# router ospf 10
PE1(config-router)# network 20.20.20.0 0.0.0.255 area 0
PE1(config-router)# network 10.10.10.1 0.0.0.0 area 0
PE1(config-router)# exit
# 设备P的配置。
P> enable
P# configure terminal
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# ip address 20.20.20.2 255.255.255.0
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# ip address 30.30.30.1 255.255.255.0
P(config-if-Gigabitethernet 0/2)# exit
P(config)# interface loopback 0
P(config-Loopback 0)# ip address 10.10.10.1 255.255.255.255
P(config-Loopback 0)# exit
P(config)# router ospf 10
P(config-router)# network 20.20.20.0 0.0.0.255 area 0
P(config-router)# network 30.30.30.0 0.0.0.255 area 0
P(config-router)# network 10.10.10.2 0.0.0.0 area 0
P(config-router)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 30.30.30.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 10.10.10.3 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 10
PE2(config-router)# network 30.30.30.0 0.0.0.255 area 0
PE2(config-router)# network 10.10.10.3 0.0.0.0 area 0
PE2(config-router)# exit
配置MPLS转发和LDP协议。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# label-switching
PE1(config-if-Gigabitethernet 0/1)# mpls ip
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# neighbor 10.10.10.3
PE1(config-mpls-router)# exit
# 设备P的配置。
P(config)# mpls ip
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# label-switching
P(config-if-Gigabitethernet 0/1)# mpls ip
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# label-switching
P(config-if-Gigabitethernet 0/2)# mpls ip
P(config-if-Gigabitethernet 0/2)# exit
P(config)# mpls router ldp
P(config-mpls-router)# ldp router-id interface loopback 0 force
P(config-mpls-router)# exit
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# label-switching
PE2(config-if-Gigabitethernet 0/1)# mpls ip
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# neighbor 10.10.10.1
PE2(config-mpls-router)# exit
配置VPWS。
# 设备PE1的配置。
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# switchport mode access
PE1(config-if-Gigabitethernet 0/2)# switchport access vlan 10
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface vlan 10
PE1(config-if-VLAN 10)# xconnect 10.10.10.3 2 encapsulation mpls ethernet
PE1(config-if-VLAN 10)# exit
# 设备PE2的配置。
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# switchport mode access
PE2(config-if-Gigabitethernet 0/2)# switchport access vlan 10
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config-if-VLAN 10)# interface vlan 10
PE2(config-if-VLAN 10)# xconnect 10.10.10.1 2 encapsulation mpls ethernet
PE2(config-if-VLAN 10)# exit
开启OSPF GR和LDP GR协议,配置LDP GR协议的相关参数。
# 设备PE1的配置。
PE1(config)# router ospf 10
PE1(config-router)# graceful-restart
PE1(config)# mpls router ldp
PE1(config-mpls-router)# graceful-restart
PE1(config-mpls-router)# graceful-restart timer reconnect 300
PE1(config-mpls-router)# graceful-restart timer neighbor-liveness 120
PE1(config-mpls-router)# graceful-restart timer recovery 120
PE1(config-mpls-router)# end
# 设备P的配置。
P(config)# router ospf 10
P(config-router)# graceful-restart
P(config-router)# exit
P(config)# mpls router ldp
P(config-mpls-router)# graceful-restart
P(config-mpls-router)# graceful-restart timer reconnect 300
P(config-mpls-router)# graceful-restart timer neighbor-liveness 120
P(config-mpls-router)# graceful-restart timer recovery 120
P(config-mpls-router)# end
# 设备PE2的配置。
PE2(config)# router ospf 10
PE2(config-router)# graceful-restart
PE2(config-router)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# graceful-restart
PE2(config-mpls-router)# graceful-restart timer reconnect 300
PE2(config-mpls-router)# graceful-restart timer neighbor-liveness 120
PE2(config-mpls-router)# graceful-restart timer recovery 120
PE2(config-mpls-router)# end
重启LDP会话,使配置生效。以PE1为例,P和PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1# clear mpls ldp neighbor all
使用show mpls ldp graceful-restart命令可以查看具有GR能力的LDP会话信息。
# 设备PE1的验证结果。
PE1# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 10.10.10.2:0, State: estab
Peer LDP Ident: 10.10.10.3:0, State: estab
# 设备P的验证结果。
P# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 10.10.10.1:0, State: estab
Peer LDP Ident: 10.10.10.3:0, State: estab
# 设备PE2的验证结果。
PE2# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 10.10.10.2:0, State: estab
Peer LDP Ident: 10.10.10.1:0, State: estab
PE1的配置文件
hostname PE1
!
mpls ip
!
vlan 10
!
interface GigabitEthernet 0/1
no switchport
ip address 20.20.20.1 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
switchport access vlan 10
!
interface Loopback 0
ip address 10.10.10.1 255.255.255.255
!
interface VLAN 10
xconnect 10.10.10.3 2 encapsulation mpls ethernet
!
router ospf 10
graceful-restart
network 10.10.10.1 0.0.0.0 area 0
network 20.20.20.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 10.10.10.3
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
P的配置文件
hostname P
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 20.20.20.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip address 30.30.30.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 10.10.10.2 255.255.255.0
!
router ospf 10
graceful-restart
network 10.10.10.2 0.0.0.0 area 0
network 20.20.20.0 0.0.0.255 area 0
network 30.30.30.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
PE2的配置文件
hostname PE2
!
mpls ip
!
vlan 10
!
interface GigabitEthernet 0/1
no switchport
ip address 30.30.30.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
switchport access vlan 10
!
interface Loopback 0
ip address 10.10.10.3 255.255.255.255
!
interface VLAN 10
xconnect 10.10.10.1 2 encapsulation mpls ethernet
!
router ospf 10
graceful-restart
network 10.10.10.3 0.0.0.0 area 0
network 30.30.30.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 10.10.10.1
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
保证VPWS和VPLS业务转发不中断。
PE和CE相连的接口工作在Access模式,即CE通过Access链路接入PE。PE为该Access口所在的VLAN建立伪线服务。由于工作在Ethernet模式,PE1和PE2间建立的伪线传送的帧不带VLAN tag 10标记。
设备CE、PE和P支持IGP协议,并具有GR能力。
设备PE和P支持LDP协议,并具有GR能力。
PE和P设备组成ISP网络。
PE设备是GR-Capable设备,P设备是GR-Aware设备。
L2VPN GR配置组网图(路由器)
配置接口IP地址和OSPF协议,实现各节点之间的互通。
开启全局和接口的MPLS转发能力,配置LDP协议,使网络能够转发MPLS流量。
配置LDP协议,使网络能够转发MPLS流量。
配置VPWS。
开启LDP GR协议,配置LDP GR协议的相关参数。
重启LDP会话,使之配置生效。
配置接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip address 20.20.20.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# interface loopback 0
PE1(config-Loopback 0)# ip address 10.10.10.1 255.255.255.255
PE1(config-Loopback 0)# exit
PE1(config)# router ospf 10
PE1(config-router)# network 20.20.20.0 0.0.0.255 area 0
PE1(config-router)# network 10.10.10.1 0.0.0.0 area 0
# 设备P的配置。
P> enable
P# configure terminal
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# ip address 20.20.20.2 255.255.255.0
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# ip address 30.30.30.1 255.255.255.0
P(config-if-Gigabitethernet 0/2)# exit
P(config)# interface loopback 0
P(config-Loopback 0)# ip address 10.10.10.1 255.255.255.255
P(config-Loopback 0)# exit
P(config)# router ospf 10
P(config-router)# network 20.20.20.0 0.0.0.255 area 0
P(config-router)# network 30.30.30.0 0.0.0.255 area 0
P(config-router)# network 10.10.10.2 0.0.0.0 area 0
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 30.30.30.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 10.10.10.3 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 10
PE2(config-router)# network 30.30.30.0 0.0.0.255 area 0
PE2(config-router)# network 10.10.10.3 0.0.0.0 area 0
PE2(config-router)# exit
开启全局和接口MPLS转发能力、配置LDP协议,使网络能够转发MPLS流量。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# label-switching
PE1(config-if-Gigabitethernet 0/1)# mpls ip
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# neighbor 10.10.10.3
# 设备P的配置。
P> enable
P# configure terminal
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# ip address 20.20.20.2 255.255.255.0
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# ip address 30.30.30.1 255.255.255.0
P(config-if-Gigabitethernet 0/2)# exit
P(config)# interface loopback 0
P(config-Loopback 0)# ip address 10.10.10.1 255.255.255.255
P(config-Loopback 0)# exit
P(config)# router ospf 10
P(config-router)# network 20.20.20.0 0.0.0.255 area 0
P(config-router)# network 30.30.30.0 0.0.0.255 area 0
P(config-router)# network 10.10.10.2 0.0.0.0 area 0
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 30.30.30.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 10.10.10.3 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 10
PE2(config-router)# network 30.30.30.0 0.0.0.255 area 0
PE2(config-router)# network 10.10.10.3 0.0.0.0 area 0
配置VPWS。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# xconnect 10.10.10.3 2 encapsulation mpls ethernet
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# xconnect 10.10.10.1 2 encapsulation mpls ethernet
PE2(config-if-Gigabitethernet 0/2)# exit
开启OSPF GR和LDP GR功能,配置LDP GR协议的相关参数。以PE1为例,P和PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# router ospf 10
PE1(config-router)# graceful-restart
PE1(config-router)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# graceful-restart
PE1(config-mpls-router)# graceful-restart timer reconnect 300
PE1(config-mpls-router)# graceful-restart timer neighbor-liveness 120
PE1(config-mpls-router)# graceful-restart timer recovery 120
重启LDP会话,使配置生效。以PE1为例,P和PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1> enable
PE1# clear mpls ldp neighbor all
使用show mpls ldp graceful-restart命令可以查看当前哪些会话有GR能力。
# 设备PE1的验证结果。
PE1# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 10.10.10.2:0, State: estab
Peer LDP Ident: 10.10.10.3:0, State: estab
# 设备P的验证结果。
P# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 10.10.10.1:0, State: estab
Peer LDP Ident: 10.10.10.3:0, State: estab
# 设备PE2的验证结果。
PE2# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 10.10.10.2:0, State: estab
Peer LDP Ident: 10.10.10.1:0, State: estab
PE1的配置文件
hostname PE1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 20.20.20.1 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
xconnect 10.10.10.3 2 encapsulation mpls ethernet
!
interface Loopback 0
ip address 10.10.10.1 255.255.255.255
!
router ospf 10
graceful-restart
network 10.10.10.1 0.0.0.0 area 0
network 20.20.20.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 10.10.10.3
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
P的配置文件
hostname P
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 20.20.20.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip address 30.30.30.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 10.10.10.2 255.255.255.0
!
router ospf 10
graceful-restart
network 10.10.10.2 0.0.0.0 area 0
network 20.20.20.0 0.0.0.255 area 0
network 30.30.30.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
PE2的配置文件
hostname PE2
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 30.30.30.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
xconnect 10.10.10.1 2 encapsulation mpls ethernet
!
interface Loopback 0
ip address 10.10.10.3 255.255.255.255
!
router ospf 10
graceful-restart
network 10.10.10.3 0.0.0.0 area 0
network 30.30.30.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
neighbor 10.10.10.1
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
实现L3VPN业务的不间断转发。当设备的控制面出现故障时,VPN业务的数据转发仍然正常执行,从而保护网络上VPN业务不受影响。
CE设备代表客户网络,运行IGP或者EBGP协议。
PE和P设备组成ISP网络,运行IGP协议。
PE1、P和PE2通过LDP协议建立公网隧道,建立LSP路径。
PE1和PE2通过IBGP协议建立私网隧道。
IGP协议、BGP协议和LDP协议具备GR能力。
PE设备是GR-Capable设备,P设备是GR-Aware设备。
L3VPN GR配置组网图
在MPLS骨干网各节点上配置接口IP地址和OSPF协议,实现各节点之间的互通。
开启全局和接口MPLS转发能力,配置LDP协议,使网络能够转发MPLS流量。
在PE1、PE2上配置VPN路由实例,将CE1、CE2分别接入PE1、PE2。
PE1、PE2和PE1、PE3之间配置MP-IBGP邻居,并配置传递VPN路由信息。
开启OSPF GR、LDP GR和BGP GR协议,配置LDP GR协议的相关参数。重启LDP会话,使之配置生效。
在MPLS骨干网各节点上配置接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# ip address 192.168.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface loopback 0
PE1(config-Loopback 0)# ip address 192.168.0.1 255.255.255.255
PE1(config-Loopback 0)# exit
PE1(config)# router ospf 10
PE1(config-router)# network 192.168.0.1 0.0.0.0 area 0
PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0
PE1(config-router)# exit
# 设备P的配置。
P> enable
P# configure terminal
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# ip address 192.168.1.2 255.255.255.0
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# ip address 192.168.2.1 255.255.255.0
P(config-if-Gigabitethernet 0/2)# exit
P(config)# interface loopback 0
P(config-Loopback 0)# ip address 192.168.0.2 255.255.255.255
P(config-Loopback 0)# exit
P(config)# router ospf 10
P(config-router)# network 192.168.1.0 0.0.0.255 area 0
P(config-router)# network 192.168.2.0 0.0.0.255 area 0
P(config-router)# network 192.168.0.2 0.0.0.0 area 0
P(config-router)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 192.168.2.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 192.168.0.3 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 10
PE2(config-router)# network 192.168.0.3 0.0.0.0 area 0
PE2(config-router)# network 192.168.2.0 0.0.0.255 area 0
PE2(config-router)# exit
开启全局和接口MPLS转发能力,配置LDP协议,使网络能够转发MPLS流量。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# label-switching
PE1(config-if-Gigabitethernet 0/2)# mpls ip
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# exit
# 设备P的配置。
P(config)# mpls ip
P(config)# interface gigabitethernet 0/1
P(config-if-Gigabitethernet 0/1)# label-switching
P(config-if-Gigabitethernet 0/1)# mpls ip
P(config-if-Gigabitethernet 0/1)# exit
P(config)# interface gigabitethernet 0/2
P(config-if-Gigabitethernet 0/2)# label-switching
P(config-if-Gigabitethernet 0/2)# mpls ip
P(config-if-Gigabitethernet 0/2)# exit
P(config)# mpls router ldp
P(config-mpls-router)# ldp router-id interface loopback 0 force
P(config-mpls-router)# exit
# 设备PE2的配置。
PE2(config)#mpls ip
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# label-switching
PE2(config-if-Gigabitethernet 0/1)# mpls ip
Router(config-if-Gigabitethernet 0/1)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# exit
在PE1和PE2上配置VPN路由实例,将CE1和CE2分别接入PE1和PE2。
# 设备PE1的配置。
PE1(config)# ip vrf 10
PE1(config-vrf)# rd 1:100
PE1(config-vrf)# route-target both 1:100
PE1(config-vrf)# exit
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip vrf forwarding 10
PE1(config-if-Gigabitethernet 0/1)# ip address 192.168.100.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# ip vrf 10
PE2(config-vrf)# rd 1:100
PE2(config-vrf)# route-target both 1:100
PE2(config-vrf)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# ip vrf forwarding 10
PE2(config-if-Gigabitethernet 0/2)# ip address 192.168.200.1 255.255.255.0
PE2(config-if-Gigabitethernet 0/2)# exit
在PE1和PE2之间配置MP-IBGP邻居,并配置传递VPN路由信息。
# 设备PE1的配置。
PE1(config)# router bgp 200
PE1(config-router)# address-family ipv4 vrf 10
PE1(config-router-af)# neighbor 192.168.100.2 remote-as 100
PE1(config-router-af)# neighbor 192.168.100.2 update-source Gigabitethernet 0/1
PE1(config-router-af)# neighbor 192.168.100.2 activate
PE1(config-router-af)# exit-address-family
PE1(config-router)# address-family ipv4
PE1(config-router-af)# neighbor 192.168.0.3 remote-as 200
PE1(config-router-af)# neighbor 192.168.0.3 update-source loopback 0
PE1(config-router-af)# neighbor 192.168.0.3 activate
PE1(config-router-af)# exit-address-family
PE1(config-router)# address-family vpnv4 unicast
PE1(config-router-af)# neighbor 192.168.0.3 activate
PE1(config-router-af)# exit-address-family
PE1(config-router-af)# exit
# 设备PE2的配置。
PE2(config)# router bgp 200
PE2(config-router)# address-family ipv4 vrf 10
PE2(config-router-af)# neighbor 192.168.200.2 remote-as 300
PE2(config-router-af)# neighbor 192.168.200.2 update-source Gigabitethernet 0/2
PE2(config-router-af)# neighbor 192.168.200.2 activate
PE2(config-router-af)# exit-address-family
PE2(config-router)# address-family ipv4
PE2(config-router-af)# neighbor 192.168.0.1 remote-as 200
PE2(config-router-af)# neighbor 192.168.0.1 update-source loopback 0
PE2(config-router-af)# neighbor 192.168.0.1 activate
PE2(config-router-af)# exit-address-family
PE2(config-router)# address-family vpnv4 unicast
PE2(config-router-af)# neighbor 192.168.0.1 activate
PE2(config-router-af)# exit-address-family
PE2(config-router-af)# exit
开启OSPF GR、LDP GR和BGP GR协议,配置LDP GR协议的相关参数。
# 设备PE1的配置。
PE1(config)# router ospf 10
PE1(config-router)# graceful-restart
PE1(config-router)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# graceful-restart
PE1(config-mpls-router)# graceful-restart timer reconnect 300
PE1(config-mpls-router)# graceful-restart timer neighbor-liveness 120
PE1(config-mpls-router)# graceful-restart timer recovery 120
PE1(config-mpls-router)# exit
PE1(config)# router bgp 200
PE1(config-router)# bgp graceful-restart
PE1(config-router)# end
# 设备P的配置。
P(config)# router ospf 10
P(config-router)# graceful-restart
P(config-router)# exit
P(config)# mpls router ldp
P(config-mpls-router)# graceful-restart
P(config-mpls-router)# graceful-restart timer reconnect 300
P(config-mpls-router)# graceful-restart timer neighbor-liveness 120
P(config-mpls-router)# graceful-restart timer recovery 120
P(config-mpls-router)# end
# 设备PE2的配置。
PE2(config)# router ospf 10
PE2(config-router)# graceful-restart
PE2(config-router)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# graceful-restart
PE2(config-mpls-router)# graceful-restart timer reconnect 300
PE2(config-mpls-router)# graceful-restart timer neighbor-liveness 120
PE2(config-mpls-router)# graceful-restart timer recovery 120
PE2(config-mpls-router)# exit
PE2(config)# router bgp 200
PE2(config-router)# bgp graceful-restart
PE2(config-router)# end
重启LDP会话,使之配置生效。以PE1为例,P和PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1# clear mpls ldp neighbor all
分别在PE1、P和PE2上通过show mpls ldp graceful-restart命令查看当前具有GR能力的LDP会话,通过show bgp vpnv4 unicast all neighbor命令查看BGP邻居状态。
# 设备PE1的验证结果。
PE1# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 192.168.0.2:0, State: estab
PE1# show bgp vpnv4 unicast all neighbor
BGP neighbor is 192.168.0.3, remote AS 200, internal link
BGP version 4, remote router ID 192.168.0.3
BGP state = Established, up for 02:49:47
Last read 00:00:47, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received(new)
Address family VPNv4 Unicast: advertised and received
Graceful Restart Capabilty: advertised and received
Remote Restart timer is 120 seconds
Address families preserved by peer:
VPNv4 Unicast
# 设备P的验证结果。
P# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 192.168.0.1:0, State: estab
Peer LDP Ident: 192.168.0.3:0, State: estab
# 设备PE2的验证结果。
PE2# show mpls ldp graceful-restart
Default VRF:
LDP Graceful Restart is enabled
Neighbor Liveness Timer: 120 seconds
Max Recovery Time: 120 seconds
Forwarding State Holding Time: 300 seconds
Down Neighbor Database (0 records):
Graceful Restart-enabled Sessions:
Peer LDP Ident: 192.168.0.2:0, State: estab
PE2# show bgp vpnv4 unicast all neighbor
BGP neighbor is 192.168.0.1, remote AS 200, internal link
BGP version 4, remote router ID 192.168.0.1
BGP state = Established, up for 02:49:47
Last read 00:00:47, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received(new)
Address family VPNv4 Unicast: advertised and received
Graceful Restart Capabilty: advertised and received
Remote Restart timer is 120 seconds
Address families preserved by peer:
VPNv4 Unicast
PE1的配置文件
hostname PE1
!
ip vrf 10
rd 1:100
route-target both 1:100
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip vrf forwarding 10
ip address 192.168.100.1 255.255.255.0
!
interface GigabitEthernet 0/2
ip address 192.168.1.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 192.168.0.1 255.255.255.255
!
router bgp 200
bgp log-neighbor-changes
bgp graceful-restart
neighbor 192.168.0.3 remote-as 200
neighbor 192.168.0.3 update-source Loopback 0
address-family ipv4
neighbor 192.168.0.3 activate
exit-address-family
address-family vpnv4 unicast
neighbor 192.168.0.3 activate
neighbor 192.168.0.3 send-community extended
exit-address-family
!
address-family ipv4 vrf 10
neighbor 192.168.100.2 remote-as 100
neighbor 192.168.100.2 update-source GigabitEthernet 0/1
neighbor 192.168.100.2 activate
exit-address-family
!
router ospf 10
graceful-restart
network 192.168.0.1 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
P的配置文件
hostname P
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.1.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip address 192.168.2.1 255.255.255.0
mpls ip
label-switching
!
interface Loopback 0
ip address 192.168.0.2 255.255.255.255
!
router ospf 10
graceful-restart
network 192.168.0.2 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
PE2的配置文件
hostname PE2
!
ip vrf 10
rd 1:100
route-target both 1:100
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.2.2 255.255.255.0
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip vrf forwarding 10
ip address 192.168.200.1 255.255.255.0
!
interface Loopback 0
ip address 192.168.0.3 255.255.255.255
!
router bgp 200
bgp log-neighbor-changes
bgp graceful-restart
neighbor 192.168.0.1 remote-as 200
neighbor 192.168.0.1 update-source Loopback 0
address-family ipv4
neighbor 192.168.0.1 activate
exit-address-family
address-family vpnv4 unicast
neighbor 192.168.0.1 activate
neighbor 192.168.0.1 send-community extended
exit-address-family
!
address-family ipv4 vrf 10
neighbor 192.168.200.2 remote-as 300
neighbor 192.168.200.2 update-source GigabitEthernet 0/2
neighbor 192.168.200.2 activate
exit-address-family
!
router ospf 10
graceful-restart
network 192.168.0.3 0.0.0.0 area 0
network 192.168.2.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
graceful-restart timer reconnect 300
graceful-restart timer recovery 120
graceful-restart timer neighbor-liveness 120
graceful-restart
!
CE1的配置文件
hostname CE1
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.100.2 255.255.255.0
!
interface Loopback 0
ip address 1.1.1.1 255.255.255.255
!
router bgp 100
neighbor 192.168.100.1 remote-as 1
address-family ipv4
network 1.1.1.1 mask 255.255.255.255
neighbor 192.168.100.1 activate
exit-address-family
!
CE2的配置文件
hostname CE2
!
interface GigabitEthernet 0/1
no switchport
ip address 192.168.200.2 255.255.255.0
!
interface Loopback 0
ip address 2.2.2.2 255.255.255.255
!
router bgp 100
neighbor 192.168.200.1 remote-as 1
address-family ipv4
network 2.2.2.2 mask 255.255.255.255
neighbor 192.168.100.1 activate
exit-address-family
!
基础MPLS、L2VPN或L3VPN环境未搭建完整,导致转发不通。
Restarter配置GR功能,但相邻的Helper未配置GR功能。
未配置IGP或BGP的GR功能。
当路由表项较多,但设备配置的LDP GR定时器时间较短,导致GR结束时仍有部分表项未恢复。
GR过程中拓扑或配置变更,导致断流。
MPLS转发表项由IP路由驱动建立,如果一个FEC(Forwarding Equivalence Class,转发等价类)存在多个等价下一跳的话,那么MPLS信令协议也同样可以为该FEC建立多个等价下一跳,FEC的流量可以在这些等价路径上进行转发。MPLS ECMP(Equal-Cost Multi-Path,等价多路径)功能将同一个FEC的MPLS转发表项映射到多个NHLFE(Next Hop Label Forwarding Entry,下一跳标签转发入口),每个下一跳对应一个NHLFE,FEC对应的报文可以在这些等价链路上进行转发,从而实现负载均衡。
部署负载均衡可以带来如下好处:
能够在现有MPLS网络不更新设备硬件的前提下增加带宽。
能够增加MPLS网络链路的保护。将流量均衡到多条链路上,当负载均衡链路中的一条链路出现故障后,流量可以从其它链路继续转发,从而提高链路的可靠性。
能够使去往相同目的地址的MPLS流量在多条LSP路径上均衡,充分利用网络资源。
逐流方式负载均衡下,路由设备会对接收到的报文的某些字段进行查看,将同一类型的报文映射到相同的下一跳链路上。如图2-1所示,现在有四个待转发报文,都去往同一目的网络,报文1、报文4具有相同的类型,报文2、报文3具有相同的报文类型,通过对标识报文类型的字段分类后,报文1、报文4被转发到链路1上,报文2、报文3被转发到链路2上。
逐流方式负载均衡采用如下方式进行哈希(Hash):
普通MPLS流量
如果MPLS标签栈后面是IPv4头部,使用目的IP地址和源IP地址进行Hash选择下一跳进行转发。如果标签栈后不是IPv4头,使用最内层标签进行Hash选择下一跳进行转发;否则不进行Hash,通过第一个有效下一跳进行转发。
VPWS流量
使用伪线标签进行Hash。
VPLS流量
使用目的MAC地址和源MAC地址进行Hash。
L3VPN流量
使用目的IP地址和源IP地址进行Hash。
对于同一目的网络,路由协议(如OSPF、BGP等)可能会发现几条不同的路由,如果该路由协议在所有活跃的路由协议中优先级最高,那么这几条不同的路由都被看作当前有效的路由。在转发去往该目的地的报文时,可以通过不同的路径发送,从而实现网络的负载分担。
在MPLS网络上进行负载均衡的报文的出站标签可以相同也可以不同。如果负载均衡的链路在同一对设备之间,且该链路都是基于每台设备的标签空间,则对应的出站标签是相同的。对于存在多个下一跳LSR的情况,由于下一跳LSR均为独立分配标签,因此负载分担的每一条路径对应的出站标签可能是不同的。
RFC 2992:Analysis of an Equal-Cost Multi-Path Algorithm
RFC 4928:Avoiding Equal Cost Multipath Treatment in MPLS Networks
MPLS ECMP配置任务如下:
配置MPLS ECMP
MPLS ECMP主要应用于以下几种场景中:
存在多条等价公网LSP。
L2VPN站点间存在多条等价转发路径。
L3VPN站点间存在多个等价接入PE,每个PE的流量都可以依赖于多条等价LSP转发。
受FIB表容量的限制,当存在大量等价路由时,只对主机路由建立等价LSP可以有效节约FIB空间。
形成等价LSP的每个出接口上都必须开启MPLS转发功能。
配置LDP ECMP之前,需要全网开启MPLS功能。
配置L2VPN ECMP之前,除了要全网开启MPLS功能之外,还要开启L2VPN功能。
配置L3VPN ECMP之前,除了要全网开启MPLS功能之外,还要配置BGP邻居并开启等价多路径功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启LDP协议,并进入config-mpls-router配置模式。
mpls router ldp [ vrf-name ]
配置为所有路由生成等价LSP。
ldp-ecmp for all-fec
缺省情况下,只为主机路由生成等价LSP。
启动BGP协议,进入BGP配置模式。
router bgp as-number
进入到相应的地址族配置模式。
(IPv4网络)
address-family ipv4 vrf vrf-name
(IPv6网络)
address-family ipv6 vrf vrf-name
配置BGP等价路径数。
maximum-paths { ebgp | ibgp } maximum-path-number
maximum-path-number为等价下一跳的个数,取值范围最小值为1,最大值依赖于设备的能力,缺省值为1。值越大,允许的等价路径下一跳数目就越多。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
MPLS ECMP监视与维护
作用 |
命令 |
---|---|
调试MPLS相关的路由处理过程 |
debug mpls fec ipv4-address/mask-length |
实现LDP ECMP的负载均衡。
LDP ECMP配置组网图
在各节点配置接口IP地址和OSPF协议。
在各节点开启全局和接口MPLS转发,配置LDP协议。
PE1和PE2上配置为所有路由生成等价LSP。
配置各接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备R1的配置。
R1> enable
R1# configure terminal
R1(config)# interface gigabitethernet 0/1
R1(config-if-Gigabitethernet 0/1)# ip address 10.1.1.1 255.255.255.0
R1(config-if-Gigabitethernet 0/1)# exit
R1(config)# interface loopback 0
R1(config-Loopback 0)# ip address 1.1.1.1 255.255.255.255
R1(config-Loopback 0)# exit
R1(config)# router ospf 1
R1(config-router)# network 10.1.1.0 0.0.0.255 area 0
R1(config-router)# network 1.1.1.1 0.0.0.0 area 0
R1(config-router)# exit
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip address 10.1.1.2 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# ip address 20.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/3
PE1(config-if-Gigabitethernet 0/3)# ip address 30.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/3)# exit
PE1(config)#interface loopback 0
PE1(config-Loopback 0)#ip address 2.2.2.2 255.255.255.255
PE1(config-Loopback 0)#exit
PE1(config)# router ospf 1
PE1(config-router)# network 10.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 20.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 30.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 2.2.2.2 0.0.0.0 area 0
PE1(config-router)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# ip address 20.1.1.2 255.255.255.0
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# ip address 40.1.1.1 255.255.255.0
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# interface loopback 0
P1(config-Loopback 0)# ip address 3.3.3.3 255.255.255.255
P1(config-Loopback 0)# exit
P1(config)# router ospf 1
P1(config-router)# network 20.1.1.0 0.0.0.255 area 0
P1(config-router)# network 40.1.1.0 0.0.0.255 area 0
P1(config-router)# network 3.3.3.3 0.0.0.0 area 0
P1(config-router)# exit
# 设备P2的配置。
P2> enable
P2# configure terminal
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# ip address 30.1.1.2 255.255.255.0
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# ip address 50.1.1.1 255.255.255.0
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# interface loopback 0
P2(config-Loopback 0)# ip address 4.4.4.4 255.255.255.255
P2(config-Loopback 0)# exit
P2(config)# router ospf 1
P2(config-router)# network 30.1.1.0 0.0.0.255 area 0
P2(config-router)# network 50.1.1.0 0.0.0.255 area 0
P2(config-router)# network 4.4.4.4 0.0.0.0 area 0
P2(config-router)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 40.1.1.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# ip address 50.1.1.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 5.5.5.5 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 1
PE2(config-router)# network 40.1.1.0 0.0.0.255 area 0
PE2(config-router)# network 50.1.1.0 0.0.0.255 area 0
PE2(config-router)# network 5.5.5.5 0.0.0.0 area 0
PE2(config-router)# exit
配置MPLS转发和LDP协议。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# label-switching
PE1(config-if-Gigabitethernet 0/1)# mpls ip
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# label-switching
PE1(config-if-Gigabitethernet 0/2)# mpls ip
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/3
PE1(config-if-Gigabitethernet 0/3)# label-switching
PE1(config-if-Gigabitethernet 0/3)# mpls ip
PE1(config-if-Gigabitethernet 0/3)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# exit
# 设备P1的配置。
P1(config)# mpls ip
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# label-switching
P1(config-if-Gigabitethernet 0/1)# mpls ip
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# label-switching
P1(config-if-Gigabitethernet 0/2)# mpls ip
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# mpls router ldp
P1(config-mpls-router)# ldp router-id interface loopback 0 force
P1(config-mpls-router)# exit
# 设备P2的配置。
P2(config)# mpls ip
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# label-switching
P2(config-if-Gigabitethernet 0/1)# mpls ip
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# label-switching
P2(config-if-Gigabitethernet 0/2)# mpls ip
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# mpls router ldp
P2(config-mpls-router)# ldp router-id interface loopback 0 force
P2(config-mpls-router)# exit
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# label-switching
PE2(config-if-Gigabitethernet 0/1)# mpls ip
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# label-switching
PE2(config-if-Gigabitethernet 0/2)# mpls ip
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# exit
PE1和PE2上配置为所有路由生成等价LSP。以PE1为例,PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp-ecmp for all-fec
PE1(config-mpls-router)# exit
在PE1上通过show mpls forwarding-table命令能够查看到成功建立等价LSP。
PE1# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP—-SWAP topmost label and push new label
DP—-DROP packet
PC—-POP label and continue lookup( IP or Label )
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
Local Outgoing OP FEC Outgoing Next Hop
label label interface
-- 1024 PH 5.5.5.5/32 Gi0/2 20.1.1.2
-- 1024 PH 5.5.5.5/32 Gi0/3 30.1.1.2
……
R1的配置文件
hostname R1
!
interface GigabitEthernet 0/1
no switchport
ip address 10.1.1.1 255.255.255.0
!
interface Loopback 0
ip address 1.1.1.1 255.255.255.255
!
router ospf 1
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 10.1.1.0 0.0.0.255 area 0
!
PE1的配置文件
hostname PE1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 10.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 20.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/3
no switchport
ip address 30.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 2.2.2.2 255.255.255.0
!
router ospf 1
router-id 2.2.2.2
network 2.2.2.0 0.0.0.255 area 0
network 10.1.1.0 0.0.0.255 area 0
network 20.1.1.0 0.0.0.255 area 0
network 30.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
ldp-ecmp for all-fec
!
P1的配置文件
hostname P1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 20.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 40.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 3.3.3.3 255.255.255.255
!
router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 20.1.1.0 0.0.0.255 area 0
network 40.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
PE2的配置文件
hostname PE2
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 40.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 50.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 5.5.5.5 255.255.255.255
!
router ospf 1
router-id 5.5.5.5
network 5.5.5.5 0.0.0.0 area 0
network 40.1.1.0 0.0.0.255 area 0
network 50.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
ldp-ecmp for all-fec
!
P2的配置文件
hostname P2
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 30.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 50.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 4.4.4.4 255.255.255.0
!
router ospf 1
router-id 4.4.4.4
network 4.4.4.4 0.0.0.0 area 0
network 30.1.1.0 0.0.0.255 area 0
network 50.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0 force
!
实现L2VPN ECMP的负载均衡。
L2VPN ECMP配置组网图
在各节点配置接口IP地址和OSPF协议,实现各节点之间的互通。
在各节点开启全局MPLS转发能力,开启接口转发MPLS标签报文能力以及开启接口LDP功能。
PE1和PE2上配置MARTINI VPWS。
PE1和PE2上配置为所有路由生成等价LSP。
在各节点配置接口IP地址和OSPF协议,实现各节点之间的互通
# 设备CE1的配置。
CE1> enable
CE1# configure terminal
CE1(config)# interface gigabitethernet 0/1
CE1(config-if-Gigabitethernet 0/1)# ip address 10.1.1.1 255.255.255.0
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# ip address 20.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/3
PE1(config-if-Gigabitethernet 0/3)# ip address 30.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/3)# exit
PE1(config)# interface loopback 0
PE1(config-Loopback 0)# ip address 2.2.2.2 255.255.255.255
PE1(config-Loopback 0)# exit
PE1(config)# router ospf 1
PE1(config-router)# network 20.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 30.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 2.2.2.2 0.0.0.0 area 0
PE1(config-router)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# ip address 20.1.1.2 255.255.255.0
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# ip address 40.1.1.1 255.255.255.0
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# interface loopback 0
P1(config-Loopback 0)# ip address 3.3.3.3 255.255.255.255
P1(config-Loopback 0)# exit
P1(config)# router ospf 1
P1(config-router)# network 20.1.1.0 0.0.0.255 area 0
P1(config-router)# network 40.1.1.0 0.0.0.255 area 0
P1(config-router)# network 3.3.3.3 0.0.0.0 area 0
P1(config-router)# exit
# 设备P2的配置。
P2> enable
P2# configure terminal
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# ip address 30.1.1.2 255.255.255.0
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# ip address 50.1.1.1 255.255.255.0
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# interface loopback 0
P2(config-Loopback 0)# ip address 4.4.4.4 255.255.255.255
P2(config-Loopback 0)#exit
P2(config)# router ospf 1
P2(config-router)# network 30.1.1.0 0.0.0.255 area 0
P2(config-router)# network 50.1.1.0 0.0.0.255 area 0
P2(config-router)# network 4.4.4.4 0.0.0.0 area 0
P2(config-router)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 40.1.1.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# ip address 50.1.1.1 255.255.255.0
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 5.5.5.5 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 1
PE2(config-router)# network 40.1.1.0 0.0.0.255 area 0
PE2(config-router)# network 50.1.1.0 0.0.0.255 area 0
PE2(config-router)# network 5.5.5.5 0.0.0.0 area 0
PE2(config-router)# exit
# 设备CE2的配置。
CE2> enable
CE2# configure terminal
CE2(config)# interface gigabitethernet 0/2
CE2(config-if-Gigabitethernet 0/2)# ip address 10.1.1.2 255.255.255.0
配置MPLS转发和LDP协议。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# label-switching
PE1(config-if-Gigabitethernet 0/2)# mpls ip
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/3
PE1(config-if-Gigabitethernet 0/3)# label-switching
PE1(config-if-Gigabitethernet 0/3)# mpls ip
PE1(config-if-Gigabitethernet 0/3)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# neighbor 5.5.5.5
PE1(config-mpls-router)# exit
# 设备P1的配置。
P1(config)# mpls ip
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# label-switching
P1(config-if-Gigabitethernet 0/1)# mpls ip
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# label-switching
P1(config-if-Gigabitethernet 0/2)# mpls ip
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# mpls router ldp
P1(config-mpls-router)# ldp router-id interface loopback 0 force
P1(config-mpls-router)# exit
# 设备P2的配置。
P2(config)# mpls ip
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# label-switching
P2(config-if-Gigabitethernet 0/1)# mpls ip
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# label-switching
P2(config-if-Gigabitethernet 0/2)# mpls ip
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# mpls router ldp
P2(config-mpls-router)# ldp router-id interface loopback 0 force
P2(config-mpls-router)# exit
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# label-switching
PE2(config-if-Gigabitethernet 0/1)# mpls ip
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# label-switching
PE2(config-if-Gigabitethernet 0/2)# mpls ip
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# neighbor 2.2.2.2
PE2(config-mpls-router)# exit
PE1和PE2上配置MARTINI VPWS。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# xconnect 5.5.5.5 1 encapsulation mpls
PE1(config-if-Gigabitethernet 0/1)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/3
PE2(config-if-Gigabitethernet 0/3)# xconnect 2.2.2.2 1 encapsulation mpls
PE2(config-if-Gigabitethernet 0/3)# exit
PE1和PE2上配置为所有路由生成等价LSP。以PE1为例,PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp-ecmp for all-fec
PE1(config-mpls-router)# exit
在PE1上通过show mpls forwarding-table命令能够查看到存在两条等价LSP隧道,并建立两条等价L2VPN转发路径。
PE1# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP—-SWAP topmost label and push new label
DP—-DROP packet
PC—-POP label and continue lookup( IP or Label )
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
Local Outgoing OP FEC Outgoing Next Hop
label label interface
-- 1029 PH VC(1,5.5.5.5) Gi0/2 20.1.1.2
-- 1029 PH VC(1,5.5.5.5) Gi0/3 30.1.1.2
-- 1028 PH 5.5.5.5/32 Gi0/2 20.1.1.2
-- 1028 PH 5.5.5.5/32 Gi0/3 30.1.1.2
……
CE1的配置文件
hostname CE1
!
interface GigabitEthernet 0/1
no switchport
ip address 10.1.1.1 255.255.255.0
!
PE1的配置文件
hostname PE1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
xconnect 5.5.5.5 1 encapsulation mpls
!
interface GigabitEthernet 0/2
no switchport
ip address 20.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/3
no switchport
ip address 30.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 2.2.2.2 255.255.255.255
!
router ospf 1
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 20.1.1.0 0.0.0.255 area 0
network 30.1.1.0 0.0.0.255 area 0
network 60.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
neighbor 5.5.5.5
ldp-ecmp for all-fec
!
P1的配置文件
hostname P1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 20.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 40.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 3.3.3.3 255.255.255.255
!
router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 20.1.1.0 0.0.0.255 area 0
network 40.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
P2的配置文件
hostname P2
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 30.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 50.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 4.4.4.4 255.255.255.255
!
router ospf 1
router-id 4.4.4.4
network 4.4.4.4 0.0.0.0 area 0
network 30.1.1.0 0.0.0.255 area 0
network 50.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
PE2的配置文件
hostname PE2
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 40.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 50.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/3
no switchport
xconnect 2.2.2.2 1 encapsulation mpls
!
interface Loopback 0
ip address 5.5.5.5 255.255.255.255
!
router ospf 1
router-id 5.5.5.5
network 5.5.5.5 0.0.0.0 area 0
network 40.1.1.0 0.0.0.255 area 0
network 50.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
neighbor 2.2.2.2
ldp-ecmp for all-fec
!
CE2的配置文件
hostname CE2
!
interface GigabitEthernet 0/1
no switchport
ip address 10.1.1.2 255.255.255.0
!
实现L3VPN ECMP的负载均衡。
L3VPN ECMP配置组网图
在MPLS骨干网各节点上配置接口IP地址和OSPF协议,实现各节点之间的互通。
在各节点开启全局和接口的MPLS转发能力,配置LDP协议,建立LDP LSP。
在PE1和PE2上配置VPN路由实例,将CE1和CE2分别接入PE1和PE2。PE1、PE2和PE1、PE3之间配置MP-IBGP邻居,并配置传递VPN路由信息。
PE1和PE2上配置为所有路由生成等价LSP。
PE1上配置同一FEC可以生成的等价路径数量。
在MPLS骨干网各节点上配置接口IP地址和OSPF协议,实现各节点之间的互通。
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# ip address 20.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/3
PE1(config-if-Gigabitethernet 0/3)# ip address 30.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/3)# exit
PE1(config)# interface gigabitethernet 0/4
PE1(config-if-Gigabitethernet 0/4)# ip address 60.1.1.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/4)# exit
PE1(config)# interface loopback 0
PE1(config-Loopback 0)# ip address 2.2.2.2 255.255.255.255
PE1(config-Loopback 0)# exit
PE1(config)# router ospf 1
PE1(config-router)# network 20.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 30.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 60.1.1.0 0.0.0.255 area 0
PE1(config-router)# network 2.2.2.2 0.0.0.0 area 0
PE1(config-router)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# ip address 20.1.1.2 255.255.255.0
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# ip address 40.1.1.1 255.255.255.0
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# interface loopback 0
P1(config-Loopback 0)# ip address 3.3.3.3 255.255.255.255
P1(config-Loopback 0)# exit
P1(config)# router ospf 1
P1(config-router)# network 20.1.1.0 0.0.0.255 area 0
P1(config-router)# network 40.1.1.0 0.0.0.255 area 0
P1(config-router)# network 3.3.3.3 0.0.0.0 area 0
P1(config-router)# exit
# 设备P2的配置。
P2> enable
P2# configure terminal
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# ip address 30.1.1.2 255.255.255.0
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# ip address 50.1.1.1 255.255.255.0
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# interface loopback 0
P2(config-Loopback 0)# ip address 4.4.4.4 255.255.255.255
P2(config-Loopback 0)# exit
P2(config)# router ospf 1
P2(config-router)# network 30.1.1.0 0.0.0.255 area 0
P2(config-router)# network 50.1.1.0 0.0.0.255 area 0
P2(config-router)# network 4.4.4.4 0.0.0.0 area 0
P2(config-router)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 40.1.1.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# ip address 50.1.1.1 255.255.255.0
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# interface loopback 0
PE2(config-Loopback 0)# ip address 5.5.5.5 255.255.255.255
PE2(config-Loopback 0)# exit
PE2(config)# router ospf 1
PE2(config-router)# network 40.1.1.0 0.0.0.255 area 0
PE2(config-router)# network 50.1.1.0 0.0.0.255 area 0
PE2(config-router)# network 5.5.5.5 0.0.0.0 area 0
PE2(config-router)# exit
# 设备PE3的配置。
PE3> enable
PE3# configure terminal
PE3(config)# interface gigabitethernet 0/1
PE3(config-if-Gigabitethernet 0/1)# ip address 60.1.1.2 255.255.255.0
PE3(config-if-Gigabitethernet 0/1)# exit
PE3(config)# interface loopback 0
PE3(config-Loopback 0)# ip address 6.6.6.6 255.255.255.255
PE3(config-Loopback 0)# exit
PE3(config)# router ospf 1
PE3(config-router)# network 60.1.1.0 0.0.0.255 area 0
PE3(config-router)# network 6.6.6.6 0.0.0.0 area 0
PE3(config-router)# exit
# 设备CE2的配置。
CE2> enable
CE2# configure terminal
CE2(config)# interface gigabitethernet 0/1
CE2(config-if-Gigabitethernet 0/1)# ip address 70.1.1.2 255.255.255.0
CE2(config-if-Gigabitethernet 0/1)# exit
CE2(config)# interface gigabitethernet 0/2
CE2(config-if-Gigabitethernet 0/2)# ip address 80.1.1.2 255.255.255.0
CE2(config-if-Gigabitethernet 0/2)# exit
CE2(config)# interface loopback 0
CE2(config-Loopback 0)# ip address 7.7.7.7 255.255.255.255
CE2(config-Loopback 0)# exit
CE2(config)# router ospf 1
CE2(config-router)# network 70.1.1.0 0.0.0.255 area 0
CE2(config-router)# network 80.1.1.0 0.0.0.255 area 0
CE2(config-router)# network 7.7.7.7 0.0.0.0 area 0
CE2(config-router)# exit
配置MPLS转发和LDP协议。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# label-switching
PE1(config-if-Gigabitethernet 0/2)# mpls ip
PE1(config-if-Gigabitethernet 0/2)# exit
PE1(config)# interface gigabitethernet 0/3
PE1(config-if-Gigabitethernet 0/3)# label-switching
PE1(config-if-Gigabitethernet 0/3)# mpls ip
PE1(config-if-Gigabitethernet 0/3)# exit
PE1(config)# interface gigabitethernet 0/4
PE1(config-if-Gigabitethernet 0/4)# label-switching
PE1(config-if-Gigabitethernet 0/4)# mpls ip
PE1(config-if-Gigabitethernet 0/4)# exit
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp router-id interface loopback 0 force
PE1(config-mpls-router)# exit
# 设备P1的配置。
P1(config)# mpls ip
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# label-switching
P1(config-if-Gigabitethernet 0/1)# mpls ip
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# label-switching
P1(config-if-Gigabitethernet 0/2)# mpls ip
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# mpls router ldp
P1(config-mpls-router)# ldp router-id interface loopback 0 force
P1(config-mpls-router)# exit
# 设备P2的配置。
P2(config)# mpls ip
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# label-switching
P2(config-if-Gigabitethernet 0/1)# mpls ip
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# label-switching
P2(config-if-Gigabitethernet 0/2)# mpls ip
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# mpls router ldp
P2(config-mpls-router)# ldp router-id interface loopback 0 force
P2(config-mpls-router)# exit
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# label-switching
PE2(config-if-Gigabitethernet 0/1)# mpls ip
PE2(config-if-Gigabitethernet 0/1)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# label-switching
PE2(config-if-Gigabitethernet 0/2)# mpls ip
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp router-id interface loopback 0 force
PE2(config-mpls-router)# exit
# 设备PE3的配置。
PE3(config)# mpls ip
PE3(config)# interface gigabitethernet 0/1
PE3(config-if-Gigabitethernet 0/1)# label-switching
PE3(config-if-Gigabitethernet 0/1)# mpls ip
PE3(config-if-Gigabitethernet 0/1)# exit
PE3(config)# mpls router ldp
PE3(config-mpls-router)# ldp router-id interface loopback 0 force
PE3(config-mpls-router)# exit
在PE1和PE2上配置VPN路由实例,将CE1和CE2分别接入PE1和PE2。
# 设备CE1的配置。
CE1(config)# interface gigabitethernet 0/1
CE1(config-if-Gigabitethernet 0/1)# ip address 10.1.1.1 255.255.255.0
CE1(config-if-Gigabitethernet 0/1)# exit
CE1(config)# interface loopback 0
CE1(config-Loopback 0)# ip address 1.1.1.1 255.255.255.255
CE1(config-Loopback 0)# exit
CE1(config)# router ospf 1
CE1(config-router)# network 10.1.1.0 0.0.0.255 area 0
CE1(config-router)# network 1.1.1.1 0.0.0.0 area 0
CE1(config-router)# exit
# 设备CE1的配置。
CE1(config)# interface gigabitethernet 0/1
CE1(config-if-Gigabitethernet 0/1)# ip address 10.1.1.1 255.255.255.0
CE1(config-if-Gigabitethernet 0/1)# exit
CE1(config)# interface loopback 0
CE1(config-Loopback 0)# ip address 1.1.1.1 255.255.255.255
CE1(config-Loopback 0)# exit
CE1(config)# router ospf 1
CE1(config-router)# network 10.1.1.0 0.0.0.255 area 0
CE1(config-router)# network 1.1.1.1 0.0.0.0 area 0
CE1(config-router)# exit
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# ip vrf vrf1
PE1(config-vrf)# rd 100:2
PE1(config-vrf)# route-target both 100:1
PE1(config-vrf)# exit
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip vrf forwarding vrf1
PE1(config-if-Gigabitethernet 0/1)# ip address 10.1.1.2 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# router ospf 10 vrf vrf1
PE1(config-router)# redistribute bgp subnets
PE1(config-router)# network 0.0.0.0 255.255.255.255 area 0
PE1(config-router)# exit
# 设备PE2的配置。
PE2(config)# ip vrf vrf1
PE2(config-vrf)# rd 100:5
PE2(config-vrf)# route-target both 100:1
PE2(config-vrf)# exit
PE2(config)# interface gigabitethernet 0/3
PE2(config-if-Gigabitethernet 0/3)# ip vrf forwarding vrf1
PE2(config-if-Gigabitethernet 0/3)# ip address 70.1.1.1 255.255.255.0
PE2(config-if-Gigabitethernet 0/3)# exit
PE2(config)# router ospf 10 vrf vrf1
PE2(config-router)# redistribute bgp subnets
PE2(config-router)# network 0.0.0.0 255.255.255.255 area 0
PE2(config-router)# exit
# 设备PE3的配置。
PE3> enable
PE3# configure terminal
PE3(config)# ip vrf vrf1
PE3(config-vrf)# rd 100:6
PE3(config-vrf)# route-target both 100:1
PE3(config-vrf)# exit
PE3(config)# interface gigabitethernet 0/2
PE3(config-if-Gigabitethernet 0/2)# ip vrf forwarding vrf1
PE3(config-if-Gigabitethernet 0/2)# ip address 80.1.1.1 255.255.255.0
PE3(config-if-Gigabitethernet 0/2)# exit
PE3(config)# router ospf 10 vrf vrf1
PE3(config-router)# redistribute bgp subnets
PE3(config-router)# network 0.0.0.0 255.255.255.255 area 0
PE3(config-router)# exit
# 设备CE2的配置。
CE2(config)# interface gigabitethernet 0/1
CE2(config-if-Gigabitethernet 0/1)# ip address 70.1.1.2 255.255.255.0
CE2(config-if-Gigabitethernet 0/1)# exit
CE2(config)# interface gigabitethernet 0/2
CE2(config-if-Gigabitethernet 0/2)# ip address 80.1.1.2 255.255.255.0
CE2(config-if-Gigabitethernet 0/2)# exit
CE2(config)# interface loopback 0
CE2(config-Loopback 0)# ip address 7.7.7.7 255.255.255.255
CE2(config-Loopback 0)# exit
CE2(config)# router ospf 1
CE2(config-router)# network 70.1.1.0 0.0.0.255 area 0
CE2(config-router)# network 80.1.1.0 0.0.0.255 area 0
CE2(config-router)# network 7.7.7.7 0.0.0.0 area 0
CE2(config-router)# exit
PE1、PE2和PE1、PE3之间配置MP-IBGP邻居,并配置传递VPN路由信息。
# 设备PE1的配置。
PE1(config)# router bgp 1
PE1(config-router)# neighbor 5.5.5.5 remote-as 1
PE1(config-router)# neighbor 5.5.5.5 update-source Loopback 0
PE1(config-router)# neighbor 6.6.6.6 remote-as 1
PE1(config-router)# neighbor 6.6.6.6 update-source Loopback 0
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 5.5.5.5 active
PE1(config-router-af)# neighbor 6.6.6.6 active
PE1(config-router-af)# exit
PE1(config-router)# address-family ipv4 vrf vrf1
PE1(config-router-af)# maximum-paths ibgp 32
PE1(config-router-af)# redistribute connected
PE1(config-router-af)# redistribute static
PE1(config-router-af)# redistribute ospf 10
PE1(config-router-af)# exit
PE1(config-router)# exit
# 设备PE2的配置。
PE2(config)# router bgp 1
PE2(config-router)# neighbor 2.2.2.2 remote-as 1
PE2(config-router)# neighbor 2.2.2.2 update-source Loopback 0
PE2(config-router)# address-family vpnv4
PE2(config-router-af)# neighbor 2.2.2.2 active
PE2(config-router-af)# exit
PE2(config-router)# address-family ipv4 vrf vrf1
PE2(config-router-af)# redistribute connected
PE2(config-router-af)# redistribute static
PE2(config-router-af)# redistribute ospf 10
PE2(config-router-af)# exit
PE2(config-router)# exit
# 设备PE3的配置。
PE3(config)# router bgp 1
PE3(config-router)# neighbor 2.2.2.2 remote-as 1
PE3(config-router)# neighbor 2.2.2.2 update-source Loopback 0
PE3(config-router)# address-family vpnv4
PE3(config-router-af)# neighbor 2.2.2.2 active
PE3(config-router-af)# exit
PE3(config-router)# address-family ipv4 vrf vrf1
PE3(config-router-af)# redistribute connected
PE3(config-router-af)# redistribute static
PE3(config-router-af)# redistribute ospf 10
PE3(config-router-af)# exit
PE3(config-router)# exit
PE1和PE2上配置为所有路由生成等价LSP。以PE1为例,PE2的配置与PE1类似,不再赘述。
# 设备PE1的配置。
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp-ecmp for all-fec
PE1(config-mpls-router)# exit
PE1上配置同一FEC可以生成的等价路径数量。
PE1(config)# router bgp 1
PE1(config-router)# address-family ipv4 vrf vrf1
PE1(config-router-af)# maximum-paths ibgp 32
PE1(config-router-af)# end
在PE1上通过show mpls forwarding-table命令能够看到建立等价L3VPN转发路径。
PE1# show mpls forwarding-table
Label Operation Code:
PH--PUSH label
PP--POP label
SW--SWAP label
SP—-SWAP topmost label and push new label
DP—-DROP packet
PC—-POP label and continue lookup( IP or Label )
PI--POP label and do ip lookup forward
PN--POP label and forward to nexthop
PM--POP label and do MAC lookup forward
PV--POP label and output to VC attach interface
IP--IP lookup forward
Local Outgoing OP FEC Outgoing Next Hop
label label interface
-- imp-null PH 5.5.5.5/32 Gi0/2 20.1.1.2
-- imp-null PH 5.5.5.5/32 Gi0/3 30.1.1.2
-- imp-null PH 6.6.6.6/32 Gi0/4 60.1.1.2
-- 1536 PH 7.7.7.7/32(V) Gi0/2 20.1.1.2
-- 1536 PH 7.7.7.7/32(V) Gi0/3 30.1.1.2
-- 1536 PH 7.7.7.7/32(V) Gi0/4 60.1.1.2
……
CE1的配置文件
hostname CE1
!
interface GigabitEthernet 0/1
no switchport
ip address 10.1.1.1 255.255.255.0
!
interface Loopback 0
ip address 1.1.1.1 255.255.255.255
!
router ospf 1
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 10.1.1.0 0.0.0.255 area 0
!
PE1的配置文件
hostname PE1
!
mpls ip
!
ip vrf vrf1
rd 100:2
route-target both 100:1
!
interface GigabitEthernet 0/1
no switchport
ip vrf forwarding vrf1
ip address 10.1.1.2 255.255.255.0
!
interface GigabitEthernet 0/2
no switchport
ip address 20.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/3
no switchport
ip address 30.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/4
no switchport
ip address 60.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 2.2.2.2 255.255.255.255
!
router bgp 1
neighbor 5.5.5.5 remote-as 1
neighbor 5.5.5.5 update-source Loopback 0
neighbor 6.6.6.6 remote-as 1
neighbor 6.6.6.6 update-source Loopback 0
!
address-family ipv4
neighbor 5.5.5.5 activate
neighbor 6.6.6.6 activate
exit-address-family
!
address-family vpnv4 unicast
neighbor 5.5.5.5 activate
neighbor 6.6.6.6 activate
exit-address-family
!
address-family ipv4 vrf vrf1
maximum-paths ibgp 32
redistribute connected
redistribute static
redistribute ospf 10 match internal
exit-address-family
!
router ospf 1
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 20.1.1.0 0.0.0.255 area 0
network 30.1.1.0 0.0.0.255 area 0
network 60.1.1.0 0.0.0.255 area 0
!
router ospf 10 vrf vrf1
redistribute bgp subnets
network 0.0.0.0 255.255.255.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
ldp-ecmp for all-fec
!
P1的配置文件
hostname P1
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 20.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 40.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 3.3.3.3 255.255.255.255
!
router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 20.1.1.0 0.0.0.255 area 0
network 40.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
P2的配置文件
hostname P2
!
mpls ip
!
interface GigabitEthernet 0/1
no switchport
ip address 30.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 50.1.1.1 255.255.255.0
label-switching
mpls ip
!
interface Loopback 0
ip address 4.4.4.4 255.255.255.255
!
router ospf 1
router-id 4.4.4.4
network 4.4.4.4 0.0.0.0 area 0
network 30.1.1.0 0.0.0.255 area 0
network 50.1.1.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
PE2的配置文件
hostname PE2
!
mpls ip
!
ip vrf vrf1
rd 100:5
route-target both 100:1
!
interface GigabitEthernet 0/1
no switchport
ip address 40.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip address 50.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/3
no switchport
ip vrf forwarding vrf1
ip address 70.1.1.1 255.255.255.0
!
interface Loopback 0
ip address 5.5.5.5 255.255.255.255
!
router bgp 1
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 update-source Loopback 0
!
address-family ipv4
neighbor 2.2.2.2 activate
exit-address-family
!
address-family vpnv4 unicast
neighbor 2.2.2.2 activate
exit-address-family
!
address-family ipv4 vrf vrf1
redistribute connected
redistribute static
redistribute ospf 10 match internal
exit-address-family
!
router ospf 1
router-id 5.5.5.5
network 5.5.5.5 0.0.0.0 area 0
network 40.1.1.0 0.0.0.255 area 0
network 50.1.1.0 0.0.0.255 area 0
!
router ospf 10 vrf vrf1
redistribute bgp subnets
network 0.0.0.0 255.255.255.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
ldp-ecmp for all-fec
!
PE3的配置文件
hostname PE3
!
mpls ip
!
ip vrf vrf1
rd 100:6
route-target both 100:1
!
interface GigabitEthernet 0/1
no switchport
ip address 60.1.1.2 255.255.255.0
label-switching
mpls ip
!
interface GigabitEthernet 0/2
no switchport
ip vrf forwarding vrf1
ip address 80.1.1.1 255.255.255.0
!
interface Loopback 0
ip address 6.6.6.6 255.255.255.255
!
router bgp 1
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 update-source Loopback 0
!
address-family ipv4
neighbor 2.2.2.2 activate
exit-address-family
!
address-family vpnv4 unicast
neighbor 2.2.2.2 activate
exit-address-family
!
address-family ipv4 vrf vrf1
redistribute connected
redistribute static
redistribute ospf 10 match internal
exit-address-family
!
router ospf 1
router-id 6.6.6.6
network 6.6.6.6 0.0.0.0 area 0
network 60.1.1.0 0.0.0.255 area 0
!
router ospf 10 vrf vrf1
redistribute bgp subnets
network 0.0.0.0 255.255.255.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
ldp-ecmp for all-fec
!
CE2的配置文件
hostname CE2
!
interface GigabitEthernet 0/1
no switchport
ip address 70.1.1.2 255.255.255.0
!
interface GigabitEthernet 0/2
no switchport
ip address 80.1.1.2 255.255.255.0
!
interface Loopback 0
ip address 7.7.7.7 255.255.255.255
!
router ospf 1
router-id 7.7.7.7
network 7.7.7.7 0.0.0.0 area 0
network 70.1.1.0 0.0.0.255 area 0
network 80.1.1.0 0.0.0.255 area 0
!
接口未开启MPLS转发功能。
未开启全局mpls ip命令。
实现L2VPN ECMP时,未开启L2VPN功能。
实现L3VPN ECMP时,未开启BGP多路径功能。
在MPLS网络中,LDP基于IP最短路径建立LSP。在LSP存在主备链路的组网中,由于LDP和路由协议的收敛条件和收敛速度不同,因此可能出现LDP的LSP与IP最短路径收敛不一致导致流量丢失的情形。LDP IGP同步功能通过改变IGP发布路由的方式,使LDP和IGP收敛一致,从而解决主LSP发生故障导致的流量丢失问题,提高了网络的可靠性。
如图3-1所示的网络拓扑中,各设备之间链路层互通且都运行IGP路由协议和LDP协议。当前从PE1到PE2的最短路径是PE1-P1-P2-PE2,该路径覆盖LDP LSP。当P1-P2之间的LDP会话断开,且P1-P2之间的链路和IGP依然正常时,由于网络拓扑没有变动,故路由协议感知不到该变化。而LDP虽然知道LSP中断,但它并非路由协议,不能触发路由切换到其它备份路径。此时从PE1到PE2的最短路径依然是PE1-P1-P2-PE2,但是从PE1到PE2的LSP却在P1-P2处中断。如果当前路径正在转发MPLS VPN/6PE流量,则从PE1到PE2的LSP中断会对转发的MPLS流量造成影响。
如图3-2所示,PE1到PE2之间的LSP用于转发MPLS VPN或6PE流量,在LDP LSP中传输的是标签报文。当P1-P2之间的LDP会话断开时,报文在P1处LDP只有入标签而没有出标签,因此P1收到报文后将弹出LDP标签,转发携带内层标签的报文到P2,而P2不能识别内层标签(通常公网核心P设备的IPv4路由表中没有私网路由,内层标签不是P2所分发,故不能识别),因此报文会在P1-P2间被丢弃,造成流量转发黑洞。
可见,对于MPLS VPN(包括L2VPN、L3VPN)和6PE等依赖MPLS LDP建立的端到端LSP的应用来说,如果LDP的LSP与IP最短路径收敛不一致,则会造成MPLS路由黑洞问题。
通过在核心设备上配置LDP IGP同步功能可以解决上述问题。
如图3-3所示,PE1到PE2之间的LSP用于转发MPLS VPN或6PE流量,在LDP LSP中传输的是标签报文。在核心设备P1、P2和P3上开启LDP IGP同步功能。当P1-P2之间的LDP会话断开时,LDP IGP同步功能会触发IGP和LDP LSP收敛到备份路径P1-P3-P2上,新路径同时覆盖IGP和LDP LSP,不会产生MPLS路由黑洞。
说明
网络拓扑中必须部署主链路的备份路径,如果没有备份路径则配置LDP IGP同步没有意义。
对于设备的某个直连网络,如果不存在到达该直连网络的备份路径,那么在当前网络拓扑中,此连接直连网络的接口对于该设备来说就是一个“Cut-edge”接口。当一个“Cut-edge”接口状态为Down时,网络会被划分成两个分开的子图。
当设备和广播网络首次建立邻接关系,在链路发布到广播网络之前先判断该链路对应的接口是否为“Cut-edge”接口。
如果为“Cut-edge”接口,则立即通告正常度量值。
如果为非“Cut-edge”接口,则要根据该链路对应的LDP收敛情况做相应处理。对于广播网络,当该链路与广播网络中的其它所有LDP对等体都建立LDP会话且完成标签绑定,才认为该链路对应的LDP收敛。
如果该链路对应的LDP收敛,则立即通告正常度量值。
如果该链路对应的LDP未收敛,则不会将该链路公告到网络中,直到LDP收敛后才通告正常度量值。
当链路的LDP邻接断开时,也需要判断该链路对应的接口是否为“Cut-edge”接口。如果为“Cut-edge”接口则保持当前IGP的状态,如果为非“Cut-edge”接口,则需要将该链路从IGP的LSDB(Link State DataBase,链路状态数据库)中删除。
当链路对应的LDP重新收敛后,再将该链路重新加入LSDB,公告正常度量值到网络中。
如图3-4所示,当P3与广播网络相连的接口Up时,由于存在P3-PE2-P2的备份路径能够到达该直连网络,该接口为非“Cut-edge”接口,因此IGP会抑制新Up的链路加入LSDB,使得流量不会经过该链路。当P3连接广播网络的链路对应的LDP收敛后再更新正常度量值,将该链路加入LSDB中进行SPF和路由计算。新生成的路径同时覆盖IGP和LDP LSP,不会产生MPLS路由黑洞。
LDP IGP同步配置任务如下:
开启LDP IGP同步功能
(可选)配置LDP IGP同步延迟时间
(可选)配置IGP等待LDP同步完成时间
开启LDP和IGP同步功能,保证LDP和IGP收敛一致。开启LDP IGP同步功能有如下两种方式:
在IGP实例配置模式下通过mpls ldp sync命令全局开启LDP IGP同步功能。该方式适用于多个接口需要开启LDP IGP同步功能的场景。
在接口配置模式下通过mpls ldp igp sync命令开启某个接口的LDP IGP同步功能。该方式适用于个别接口需要开启LDP IGP同步功能的场景。
在IGP实例配置模式下全局开启LDP IGP同步功能只支持ISIS路由协议,不支持其它的IGP协议。
mpls ldp igp sync命令通常和mpls ldp sync命令一起使用。如果在IGP实例配置模式下通过mpls ldp sync命令全局开启LDP IGP同步功能,则属于该实例的所有接口都将开启LDP IGP同步功能。此时可以通过在接口配置模式下配置no mpls ldp igp sync或mpls ldp igp sync命令控制指定接口LDP IGP同步功能的关闭或开启。
网络拓扑中必须部署主链路的备份路径,如果没有备份路径则LDP IGP同步没有意义。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入IS-IS路由进程配置模式。
router isis [ tag ]
全局开启LDP IGP同步功能。
mpls ldp sync
为所有运行该IGP协议的接口开启LDP IGP同步功能。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
(可选)开启接口的LDP IGP同步功能。
mpls ldp igp sync
缺省情况下,所有接口的LDP IGP同步功能都处于开启状态。
配置LDP IGP同步延迟时间。当LDP会话建立,会等待LDP IGP同步延迟时间后往IGP通告LDP收敛,如果在同步延迟时间内LDP会话断开,则LDP不会往IGP通告LDP收敛。
如果在LDP IGP同步延迟定时器运行过程中重新配置同步延迟时间,不会立即生效。LDP会记录该时间,在下次运行同步延迟定时器时生效。
网络拓扑中必须部署主链路的备份路径。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入三层以太网接口配置模式。
interface ethernet-type interface-number
配置LDP IGP同步延迟时间。
mpls ldp igp sync delay sync-delay-time
缺省情况下,LDP IGP同步延迟时间为5秒。
配置IGP等待LDP同步完成时间,当主链路故障恢复时,在IGP等待LDP同步完成时间超时之前,如果LDP会话未重新建立,则IGP不会建立邻居关系,从而达到LDP和IGP同步回切到主链路上的效果。
IGP等待LDP同步完成时间不能小于LDP IGP同步延迟时间,否则可能会出现IGP比LDP提前收敛。
网络拓扑中必须部署主链路的备份路径,如果没有备份路径则LDP IGP同步没有意义。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入三层以太网接口配置模式。
interface ethernet-type interface-number
配置IGP等待LDP同步完成的时间。
mpls ldp igp sync holddown { holddown-time | infinite }
缺省情况下,IGP无限等待LDP同步完成。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
LDP IGP同步监视与维护
作用 |
命令 |
---|---|
显示LDP IGP同步相关信息 |
show mpls ldp igp sync [ all | interface interface-type interface-number | vrf vrf-name ] |
LSP存在主备链路,PE1->P1->P2->PE2为主链路,PE1->P1->P3->P2->PE2为备用链路。
当主链路发生故障时,IGP流量和LSP流量能够正常切换到备份链路上。
当主链路从故障中恢复时,IGP流量和LSP流量能够同步切换回主链路,无LSP流量丢失。
LDP IGP同步配置组网图
在MPLS骨干网上配置各接口IP地址以及IS-IS协议。
配置MPLS转发和LDP协议,建立LDP LSP。
在PE1和PE2上配置VPN路由实例和MP-IBGP邻居,并配置传递VPN路由信息。
在P1、P2和P3设备开启LDP IGP同步功能。
在MPLS骨干网上配置各接口IP地址和IS-IS协议,实现骨干网PE和P之间的互通
# 设备PE1的配置。
PE1> enable
PE1# configure terminal
PE1(config)# router isis
PE1(config-router)# net 49.0000.0000.0011.00
PE1(config-router)# exit
PE1(config)# interface Loopback 0
PE1(config-if-Loopback 0)# ip address 40.40.40.40 255.255.255.255
PE1(config-if-Loopback 0)# ip router isis
PE1(config-if-Loopback 0)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# ip address 1.1.4.2 255.255.255.0
PE1(config-if-Gigabitethernet 0/2)# ip router isis
PE1(config-if-Gigabitethernet 0/2)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# router isis
P1(config-router)# net 49.0000.0000.0001.00
P1(config-router)# exit
P1(config)# interface Loopback 0
P1(config-if-Loopback 0)# ip address 10.10.10.10 255.255.255.255
P1(config-if-Loopback 0)# ip router isis
P1(config-if-Loopback 0)# exit
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# ip address 1.1.4.1 255.255.255.0
P1(config-if-Gigabitethernet 0/1)# ip router isis
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# ip address 1.1.1.1 255.255.255.0
P1(config-if-Gigabitethernet 0/2)# ip router isis
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# interface gigabitethernet 0/3
P1(config-if-Gigabitethernet 0/3)# ip address 1.1.2.1 255.255.255.0
P1(config-if-Gigabitethernet 0/3)# ip router isis
P1(config-if-Gigabitethernet 0/3)# exit
# 设备P2的配置。
P2> enable
P2# configure terminal
P2(config)# router isis
P2(config-router)# net 49.0000.0000.0002.00
P2(config-router)# exit
P2(config)# interface Loopback 0
P2(config-if-Loopback 0)# ip address 20.20.20.20 255.255.255.255
P2(config-if-Loopback 0)# ip router isis
P2(config-if-Loopback 0)# exit
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# ip address 1.1.1.2 255.255.255.0
P2(config-if-Gigabitethernet 0/1)# ip router isis
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# ip address 1.1.5.2 255.255.255.0
P2(config-if-Gigabitethernet 0/2)# ip router isis
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# interface gigabitethernet 0/3
P2(config-if-Gigabitethernet 0/3)# ip address 1.1.3.1 255.255.255.0
P2(config-if-Gigabitethernet 0/3)# ip router isis
P2(config-if-Gigabitethernet 0/3)# exit
# 设备P3的配置。
P3> enable
P3# configure terminal
P3(config)# router isis
P3(config-router)# net 49.0000.0000.0003.00
P3(config)# interface Loopback 0
P3(config-if-Loopback 0)# ip address 30.30.30.30 255.255.255.255
P3(config-if-Loopback 0)# ip router isis
P3(config-if-Loopback 0)# exit
P3(config)# interface gigabitethernet 0/1
P3(config-if-Gigabitethernet 0/1)# ip address 1.1.2.2 255.255.255.0
P3(config-if-Gigabitethernet 0/1)# ip router isis
P3(config-if-Gigabitethernet 0/1)# exit
P3(config)# interface gigabitethernet 0/2
P3(config-if-Gigabitethernet 0/2)# ip address 1.1.3.2 255.255.255.0
P3(config-if-Gigabitethernet 0/2)# ip router isis
P3(config-if-Gigabitethernet 0/2)# exit
# 设备PE2的配置。
PE2> enable
PE2# configure terminal
PE2(config)# router isis
PE2(config-router)# net 49.0000.0000.0012.00
PE2(config-router)# exit
PE2(config)# interface Loopback 0
PE2(config-if-Loopback 0)# ip address 50.50.50.50 255.255.255.255
PE2(config-if-Loopback 0)# ip router isis
PE2(config-if-Loopback 0)# exit
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# ip address 1.1.5.2 255.255.255.0
PE2(config-if-Gigabitethernet 0/1)# ip router isis
PE2(config-if-Gigabitethernet 0/1)# exit
配置MPLS转发和LDP协议。
# 设备PE1的配置。
PE1(config)# mpls ip
PE1(config)# mpls router ldp
PE1(config-mpls-router)# ldp rouer-id interface Loopback 0 force
PE1(config-mpls-router)# exit
PE1(config)# interface gigabitethernet 0/2
PE1(config-if-Gigabitethernet 0/2)# mpls ip
PE1(config-if-Gigabitethernet 0/2)# label-switching
PE1(config-if-Gigabitethernet 0/2)# exit
# 设备PE2的配置。
PE2(config)# mpls ip
PE2(config)# mpls router ldp
PE2(config-mpls-router)# ldp rouer-id interface Loopback 0 force
PE2(config-mpls-router)# exit
PE2(config)# interface gigabitethernet 0/1
PE2(config-if-Gigabitethernet 0/1)# mpls ip
PE2(config-if-Gigabitethernet 0/1)# label-switching
PE2(config-if-Gigabitethernet 0/1)# exit
# 设备P1的配置。
P1> enable
P1# configure terminal
P1(config)# mpls ip
P1(config)# mpls router ldp
P1(config-mpls-router)# ldp rouer-id interface Loopback 0 force
P1(config-mpls-router)# exit
P1(config)# interface gigabitethernet 0/1
P1(config-if-Gigabitethernet 0/1)# mpls ip
P1(config-if-Gigabitethernet 0/1)# label-switching
P1(config-if-Gigabitethernet 0/1)# exit
P1(config)# interface gigabitethernet 0/2
P1(config-if-Gigabitethernet 0/2)# mpls ip
P1(config-if-Gigabitethernet 0/2)# label-switching
P1(config-if-Gigabitethernet 0/2)# exit
P1(config)# interface gigabitethernet 0/3
P1(config-if-Gigabitethernet 0/3)# mpls ip
P1(config-if-Gigabitethernet 0/3)# label-switching
P1(config-if-Gigabitethernet 0/3)# exit
# 设备P2的配置。
P2(config)# mpls ip
P2(config)# mpls router ldp
P2(config-mpls-router)# ldp rouer-id interface Loopback 0 force
P2(config-mpls-router)# exit
P2(config)# interface gigabitethernet 0/1
P2(config-if-Gigabitethernet 0/1)# mpls ip
P2(config-if-Gigabitethernet 0/1)# label-switching
P2(config-if-Gigabitethernet 0/1)# exit
P2(config)# interface gigabitethernet 0/2
P2(config-if-Gigabitethernet 0/2)# mpls ip
P2(config-if-Gigabitethernet 0/2)# label-switching
P2(config-if-Gigabitethernet 0/2)# exit
P2(config)# interface gigabitethernet 0/3
P2(config-if-Gigabitethernet 0/3)# mpls ip
P2(config-if-Gigabitethernet 0/3)# label-switching
P2(config-if-Gigabitethernet 0/3)# exit
# 设备P3的配置。
P3(config)# mpls ip
P3(config)# mpls router ldp
P3(config-mpls-router)# ldp rouer-id interface Loopback 0 force
P3(config-mpls-router)# exit
P3(config)# interface gigabitethernet 0/1
P3(config-if-Gigabitethernet 0/1)# mpls ip
P3(config-if-Gigabitethernet 0/1)# label-switching
P3(config-if-Gigabitethernet 0/1)# exit
P3(config)# interface gigabitethernet 0/2
P3(config-if-Gigabitethernet 0/2)# mpls ip
P3(config-if-Gigabitethernet 0/2)# label-switching
P3(config-if-Gigabitethernet 0/2)# exit
在PE1和PE2上配置VPN路由实例,将CE1和CE2分别接入PE1和PE2。
# 设备PE1的配置。
PE1(config)# ip vrf vpna
PE1(config-vrf)# rd 65001:20
PE1(config-vrf)# route-target both 65001:20
PE1(config-vrf)# exit
PE1(config)# interface gigabitethernet 0/1
PE1(config-if-Gigabitethernet 0/1)# ip vrf forwarding vpna
PE1(config-if-Gigabitethernet 0/1)# ip address 1.1.100.1 255.255.255.0
PE1(config-if-Gigabitethernet 0/1)# exit
PE1(config)# router ospf 10 vrf vpna
PE1(config-router)# network 1.1.100.0 0.0.0.255 area 0
PE1(config-router)# exit
# 设备PE2的配置。
PE2(config)# ip vrf vpna
PE2(config-vrf)# rd 65001:20
PE2(config-vrf)# route-target both 65001:20
PE2(config-vrf)# exit
PE2(config)# interface gigabitethernet 0/2
PE2(config-if-Gigabitethernet 0/2)# ip vrf forwarding vpna
PE2(config-if-Gigabitethernet 0/2)# ip address 1.1.200.1 255.255.255.0
PE2(config-if-Gigabitethernet 0/2)# exit
PE2(config)# router ospf 10 vrf vpna
PE2(config-router)# network 1.1.200.0 0.0.0.255 area 0
PE2(config-router)# exit
# 设备CE1的配置。
CE1> enable
CE1# configure terminal
CE1(config)# interface gigabitethernet 0/1
CE1(config-if-Gigabitethernet 0/1)# ip address 1.1.100.2 255.255.255.0
# 设备CE2的配置。
CE2> enable
CE2# configure terminal
CE2(config)# interface gigabitethernet 0/1
CE2(config-if-Gigabitethernet 0/1)# ip address 1.1.200.2 255.255.255.0
在PE1和PE2上配置MP-IBGP邻居,并配置传递VPN路由信息。
# 设备PE1的配置。
PE1(config)# router bgp 65001
PE1(config-router)# neighbor 50.50.50.50 remote-as 65001
PE1(config-router)# neighbor 50.50.50.50 update-source Loopback 0
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 50.50.50.50 activate
PE1(config-router-af)# neighbor 50.50.50.50 send-community both
PE1(config-router-af)# exit
PE1(config-router)# address-family ipv4 vrf vpna
PE1(config-router-af)# redistribute connected
# 设备PE2的配置。
PE2(config)# router bgp 65001
PE2(config-router)# neighbor 40.40.40.40 remote-as 65001
PE2(config-router)# neighbor 40.40.40.40 update-source Loopback 0
PE2(config-router)# address-family vpnv4
PE2(config-router-af)# neighbor 40.40.40.40 activate
PE2(config-router-af)# neighbor 40.40.40.40 send-community both
PE2(config-router-af)# exit
PE2(config-router)# address-family ipv4 vrf vpna
PE2(config-router-af)# redistribute connected
在P1、P2和P3设备开启LDP IGP同步功能。以P1为例,P2和P3的配置与P1类似,不再赘述。
# 设备P1的配置。
P1(config)# router isis
P1(config-router)# mpls ldp sync
P1(config-router)# end
# 查看LDP IGP同步功能的开启情况。以P1为例说明。
P1# show mpls ldp igp sync
Default VRF:
Gigabitethernet 0/1:
LDP-IGP Sync configured: enable
IGP holddown time: infinite
Family IPv4:
SYNC status: sync required; LSP status: achieved
SYNC delay time: 5 seconds (0 seconds left)
Peer Ident: 40.40.40.40
IGP enabled: ISIS
Gigabitethernet 0/2:
LDP-IGP Sync configured: enable
IGP holddown time: infinite
Family IPv4:
SYNC status: sync required; LSP status: achieved
SYNC delay time: 5 seconds (0 seconds left)
Peer Ident: 20.20.20.20
IGP enabled: ISIS
Gigabitethernet 0/3:
LDP-IGP Sync configured: enable
IGP holddown time: infinite
Family IPv4:
SYNC status: sync required; LSP status: achieved
SYNC delay time: 5 seconds (0 seconds left)
Peer Ident: 30.30.30.30
IGP enabled: ISIS
# 验证LDP IGP功能。
PE1->P1->P2->PE2主链路正常工作时,CE1与CE2之间通过该链路正常通信。
PE1->P1->P2->PE2链路出现故障时,CE1与CE2之间流量快速切换到PE1->P1->P3->P2->PE2备用链路。PE1->P1->P2->PE2链路从故障中恢复,CE1与CE2之间IGP流量和LSP流量能够同步切换回主链路,无流量丢失。
CE1的配置文件
hostname CE1
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.100.2 255.255.255.0
!
PE1的配置文件
hostname PE1
!
mpls
!
ip vrf vpna
rd 65001:20
route-target both 65001:20
!
interface GigabitEthernet 0/1
no switchport
ip vrf forwarding vpna
ip address 1.1.100.1 255.255.255.0
ip router isis
!
interface GigabitEthernet 0/2
no switchport
ip address 1.1.4.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 40.40.40.40 255.255.255.255
ip router isis
!
router bgp 65001
neighbor 50.50.50.50 remote-as 65001
neighbor 50.50.50.50 update-source Loopback 0
address-family vpnv4
neighbor 50.50.50.50 activate
neighbor 50.50.50.50 send-community both
exit-address-family
!
address-family ipv4 vrf vpna
redistribute connected
exit-address-family
!
router isis
net 49.0000.0000.0011.00
!
router ospf 10 vrf vpna
network 1.1.100.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
P1的配置文件
hostname P1
!
mpls
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.4.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip address 1.1.1.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/3
no switchport
ip address 1.1.2.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 10.10.10.10 255.255.255.255
ip router isis
!
router isis
net 49.0000.0000.0001.00
mpls ldp sync
!
mpls router ldp
ldp router-id interface Loopback 0
!
P2的配置文件
hostname P2
!
mpls
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.1.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip address 1.1.5.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/3
no switchport
ip address 1.1.3.1 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 20.20.20.20 255.255.255.255
ip router isis
!
router isis
net 49.0000.0000.0002.00
!
mpls router ldp
ldp router-id interface Loopback 0
!
P3的配置文件
hostname P3
!
mpls
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.2.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip address 1.1.3.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface Loopback 0
ip address 30.30.30.30 255.255.255.255
ip router isis
!
router isis
net 49.0000.0000.0003.00
!
mpls router ldp
ldp router-id interface Loopback 0
!
PE2的配置文件
hostname PE2
!
mpls
!
ip vrf vpna
rd 65001:20
route-target both 65001:20
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.5.2 255.255.255.0
ip router isis
mpls ip
label-switching
!
interface GigabitEthernet 0/2
no switchport
ip vrf forwarding vpna
ip address 1.1.200.1 255.255.255.0
ip router isis
!
interface Loopback 0
ip address 50.50.50.50 255.255.255.255
ip router isis
!
router bgp 65001
neighbor 40.40.40.40 remote-as 65001
neighbor 40.40.40.40 update-source Loopback 0
address-family vpnv4
neighbor 40.40.40.40 activate
neighbor 40.40.40.40 send-community both
exit-address-family
!
address-family ipv4 vrf vpna
redistribute connected
exit-address-family
!
router isis
net 49.0000.0000.0012.00
!
router ospf 10 vrf vpna
network 1.1.200.0 0.0.0.255 area 0
!
mpls router ldp
ldp router-id interface Loopback 0
!
CE2的配置文件
hostname CE2
!
interface GigabitEthernet 0/1
no switchport
ip address 1.1.200.2 255.255.255.0
!
静态FTN和ILM表项未生效。
未建立完整的LSP。
未开启全局MPLS转发。
未开启接口MPLS转发。