MPLS 虚拟专用网络技术原理与配置

MPLS 虚拟专用网络技术原理与配置

MPLS VPN原理与配置

VPN技术的产生及分类

最初为了实现两个站点之间跨越公网通信,并保护私网的安全,人们通常采用专线来实现私网之间的连接。由于专线固有缺陷的存在,随着复用技术的出现,一些新的共享带宽技术铸件代替了专线。
在这里插入图片描述

新的共享带宽的技术有帧中继、X.25等 ,这些技术其实是一种逻辑的隔离技术,就好像在两个站点之间跨越公共网络建立了专用的隧道,站点通过隧道实现通信。

VPN网络特点:

  • 使用共享的公共网络环境实现各私网的连接
  • 不同私有网络之间互相不可见

VPN模型 – Overlay VPN

在这里插入图片描述

Overlay VPN可以在CE设备上建立隧道,也可以在PE设备上建立隧道

在CE与CE之间建立隧道,并直接传递路由信息,路由协议数据总是在客户设备之间交换,运营商对客户网络结构一无所知。

  • 优点:不同的客户地址空间可以重叠,保密性、安全性非常好;
  • 缺点:本质是一种”静态”VPN ,无法反应网络的实时变化。并且当有新增站点时,需要手工在所有站点上建立与新增站点的连接,配置与维护复杂,不易管理。

在PE上为每一个VPN用户建立相应的隧道,路由信息在PE与PE之间传递,公网中的P设备不知道私网的路由信息。

  • 优点:客户把VPN的创建及维护完全交给运营商,保密性、安全性比较好;
  • 缺点:不同的VPN用户不能共享相同的地址空间。

VPN模型 – Peer-to-Peer VPN

1.共享PE的接入方式

在这里插入图片描述

所有VPN用户的CE设备都连到同一台PE上, PE与不同的CE之间运行不同的路由协议(或者是相同路由协议的不同进程)。由始发PE将路由发布到公网上,在接收端的PE上将路由过滤后再发给相应的CE设备。

在这里插入图片描述

2.专用PE接入模式
在这里插入图片描述

MPLS VPN解决的问题

三个问题:

1.PE设备怎么区分不同VPN客户端的相同路由?

2.冲突路由在公网传播时,接收端PE如何正确导入VPN客户路由?

3.PE设备收到IP数据包后,如何正确发送给目的VPN客户端?

本地路由冲突的问题:可以通过在同一台PE设备上为不同的VPN建立单独的路由,这样冲突的的路由就被隔离开来;

在路由传递过程中,为不同的VPN路由添加不同的标识,以示区别。这些标识可以作为BGP属性进行传递;

由于IP报文不可更改,可以在IP报文头前加一-些信息。由始发路由器打上标记,接收路由器在收到带标记的的数据包时,根据标记转发给正确的VPN。

1.在共享PE设备上使用VRF技术将重叠的路由隔离

在这里插入图片描述

  • 共享PE设备上实现重叠路由的隔离就是在PE设备上将来自每个VPN的路由放入自己对应的VPN Routing Table中,每个VPN Routing Table只记录对应VPN中学来的路由,就像是专用PE一样。这个VPN Routing Table称谓VRF ( VPN Routing and Forwardingtable ) ,即VPN路由转发表。
  • 每一个VRF都需要对应一 个VPN instance , VPN用户对应的接口绑定到VPN instance中。
  • 对于每个PE ,可以维护一个或多个VPN instance ,同时维护一个公网的路由表(也叫全局路由表) ,多个VPN instance实例相互独立且隔离。其实现VPN instance并不困难,关键在于如何在PE.上使用特定的策略规则来协调各VPN instance和全局路由表之间的关系。

PE设备在维护多个VPN Routing Table时,同时还维护一个公网的路由表

2.在网络传递过程中区分冲突路由

在这里插入图片描述

RD(Route Distinguish)路由区分符

  • RD即VPN路由标识符,由8字节组成,配置时同- -PE设备上分配给每个VPN的RD必须唯一。
  • RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为VPN-IPv4地址(即VPNv4地址)。
  • 运营商设备采用BGP协议作为承载VPN路由的协议,并将BGP协议进行了扩展,称为MP-BGP ( Multiprotocol Extensions for BGP-4 )。PE从CE接收到客户的IPv4私网路由后,将客户的私网路由添加各种标识信息后变为VPNv4路由放入MP- BGP的VPNv4路由表中,并通过MP- BGP协议在公网上传递。

3.Hub-Spoke场景中VPN路由的引入

在这里插入图片描述

RD不能解决VPN路由正确引入VPN的问题

问题的解决:

RT(Route Target):

RT的作用类似于BGP中扩展团体属性,用于路由信息的分发。它分成lmport RT和Export RT,分别用于路由信息的导入、导出策略。当从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记;在往VRF表中导入VPN路由时,只有所带
RT标记与VRF表中任意一个lmport RT相符的路由才会被导入到VRF表中。RT使得PE路由器只包含和其直接相连的VPN的路由,而不是全网所有VPN的路由,从而节省了PE路由器的资源,提高了网络拓展性。RT具有全局唯一性,并且只能被一个VPN使用。通过对Import RT和Export RT的合理配置,运营商可以构建不同拓扑类型的VPN,如重叠式VPN和Hub-and-spoke VPN。

在这里插入图片描述

如图所示,希望实现分部只能与总部通信,分部之间不能通信。分配给分部1的ExportTarget为1:1 , Import Target为3:3 ;分配给分部2的Export Target为2:2 , Import Target为3:3 ;分配给总部的Export Target为3:3 , Import Target为1:1 , 2:2 ; PE2上收到对端PE1发送的VPNv4的路由后,检查其Export Target。因为总部的Import Target为1:1,2:2 ,所以值为1:1或2:2的路由被引入总部的VRF。PE1的VPNv4的路由引入各分部VRF的过程类似。

  • RT ( Route Target )封装在BGP的扩展Community属性中,在路由传递过程中作为可选
    可传递属性进行传递。
  • RT的本质是每个VRF表达自己的路由取舍及喜好的属性,有两类VPN Target属性:
    • Export Target :本端的路由在导出VRF ,转变为VPNv4的路由时,标记该属性;
    • Import Target :对端收到路由时,检查其Export Target属性。 当此属性与PE上某个VPN实例的Import Target匹配时, PE就把路由加入到该VPN实例中。

4.解决数据转发过程中冲突路由的查找

在这里插入图片描述

方案:

  • 在数据包中增加标识信息,并且使用RD作为区分数据包所属VPN的标识符,数据转发时也携带RD信息。缺点是由于RD由8字节组成,额外增大数据包,会导致转发效率降低。
  • 借助公网中已经实施的MPL S协议建立的标签隧道,采用标签作为数据包正确转发的标识, MPLS标签支持嵌套,可以将区分数据包所属VPN的标签封装在公网标签内。

Outer MPLS Label在MPLS VPN中被称为公网标签,用于MPLS网络中转发数据。一般公网标签会在到达PE设备时已被倒数第二跳剥掉,漏出Inner Label。Inner MPLS Label在MPLS VPN中被称为私网标签,用于将数据正确发送到相应的VPN中, PE依靠Inner Label区分数据包属于哪个VPN。

MPLS VPN工作过程

MPLS VPN路由的传递过程

1.CE与PE之间的路由交换

在这里插入图片描述

2.VRF路由注入MP- BGP的过程;

在这里插入图片描述

两端PE运行MP-BGP ,通过公网将路由传递给对端

3.公网标签的分配过程;

在这里插入图片描述

4.MP-BGP路由注入VRF的过程。

在这里插入图片描述

MPLS VPN数据的转发过程

1.CE设备到PE设备的数据转发;

在这里插入图片描述

在这里插入图片描述

2.公网设备上的数据转发;

在这里插入图片描述

在这里插入图片描述

3.PE设备到CE设备的数据转发。

在这里插入图片描述

在这里插入图片描述

配置:

1.MPLS VPN配置

[r2]ip vpn-instance a    创建名为a的vrf空间
[r2-vpn-instance-a]ipv4-family    进入IPV4的配置模式下
[r2-vpn-instance-a-af-ipv4]route-distinguisher 1:1   RD值
[r2-vpn-instance-a-af-ipv4]vpn-target 1:1   RT值 必须对端的PE端一致
[r2]interface GigabitEthernet 0/0/0    进入链接CE端的接口
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a  关联到vrf空间
[r2-GigabitEthernet0/0/0]ip address 192.168.2.2 24   配置私有ip地址
注:在关联到vrf空间前不能配置接口ip,否则该地址的直连路由将进入公有路由表;
[r2]display  ip routing-table vpn-instance a    查看空间内的私有路由表
[r2]ping -vpn-instance  a  192.168.2.1   正常测试将在公有路由表中查询记录;该命令为基于VRF空间
a进行路由查询

2.PE与PE间建立MP-BPG邻居关系

[r2]bgp 2 
 [r2-bgp]router-id 2.2.2.2
先和对端建立正常BGP邻居关系,可用于传递正常的公网路由
 [r2-bgp]pe 4.4.4.4 as-number 2 
 [r2-bgp]pe 4.4.4.4 connect-interface LoopBack 0
 [r2-bgp]pe 4.4.4.4 next-hop-local     
 同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
 [r2-bgp]ipv4-family vpnv4 
 [r2-bgp-af-vpnv4]peer 4.4.4.4 enable
[r2-bgp]display bgp vpnv4 all peer  查看mp-bgp邻居关系

3.CE端与PE端交互路由

静态

  • CE端直接编写静态路由即可;
  • PE端编写到VRF空间内的静态路由
[r2]ip route-static vpn-instance  a 192.168.1.0 24 192.168.2.1
 将本地vrf空间内的静态和直连路由重发布到BGP协议传递到对端的PE
[r2]bgp 2
 [r2-bgp]ipv4 vpn-instance a
 [r2-bgp-a]import-route direct 
     [r2-bgp-a]import-route static
<r4>display  bgp vpnv4 vpn-instance a routing-table  查看mp-bpg的BGP表

OSPF

  • CE端正常启动OSPF即可
  • PE端,启动VPNV4专用的ospf协议
[r4]ospf 2 vpn-instance a
[r4-ospf-2]area  0
[r4-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.0
之后使用双向重发布,实现路由共享
[r4]bgp 2 
[r4-bgp]ipv4-family vpn-instance a
[r4-bgp-a]import-route ospf  2 

[r4]ospf 2 vpn-instance a
[r4-ospf-2]import-route bgp  

[r4]display  mpls lsp vpn-instance a  查看双层标记的内层标签号

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100134.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 电脑蓝屏出现collecting_开机蓝屏collecting

    电脑蓝屏出现collecting_开机蓝屏collecting1.问题描述如题,在用PyCharm进行Python代码调试查看具体变量时,会随机遇到一直显示collectingdata,到最后报错Timeoutwaitingforresponse,在界面中看不到变量内部的内容,如下图所示:2.解决办法在PyCharm,打开Setting界面,在如下设置项中勾选“Geventcompatible”即可,如下图所示:至此,问题得到解决。…

  • LPCTSTR 用法

    LPCTSTR 用法LPCTSTR用法

    2022年10月30日
  • 十大滤波算法总结「建议收藏」

    十大滤波算法总结「建议收藏」由于MPU6050的深入,我也学会了一些滤波算法,自己写了一些算法,收集了一些算法,供大家一起学习分享,我的代码都是经过反复试验,复制到Arduino中就能开跑的成品代码,移植到自己的程序中非常方便。而且都仔细研究了各个算法,把错误都修正了的,所以也算个小原创吧,在别人基础上的原创。1、限幅滤波法(又称程序判断滤波法)2、中位值滤波法3、算术平均滤波法4、递推平均滤波法(又称滑动平

  • Picasso闪退 Target must not be null error

    Picasso闪退 Target must not be null error

  • DialogBOX-函数功能[通俗易懂]

    DialogBOX-函数功能[通俗易懂]该宏根据对话框模板资源创建一个模态的对话框。DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。该宏使用DialogBoxParam函数。函数原型:intDialogBox(HINSTANCEhlnstance,LPCTSTRIpTemplate,HWNDhWndParent,DLGPROCIpDialogFunc);   参数:hlnst

  • pytest fixtures_pytest allure

    pytest fixtures_pytest allurefixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号