百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

详解HCIE-Routing & Switching实验知识点:跨域VPN

qiyuwang 2025-02-18 13:05 7 浏览 0 评论

作者:泰克教育 颜桂灵

大家在备考HCIE-Routing & Switching实验时,会遇到一个重难点,就是跨域VPN。接下来,请跟随本文,一起来啃下跨域VPN基本原理这块知识硬骨头!

跨域VPN概述

跨域VPN-OptionA中,ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。这种方式下,两个AS的边界ASBR直接相连,ASBR同时也是各自所在自治系统的PE。两个ASBR都把对端ASBR看作自己的CE设备,将会为每一个VPN创建VPN实例,使用EBGP方式向对端发布IPv4路由。

跨域VPN-OptionB中,两个ASBR通过MP-EBGP交换它们从各自AS的PE设备接收的标签VPN-IPv4路由。

前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR就很可能阻碍网络进一步的扩展。

跨域VPN-OptionC中的方案是:ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由。

搞懂跨域VPN基本原理,大家可以带着这几个疑问去思考:为什么要这样去部署?部署的优缺点?邻居是如何建立的?路由怎么传递的?数据怎么访问的?

Option A

Option A实现基本思路

CE与PE间建立实例关系,PE与ASBR间建立VPNv4的邻居关系,ASBR间不需要部署MPLS,直接运行EBGP关系传递ipv4路由即可。

Option A优缺点

优点:配置起来简单,ASBR之间不需要运行MPLS,也不需要为跨AS做特殊配置。

缺点:可扩展性差,由于ASBR需要管理所有VPN路由,为每个VPN创建VPN实例,这将导致ASBR上的VPNv4路由数量过大。并且,由于ASBR间是普通的IP转发,要求为每个跨域的VPN使用不同的接口,从而提高了对PE设备的要求。如果跨越多个自治域,中间域必须支持VPN业务,不仅配置量大,而且对中间域影响大。在需要跨域的VPN数量比较少的情况,可以优先考虑使用路由传递。

Option A


环境部署:

1、PE1-ASBR1,PE2-ASBR2建立VPNv4邻居关系;

2、AS内部IGP互通;

3、ASBR之间建立IPv4邻居关系,接口绑定实例。

路由传递:

1、 CE1上宣告一条1.1.1.1/32的路由进入PE1实例路由表

2、 PE1将1.1.1.1/32的路由引入BGP中,并且加入VPNv4路由表(32位IPv4路由添加64位RD值1:1,生成96位VPNv4路由),并且为其添加Export RT 1:1,MP-BGP协议为其分配私网标签①,NH地址2.2.2.2,将其传递到ASBR1中对应的实例中。

3、 ASBR1匹配Import RT 1:1放入BGP VPNv4路由表中


4、 ASBR1引入实例2后(剥离RD值)以IPv4路由传递给ASBR2,ASBR2从实例3收到IPv4路由,将其加入VPNv4路由表并且为其添加Export RT 3:3,私网标签②-1027,NH地址10.1.45.4,将其传递到PE2;


5、 PE2收到后,匹配Import RT 3:3,剥离RD值引入到实例4中传递给CE2

数据访问:

1、CE2访问1.1.1.1,将数据包发给PE2

2、PE2查看实例4的FIB表发现去往1.1.1.1/24的下一跳是5.5.5.5,然后打上ASBR2为1.1.1.1分配的私网标签②,由于下一跳5.5.5.5非直连接口,于是进行隧道迭代,去往5.5.5.5下一跳是P2设备的接口,由于5.5.5.5发布在底层IGP,并且AS200内开LDP协议,于是迭代到5.5.5.5的LDP隧道中,打上LDP标签。


3、P2收到数据包查LFIB,发现ASBR2为P2设备分配3号标签,于是pop掉LDP标签发给ASBR2

4、ASBR2收到数据包后,FIB转发表,找到对应实例3,剥离私网标签2后转发给

ASBR1。

5、ASBR1收到数据包,查看实例2的FIB表,发现去往目的地1.1.1.1下一跳是2.2.2.2,于是根据目的地打上私网标签①,并且由于下一跳非直连,随后迭代到2.2.2.2的LDP隧道中,该过程同理AS200内的转发


Option B

Option B基本实现思路

PE-ASBR-ASBR-PE之间都建立VPNv4的邻居关系,使得ASBR之间不用受链路数量限制实现VPN路由的传递

优点:不受ASBR之间互连链路数目的限制。

缺点:VPN的路由信息是通过AS之间的ASBR来保存和扩散的,当VPN路由较多时,ASBR负担重,容易成为故障点。因此在MP-EBGP方案中,需要维护VPN路由信息的ASBR一般不再负责公网IP转发。

Option B


环境部署:

1、PE1-ASBR1,ASBR1-ASBR2,ASBR2-PE2建立VPNv4邻居关系;

2、AS内部IGP互通;

路由传递

1、CE1上宣告一条1.1.1.1/32的路由进入PE1实例路由表

2、 PE1将1.1.1.1/32的路由引入BGP中,并且加入VPNv4路由表(32位IPv4路由添加64位RD值1:1,生成96位VPNv4路由),并且为其添加Export RT 1:1,MP-BGP协议为其分配私网标签①-1033,NH地址2.2.2.2,将其传递给VPNv4邻居ASBR1

3、ASBR1关闭对RT值检查,将路由放入BGP VPNv4路由表中


4、ASBR1路由传递给ASBR2,传递RT值1:1,MP-BGP为其再分配一次私网标签②-1038

4、 ASBR2将路由传递给PE2,传递RT值1:1,MP-BGP为其再分配一次私网标签③-1035,ASBR2也关闭对RT值的检查放入VPNv4路由表


5、PE2收到后,匹配Import RT 1:1,剥离RD值引入到实例4中传递给CE2


数据访问:

1、 CE2访问1.1.1.1,将数据包发给PE2,FE2查看实例4的FIB表

a、 查看FIB路由表发现去往1.1.1.1的下一跳是5.5.5.5,根据目的网段1.1.1.1打上私网标签③,由于下一跳不是直连,迭代到LDP隧道中,打上LDP标签


b、 ASBR2收到数据包后,剥离私网标签③-1035,打上私网标签②-1038,发给ASBR1。

c、 ASBR1收到数据包,剥离私网标签②-1038,打上私网标签①-1033,并且由于去往PE1不是直连,故迭代到下一跳LDP隧道中,打上LDP标签

d、PE1收到数据包后,查找标签转发表,找到对应实例1,剥离私网标签①转发给CE1


Option C1

OptionC方案一的配置思路:

两个AS之间的PE设备直接运行VPNv4的邻居关系,中间设备不需要有VPN路由。


优点:VPN路由在入口PE和出口PE之间直接交换,不需要中间设备的保存和转发。VPN的路由信息只出现在PE设备上,而P和ASBR只负责报文的转发,使得中间域的设备可以不支持MPLS VPN业务,只需支持MPLS转发,ASBR设备不再成为性能瓶颈。因此跨域VPN-OptionC更适合在跨越多个AS时使用,更适合支持MPLS VPN的负载分担。

缺点:配置复杂,维护一条端到端的PE连接管理代价较大。

Option C方案一


Option C方案一


环境部署:

1、PE1与PE2建立EBGP VPNv4邻居关系;

2、AS内(如AS100中PE1、P1、ASBR1)建立IBGP邻居关系,启用MPLS LDP;

3、ASBR1和ASBR2建立EBGP IPv4邻居关系,开启MPLS,做标签交换。

路由传递:

1、CE1上宣告一条11.1.1/32的路由进入PE1;

2、PE1将1.1.1.1/32的路由引入BGP中,并加入VPNv4路由表(32位IPv4路由添加64位RD,生成96位VPNv4路由),并且为其添加Export RT 1:1,私网标签①-1037,NH地址2.2.2.2,生成关于CE1路由10.1.1.1的instance,将其(试图)传递到PE2对应的instance中;(Option C的方案设计意图,是将VPNv4路由直接在PE设备间发送,路由不在ASBR的控制平面上进行路由选择,减轻ASBR的压力);

3、传递VPNv4路由,首先需要PE1的2.2.2.2与PE2的7.7.7.7建立EBGP-VPNv4邻居关系;

a、AS100内,PE1的2.2.2.2/32地址以单播路由的方式,通过IBGP传递到ASBR1上,在ASBR1上将2.2.2.2/32宣告到BGP中,并通过路由策略(ASBR1上peer ASBR2时apply MPLS label),为2.2.2.2分配公网标签1-1037,NH地址10.1.45.4,发给ASBR2(此处加标签是为了将2.2.2.2路由及标签通过外层公网标签进行传递,这样ASBR就不需对路由进行控制,仅进行转发,减轻ASBR负担。)

b、为传递2.2.2.2/32路由,AS100与AS200进行标签交换,ASBR2通过路由策略(peer AR2 if-match MPLS label apply MPLS label)将公网标签1-1037替换为ASBR2公网标签2-1037,路由通过IBGP邻居传递给PE2。(标签本地有效-故会重复

4、AS200的PE2收到AS100的PE1的2.2.2.2/32地址,即可建立PE1-PE2的EBGP VPNv4邻居关系;

5、PE1上的VPNv4路由可以通过EBGP VPNv4的路由,核对Import RT1:1,匹配后剥离RD值,进入PE2的实例4;

6、实例4传递路由给相连的CE2,路由传递完成;

7、CE2的路由通过同样方式传递到CE1。


数据传递:

1、CE2上的数据包要发送给CE1的10.1.1.1/24网段。

2、CE2的数据包发送给PE2,进入PE2的实例2,实例2接收后,根据数据查看FIB路由表。

a、查看FIB路由表发现去往1.1.1.1/32的下一跳是2.2.2.2,查看目的地址1.1.1.1,打上私网标签1-1037,2.2.2.2不是直连路由,ASBR2为这条2.2.2.2分配了公网标签2-1037给PE2,故打上公网标签2-1037,由于去往ASBR2,也不是直连,故迭代到LDP隧道中,打上LDP标签。(这里是三层标签哦)

b、PE2中MPLS LDP建立的LSP隧道已经建立完成,查看NHLFE表,收到P2以5.5.5.5(ASBR2的lookback口)为FEC分发标签,下一跳是P2,封装由P2分发的LDP标签,NH5.5.5.5,将含三层标签的数据发往P2。

3、P2作为数据传递的下一跳,收到LDP标签,发现是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,根据FIB表和NHLFE表,下一跳是ASBR2,将含有公网标签2-1037和私网标签1-1037的数据传递给ASBR2;

4、ASBR2收到公网标签2-1037的数据,发现是自己所发,对标签进行处理,剥离公网标签2-1037的标签,换成ASBR1给ASBR2发的公网标签1-1037标签

5、 ASBR1收到公网标签1-1037的数据,发现是自己所发,对标签进行处理,剥离公网标签1-1037的标签,此处隧道都是去往2.2.2.2(PE1)的,由于AS100,LDP全开,故迭代到LDP隧道中

7、P1上收到LDP标签,发现是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,然后将含有私网标签1-1037的数据传递给PE1;

8、PE1上收到私网标签1-1037的数据,发现是自己所发,对标签进行处理,剥离私网标签1-1036,将数据转入匹配的VPN实例1;

9、VPN实例1将数据传递到实例对应的CE1,完成数据传递。


Option C方案二


Option C方案二的基本思路

跟OptionC方案一思路基本一致,不过PE-ASBR之间不需要建立IBGP,直接将路由引入底层IGP中。

Option C方案二


环境部署:

1、PE1与PE2建立EBGP VPNv4邻居关系;

2、AS内(如AS100中PE1、P1、ASBR1)建立IGP邻居关系,启用MPLS LDP;

3、ASBR1和ASBR2建立EBGP IPv4邻居关系,开启MPLS,做标签交换。

路由传递:

1、CE1上宣告一条1.1.1.1/32的路由进入PE1;

2、PE1将1.1.1.1/32的路由加入VPNv4路由表(32位IPv4路由添加64位RD,生成96位VPNv4路由),并且为其添加Export RT1:1,私网标签1-1032,NH地址2.2.2.2,,将该路由(试图)传递到PE2对应的instance中(Option C的方案设计意图,是将VPNv4路由直接在PE设备间发送,路由不在ASBR的控制平面上进行路由选择,减轻ASBR的压力);

3、传递VPNv4路由,首先需要PE1的2.2.2.2与PE2的2.2.2.2建立EBGP-VPNv4邻居关系;

a、AS100内,PE1的2.2.2.2/32地址以IGP的方式,通过底层IGP传递到ASBR1上,在ASBR1上将2.2.2.2/32宣告到BGP中,并通过路由策略(ASBR1peer对方时候apply MPLS label),为2.2.2.2分配公网标签1-1028,(此处加标签是为了将2.2.2.2路由及标签通过外层公网标签进行传递,这样ASBR就不需对路由进行控制,仅进行转发,减轻ASBR负担)。


b、为传递2.2.2.2/32路由,ASBR1-ASBR2之间通过EBGP的邻居关系传递路由

4、AS200内,通过BGP引入IGP的方式,将2.2.2.2/32以IGP单播路由方式逐跳传到PE2,PE2收到的2.2.2.2/32的路由在IGP路由表中,不在BGP路由表中;

5、AS200的PE2收到AS100的PE1的2.2.2.2/32地址,即可建立PE1-PE2的EBGP VPNv4邻居关系;

6、PE1上的VPNv4路由可以通过EBGP VPNv4的路由,核对Import RT1:1,匹配后剥离RD值、进入PE2的实例2;

7、实例2传递路由给相连的CE2,路由传递完成;

8、CE2的路由通过同样方式传递到CE1。

数据传递:

1、CE2上的数据包要发送给CE1的1.1.1.1/24网段;

2、CE2的数据包发送给PE2,根据数据查看实例4的FIB路由表:

a、查看FIB实例表发现去往1.1.1.1/32的下一跳是2.2.2.2,,进行私网标签封装,私网标签1-1032,NH2.2.2.2,由于下一跳2.2.2.2转发路径不能直达,查找隧道转发表,表中有2.2.2.2(私网FEC)的下一跳的LDP隧道,就迭代到LDP隧道中,此处LDP隧道是IGP邻居的路由建成。

b、PE2中MPLS LDP建立的LSP隧道已经建立完成,下一跳是P2,PE2将含二层标签的数据发往P2。

3、P2作为数据传递的下一跳,收到LDP标签1027,发现是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,将含有私网标签1-1032的数据传递给ASBR2;

4、数据传到ASBR2后,由于AS内是通过IGP传递路由,在ASBR2上IGP路由需要被引入BGP中,再传递给ASBR1;

a、由于ASBR1和ASBR2之间仅转发数据,不做路由控制,所需ASBR1和ASBR2间进行标签交换,而ASBR2上的路由现在被引入BGP中,且由于LDP默认只为32位IGP分发标签,而不为BGP分发标签,需要在ASBR1/ASBR2上通过手动的方式是LDP为BGP分发标签。


b、ASBR2查看LFIB表,发现隧道目的地是要去往2.2.2.2,由于ABR1为2.2.2.2分配了一个公网标签1-1028,于是ASBR2封装公网标签1-1028发给ASBR1

5、ASBR1收到公网标签1-1028的数据,发现是自己所发,对标签进行处理,剥离公网标签1-1028,查看LFIB表,发现下一跳是2.2.2.2,不可直达,就查看隧道转发表,有2.2.2.2的LDP隧道,下一跳P1,就迭代到LDP隧道中,进行转发;

6、ASBR1中MPLS LDP建立的LSP隧道已经建立完成,当ASBR1以2.2.2.2位FEC,根据NHFLE表,下一跳是P1,封装由P2分发的LDP标签,保持两层标签发往P1;

7、P1上收到LDP标签数据,发现是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,根据NHFLE表,下一跳是PE1,将含有私网标签1-1032的数据传递给PE1;

8、PE1上收到私网标签1-1032的数据,发现是自己所发,对标签进行处理,剥离私网标签,将数据转入匹配的VPN实例1;

9、VPN实例1将数据传递到实例对应的CE1,完成数据传递。

所以Option C1和Option C2的区别是什么呢?

1、C1一开始访问的时候是打了三层标签,C2是二层标签。

2、C2收到BGP IPv4路由是直接引入到IGP中,C1则是建立BGP邻居关系传递。

以上就是跨域VPN的知识点,还有一种带RR(路由反射器)的场景,希望大家看完本文后能够自己分析出来哦!

作者简介:颜桂灵,在华为授权合作伙伴(HALP)泰克教育负责路由交换和物联网方向的授课和课程开发,对华为认证有着独到的见解,深受学员好评。

相关推荐

centos7使用yum安装nginx+php7+mysql5.6

本文主要介绍安装在centos7下如何安装nginx+php+mysql的环境,centos7的版本自带安装源的版本无法实现PHP5.4以上的版本,数据库默认用的是mariadb,文章介绍的安装是如何...

Linux基础入门(VMWare中CentOS7配置yum)

上一章节,介绍了《Linux基础入门(CentOS7下通过命令行配置网络)》,本章将介绍如何配置yum源,方便后续在学习和使用的过程中,对所需工具的安装;...

CentOS 7搭建Nextcloud私有云(centos搭建云盘)

Nextcloud简介:对于私人网盘,其中最出名的就是seafile、owncloud和nextcloud。seafile是国人开发的,有免费和企业版,免费的功能有限;nextcloud是owncl...

分享一个docker镜像源地址,解决docker不能拉取的问题

自己搭建的代理,centos7只需要修改/etc/docker/daemon.json并输入以下内容:{"registry-mirrors":["https://next...

源支付5.18版全套开源源码客户端+云端+监控+协议三网免挂免输入

源支付5.18最新版协议去授权全套三端开源源码_客户端+云端+监控+协议三网免挂免输入(全套版)推荐系统为:CentOS7.6Linux系统环境:Nginx1.20.1+MySQL5.6....

centos7飞速搭建zabbix5.0并添加windows、linux监控

一、环境zabbix所在服务器系统为centos7,监控的服务器为windows2016和centos7。二、安装zabbix官方安装帮助页面...

CentOS上配置 Docker 使用代理服务器

hub.docker最近总被墙,国内大厂搞的docker镜像源代理被封被停,对于一个严重依赖一些海外项目的软件开发人员,简直没法干活了。docker要在CentOS上配置Docker使用代理服...

CentOS 7 (阿里云虚拟机) 安装 Docker

一、安装Docker1.使用root权限登录CentOS。确保yum包更新到最新sudoyumupdate...

Centos离线静默安装 oracle11g,步骤细验证成功

一、环境要求1.1.涉及工具及环境1)CentOS764位系统2)oracle安装包文件a)linux.x64_11gR2_database_1of2.zip...

Linux运维之制作指定软件包的YUM源

#挑战30天在头条写日记#关注我,不迷路,大家好,我是大王。--记录运维中遇到的故障及排查方法...

在CentOS 9 安装Nvidia显卡驱动详细操作步骤

今天给粉丝网友演示CentOS9系统下如何安装nvidia显卡驱动。·将下载好的显卡驱动放到文件夹中,这里以download为例,放入文件夹中开始对系统软件升级,是为了防止在安装显卡驱动时显示报错...

基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)

前言:由于公司业务服务器大部分都在内网环境下运行,内网环境无法直接使用yum安装升级更新软件,所以需要自建Yum源来满足目前日常工作需要。...

最新zabbix一键安装脚本(基于centos8)

一、环境准备注意:操作系统必须是centos8及以上的,因为我配的安装源是centos8的。并且必须连接互联网,脚本是基于yum安装的!!!...

CentOS7中使用yum安装Nginx的方法

1、添加源  默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址。因此可以如下执行命令添加源(...

Centos8出现Failed to download metadata for repo 'AppStream'解决

大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo'AppStre...

取消回复欢迎 发表评论: