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  查看双层标记的内层标签号

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

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

(0)
上一篇 2021年4月13日 下午3:19
下一篇 2021年4月13日 下午5:00


相关推荐

  • arm64(aarch64)安装centos 7.5.1804

    arm64(aarch64)安装centos 7.5.1804总体说明Arm64的centos版本自7.5.1804以后不再和7.4、7.3、7.2等之前的一样直接提供一个rootfs.tar.xz的压缩包,全部变成了ISO的安装文件,因此需要EFI来引导安装,如果Aarch64的cpu用的是uboot就只有干瞪眼了,笔者花了一翻功夫,终于找到如何从ISO中提取出centos7.5.1804文件系统的方法,方便使用uboot的用户可以使用centos7….

    2022年10月16日
    4
  • Nano Banana 玩法教程:如何生成手办图片

    Nano Banana 玩法教程:如何生成手办图片

    2026年3月13日
    2
  • qq登录钓鱼php网页,PHP+JS模仿登录钓鱼「建议收藏」

    qq登录钓鱼php网页,PHP+JS模仿登录钓鱼「建议收藏」目录介绍login.php正常登录的文件selfLogin.php自定义的登录文件data.txt记录用户输入的数据login.phpecho””;$userInfo=$_POST;if($userInfo){#code…var_dump($userInfo,’登录成功’);exit();}?>登录用户姓名:用户密码://js劫持代码window.onload…

    2022年8月24日
    13
  • iframe标签属性说明 详解[通俗易懂]

    Iframe标签详解<Iframesrc=”example.htm”width=”300″heitht=”100″></IFRAME>example.htm是被嵌入的页面,标签<IFRAME>还有一些可用的参数设置如下:marginwidth:网页中内容在表格右侧的预留宽度;例如:marginwidth=”20″,单位是pix,下…

    2022年4月17日
    150
  • windows server 2012r2安装iis_iis启动服务器

    windows server 2012r2安装iis_iis启动服务器1.进入服务器管理器,右键角色,添加角色服务,勾选灰掉的选项(这边截的图是已安装的)2.双击1中创建的internet服务器,右键添加网站,设置好网站名称、物理路径、ip地址、端口号等点击保存网站建立好之后,接着就要配置相关访问的权限、(http响应标头)跨域访问、ISAPI筛选器、请求筛选等3、配置好了网站,接下来就要配置防…

    2022年10月9日
    5
  • WXS 模块

    WXS 模块WXS 代码可以编写在 wxml 文件中的 nbsp nbsp 标签内 或以 nbsp wxs nbsp 为后缀名的文件内 模块每一个 nbsp wxs nbsp 文件和 nbsp nbsp 标签都是一个单独的模块 每个模块都有自己独立的作用域 即在一个模块里面定义的变量与函数 默认为私有的 对其他模块不可见 一个模块要想对外暴露其内部的私有变量与函数 只能通过 nbsp module exports nbsp 实现 wxs 文件在微信开发者工具里面 右

    2025年11月8日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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