MPLS系列之五:MPLS VPN 跨域 Open A(VRF-To-VRF)解决方案 | 网络之路博客
注册 登录
  • 欢迎网络之路博客网站,分享IT教程,推荐使用2345浏览器访问本网站,可以下载PDF与观看实战文章点击下载
  • 如果您觉得本站对您有帮助,那么赶紧使用Ctrl+D 收藏吧,支持我们下
  • 远程技术支持的淘宝店铺已经开张了哦,传送门:需要的朋友可以点击查看
  • 资源太多??下载繁琐??不知道如何学起??博主给你解决这些问题!~!点击免费下载

MPLS系列之五:MPLS VPN 跨域 Open A(VRF-To-VRF)解决方案

【汇总】三层MPLS VPN系列

文档帖子汇总学习视频Book与实验手册学习必备软件
    博主也只是业余时间写写技术文档,请大家见谅,大家觉得不错的话,可以推荐给朋友哦,博主会努力推出更好的系列文档的。如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路博客,http://ccieh3c.com

说明

在MPLS VPN的域中,也存在不同ISP之间的通信,可能因为业务的需求、或者相同ISP之间需要把这个MPLS VPN域连通起来,同个ISP之间进行跨域连接,肯定问题不大,因为有可以跟正常一样通过分配标签跟路由的交换, 而不同ISP之间因为业务的竞争,不可能把网络内部的信息让其他ISP知道,所以给跨越的模型带来了很大的困难。 到现在为止提供了3种解决方案, Opent A 、Opent B、Open C、 OpenA已经不在使用了,不过在学习其他两个方案之前 了解这个对后续的理解会更好。

在之前的MPLS VPN中,都是单域的模型,如果想要两个CE之间进行通信,主要是保证标签的连续性,中间不能被断开,否则就出现数据包黑洞了,在跨域中也是一样,一定要保持标签的连续性,否则在ASBR之间传递的时候 就出现了故障了。 在MPLS VPN中ASBR就是相当于一个ISP的边界。

Open A是利用ASBR之间用VRF建立EBGP关系,来传递客户的路由。这种模型实现缺点也很明了了,当大量不同的客户出现,那么每个接口就要对应一个VRF,或者子接口来建立邻居关系,并且这里标签也不是连续的,实验中可以看出来。

mpls

实验环境,电信 联通的MPLS底层使用的是EIGRP,两个CE之间运行OSPF,每个路由器都有一个loopback 32位。ASBR之间用VRF建立MPBGP关系

Router-ISP1_PE(config)#int lo 0
Router-ISP1_PE(config-if)#ip add 1.1.1.1 255.255.255.255
Router-ISP1_PE(config)#int s1/1
Router-ISP1_PE(config-if)#ip add 12.1.1.1 255.255.255.0
Router-ISP1_PE(config-if)#no shut

ISP1_P(config)#int s1/1
ISP1_P(config-if)#ip add 12.1.1.2 255.255.255.0
ISP1_P(config-if)#no shut
ISP1_P(config-if)#int lo 0
ISP1_P(config-if)#ip add 2.2.2.2 255.255.255.255
ISP1_P(config-if)#int s1/2
ISP1_P(config-if)#ip add 23.1.1.1 255.255.255.0
ISP1_P(config-if)#no shut

Router-ISP1_ASBR(config)#int s1/2
Router-ISP1_ASBR(config-if)#ip add 23.1.1.2 255.255.255.0
Router-ISP1_ASBR(config-if)#no shut
Router-ISP1_ASBR(config-if)#int lo 0
Router-ISP1_ASBR(config-if)#ip add 3.3.3.3 255.255.255.255

Router-ISP1_CE(config)#int lo 0
Router-ISP1_CE(config-if)#ip add 1.1.1.1 255.255.255.255
Router-ISP1_CE(config)#int s1/0
Router-ISP1_CE(config-if)#ip add 192.168.1.1 255.255.255.0
Router-ISP1_CE(config-if)#no shu

先把ISP1的MPLS 和VPN打通,这里限制下标签的范围,到时候分析标签置换好分析。

Router-ISP1_PE(config)#mpls label range 100 199
Router-ISP1_PE(config)#mpls ldp router-id lo 0
Router-ISP1_PE(config)#int s1/1
Router-ISP1_PE(config-if)#mpls ip

ISP1_P(config)#mpls label range 200 299
ISP1_P(config)#mpls ldp router-id lo 0
ISP1_P(config)#int s1/1
ISP1_P(config-if)#mpls ip
ISP1_P(config-if)#int s1/2
ISP1_P(config-if)#mpls ip

Router-ISP1_ASBR(config)#mpls ldp router-id lo 0
Router-ISP1_ASBR(config)#mpls label range 300 399
Router-ISP1_ASBR(config)#
Router-ISP1_ASBR(config)#int s1/2
Router-ISP1_ASBR(config-if)#mpls ip

Router-ISP1_PE(config)#router eigrp 1
Router-ISP1_PE(config-router)#no auto-summary
Router-ISP1_PE(config-router)#network 12.1.1.1 0.0.0.0
Router-ISP1_PE(config-router)#network 1.1.1.1 0.0.0.0

ISP1_P(config)#router eigrp 1
ISP1_P(config-router)#no auto-summary
ISP1_P(config-router)#network 12.1.1.2 0.0.0.0
ISP1_P(config-router)#network 23.1.1.1 0.0.0.0
ISP1_P(config-router)#network 2.2.2.2 0.0.0.0

Router-ISP1_ASBR(config)#router eigrp 1
Router-ISP1_ASBR(config-router)#no auto-summary
Router-ISP1_ASBR(config-router)#network 23.1.1.2 0.0.0.0
Router-ISP1_ASBR(config-router)#network 3.3.3.3 0.0.0.

Router-ISP1_PE(config)#ip vrf A
Router-ISP1_PE(config-vrf)#rd 1:1
Router-ISP1_PE(config-vrf)#route-target 1:1

Router-ISP1_PE(config)#int s1/0
Router-ISP1_PE(config-if)#ip vrf forwarding A
Router-ISP1_PE(config-if)#ip add 192.168.1.2 255.255.255.0
Router-ISP1_PE(config-if)#no shut

Router-ISP1_PE(config)#router ospf 1 vrf A
Router-ISP1_PE(config-router)#router-id 192.168.1.2
Router-ISP1_PE(config-router)#network 192.168.1.2 0.0.0.0 a 0
Router-ISP1_PE(config-router)#redistribute bgp 1 subnets

Router-ISP1_CE(config)#router ospf 1
Router-ISP1_CE(config-router)#router-id 1.1.1.1
Router-ISP1_CE(config-router)#network 1.1.1.1 0.0.0.0 a 0
Router-ISP1_CE(config-router)#network 192.168.1.1 0.0.0.0 a

关于ASBR的VRF后续在创建,先把ISP1 和ISP2的VPN的路由搞定

Router-ISP1_PE(config)#router bgp 1
Router-ISP1_PE(config-router)#bgp router-id 1.1.1.1
Router-ISP1_PE(config-router)#no bgp default ipv4
Router-ISP1_PE(config-router)#neighbor 3.3.3.3 remote 1
Router-ISP1_PE(config-router)#neighbor 3.3.3.3 upda lo 0
Router-ISP1_PE(config-router)#address-family vpnv4
Router-ISP1_PE(config-router-af)#neighbor 3.3.3.3 ac
Router-ISP1_PE(config-router)#address-family ipv4 vrf A
Router-ISP1_PE(config-router-af)#redistribute ospf 1

Router-ISP1_ASBR(config)#router bgp 1
Router-ISP1_ASBR(config-router)#bgp router-id 3.3.3.3
Router-ISP1_ASBR(config-router)#no bgp default ipv4-unicast
Router-ISP1_ASBR(config-router)#neighbor 1.1.1.1 remote 1
Router-ISP1_ASBR(config-router)#neighbor 1.1.1.1 upda lo 0
Router-ISP1_ASBR(config-router)#address-family vpnv4
Router-ISP1_ASBR(config-router-af)#neighbor 1.1.1.1 ac

ISP1的VPN路由搞定了,这里ASBR不是作为PE存在,所以暂时不操作,把ISP2的基本搞定。

Router-ISP2_ASBR(config)#int s1/0
Router-ISP2_ASBR(config-if)#ip add 45.1.1.1 255.255.255.0
Router-ISP2_ASBR(config-if)#no shut
Router-ISP2_ASBR(config-if)#int lo 0
Router-ISP2_ASBR(config-if)#ip add 4.4.4.4 255.255.255.255
Router-ISP2_ASBR(config-if)#router eigrp 1
Router-ISP2_ASBR(config-router)#no auto-summary
Router-ISP2_ASBR(config-router)#network 45.1.1.1 0.0.0.0
Router-ISP2_ASBR(config-router)#network 4.4.4.4 0.0.0.0

Router-ISP2_P(config)#int s1/0
Router-ISP2_P(config-if)#ip add 45.1.1.2 255.255.255.0
Router-ISP2_P(config-if)#no shut
Router-ISP2_P(config-if)#int s1/1
Router-ISP2_P(config-if)#ip add 56.1.1.1 255.255.255.0
Router-ISP2_P(config-if)#no shut
Router-ISP2_P(config-if)#int lo 0
Router-ISP2_P(config-if)#ip add 5.5.5.5 255.255.255.255
Router-ISP2_P(config-if)#router eigrp 1
Router-ISP2_P(config-router)#no auto-summary
Router-ISP2_P(config-router)#network 5.5.5.5 0.0.0.0
Router-ISP2_P(config-router)#network 45.1.1.2 0.0.0.0
Router-ISP2_P(config-router)#network 56.1.1.1 0.0.0.0

Router-ISP2_PE(config)#int s1/1
Router-ISP2_PE(config-if)#ip add 56.1.1.2 255.255.255.0
Router-ISP2_PE(config-if)#no shut
Router-ISP2_PE(config-if)#int lo 0
Router-ISP2_PE(config-if)#ip add 6.6.6.6 255.255.255.255
Router-ISP2_PE(config-if)#router eigrp 1
Router-ISP2_PE(config-router)#no auto-summary
Router-ISP2_PE(config-router)#network 56.1.1.2 0.0.0.0
Router-ISP2_PE(config-router)#network 6.6.6.6 0.0.0.0
基本地址配置和EIGRP的建立

Router-ISP2_ASBR(config)#mpls ldp router-id lo 0
Router-ISP2_ASBR(config)#mpls label range 400 499
Router-ISP2_ASBR(config)#int s1/0
Router-ISP2_ASBR(config-if)#mpls ip

Router-ISP2_P(config)#mpls label range 500 599
Router-ISP2_P(config)#mpls ldp router-id lo 0
Router-ISP2_P(config)#int s1/0
Router-ISP2_P(config-if)#mpls ip
Router-ISP2_P(config-if)#int s1/1
Router-ISP2_P(config-if)#mpls ip

Router-ISP2_PE(config)#mpls label range 600 699
Router-ISP2_PE(config)#mpls ldp router-id lo 0
Router-ISP2_PE(config)#int s1/1
Router-ISP2_PE(config-if)#mpls ip
MPLS完成

Router-ISP2_ASBR(config-if)#router bgp 2
Router-ISP2_ASBR(config-router)#bgp router-id 4.4.4.4
Router-ISP2_ASBR(config-router)#neighbor 6.6.6.6 remote 2
Router-ISP2_ASBR(config-router)#neighbor 6.6.6.6 upda lo 0
Router-ISP2_ASBR(config-router)#no bgp default ipv4-unicast
Router-ISP2_ASBR(config-router-af)#neighbor 6.6.6.6 activate

Router-ISP2_PE(config)#router bgp 2
Router-ISP2_PE(config-router)#bgp router-id 6.6.6.6
Router-ISP2_PE(config-router)#no bgp default ipv4-unicast
Router-ISP2_PE(config-router)#neighbor 4.4.4.4 remote 2
Router-ISP2_PE(config-router)#neighbor 4.4.4.4 upda lo 0
Router-ISP2_PE(config-router)#address-family vpnv4
Router-ISP2_PE(config-router-af)#neighbor 4.4.4.4 activat
Router-ISP2_PE(config-router)#address-family ipv4 vrf A
Router-ISP2_PE(config-router-af)#redistribute ospf 1

Router-ISP2_PE(config)#ip vrf A
Router-ISP2_PE(config-vrf)#rd 1:1
Router-ISP2_PE(config-vrf)#route-target 1:1
Router-ISP2_PE(config-vrf)#int s1/2
Router-ISP2_PE(config-if)#ip vrf forwarding A
Router-ISP2_PE(config-if)#ip add 192.168.2.2 255.255.255.0
Router-ISP2_PE(config-if)#no shut
Router-ISP2_PE(config)#router ospf 1 vrf A
Router-ISP2_PE(config-router)#network 192.168.2.2 0.0.0.0 a 0
Router-ISP2_PE(config-router)#redistribute bgp 2 subnets

Router-ISP2_CE(config)#int s1/2
Router-ISP2_CE(config-if)#ip add 192.168.2.1 255.255.255.0
Router-ISP2_CE(config-if)#no shut
Router-ISP2_CE(config-if)#int lo 0
Router-ISP2_CE(config-if)#ip add 2.2.2.2 255.255.255.255
Router-ISP2_CE(config-if)#router ospf 1
Router-ISP2_CE(config-router)#router-id 2.2.2.2
Router-ISP2_CE(config-router)#network 2.2.2.2 0.0.0.0 a 0
Router-ISP2_CE(config-router)#network 192.168.2.1 0.0.0.0 a 0
这里ISP1 和ISP2的MPLS VPN路由更新和底层都完成了,开始ASBR之间问题。

从ISP1的PE收到CE的路由后,会更新给ASBR,因为它们建立VPNv4的邻居关系,但是发现ASBR上没有关于客户的路由。

mpls

这是因为默认情况下,MPBGP会拒绝本身没有创建相同VRF内容的路由,因为这里使用Open A的模型,就是使用VRF来解决的,所以把两边的VRF创建 和MPBGP建立起来。

Router-ISP1_ASBR(config)#ip vrf A
Router-ISP1_ASBR(config-vrf)#rd 1:1
Router-ISP1_ASBR(config-vrf)#route-target 1:1
Router-ISP1_ASBR(config-vrf)#int s1/3
Router-ISP1_ASBR(config-if)#ip vrf forwarding A
Router-ISP1_ASBR(config-if)#ip add 34.1.1.1 255.255.255.0
Router-ISP1_ASBR(config-if)#no shut

Router-ISP2_ASBR(config)#ip vrf A
Router-ISP2_ASBR(config-vrf)#rd 1:1
Router-ISP2_ASBR(config-vrf)#rou
Router-ISP2_ASBR(config-vrf)#route-target 1:1

Router-ISP2_ASBR(config)#ip vrf A
Router-ISP2_ASBR(config-vrf)#rd 1:1
Router-ISP2_ASBR(config-vrf)#route-target 1:1
Router-ISP2_ASBR(config)#int s1/3
Router-ISP2_ASBR(config-if)#ip vrf forwarding A
Router-ISP2_ASBR(config-if)#ip add 34.1.1.2 255.255.255.0
Router-ISP2_ASBR(config-if)#no shut

Router-ISP2_ASBR(config)#router bgp 2
Router-ISP2_ASBR(config-router)#address-family ipv4 vrf A
Router-ISP2_ASBR(config-router-af)#neighbor 34.1.1.1 remote

Router-ISP1_ASBR(config)#router bgp 1
Router-ISP1_ASBR(config-router)#address-family ipv4 vrf A
Router-ISP1_ASBR(config-router-af)#neighbor 34.1.1.2 remote 2

mpls

路由已经收到了,先测试下连通性。

mpls

通信是没问题的,主要看是怎么通的,开始标签的分析。

1、Router-ISP1_CE发送一个IP数据包 2.2.2.2出去,交给Router-ISP1_PE

2、PE收到以后查看属于这个接口的VRF的FIB表

mpls

内层标签303,就是ASBR分配的,这里我限制了标签的范围,也看想到是ASBR分配的,因为改变了下一跳。201是关于怎么去ASBR的下一跳标签。 外层201标签交给P。

mpls

查看MPBGP分配了标签用 show ip bgp vpnv4 all labels ,关于2.2.2.2的条目产生了303标签,就是内层标签,这里In label代表自己分片的 Out Label代表别人分配的。

3、P上因为是次莫跳 执行Pop动作,发送给Router-ISP1_ASBR。

4、此时ASBR收到以后,是一层标签,但是关于2.2.2.2的标签,我并没有从邻居那收到关于分配的标签,所以导致的情况就是本地会执行untagged,把所有的标签全部弹出。

mpls

5、此时Untagged,那么就是一个存IP数据包发送给对端的ASBR, 这就是Open A的解决方案特点,两个ASBR用VRF建立邻居,在Router-ISP1_ASBR传递数据给Router-ISP2_ASBR时,相当于一个PE给CE传递数据包一样,PE会执行untagged动作,以IP数据包传递给CE。

6、Router-ISP2_ASBR收到以后,因为是关联的VRF接口,所以会查看FIB表,是否压入标签

mpls

查看关于2.2.2.2的压入内存标签603,外层标签501 ,603是Router-ISP2_PE MPBGP分配的,而501是关于去往MPBGP的下一跳标签。

7、P路由器收到以后 执行Pop动作,交给下一跳PE

8、PE收到以后,执行untagged 弹出所有标签,交给下一跳S1/1

mpls

整个通信完毕了,这个模型是最简单 也是最不好的一个了,因为可以发现 在ASBR之间先是IP包传递,然后传递到对方ASBR后要压入双层标签,另外客户一多,那么VRF需要创建大量的连关联接口。 所以这对路由器性能和维护都非常高。

mpls

博客全系列文档帖子汇总

文档帖子汇总,点击查看
    博主也只是业余时间写写技术文档,请大家见谅,大家觉得不错的话,可以推荐给朋友哦,博主会努力推出更好的系列文档的。如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路博客,http://ccieh3c.com

下载整理好的PDF

↓↓↓↓↓↓↓↓↓↓花些许时间就可以下载实战文档 本地看,安装本站推荐的浏览器,用推荐的浏览器打开对应文章即可下载,觉得文章对您有帮助,记得保留该浏览器哦,下载其他博文可以继续使用,感谢大家支持。(如果对大家有些许帮助,可以每天打开浏览器访问一下本博客,博客会获取推广积分的哦,谢谢)↓↓↓↓↓↓↓↓↓↓

如果下载地址失效,请联系博主或者在下面留言,谢谢。

您使用的不是本站推荐览器浏览!(无法获取下载地址)请点击这里下载安装windows版!(没有下载地址?)

 未标题3.gif

原创与收集的内容,允许转载,转载时请务必以超链接形式标明文章原始出处,博客地址http://ccieh3c.com。

 介绍下载2.jpg
喜欢 (2)
[]
分享 (0)
网络之路
关于作者:
分享一些自己懂的技术知识点,希望对大家有帮助。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址