HCIE之MPLS VPN练习(十二)

MPLS VPN HUB SPOKE

1、 思路分析

Hub spoke含义是仅存在R5 -- R7一条vpn、R6 -- R7一条vpn。R5-R6之间不存在vpn关系。思路是将R7作为hub点,中转传递两个spoke点路由,实现两个spoke点通信。

默认情况下当R3将其中一个站点的vpn路由传给R7,R7单接口不会将路由再传递回R3。所以需要在R3 -- R7之间建立2个vrf互联。实现R7的一根VRF线路专门用作路由接受,另外一根专门用作路由发送。

RT值设计:

100:100 -- 总部路由

100:200 -- 分支路由

分支:R5、R6 导出RT 100:100,导入100:200

总部:R7导出100:200,导入100:100

RD值设计:注意左侧站点的RD,一定不要与右侧站点RD相同,否则hub点的CE将路由传回R3时,R3会认为从对侧PE学到的路由和本侧CE的路由是同一条,导致选路问题。

2、基础核心网配置

2.1、IGP配置(省略)

2.2、mpls ldp配置(省略)

2.3、mp-bgp邻居关系

注意:仅在R1 -- R3、R2 -- R3上建立mpbgp邻居关系

3、PE VRF配置

3.1、hub端PE--CE 发路由接口配置(CE收)

R3

ip vpn-instance in

ipv4-family

route-distinguisher 100:57

vpn-target 100:200 import-extcommunity //导入分支的路由

interface GigabitEthernet0/0/1.37 //创建子接口

dot1q termination vid 37 //封装vlan37

ip binding vpn-instance in //接口绑定进入vrf in

ip address 37.1.1.3 255.255.255.0

arp broadcast enable //开启arp广播,很重要!

3.2、hub端PE-CE 收路由接口配置(CE发)

R3

ip vpn-instance out

ipv4-family

route-distinguisher 100:67

vpn-target 100:100 export-extcommunity //导出总部和分支的路由

interface GigabitEthernet0/0/1.137

dot1q termination vid 137

ip binding vpn-instance out

ip address 137.1.1.3 255.255.255.0

arp broadcast enable

3.3、Spoke端 PE 接口配置

R1

ip vpn-instance 15

ipv4-family

route-distinguisher 100:51

vpn-target 100:200 export-extcommunity //导出分支的路由

vpn-target 100:100 import-extcommunity //导入总部的路由

interface GigabitEthernet0/0/2

ip binding vpn-instance 15

ip address 15.1.1.1 255.255.255.0

R2

ip vpn-instance 26

ipv4-family

route-distinguisher 100:62

vpn-target 100:200 export-extcommunity

vpn-target 100:100 import-extcommunity

interface GigabitEthernet0/0/1

ip binding vpn-instance 26

ip address 26.1.1.2 255.255.255.0

4、CE接口配置

4.1、hub端CE接收路由接口配置

注意:hub端的CE仅使用子接口将物理接口分成两个接口即可(防止路由不收发),不用起VRF,如果起了vrf 就变成MCE组网了
R7

interface GigabitEthernet0/0/1.37

dot1q termination vid 37

ip address 37.1.1.7 255.255.255.0

arp broadcast enable

interface LoopBack0

ip address 7.7.7.7 255.255.255.255

4.2、hub端CE发送路由接口配置

R7

interface GigabitEthernet0/0/1.137

dot1q termination vid 137

ip address 137.1.1.7 255.255.255.0

arp broadcast enable

4.3、spoke端CE接口配置(省略)

5、PE-CE 各协议情况

5.1、情况一:

hub端、spoke端全bgp
注:Hub端PE在收Hub CE路由时要:allow-as-loop

5.1.1、hub PE、CE BGP配置

R3

bgp 100

ipv4-family vpn-instance in

peer 37.1.1.7 as-number 7

ipv4-family vpn-instance out

peer 137.1.1.7 as-number 7

peer 137.1.1.7 allow-as-loop //允许接受总部发过来包含自己AS号的路由,很重要
R7

bgp 7

network 7.7.7.7 255.255.255.255

peer 37.1.1.3 as-number 100

peer 137.1.1.3 as-number 100

network 7.7.7.7 255.255.255.255

5.1.2、spoke PE、CE配置

R1

bgp 100

ipv4-family vpn-instance 15

peer 15.1.1.5 as-number 5

R2

bgp 100

ipv4-family vpn-instance 26

peer 26.1.1.6 as-number 6

R5

bgp 5

router-id 5.5.5.5

peer 15.1.1.1 as-number 100

network 5.5.5.5 255.255.255.255

R6

bgp 6

router-id 6.6.6.6

peer 26.1.1.2 as-number 100

network 6.6.6.6 255.255.255.255

5.1.3、观察路由

针对R5的5.1.1.1路由传给R6为例:

R1通过bgp ipv4路由学到5.1.1.1,转换成vpnv4继续传给R3

R3通过vpnv4路由学到5.1.1.1,转换成ipv4,放进vrf in

dis bgp vpnv4 route-distinguisher 100:51 routing-table //查 vpnv4 bgp表

dis bgp vpnv4 vpn-instance in routing-table //查vrf in bgp表

R7通过g0/0/1.37接口学到ipv4 bgp路由,通过g0/0/1.137传回R3
R3通过vrf out将5.1.1.1,转换成vpnv4路由继续传递 -- 发现会传给R2,但也会传回R1,但R1没有接收

R3:display bgp vpnv4 all route

R1从两个方向学到去往5.1.1.1的路由,因为AS_Path选择正确的路由。

从R5直接学到:AS_Path = 5

从R3绕圈学到:AS_Path = 7 100 5

R2正常收到R3传递的5.1.1.1vpnv4路由,放进vrf继续传递给R6

R6查看路由表,学到了5.1.1.1的路由(反向同理)

5.1.4、连通性验证

R5访问R6、R7测试连通性

R5 trace R6路径

5.2、情况二

hub端bgp、spoke端IGP

注:Hub端PE在收Hub CE路由时要:allow-as-loop

5.2.1、hub PE、CE路由协议配置

R3

bgp 100

ipv4-family vpn-instance in

peer 37.1.1.7 as-number 7

ipv4-family vpn-instance out

peer 137.1.1.7 as-number 7

peer 137.1.1.7 allow-as-loop //允许接收包含自己AS号的bgp路由

R7

bgp 7

router-id 7.1.1.1

peer 37.1.1.3 as-number 100

peer 137.1.1.3 as-number 100

network 7.1.1.1 255.255.255.255

5.2.2、spoke PE、CE路由协议配置
R1

ospf 1 router-id 1.1.1.1 vpn-instance 15

area 0.0.0.0

network 15.1.1.0 0.0.0.255

R2

ospf 1 router-id 2.2.2.2 vpn-instance 26

area 0.0.0.0

network 26.1.1.0 0.0.0.255

R5

ospf 1 router-id 5.1.1.1

area 0.0.0.0

network 5.1.1.0 0.0.0.255

network 15.1.1.0 0.0.0.255

R6

ospf 1 router-id 6.1.1.1

area 0.0.0.0

network 6.1.1.0 0.0.0.255

network 26.1.1.0 0.0.0.255

5.2.3、spoke端PE双向引入

R1

ospf 1 router-id 1.1.1.1 vpn-instance 15

import-route bgp

bgp 100

ipv4-family vpn-instance 15

import-route ospf 1

R2

ospf 1 router-id 2.2.2.2 vpn-instance 26

import-route bgp

bgp 100

ipv4-family vpn-instance 26

import-route ospf 1

5.2.3、观察路由

以R5的loopback口5.1.1.1路由传递给R6为例

R5首先通过1类LSA将路由传递给R1

R1通过vrf ospf学习到1类lsa,引入至bgp变成vpnv4路由传递给R3

R3收到R1发送的5.1.1.1的vpnv4路由,转换成ipv4 bgp路由传递给R7

dis bgp vpnv4 route-distinguisher 100:51 routing-table

dis bgp vpnv4 vpn-instance in routing-table 5.1.1.1

R7从g0/0/1.37收到路由后,又自动从g0/0/1.137传出给R3
R3的vrf out收到5.1.1.1的路由后会转换成vpnv4路由同时传递给R1和R2

dis bgp vpnv4 route-distinguisher 100:67 routing-table

dis bgp vpnv4 route-distinguisher 100:67 routing-table 5.1.1.1

R1会同时从R5、R3方向两个方向收到去往5.1.1.1的路由

从R5收的是ospf路由 -- 优先级 = 10(1类LSA) -- 选择正确的路

从R3收的是bgp路由 -- 优先级 = 255

R2收到从R3方向学的5.1.1.1的路由,会将路由转换成ipv4 bgp路由引入ospf,并作为ospf 5类LSA传递给R6

dis bgp vpnv4 all routing-table 5.1.1.1、display ospf lsdb

R6通过5类lsa形成去往5.1.1.1路由(反向同理)

5.2.4、连通性验证

R5分别访问R6和R7的loopback接口

R5 trace R6查看路径

5.3、情况三

hub端OSPF、spoke端OSPF(Hub端单进程、双进程)
注:Hub端PE在收Hub CE路由时:3类 关闭3类 ospf DN=1 检查
5类关闭5类ospf DN=1 + 修改route-tag

5.3.1、Hub端OSPF单进程

5.3.1.1、hub PE、CE配置

R3

ospf 2 router-id 3.1.1.1 vpn-instance in //收路由接口起ospf

area 0.0.0.0

network 37.1.1.0 0.0.0.255

ospf 2 router-id 3.1.1.1 vpn-instance out //发路由接口起ospf

area 0.0.0.0

network 137.1.1.0 0.0.0.255

注:hub端的PE必须起双进程,两个vpn不能起同一个ospf进程

R7

ospf 2 router-id 7.1.1.1 //hub段CE ospf单进程

area 0.0.0.0

network 7.1.1.0 0.0.0.255

network 37.1.1.0 0.0.0.255 //收路由接口

network 137.1.1.0 0.0.0.255 //发路由接口

5.3.1.2、spoke PE、CE配置

R1

ospf 2 router-id 1.1.1.1 vpn-instance 15

area 0.0.0.0

network 15.1.1.0 0.0.0.255
R2

ospf 2 router-id 2.1.1.1 vpn-instance 26

area 0.0.0.0

network 26.1.1.0 0.0.0.255

R5

ospf 1 router-id 5.1.1.1

area 0.0.0.0

network 5.1.1.0 0.0.0.255

network 15.1.1.0 0.0.0.255
R6

ospf 1 router-id 6.1.1.1

area 0.0.0.0

network 6.1.1.0 0.0.0.255

network 26.1.1.0 0.0.0.255

5.3.1.3、hub、Spoke端PE双向引入

R3

ospf 2 router-id 3.1.1.1 vpn-instance in //上面的vrf(中心CE收路由)

import-route bgp //将bgp引入上面vrf里传递给CE

bgp 100

ipv4-family vpn-instance out //下面的vrf(中心CE发路由)

import-route ospf 3 //将hub CE和分支的ospf路由引入bgp

ospf 3 route-id 3.1.1.1 vpn-instance out

dn-bit-check disable summary //关闭R3下面vrf的3类LSA DN置位检查

注:ospf PE双vrf 连接hub CE点,必须关闭DN bit位检查,否则hub点传回来的路由携带DN =1 的属性默认PE不接收

R1

ospf 2 router-id 1.1.1.1 vpn-instance 15

import-route bgp

bgp 100

ipv4-family vpn-instance 15

import-route ospf 2
R2

bgp 100

ipv4-family vpn-instance 26

import-route ospf 2

ospf 2 router-id 2.1.1.1 vpn-instance 26

import-route bgp

5.3.1.4、观察路由

以R5的5.1.1.1路由传递给R6为例

R5通过ospf以1类lsa将自身loopback口路由传递给R1

R1将vrf 收到的ospf路由引入bgp ipv4,转换成vpnv4路由的传递给R3

R3将收到的vpnv4路由导入vrf in,引入ospf作为3类lsa(domain id相同)传递给R7 g0/0/1.37

R7接受和发送接口属于同一个ospf进程,所以不用做引入,R7自动将g0/0/1.37接口收到的路由通过g0/0/1.13.7传递回R3

R3下面vrf out收到R7发过来的5.1.1.1的3类LSA(DN=1),默认不接受,需要开启忽略3类lsa DN置位功能。R3就会接受,并且将路由引入bgp转换成vpnv4路由继续传递给R1和R2

dis ospf lsdb summary 5.5.5.5 originate-router 37.1.1.3 //查看3类lsa dn = 1

dis bgp vpnv4 route-distinguisher 100:67 routing-table 5.5.5.5

R1从两个方向学到去往5.1.1.1的路由

R1从R5直接学到去往5.1.1.1的路由 -- 优先级 10 - 优选正确这条,无环

R1从R3绕圈学到去往5.1.1.1的路由 -- 优先级 255

R2正常从R3收到5.1.1.1的vpnv4路由,并转换成ipv4 bgp 再引入ospf作为3类LSA传递给R6 (因为还是hub点也是ospf,且三个站点domain id 相同,中间是super backbone,三个PE都执行ABR功能)

R6查看收到的3类lsa 5.1.1.1

5.3.1.5、连通性验证

R5访问R6、R7验证连通性

R5 tracer R6查看访问路径

5.3.2、Hub端OSPF双进程

5.3.2.1、hub PE、CE配置

Hub PE配置与上面CE单进程配置相同(省略)

Hub CE配置:
R7

ospf 2 router-id 7.1.1.1

area 0.0.0.0

network 37.1.1.0 0.0.0.255

ospf 3 router-id 7.1.1.1

area 0.0.0.0

network 7.1.1.0 0.0.0.255 //将自己loopback 激活进ospf -- 1类lsa

network 137.1.1.0 0.0.0.255

import-route ospf 3 //将上面vrf in收到的分支路由引入下面vrf ospf -- 5类lsa

5.3.2.2、spoke PE、CE配置(与上面实验相同,省略)
5.3.2.3、观察路由(与上面实验相同)

与上面单进程ospf基本相同,唯一的区别就是hub CE(R7)上做了引入动作,将R7收到的5.1.1.1变成了5类lsa重新从R7传递给R6,5类经过对端PE ABR(R2)传递给R6还是5类lsa

问题:hub点CE(R7)因为是双进程ospf,需要做引入,将5.1.1.1的路由作为5类lsa传递回R3,R3不关闭DN、route-tag检查能否学习到路由?
答案:可以。因为R7没运行vrf,不存在DN和route tag防环的问题

5.3.2.4、连通性验证

5.4、情况四(有环路)

Hub端IGP、Spoke端bgp(有问题) - spoke端PE自然产生环路

5.4.1、hub端PE、CE配置

R3

ospf 2 router-id 3.1.1.1 vpn-instance in

area 0.0.0.0

network 37.1.1.0 0.0.0.255

ospf 3 router-id 3.1.1.1 vpn-instance out

area 0.0.0.0

network 137.1.1.0 0.0.0.255

R7

ospf 2 router-id 7.1.1.1

area 0.0.0.0

network 7.1.1.0 0.0.0.255

network 37.1.1.0 0.0.0.255

network 137.1.1.0 0.0.0.255

5.4.2、spoke端PE、CE配置
R1

bgp 100

ipv4-family vpn-instance 15

peer 15.1.1.5 as-number 5

R2

bgp 100

ipv4-family vpn-instance 26

peer 26.1.1.6 as-number 6
R5

bgp 5

router-id 5.1.1.1

peer 15.1.1.1 as-number 100

network 5.1.1.1 255.255.255.255

R6

bgp 6

router-id 6.1.1.1

peer 26.1.1.2 as-number 100

network 6.1.1.1 255.255.255.255

5.3.3、hub端PE双向引入
R3

ospf 2 router-id 3.1.1.1 vpn-instance in

import-route bgp //bgp路由引入vrf in 传给R7

bgp 100

ipv4-family vpn-instance out

import-route ospf 3

ospf 3 router-id 3.1.1.1 vpn-instance out

dn-bit-check disable ase //下面vrf ospf 3 接受dn=1的5类lsa

route-tag 200 //修改ospf 3 接受,发送的5类lsa route tag=200 ≠ 自己AS号100

注:因为R3产生的是5类lsa给R7(分支和总部不是都是ospf)

DN=1检查关闭

route-tag修改≠自己的AS号

这两步操作必须都做,才可以实现R3的vrf out 路由表里存在R7传回来的5.5.5.5的路由

5.4.4、环路现象

以R5的5.1.1.1路由传递给R6为例

R1收到R5发送的ipv4 bgp路由,转换成vpnv4路由传递给R3

R3收到5.1.1.1的vpnv4路由,转换成ipv4 bgp路由,通过ospf传递5类lsa给R7(vrf 出去 ospf DN = 1)

R7通过ospf收到5类lsa,放进自己路由表,同时传回给R3

R3收到5类lsa dn =1 ,由于关闭5类lsa dn检查、修改了route tag,放进vrf out路由表,引入bgp变成ipv4 bgp路由,再自动转换成vpnv4路由分别传递给R1、R2


R1 分别从R5和R3两个方向学到5.1.1.1的路由

R1从R5方向学到的5.1.1.1 bgp路由 AS_Path = 5

从R3方向学到的5.1.1.1 bgp路由 AS_Path = 没有 -- 选择环路路由

display bgp vpnv4 vpn-instance 15 routing-table 5.1.1.1

分析:R1一旦选择从R3去往5.1.1.1,本来从R5直接去5.1.1.1的路由就被顶出路由表,就不能作为vpnv4路由传递给R3 -- 路由震荡、环路

R5访问R6 -- 不通

5.4.5、解决方法

R1上去往5.1.1.1 的路由不能被自己传给R3再穿回来的路由顶掉。

在R1上修改从R5方向学到的路由的Preval值(改大),让R1去往5.5.5.5始终保持从R5走。
R1

bgp 100

ipv4-family vpn-instance 15

peer 15.1.1.5 preferred-value 100 //将从R5学到的路由preval改大,优先从R5走

R1查看bgp表变化 -- R1选择直接从R5 去5.1.1.1,然后将路由传递给R5完成路由传递

dis bgp vpnv4 vpn-instance 15 routing-table 5.1.1.1

R2一样需要修改去往6.6.6.6的路由优先从R6走(同理修改preval)
R2

bgp 100

ipv4-family vpn-instance 26

peer 26.1.1.6 preferred-value 100

5.4.5、连通性验证

R5测试访问R6、R7连通性

R5 tracer R6查看访问路径

三、mpls 域间vpn

IE考试不考,有兴趣可以自行了解

相关推荐
网安墨雨16 分钟前
常用网络协议
网络·网络协议
Tlzns18 分钟前
Linux网络——UDP的运用
linux·网络·udp
黑客老陈39 分钟前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
HSunR2 小时前
计算机网络
网络·计算机网络
ZoeLandia2 小时前
WebSocket | 背景 概念 原理 使用 优缺点及适用场景
网络·websocket·网络协议
南七澄江2 小时前
各种网站(学习资源及其他)
开发语言·网络·python·深度学习·学习·机器学习·ai
gywl9 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
WTT00119 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
杨德杰10 小时前
QT网络(一):主机信息查询
网络·qt
007php00711 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程