Mpls虚拟专用网络

简介

类似GRE,MPLS VPN也是一种隧道技术,它提供了一条虚拟通路,使经过特殊封装的数据报能够在这个通路上传输。在隧道的两端分别对数据报进行封装及解封装。MPLS VPN相比传统的VPN,可以满足更多客户的需求,MPLS VPN不仅仅是单一VPN技术,是一种由多种技术结合的综合解决方案。由于MPLS VPN是由运行商提供的服务,所以在安全和传输有更好的保障。
在这里插入图片描述

名词介绍

  • PE:服务提供商边界设备,为公网设备,搭建MPLS VPN时需要连接私网,拥有私网接口
  • CE:客户边界设备,私网的边界设备

VRF空间

  • 在图1中,PE连接了两个公司私网,私网路由都会来到PE设备上,但由于私网网段极有可能是重复的,如果都来PE设备上难以区分,而且PE是公网设备,公网是不允许出现私网路由的,故在PE上划分两个空间专门用来存放私网路由,该空间在cisco被称为VRF空间,在华为设备上称为Vpn-Instances(vpn 实例)。划分VRF空间时可以将本地的接口与VRF空间绑定,绑定后从该接口学来的路由和该接口的路由都属于VRF空间,这些路由独立于全局路由表,进行相关配置时需指定VRF空间。
    在这里插入图片描述
# 创建VRF空间
[r2]ip vpn-instance a # ip vpn-instance 空间名,空间名区分大小写
[r2-vpn-instance-a]quit
[r2]inter GigabitEthernet 
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a  # 将接口绑定到VRF空间
# 查看VRF空间
[r2]display ip routing-table vpn-instance a # 查看VRF空间路由表
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: a
         Destinations : 5        Routes : 5        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

    192.168.1.0/24  Direct  0    0           D   192.168.1.1     GigabitEthernet 0/0/0
    192.168.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet 0/0/0
  192.168.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet 0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
# 在空间中配置静态路由
[r2]ip route-static vpn-instance a 192.168.1.0 24 192.168.2.1

RD

  • 使用VPN技术连接私网后,私网间需要传递路由,PE上不同VRF空间内可能都是172.16.0.0/24网段内的路由,这些路由来到对端PE设备上,PE如何区分这些路由是一个私网的路由还是多个私网的路由,所以MPLS VPN使用RD(路由区分码)来辨别这些相同网段的路由信息。
  • RD值是由64位二进制构成,形式为:AS号:NN,NN为自定义数值,在传递路由信息时,VRF空间会将64位的RD值放在32位IP路由前缀前面,形成96位的路由前缀,形成VPNv4路由进行传递。
[r2-vpn-instance-a]route-distinguisher 1:1 # 配置该VRF空间的RD值

RD值一旦确定后不可更改,如果需要更改只能删除VRF空间重新创建。

MP-BGP

  • PE间的传递的是私网路由,如果通过IGP协议传递这些路由,会导致私网路由信息洪泛到公网中,所以PE间的路由传递使用的使BGP协议,通过BGP单播建邻,一对一传输。
  • 由于PE传递的路由时携带RD值的VPNv4路由,普通的BGP协议只能携带ipv4路由,故使用BGP V4的拓展版:MP-BGP,该协议支持多种地址族,包括IPV4,VPNV4,IPV6…
#
bgp 1
 router-id 2.2.2.2
 peer 4.4.4.4 as-number 1 
 peer 4.4.4.4 connect-interface LoopBack0
 # 配置后,MP-BGP可携带VPNv4路由
 ipv4-family vpnv4
  policy vpn-target
  peer 4.4.4.4 enable
 # 宣告某个VRF空间的路由
 ipv4-family vpn-instance a 
  network 192.168.1.0 
  import-route static
#
[r2]display bgp vpnv4 vpn-instance a routing-table #  查看空间内部BGP表

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 VPN-Instance a, Router ID 2.2.2.2:

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   192.168.1.0        0.0.0.0         0                     0      i
 *>i  192.168.2.0        4.4.4.4         0          100        0      i

RT

  • 当PE收到对端PE传来的VPNv4路由时,通过RD可以辨别这些私网路由是否属于同一个私网,但它是如何知道应该把这些路由放到本地的哪一个路由表中?MPLS VPN使用RT(路由目标值)辨别这些路由应该放到哪个VRF空间。
  • RT(VPN Target),由32位二进制构成,一个VPNv4路由可以携带多个RT值,通过BGP的社团属性来携带,RT值分为出站RT和入站RT。
  • 出站RT:PE为不同的VRF空间定义的发出路由时社团属性中携带RT值
  • 入站RT:PE收到携带一个或多个RT值的路由时,会将这些路由携带的RT值与本地所有VRF空间定义的入站RT值进行对比,只要相同,则允许该路由进入该VRF空间。
[r2-vpn-instance-a]vpn-target 1:1 export-extcommunity  # 配置出战RT
2-vpn-instance-a]vpn-target 1:1 import-extcommunity # 配置入站RT
[r2-vpn-instance-a]vpn-target 1:1 both  # 同时配置出战RT和入站RT

在这里插入图片描述

双层标签

  • 当两个私网控制层面可达后,在通信时,如一个ping包从一个私网来到另一端的PE设备上时,PE如何知道这个流量需要看哪张路由表,只有看相应的路由表才能正常通信。
  • MP-BGP会为每个VRF空间设置一个标签号,通过社团属性携带给对端PE,对端PE在于本地私网通信时,会先在流量中添加该标签,本地根据该表签选择需要查看的路由表。
    在这里插入图片描述

工作过程

PE上创建VRF空间,并设置该空间的RD和RT值,MP-BGP会自动给该空间分配一个标签号,然后将本地的私网接口与VRF空间绑定,绑定后该私网的路由会进入所绑定的VRF空间内,PE间通过MP-BGP传递路由信息,将私网路由重发布到BGP中,BGP携带VPNv4路由、出站RT值和本地VRF空间的标签号,通过MPLS将路由传递给对端PE,对端PE收到路由后根据路由所携带的出站RT值将路由放到对应的VRF空间,该空间的路由可以由IGP协议传递到私网内,对端私网访问本地私网的流量首先来到对端PE上,然后由MP-BGP添加VRF空间标签,在由MPLS添加标签,于是公网的设备基于标签转发执行次末跳,本端PE收到访问的流量首先查看到标签号,根据标签号查看对应的路由表,最后转发到对应的私网网段中。

在ensp中的配置

  • 在如下拓扑中,我们通过MPLS VPN将A公司的站点1和站点2连接,以下配置为R2上的配置。
    在这里插入图片描述
  • 配置完所有的IP地址后,首先在公网部分启动IGP协议
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 23.1.1.1 0.0.0.0 
#
  • 开启MPLS
#
mpls lsr-id 2.2.2.2
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/1
 mpls
 mpls ldp
#
  • 在PE上创建VRF空间并配置RD值域RT值
#
ip vpn-instance a
 ipv4-family
  route-distinguisher 1:1
  vpn-target 1:1 export-extcommunity
  vpn-target 1:1 import-extcommunity
#
  • 启动MP-BGP并于对端PE建立对等体关系
#
bgp 1
 router-id 2.2.2.2
 peer 4.4.4.4 as-number 1 
 peer 4.4.4.4 connect-interface LoopBack0
 #
 ipv4-family vpnv4
  peer 4.4.4.4 enable
#
  • 私网内可以允许IGP协议也可以使用静态路由,我这里使用静态路由
#
ip route-static vpn-instance a 192.168.4.0 255.255.255.0 192.168.2.1
ip route-static vpn-instance a 192.168.3.0 255.255.255.0 192.168.1.2
#

  • MP-BGP宣告路由,使PE间传递私网路由
#
bgp 1
 ipv4-family vpn-instance a 
  network 192.168.1.0 
  import-route static
#
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值