MPLS VPN环境下双PE存在的问题及解析(OSPF篇)

网络 网络管理
本文档主要探讨的是,在MPLS环境中,如果某个VPN站点存在双PE,那么有可能存在的问题,诸如路由环路、次优路径等等。做个分析,同时结合OSPF在MPLS VPN环境中的相关细节问题做个介绍。

本文档主要探讨的是,在MPLS环境中,如果某个VPN站点存在双PE,那么有可能存在的问题,诸如路由环路、次优路径等等。做个分析,同时结合OSPF在MPLS VPN环境中的相关细节问题做个介绍。

一、实验描述

左右两个Site,PE-CE都是跑OSPF。

左右两个Site都将客户路由放给PE,最终要实现Site之间能够互访,重点观察左侧Site的路由。

我们重点关注两个站点内,OSPF网络设计的不同,从而对网络的影响,以及Site1内双PE在各种环境下产生的问题和解决办法。

二、设备配置

CE1、CE2、CE3的配置就不说了。

PE1的配置如下:

ip vrf cisco

rd 1:1

route-target export 3456:12

route-target import 3456:3

route-target import 3456:12

!

ip cef

mpls label range 300 399

mpls ldp router-id Loopback0

!

interface Loopback0

ip address 3.3.3.3 255.255.255.255

interface Ethernet0/0

ip vrf forwarding cisco

ip address 10.1.13.3 255.255.255.0

interface Ethernet0/1

ip address 10.1.35.3 255.255.255.0

mpls ip

!

router ospf 1 vrf cisco

redistribute bgp 3456 subnets

network 10.1.13.3 0.0.0.0 area 0

!

router ospf 100

router-id 3.3.3.3

network 3.3.3.3 0.0.0.0 area 0

network 10.1.35.3 0.0.0.0 area 0

!

router bgp 3456

no bgp default ipv4-unicast

neighbor 5.5.5.5 remote-as 3456

neighbor 5.5.5.5 update-source Loopback0

address-family vpnv4

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 send-community extended

exit-address-family

address-family ipv4 vrf cisco

no synchronization

redistribute ospf 1 vrf cisco match internal external 1 external 2

exit-address-family

PE2、PE3的配置大同小异,这里不在赘述

PE2的VRF配置:

ip vrf cisco

rd 1:2

route-target export 3456:12

route-target import 3456:3

route-target import 3456:12

PE3的VRF配置:

ip vrf cisco

rd 1:3

route-target export 3456:3

route-target import 3456:12

ip vrf forwarding cisco

三、实验现象

1.两边站点PE上的VRF OSPF进程号相同,且Site1内是OSPF单区域

首先考虑下Site2到Site1的路由传递过程

我们假设先配置的是PE1,后配置PE2,来看看路由的传递过程。关键看VPNv4路由从R5传递给PE1后,PE1将路由注入到OSPF,形成3类 LSA,这些3类 LSA的DownBit都置位了,因此,即使再经过Site1内的OSPF网络被传到PE2,PE2也不会用这些LSA3参与路由的计算,因为他们 DownBit都置位了。竟然忽略了这些3类LSA,自然就不会加载进路由表,更不会在PE2上经过OSPF到BGP的重发布倒灌回BGP注意,此刻 PE2是恒定忽略这些Downbit置位的3类LSA的,即使shutdown掉PE2的e0/1口,也是一样。

因此在这个环境下,得益于OSPF Downbit的设计,网络显得很可靠。

再考虑下Site1到Site2的路由传递过程

假设PE1先配置的OSPF到BGP的重发布,那么site1内的客户路由,被PE1注入到MP-BGP形成了VPNv4的前缀,经由RR反射给了PE2,这时候,对于PE2来说,一边是从VRF 的OSPF路由进程学习到Site1内的路由,另一边,从MP-iBGP也学习到这些路由,由于OSPF的AD110小于IBGP的200,因此PE2优选OSPF路由,从而不会造成次优路径的问题。

2.两边站点PE上的VRF OSPF进程号相同,但Site1是多区域

注意,在这个测试中,我们的环境变了,变化的地方在site1,从OSPF单区域,变成了多区域,R1属于area0,R2是ABR,跟PE2直连的网段,以及自身的loopback 2.2.2.2属于area1。我们来网络会有什么影响。

首先考虑下Site2到Site1的路由传递过程

首先看PE1上发生什么事情,PE1上首先是通过BGP学习到了7.7.7.7也就是Site2内的路由,然后将路由重发布到OSPF,形成LSA3,这些LSA3 Downbit置位。那么CE1就能学习到关于7.7.7.7的OIA路由,并且继续将LSA3传递给CE2,CE2也收下了,由于它是ABR,从 area0收到LSA3,于是将LSA3又注入常规区域area1,但是,这条LSA3就发生变化了,DOWNbit位被清除。当然,这还不是最糟糕的,更糟糕的是,3类LSA被传递给PE2后,我们前面分析过了,对于OSPF来说MPLS VPN Backbone就是一个super backbone area超级骨干区域,那么此刻PE2即是一台ASBR又是一台ABR,我是一台ABR,但是我却从area1收到3类LSA,这是违反OSPF关于“3 类LSA必须经过area0中转”这一原则的,因此PE2忽略在area1上手收到的来自CE2的任何3类LSA,当然,产生自CE2的area1内的区域内部1类LSA还是会收的。

正是由于PE2的ABR属性,造成的另一个问题是,来自Site1内area0的路由,经由CE2以LSA3的形式通告给PE2,PE2在路由计算的时候也照样忽略它们。这将直接导致接下去发生的问题:次优路径。怎么造成的呢,我们知道PE1上已经学习到了Site1内的OSPF路由,它将这些OSPF重发布到BGP,并经RR反射给了PE2,于是,PE2从BGP学习到了这些Site1内的路由,另一方面,它又忽略了CE2更新过来的关于Site1内的 3类LSA,因此PE2的路由表里装载的Site1里area0的路由全是BGP的,这就是次优路径了,此时此刻PE2的路由表是这样的:

B 1.1.1.1 [200/11] via 3.3.3.3, 01:27:08

O 2.2.2.2 [110/11] via 10.1.24.2, 00:00:04, Ethernet0/0

B 7.7.7.7 [200/11] via 6.6.6.6, 01:27:08

B 10.1.12.0/24 [200/20] via 3.3.3.3, 01:27:08

B 10.1.13.0/24 [200/0] via 3.3.3.3, 01:27:08

C 10.1.24.0/24 is directly connected, Ethernet0/0

B 10.1.67.0/24 [200/0] via 6.6.6.6, 01:27:08

刚才描述的过程,可以用上面的图来概述。哥们实验的时候,做了个测试,将PE2上连接RR的接口shutdown了。于是PE2的VRF路由表变成了:

O 2.2.2.2 [110/11] via 10.1.24.2, 00:10:48, Ethernet0/0

只有一条area1内的路由,但是查看PE2的OSPF database,发现还是有许多CE2发过来的LSA3的,很明显这就验证了我们前面的说法,PE2这哥们认为爷爷我是个ABR,直接忽略你。

这个事情还没完,由于PE2路由表里的这个问题,加上PE2又做了OSPF 和BGP的双向重发布,那么,PE2上,这些从PE1倒灌过来的关于Site1内的路由,由于此刻在PE2的路由表里是BGP路由,那么在BGP到OSPF的重发布动作后,这些路由又被坑爹的倒灌回了Site1:

这样一来,就得看CE2的了。

对于Site1内area0里的路由,从area0学到的是LSA1及LSA2,而从PE2倒灌回来的是LSA3,CE2当然优选LSA1及LSA2计算得出的区域内部路由,所以这里天然防环。

对于Site2的路由,CE2同时学到PE1及PE2更新过来的LSA3,因此比metric,最后优选PE2作为下一跳。

关键点,注意,这里有个细节,R2,是一台ABR啊各位亲戚朋友。既然是一台ABR,那么当它收到PE2重发布进来的OSPF LSA3,即使放进了LSDB本该是忽略的,因为它是从常规区域area1收到这些LSA3的,违反OSPF的法则吧?但是实际上,在这个环境中,CE2 不但将LSA装载进了LSDB,而且,这些LSA还参与路由计算。但是这些LSA3,CE2自己是手下了,却不会将他们泛洪到area0中,也就是说,只影响了CE2自己。

综上所述,当Site1内规划成多区域时,有可能引发一系列的潜在问题。所以:

MPLS VPN环境中,OSPF网络的设计要非常谨慎

上面的问题,可以考虑在CE2和PE2之间,建立一个virtual-link

再有就是可以利用一些策略工作过滤掉路由

3.两边站点PE上的VRF OSPF进程号不相同,且Site1内是OSPF单区域

两边的VRF OSPF进程号不一样,大家都知道会发生什么了,Site2的路由被PE1注入进OSPF后,会以LSA5的形式注入,那么接下去:

得益于Domain-Tag的设计,我们的网络还是比较健壮的。

同样,也不同担心Site1内的路由被PE1注入到BGP然后反射回PE2的问题,这里直接比AD值然后BGP光荣落败,没什么难度。

原文博客:http://blog.sina.com.cn/s/blog_5ec353710101eg0h.html

责任编辑:张存 来源: 博客
相关推荐

2011-11-01 15:37:30

VPNMPLSCE

2011-08-25 16:20:18

MPLS VPN故障热备份

2009-12-29 10:50:47

2011-11-07 11:15:31

2009-12-30 10:12:30

MPLS VPN

2011-11-07 09:52:25

MPLS-VPN

2011-11-07 10:49:16

IPsec VPNMPLS VPN

2012-02-06 09:53:46

MPLS VPN

2009-12-30 10:01:17

MPLSVPN网络

2011-11-07 15:52:05

2011-11-08 09:16:40

2010-11-18 14:16:09

广域网VPNMPLS VPN

2011-11-25 14:01:05

VPNVPN设置IPsec VPN

2010-02-22 11:00:05

CCIE

2009-12-28 13:09:36

MPLS VPN技术

2011-11-07 13:30:19

2019-07-23 07:11:54

MPLS VPN路由协议

2011-08-18 11:08:02

2014-12-09 10:24:28

2011-09-01 14:50:54

MPLSMPLS故障建立LDPSessio
点赞
收藏

51CTO技术栈公众号