MPLS VPN PE-CE
一、PE – CE 路由协议
1.1、静态路由 + ISIS
需求:R6 R7 loopback接口通过mpls vpn通信
R1 – R6之间使用静态路由
R4 – R7之间使用isis
1.1.1、配置步骤一:Core网搭建
核心网IGP + mpls + MP-BGP(配置省略)
Core 网底层IGP
ospf 实现R1、R2、R3、R4 loopback口通信(配置省略)
Core网底层mpls、mpls LDP(配置省略)
R1、R2、R3、R4运行mpls、mpls ldp
Core网边界运行mp-bgp建立邻居关系(配置省略)
R1、R4之间建立vpnv4的mp-bgp邻居关系
1.1.2、配置步骤二:PE-CE对接
1.1.2.1、PE建立vrf对接CE
R1
ip vpn-instance test
ipv4-family
route-distinguisher 100:1 //RD 100:1
vpn-target 200:1 //导入、导出RT = 200:1
interface GigabitEthernet0/0/0
ip binding vpn-instance test //g0/0/0口绑定进入 vrf test
ip address 16.1.1.1 255.255.255.0
R4
ip vpn-instance test
ipv4-family
route-distinguisher 100:2 //RD 100:2
vpn-target 200:1 //导入、导出RT=200:1
interface GigabitEthernet0/0/2
ip binding vpn-instance test //g0/0/2接口绑定进入vrf test
ip address 47.1.1.4 255.255.255.0
R1、R4(PE-CE)直连连通性测试:
1.1.2.2、PE-CE间使用静态路由
R1
ip route-static vpn-instance test 6.1.1.1 255.255.255.255 16.1.1.6
注释:往vrf test的路由表里写 去往54.1.1.1走下一跳16.1.1.6
R1查看vrf 静态路由,测试连通性
R6
ip route-static 7.1.1.1 32 16.1.1.1
1.1.2.3、PE-CE间使用ISIS
R4
isis 1 vpn-instance test //vrf test里面起isis
is-level level-2 //可写可不写,默认L1-L2,手工改L2
cost-style wide //改成宽度量
network-entity 49.0001.0000.0000.0004.00 //区域49.0001,router-id 0004
interface GigabitEthernet0/0/2
isis enable 1
R7
isis 1
is-level level-2
cost-style wide
network-entity 49.0001.0000.0000.0006.00
interface GigabitEthernet0/0/2
isis enable 1
interface LoopBack0
isis enable 1
R4查看isis 邻居关系和路由
1.1.3、PE双向引入
1.1.3.1、PE1 静态引入bgp
注:静态路由只需要单向引入进bgp即可
R1
bgp 100
ipv4-family vpn-instance test //将入vrf test的ipv4地址簇
import-route static //将vrf test里的静态路由引入bgp
R4查看从R1收到的6.1.1.1路由
1.1.3.2、PE2 ISIS、BGP双向引入
R4
isis 1 vpn-instance test
import-route bgp //将vrf test里的bgp路由引入进isis
R7查看是否收到去往6.1.1.1的路由
R4
ipv4-family vpn-instance test
import-route isis 1 //将vrf test里的isis路由引入bgp
R4查看bgp表,验证是否引入成功
R4将6.6.6.6变成vpnv4路由传给R1,R1本身Vrf存在去往6.6.6.6的静态路由,不用再次做引入
R4将7.1.1.1变成vpnv4路由传给R1,R1本身vrf存在去往7.1.1.1的静态路由,不用再次做引入
1.1.4、结果验证
验证R5、R6连通性:
1.2、双站点BGP(AS号相同)
需求:R6 R7 loopback接口通过mpls vpn通信
R1 – R6之间使用bgp
R4 – R7之间使用bgp
1.2.1、基础环境搭建(省略)
包含:核心网IGP + mpls、mpls ldp + MP-bgp、PE建立vrf准备对接CE
1.2.2、PE-CE bgp邻居关系建立
R1
bgp 100
ipv4-family vpn-instance test //vrf test ipv4地址簇
peer 16.1.1.6 as-number 67
R6
bgp 67
router-id 6.1.1.1
peer 16.1.1.1 as-number 100
network 6.1.1.1 255.255.255.255
R1查看bgp邻居关系
R4
bgp 100
ipv4-family vpn-instance test
peer 47.1.1.7 as-number 67
R7
bgp 67
router-id 7.1.1.1
peer 47.1.1.4 as-number 100
network 7.1.1.1 255.255.255.255
R4验证bgp邻居关系
1.2.3、CE AS号相同引发的问题
分析:因为R6和R7的AS号都是67,就会造成从R6传出的6.1.1.1路由,到达R1后会带上R6自己的AS号67,再传到R4上,R4上将路由传给R7后,R7发现收到的路由AS号为“100 67”包含自己的AS,就会因为AS-path防环不接收此路由,造成R7学不到6.1.1.1,同理R6也学不到7.1.1.1
R6、R7查看全局路由表 – 发现学不到彼此的路由,因为AS号相同防环
1.2.4、解决方法
1.2.4.1、解决方法一:PE上解决
分析:方法一(PE解决):AS替换 – PE在将路由发送给CE时,先检查路由的AS_PATH号,如果发送邻居的AS号包含在路由的AS-PATH中,则将包含的AS号替换为PE自己的AS号。
以R1 – R6链路为例,在R1上将从R7收到的7.1.1.1路由AS号替换为自己的100再传给R6
R1
bgp 100
ipv4-family vpn-instance test
peer 16.1.1.6 substitute-as //将路由发送给R5时检查As-path,决定是否替换
R6查看是否收到R7的路由,观察AS_PATH
1.2.4.2、解决方法二:CE上解决
分析:方法二(CE解决):允许接收重复AS号 - CE设备允许接收AS号重复的路由。有危险,容易造成环路,但在hub spoke的中心站点PE上必须要对CE打。
R4-R7链路为例,R7上针对R4邻居开启允许AS号重复接收路由的功能
R7
bgp 67
peer 47.1.1.4 allow-as-loop
针对R4邻居接收AS号和自己重复的路由,默认重复1次,可以后面加次数
R7查看是否收到R5路由,观察AS-PATH
验证R56、R7连通性
1.3 sham-link实现选路
1.3.1、PE – CE 之间OSPF配置(省略)
1.3.2、PE双向引入(省略)
1.3.4、启用备用链路,观察路由
R6
ospf 2
area 0.0.0.0
network 67.1.1.0 0.0.0.255
R7
ospf 2
area 0.0.0.0
network 67.1.1.0 0.0.0.255
R6再次观察尝试trace 7.1.1.1 – 发现直接走备份链路
R6查看ospf 路由表 – 发现7.1.1.1变成了1类LSA
分析:R6会从mpls vpn收到7.1.1.1的3类LSA – O的路由
从备份链路收到7.1.1.1的1类LSA – OIA的路由
Ospf默认选路原则:O > OIA
所以R6经过spf计算,将从备份链路走的1类LSA放入路由表
1.3.5、shamlink启用,观察路由
第一步:R1、R4的vrf里建立新的loopback 接口
R1
interface LoopBack1
ip binding vpn-instance test
ip address 1.1.1.1 255.255.255.255
R4
interface LoopBack1
ip binding vpn-instance test
ip address 4.4.4.4 255.255.255.255
第二步:将两个PE vrf loopback接口network进ospf
R1
bgp 100
ipv4-family vpn-instance test
network 1.1.1.1 255.255.255.255
R4
bgp 100
ipv4-family vpn-instance test
network 4.4.4.4 255.255.255.255
验证连通性
第三步:PE vrf 两个ospf 利用loopback口建立 shamlink
R1
ospf 2 vpn-instance test
area 0.0.0.0
sham-link 1.1.1.1 4.4.4.4 //使用1.1.1.1为源向4.4.4.4发起shamlink
R4
ospf 2 vpn-instance test
area 0.0.0.0
sham-link 4.4.4.4 1.1.1.1 //使用4.4.4.4为源向1.1.1.1发起shamlink
R1上查看sham link建立情况
display ospf sham-link
在R6上将g0/0/1(收7.1.1.1的路由入向接口)cost改成10
R6
interface GigabitEthernet0/0/1
ospf cost 10
R6上再查看路由表\
5.3.5.6、总结
以R6收到7.1.1.1的选路为例:
Shamlink建立前,R6从mpls vpn收到的路由为3类,直接从R6备份链路收到的路由为1类LSA,肯定优选备份链路。
Shamlink建立后:使R1、R4之间跨越核心网直接建立ospf邻居关系。好像R6 -R1 -R3 -R7是一个单区域ospf,这样R6收到的7.1.1.1路由就是1类。
R6上将备份链路收路由入向接口的cost改成10后:
R6 <- R7的7.1.1.1 cost = 0 + 10 = 10 1类LSA
R6 <- R1 <- R4 <- R7 cost = 1 + 1 + 1 = 3 1类LSA – 优选此条