HCIE之MPLS VPN练习(九)

一、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 – 优选此条

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 07:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 07:20:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 07:20:01       82 阅读
  4. Python语言-面向对象

    2024-03-21 07:20:01       91 阅读

热门阅读

  1. 为prj添加kconfig支持

    2024-03-21 07:20:01       46 阅读
  2. 力扣_动态规划4—最大正方形

    2024-03-21 07:20:01       38 阅读
  3. Redis的五种数据类型与常用命令示例

    2024-03-21 07:20:01       43 阅读
  4. k8s污点去除

    2024-03-21 07:20:01       37 阅读
  5. kafka流式处理中aggregate()方法--笔记

    2024-03-21 07:20:01       40 阅读
  6. js 实现合并重复数据

    2024-03-21 07:20:01       36 阅读
  7. rk3568 安卓11双屏异显,隐藏副屏的导航栏

    2024-03-21 07:20:01       63 阅读
  8. 51单片机蜂鸣器

    2024-03-21 07:20:01       36 阅读
  9. Github 2024-03-20 C开源项目日报 Top8

    2024-03-21 07:20:01       35 阅读
  10. rsync+inotify实现实时同步

    2024-03-21 07:20:01       30 阅读