MPLS VPN 原理与配置

一.简介

  • MPLS,称之为多协议标签交换,在九十年代中期被提出来,用于解决传统IP报文依赖查表转发而产生的瓶颈,现多用于VPN技术,MPLS报头封装在数据链路层之上,网络层之下。
  • 本文为结合了华为技术和新华三技术的大成,即结合了HCIA,HCIP,HCIE Datacom和H3CNE-RS+,H3CSE-RS+,H3CIE-RS+。本文将主要介绍MPLS VPN的基本概念,博主将会在MPLS专栏中持续更新关于MPLS的进阶内容。

二.前言

  • VPN(Virtual Private Network,虚拟专用网络)指的是在一个公共网络中实现虚拟的专用网络,从而使得用户能够基于该专用网络实现通信的技术。
  • MPLS VPN也是VPN技术中的一种。需要强调的是,本文章所介绍的MPLS VPN指的是BGP/MPLS IP VPN,这是一种被业界广泛使用的三层VPN。
  • 本文章将介绍MPLS VPN的基本概念、工作过程以及典型配置方法。

三.MPLS VPN概述

1.MPLS VPN定义

  • BGP/MPLS IP VPN网络一般由运营商搭建,VPN用户购买VPN服务来实现用户网络之间的路由传递、数据互通等。
  • MPLS VPN使用BGP在运营商骨干网上发布VPN路由,使用MPLS在运营商骨干网上转发VPN报文。
  • BGP/MPLS IP VPN又被简称为MPLS VPN,是一种常见的L3VPN(Layer 3 VPN)技术。

2.MPLS VPN网络架构

  • MPLS VPN网络架构由三部分组成:CE(Customer Edge)、PE(Provider Edge)和P(Provider),其中PE和P是运营商设备,CE是MPLS VPN用户设备。
  • 站点(site)就是MPLS VPN的用户,由CE和其他用户设备构成。

  • CE:用户网络边缘设备,有接口直接与运营商网络相连。CE可以是路由器或交换机也可以是一台主机。通常情况下,CE不“感知”VPN的存在,也不需要支持MPLS。
  • PE:运营商边缘路由器,是运营商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。
  • P:运营商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN相关信息。
  • 站点的含义可以从下述几个方面理解:
    • 站点是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过运营商网络实现。
    • 站点的划分是根据设备的拓扑关系,而不是地理位置。如图所示,公司A的X省网络和公司A的Y省网络需要通过运营商的骨干网进行互联,所以它们被划分为两个站点。若在当前X省网络和Y省网络的CE之间增加一条物理专线,不需要通过运营商网络就可以互通,那么这两张网络,就是一个站点。
  • 站点与VPN的关系:
    • 对于多个连接到同一服务提供商网络的站点,通过制定策略,可以将它们划分0为不同的集合,只有属于相同集合的站点之间才能通过服务提供商网络互访,这种集合就是VPN。
    • 一个Site中的设备可以属于多个VPN,换言之,一个site可以属于多个VPN。
  • 注:也有可能出现站点为一台主机的情况,此时该主机就是CE设备。本课程仅讨论站点是一个或多个子网,用路由器或交换机作为CE的情况。

3.MPLS VPN技术架构

MPLS VPN不是单一的一种VPN技术,是多种技术结合的综合解决方案,主要包含下列技术:

  • MP-BGP:负责在PE与PE之间传递站点内的路由信息。
  • LDP:负责PE与PE之间的隧道建立。
  • VRF:负责PE的VPN用户管理。
  • 静态路由、IGP、BGP:负责PE与CE之间的路由信息交换。

4.选择MPLS VPN的优势

  • 对VPN客户而言:
    • 不“感知” VPN的存在,不需要部署和维护VPN,降低企业运维难度和成本。
    • 一般部署在运营商的MPLS VPN专网上,有一定的安全性保障。
  • 对于运营商而言:
    • MPLS在无连接的IP网络中增加了面向连接的控制平面,为IP网络增添了管理和运营的手段。
    • 支持地址空间重叠。
    • 组网方式灵活、可扩展性好。
    • 能够方便地支持MPLS TE合理调控现有网络资源,最大限度的节省运营商成本。

5.MPLS VPN常见组网

根据VPN用户的需求不同,可采用以下几种常见的组网方案:

  • Intranet:一个VPN中的所有用户形成闭合用户群,同一VPN站点之间可以互访,不同VPN站点间不能互访。
  • Extranet:适用于一个VPN用户希望提供部分本VPN的站点资源给其他VPN的用户访问的场景。
  • Hub&Spoke:如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可采用句Hub&Spoke组网方案。

四.MPLS VPN路由交互

1.MPLS VPN路由发布概述

  • 若想实现同一个VPN的不同站点之间的通信,首先需要完成不同站点之间的路由交互。在基本MPLS VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。VPN路由信息的发布过程包括三部分:
    • 本地CE到入口PE。
    • 入口PE到出口PE。
    • 出口PE到远端CE。

2.CE与PE之间的路由信息交换

  • 如图,客户X和客户Y属于不同的VPN,分别拥有两个站点,现需要实现站点间的路由信息交互。
  • CE与PE之间可以使用静态路由、OSPF、IS-IS或BGP交换路由信息。无论使用哪种路由协议,CE和PE之间交换的都是标准的IPv4路由。
  • 本地CE到入口PE和出口PE到远端CE的路由信息交换原理完全相同。

3.入口PE到出口PE路由传递1

  • VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。
  • PE在接收到CE传递来的路由之后,需要独立保存不同VPN的路由,且需要解决不同的客户使用重叠IP地址空间的问题。
  • 例如图中用户X和用户Y都使用192.168.1.0/24网段地址。

4.VRF

VRF(Virtual Routing and Forwarding,虚拟路由转发),又称VPN实例,是MPLS VPN架构中的关键技术每个VPN实例使用独立的路由转发表项,实现VPN之间的逻辑隔离。

  • 更多关于VRF的知识请查看博主出的文章 《VRF全网最详解》

5.RD

PE收到不同VPN的CE发来的IPv4地址前缀,本地根据VPN实例配置去区分这些地址前缀。但是VPN实例只是一个本地的概念,PE无法将VPN实例信息传递到对端PE,故有了RD(Route Distinguisher,路由标识符)。

  • RD长8字节,用于区分使用相同地址空间的IPv4前缀,
  • PE从CE接收到IPv4路由后,在IPv4前缀前加上RD,转换为全局唯一的VPN-IPv4路由。

  • 配置RD时,只需要指定RD的Administrator子字段和Assiqned Number子字段。
  • RD的配置格式有四种,常用的两种如下:
    • 16 bit自治系统号:32 bit用户自定义数字(例如:100:1)。
    • 32 bit lPv4地址:16 bit用户自定义数字(例如:172.1.1.1:1)。
  • RD的结构使得每个运营商可以独立地分配RD,但为了在某些应用场景下保证路由正常,必须保证RD全局唯一。

6.VPN-IPV4地址

  • VPN-IPv4地址又被称为VPNV4地址:VPNv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀。

7.入口PE到出口PE路由传递2

  • PE之间建立BGP邻居关系,并通过BGP进行路由传递。为什么采用BGP呢?
    • BGP使用TCP作为其传输层协议,提高了协议的可靠性。可以跨路由器的两个PE设备之间直接交换路由。
    • BGP拓展性强,为PE间传播VPN路由提供了便利。
    • PE之间需要传送的路由条目可能较大,BGP只发送更新的路由,提高传递路由数量的同时不占用过多链路带宽。
  • 传统的BGP-4不支持处理VPNV4路由。

8.MP-BGP

  • 为了正确处理VPN路由,MPLS VPN使用RFC2858(Multiprotocol Extensions forBGP-4)中规定的MP-BGP,即BGP-4的多协议扩展。
  • MP-BGP采用地址族来区分不同的网络层协议,既可以支持传统的IPv4地址族,又可以支持其它地址族(比如VPN-IPv4地址族、IPv6地址族等)。
  • MP-BGP新增了两种路径属性:
    • MP_REACH_NLRl:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
    • MP UNREACH_NLRI:Multiprotocol Unreachable NLRl,多协议不可达NLRI。用于撤销不可达路由。

更详细的介绍请查看本博主的文章《BGP 全网最详解》,位于BGP专栏内。

9.入口PE到出口PE路由传递3

  • MP-BGP将VPNV4传递到远端PE之后,远端PE需要将VPNv4路由导入正确的VPN实例。
  • MPLS VPN使用BGP扩展团体属性:VPN Target(也称为Route Target)来控制VPN路由信息的发布与接收。
  • 本地PE在发布VPNV4路由前附上RT属性,对端PE在接到VPNV4路由后根据RT将路由导入对应的VPN实例。

10.RT

  • 在PE上,每一个VPN实例都会与一个或多个VPN Target属性绑定,有两类VPN Target属性:
    • Export Target(ERT):本地PE从直接相连站点学到IPv4路由后,转换为VPN IPv4路由,并为这些路由添加ExportTarget属性。Export Target属性作为BGP的扩展团体属性随路由发布。
    • Import Target(IRT):PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个0VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例的路由表。

11.入口PE到出口PE路由传递4

  • PE根据VPNv4路由所携带的RT将路由导入正确的VPN实例之后,VPNv4路由的RD值剥除,将IPv4路由通告给相应的客户的CE设备。
  • 站点B和站点D的CE设备就能学习到去往各自远端站点的路由。同理,通过一系列的操作,可以实现同一用户(同一VPN)不同站点之间的路由互通。

12.入口PE到出口PE路由传递5

  • PE和P设备之间运行LDP,交换公网标签,建立PE之间的LSP隧道(公网隧道)
  • 入口PE在通过MP-BGP传递VPNV4路由时,会携带私网标签,用于区分不同VPN的数据。
  • 出口PE在接收到VPNV4路由后,需要执行私网路由交叉和隧道迭代来选择路由。

  • PE上分配私网标签的方法有如下两种:
    • 基于路由的MPLS标签分配:为VPN路由表的每一条路由分配一个标签(onelabel per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。
    • 基于VPN实例的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
  • 私网路由交叉:VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后,既不进行优选,也不检查隧道是否存在,直接将其与本地的VPN实例进行交叉。
  • 隧道迭代:为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,即该IPv4路由的下一跳有对应的LSP存在;只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。

13.MPLS VPN中的路由交互全过程

14.本节小结

  • 在MPLS VPN中,PE与CE,PE与PE之间需要进行VPN路由信息的传递。
    • PE与CE之间可以采用BGP、IGP以及静态路由方式交互IPv4路由信息。
    • PE与PE之间通过MP-BGP交互VPNv4路由信息,包含:
      • RD:与IPv4前缀组合组成VPNv4前缀。
      • RT:用于控制PE之间路由信息的接收和发布。
      • 标签:数据转发时的内层(私网)标签,在PE上用来区分不同VPN的数据。

五.MPLS报文转发

1.报文转发过程

以图中用户X的站点B访问站点A的192.168.1.0/24网段为例,报文转发过程如下:

六.MPLS VPN配置与实现

关于MPLS的实验有不少,我会另写文章发布到专栏中,请持续关注博主的MPLS专栏,里面是全网最详细的MPLS介绍。

1.配置命令:VPN实例配置

2.配置命令:MP-BGP配置

3.配置命令:PE与CE间路由配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值