MPLS VPN环境中PE-CE之间OSPF网络的设计问题
如果在PE-CE链路中使用OSPF,那么需要在PE路由器上将OSPF重发布进iBGP,以及将iBGP重发布进OSPF。在下游方,如果PE接收远端PE发送过来的VPNv4路由再重发布进本地VPN的OSPF,则会变成外部路由,导致路由的优先级较低,同时也就丢失了OSPF网络设计的连续性。 实际上,来自CE的OSPF内部路由(LSA1、2、3)在被重发布进iBGP,变成vpnv4路由再被下游PE重发布进OSPF后,其实是以3类LSA的形式注入到其本地OSPF域的(当然还存在许多复杂的情况,这里说的是一般,一般情况),这样可以很好的保持OSPF的连续性。
1.OSPF VRF配置
router ospf 1 vrf ABC
network 10.1.12.2 0.0.0.0 area 0
redistribute bgp ?
router bgp 2345
address-family ipv4 vrf ABC
redistribute ospf 1 vrf ABC metric 10 match internal external 1 external 2
2.OSPF metric传递
在PE路由器上将OSPF内部和外部路由重发布进BGP的时候,PE路由将使用OSPFmetric 来设置BGP MED。
3.用于OSPF的BGP扩展community
要想让OSPF路由的特征能够穿越MPLS VPN骨干网络,需要额外定义一些BGP扩展community。
可以通过MP-BGP传递的OSPF特性包括:
[*]路由类型
[*]区域号
[*]OSPF路由器ID
[*]域ID
[*]OSPF外部路由的度量值类型1或2
如下图:
如果始发Site中,OSPF路由类型为LSA1、2、3(且本地PE及远端PE OSPF进程号相同),则路由重发布进来后路由以LSA3类型注入到本地Site。
domainID告诉远端PE路由器,通告的是否为一条外部OSPF路由。如果PE路由器所收到的路由的domainID不能匹配特定VRF的OSPF进程ID的话,这条路由将会以一条OSPF外部路由也就是LSA5类型的形式通告,以提供对网络中不同OSPF进程之间重发布IP路由的支持。
如果domainID能够匹配OSPF进程ID,该路由将以内部路由(LSA3)的形式通告。当然,如果两端PE的OSPF进程号相同,传递过来的路由又是内部路由,但是你又希望路由重发布到本地OSPF后以外部路由的形式注入,那么可以在PE路由器上修改DomainID。命令如下:
router ospf 1 vrf ABC
domain-id ?
修改之后,可使用show ip ospf 1来查看
4.OSPF网络设计
我们来考虑一下所有可能的情况:
我们分别来讨论这几个CASE:
[*]OSPF网络设计 case1
[*]OSPF网络设计 case2
[*]OSPF网络设计 case3
这个实验就需要格外注意了。实验的结果是:
CE1这里过来的两条路由,1.1.1.0及1.1.2.0分别是内部及外部路由,这两条路由经过超级骨干到了PE2,PE2将OSPF路由重建,注入area2,那么CE2上能学习到1.1.1.0 的OIA路由及1.1.2.0的OE路由。实际上CE2的OSPF DATABASE里area2确实存在上述相关的LSA,但是CE2却不将这些LSA转进area0,虽然它是一台ABR。CE2此时的OSPF Database如下:
R5#sh ip ospf da
OSPF Router with ID (5.5.5.5) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
5.5.5.5 5.5.5.5 268 0x80000001 0x00F801 1
Summary Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
10.1.45.0 5.5.5.5 263 0x80000001 0x007D72
// 没有为area0注入关于1.1.1.0的三类LSA
Summary ASB Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
44.44.44.44 5.5.5.5 263 0x80000001 0x00FE77
Router Link States (Area 2)
Link ID ADV Router Age Seq# Checksum Link count
5.5.5.5 5.5.5.5 262 0x80000007 0x007E0C 1
44.44.44.44 44.44.44.44 281 0x80000005 0x00DA77 1
Net Link States (Area 2)
Link ID ADV Router Age Seq# Checksum
10.1.45.4 44.44.44.44 1427 0x80000002 0x00A1E5
Summary Net Link States (Area 2)
Link ID ADV Router Age Seq# Checksum
1.1.1.0 44.44.44.44 58 0x80000001 0x00C442
5.5.5.0 5.5.5.5 265 0x80000001 0x0048D0
10.1.12.0 44.44.44.44 58 0x80000001 0x00CB28
Type-5 AS External Link States
Link ID ADV Router Age Seq# Checksum Tag
1.1.2.0 44.44.44.44 58 0x80000001 0x004CE3 3489661162
另一方面,CE2的路由5.5.5.0,由于CE2是ABR,因此它将5.5.5.0的3类LSA注入area2,那么PE2就能学习到这个LSA,但是,却不装载进路由表,因为PE2认为自己是台ABR,OSPF要求3类LSA必须经过area0骨干区域来中转,然而这里PE2并没有与area0直连,因此5.5.5.0没有被装入路由表,自然CE1也就无法学习到。通过观察PE2的OSPF database可以一目了然:
PE2#sh ip os 1 da
OSPF Router with ID (44.44.44.44) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
44.44.44.44 44.44.44.44 142 0x80000001 0x008955 0
Summary Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
1.1.1.0 44.44.44.44 142 0x80000001 0x00C442
10.1.12.0 44.44.44.44 142 0x80000001 0x00CB28
10.1.45.0 44.44.44.44 138 0x80000001 0x00E66C
// 这里很关键,PE2并没有任何接口属于vrf OSPF进程,但是,database里却有area0,这是因为MPLS VPN中,PE充当ABR的角色,我们可以看到area0中有CE1发过来的路由的相关LSA,以及PE2与CE2直连网段LSA
Router Link States (Area 2)
Link ID ADV Router Age Seq# Checksum Link count
5.5.5.5 5.5.5.5 143 0x80000008 0x008602 1
44.44.44.44 44.44.44.44 134 0x80000006 0x00E26D 1
Net Link States (Area 2)
Link ID ADV Router Age Seq# Checksum
10.1.45.5 5.5.5.5 143 0x80000001 0x00A281
Summary Net Link States (Area 2)
Link ID ADV Router Age Seq# Checksum
1.1.1.0 44.44.44.44 137 0x80000002 0x00C243
5.5.5.0 5.5.5.5 655 0x80000001 0x0048D0//收到了3类LSA
10.1.12.0 44.44.44.44 137 0x80000002 0x00C929
Type-5 AS External Link States
Link ID ADV Router Age Seq# Checksum Tag
1.1.2.0 44.44.44.44 137 0x80000002 0x004AE4 3489661162
找到了问题的原因,那么我们在PE2与CE2之间,通过area2建立个virtual-link,
这样,路由就都能学习到了。
总结:
[*]MPLS VPN在OSPF长点之间存在一个超级骨干区域superbackbone,这当然不是一个OSPF区域,不过,它扮演了一个骨干区域的角色。
[*]如果一个VRF的多个场点有一台PE在区域0中,那么这个area0被分割成了多块,通常来说被分割的骨干区域需要使用virtual-link来连接,但是在MPLS VPN中由于有iBGP来运载OSPF路由,因此不需要虚链路。OSPF路由会在PE路由器上重建。
[*]PE路由器扮演了ABR的角色。它将type3 LSA通告给CE路由器,CE路由器可以在area0中,也可以在其他区域,但是如果一个场点拥有多个区域,PE路由器就必须在area0中,因为他们是ABR,如果他们不在area0中,就需要在PE上创建virtual-link来确保PE和area0的连接。
[*]Routes from Area 0 at one site appear as interarea routes in Area 0 at another site
红茶三杯(朱SIR)
网络工程 | 项目管理 | IT服务管理 | CCIE培训
学习 沉淀 成长 分享
微博:http://weibo.com/vinsoney
博客:http://blog.sina.com.cn/vinsoney
沙发,抢了!感谢耿叔的分享 --占个凳子 貌似我速度慢了 支持 耿叔。
无私奉献。 好东西,好东西~~-woniu2- 我才休息了个周末就发现耿叔出了这么多作品啦…… 耿叔发表了好多很实用的文章额-woniu3- 找了很多视频,感觉最厉害的,就是你的了!
页:
[1]