一、MPLS + 虚拟专用网络 的技术原理

虚拟专用网络的特点:

            (1)使用共享的公共网络环境实现各私网的连接;

            (2)不同的私有网络之间相互不可见。

相关设备的名称及作用:

mpls option b配置 mpls ce配置_R3

       CE:用户网络边缘设备,有接口直接与服务提供商SP网络相连。CE可以是SVN(是一个开放源代码的版本控制系统)或交换机,也可以是一台主机。通常情况下,CE“感知”不到虚拟专用网络的存在,也不需要支持MPLS。

PE:服务提供商边缘设备,是服务提供商网络的边缘设备,与CE直接相连在MPLS网络中,对虚拟专用网络的所有处理都发生在PE上。

P:服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护虚拟专用网络的信息。

站点:

用户设备所在的区域,称为一个站点(Site),站点是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过运营商网络实现。

》》》虚拟专用网络 模型-1——Overlay 虚拟专用网络

mpls option b配置 mpls ce配置_运营商_02

Overlay 虚拟专用网络 的特点:  

(1)客户路由协议总是在客户设备之间交换,而运营商对客户网络结构一无所知。

(2)典型的协议:二层——帧中继;三层——GRE与IPSec;应用层——SSL 虚拟专用网络。

Overlay 虚拟专用网络 可以在CE设备上建立隧道,也可以在PE设备上建立隧道:

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

优点:不同的客户地址空间可以重叠,保密性、安全性非常好;

缺点:本质是一种“静态”虚拟专用网络,无法反应网络的实时变化。并且当有新增站点时,需要手工在所有站点上建立与新增站点的连接,配置与维护复杂,不易管理;需要用户自己创建并维护虚拟专用网络,通常用户不愿意,也没有相应的能力。。。。

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

优点:客户把虚拟专用网络的创建及维护完全交给运营商,保密性、安全性比较好;

缺点:不同的虚拟专用网络的用户不能共享相同的地址空间,即使可以共享,则PE与CE之间的地址、tunnel之间的地址一定不能相同,并且必须使用大量的ACL和策略路由。在实际中不具备可行性。

》》》Peer-to-Peer 虚拟专用网络(未实现的技术~~~)

Peer-to-Peer是指CE-to-PE,也就是要在CE与PE之间交换私网路由信息,然后由PE将这些私网路由在P-Network中传播(P-Network上肯定是运行了一种动态路由协议),这样这些私网路由会自动的传播到其他的PE上。

这种虚拟专用网络由于私网路由会泄露到公网上,所以必须严格的通过路由来控制,即:要确保同一个虚拟专用网络的CE路由器上只能有本虚拟专用网络的路由。 所以,通常CE与PE之间运行的路由协议,与P-Network上运行的路由协议是不同的,即使相同,也要有很好的路由过滤和选择的机制

>>>>>>共享PE的接入方式:

mpls option b配置 mpls ce配置_虚拟专用网络_03

特点:

  在CE设备与PE设备之间交换私网信息,由PE设备将私网信息在运营商网络中传播,实现了虚拟专用网络部署及路由发布的动态性。         解决了Overlay 虚拟专用网络的“静态”性质不太适合大规模应用和部署的问题。

缺点:

为了防止连接在同一台PE上的不同CE之间互通,必须在PE上配置大量的ACL,但这种操作也增加了管理PE设备的负担;            虚拟专用网络的客户之间如果出现地址重叠问题,PE设备无法识别重叠的地址。

>>>>>>专用PE接入方式: 

mpls option b配置 mpls ce配置_mpls option b配置_04

特点:运营商为每一个虚拟专用网络 单独准备一台PE设备,PE和CE之间可以运行任意的路由协议,与其他虚拟专用网络无关。

优点:无需配置任何的ACL,配置复杂度、管理难度有所降低。

缺点:每新增一个虚拟专用网络站点都需要新增一台专用的PE设备,代价过于昂贵。而且没有解决虚拟专用网络 客户之间地址空间重叠的问题

>>>>共同的问题: 

1、私有网络发布到整个公网上,安全性极差(动态隧道问题);

2、地址空间不能重叠问题;

>>>解决方法:

(1)动态隧道问题——MPLS技术:MPLS中的LSP正是一种天然的隧道,而且这种隧道的建立是基于LDP协议,又恰恰是一种动态的标签生成协议。

(2)址冲突问题——BGP协议(具有良好的可扩展性,基于TLV元素的):

~.~网络中虚拟专用网络的路由数目可能非常大,BGP是唯一支持大量路由的路由协议

~.~BGP是基于TCP来建立连接,可以在不直接相连的路由器间交换信息,这使得P路由器中无须包含虚拟专用网络的路由信息;

~.~BGP可以运载附加在路由后的任何信息,作为可选的BGP属性,任何不了解这些属性的BGP路由器都将透明的转发它们,这使在PE路由器间传播路由非常简单。

若两个客户的虚拟专用网络 存在相同的地址空间,传统虚拟专用网络的网络结构中的设备无法区分客户重叠的路由信息;但是MPLS +虚拟专用网络 的出现解决了传统虚拟专用网络技术的固有缺陷——地址空间的重叠问题。

>>>>>>地址空间重叠问题:

mpls option b配置 mpls ce配置_mpls option b配置_05

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

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

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

本地路由冲突问题解决方法:

~.~将专用PE设备与P设备的功能在一台PE设备上完成。

~.~共享PE设备上实现重叠路由的隔离——就是在PE设备上将来自每个V~P~N的路由放入自己对应的虚拟专用网络的Routing Table中,每个虚拟专用网络的 Routing Table只记录对应虚拟专用网络中学来的路由,就像是专用PE一样。这个虚拟专用网络 Routing Table称谓VRF(虚拟专用网络 Routing and Forwarding table),即虚拟专用网络路由转发表

每一个VRF都需要对应一个虚拟专用网络 instance,虚拟专用网络 用户对应的接口绑定到虚拟专用网络 instance中。

对于每个PE,可以维护一个或多个虚拟专用网络 instance ,同时维护一个公网的路由表(也叫全局路由表),多个虚拟专用网络 instance实例相互独立且隔离。

>>>>>>虚拟专用网络-instance:虚拟专用网络 路由转发实例

每一个虚拟专用网络-instance可以看作虚拟的路由器,好像是一台专用的PE设备。

该虚拟路由器包括如下元素:

~.~一张独立的路由表,当然也包括了独立的地址空间。

~.~一组归属于这个虚拟专用网络-instance的接口的集合。

~.~一组只用于本虚拟专用网络-instance的路由协议。

对于每个PE,可以维护一个或多个虚拟专用网络-instance,同时维护一个公网的路由表(也叫全局路由表),多个虚拟专用网络-instance实例相互分离独立。

>>>>>>网络传递中区分冲突路由:

将虚拟专用网络的路由发布到全局路由表之前,使用一个全局唯一的标识和路由绑定,以区分冲突的私网路由。这个标识被称为RD(Route Distinguisher)虚拟专用网络 路由标识符。

>>>>>>RD——虚拟专用网络 路由标识符:

~.~由8字节组成,配置时同一PE设备上分配给每个虚拟专用网络的RD必须唯一。

~.~RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为虚拟专用网络-IPv4地址(即虚拟专用网络v4地址)

  运营商设备采用BGP协议作为承载虚拟专用网络 路由的协议,并将BGP协议进行了扩展,称为MP-BGP(Multiprotocol Extensions for BGP-4)。PE从CE接收到客户的IPv4私网路由后,将客户的私网路由添加各种标识信息后变为虚拟专用网络v4路由放入MP-BGP的虚拟专用网络v4路由表中,并通过MP-BGP协议在公网上传递。

>>>>>>路由引入问题:

RT封装在BGP的扩展Community属性中,在路由传递过程中作为可选可传递属性进行传递。

RT的本质是每个VRF表达自己的路由取舍及喜好的属性,有两类虚拟专用网络 Target属性:

                   Export Target:本端的路由在导出VRF,转变为虚拟专用网络v4的路由时,标记该属性;

                   Import Target:对端收到路由时,检查其Export Target属性。当此属性与PE上某个虚拟专用网络 实例的Import Target匹配时,PE就把路由加入到该虚拟专用网络 实例中。

使用RT实现本端与对端的路由正确引入虚拟专用网络,原则如下:

     本端的Export Target = 对端的Import Target,本端的Import Target = 对端的Export Target。

数据转发过程中冲突路由的查找:标签嵌套方法

借助公网中已经实施的MPLS协议建立的标签隧道,采用标签作为数据包正确转发的标识,MPLS标签支持嵌套,可以将区分数据包所属虚拟专用网络 的标签封装在公网标签内。

(另外一种方法:在数据包中增加标识信息,并且使用RD作为区分数据包所属虚拟专用网络的标识符,数据转发时也携带RD信息。缺点是由于RD由8字节组成,额外增大数据包,会导致转发效率降低。)

mpls option b配置 mpls ce配置_R3_06

         Outer MPLS Label:在MPLS+ 虚拟专用网络 中被称为公网标签用于MPLS网络中转发数据。一般公网标签会在到达PE设备时已被倒数第二跳剥掉,漏出Inner Label。

  Inner MPLS Label:在MPLS+ 虚拟专用网络 中被称为私网标签用于将数据正确发送到相应的虚拟专用网络中PE依靠Inner Label区分数据包属于哪个虚拟专用网络。

》》》》》》MPLS+ 虚拟专用网络——工作过程:

MPLS+ 虚拟专用网络——路由的传递过程:

  阶段1:CE与PE之间的路由交换:PE与CE之间可以通过静态路由协议交换路由信息,也可以通过动态路由协议(如:RIP,OSPF,ISIS,BGP等)交换路由信息。

  阶段2:VRF路由注入MP-BGP的过程:VRF中的IPv4路由被添加上RD,RT与标签等信息成为虚拟专用网络-IPv4的路由放入到MP-BGP的路由表中,并通过MP-BGP协议在PE设备之间交换路由信息。

mpls option b配置 mpls ce配置_运营商_07

 阶段3:公网标签的分配过程:(运营商的骨干网络中的PE设备与P设备,需要运行IGP协议使运营商网络中的路由可达)

   MPLS协议在运营商网络分配公网标签,建立标签隧道,实现私网数据在公网上的转发。

        PE之间运行的MP-BGP协议为虚拟专用网络 路由分配私网标签,PE设备根据私网标签将数据正确转发给相应的虚拟专用网络

  阶段4:MP-BGP路由注入VRF的过程:PE2在接收到PE1发送的虚拟专用网络v4路由后将检查路由的扩展团体属性,将携带的Export Target值与本端虚拟专用网络的Import Target值比较,数值相同则将路由引入虚拟专用网络的路由表,实现路由的正确导入。

》》》》》》MPLS+ 虚拟专用网络——数据的转发过程:

    阶段1:CE设备到PE设备的数据转发:

mpls option b配置 mpls ce配置_虚拟专用网络_08

数据从CE4转发给PE2,在PE2设备上需要查找虚拟专用网络2的路由表,确定数据进行标签转发后,再查找下一跳与出接口,根据分配的标签进行MPLS的封装。

    阶段2:公网设备上的数据转发:

mpls option b配置 mpls ce配置_R3_09

 数据包在公网上转发时,通过MPLS协议已建立好的标签隧道将数据报文转发到PE1。转发过程中,只改变公网标签。

    阶段3:PE设备到CE设备的数据转发:

mpls option b配置 mpls ce配置_mpls option b配置_10

PE1收到剥离公网标签的数据包后,根据私网标签查找转发数据包的下一跳,将数据包正确发送给相应虚拟专用网络 的客户。

》》》》》》MPLS+ 虚拟专用网络 的配置:

配置MPLS+ 虚拟专用网络 需要从以下两个方面考虑:

(1)用户侧设备的配置: 主要考虑CE与PE之间使用何种协议将私网路由传递到运营商网络;

(2)运营商骨干网络的配置,运营商骨干网络的配置需要从以下三个方面考虑:

          ~.~运营商骨干网络IGP协议的配置:保证运营商网络路由可达;

        ~.~虚拟专用网络 的配置:将私网路由通过运营商设备封装并传递;

              ~.~MP-BGP与MPLS协议的配置:实现私网路由的传递与标签隧道的建立。

配置过程步骤:

(1)先建立BGP邻居;

(2)进入到 虚拟专用网络v4视图下,建立MP-BGP邻居关系;

(3)然后进入到实例下,建立CE-PE之间的实例邻居;

                   (注意:要在虚拟专用网络 实例视图下,指定与CE设备间的邻居)

(4)配置MPLS:每个设备的LSR-ID要互联互通 ;连接CE设备的接口不需要使能MPLS功能;

                           先全局使能MPLS和MPLS LDP功能,再在接口下使能MPLS、MPLS LDP功能;

》》》》》》实验配置:

实验要求:

某公司有两个网络,分别是网络A与网络B,该公司希望两个网络内的员工能通过私网路由相互访问。
 该公司希望在网络边缘设备上使用BGP协议将私网路由发送给运营商网络。运营商通过MP-BGP实现
 私网路由在公共网络上的传递,同时使用MPLS+ 虚拟专用网络 技术保证客户网络信息的安全性和私密性。

1、基础配置与IP编址;
2、配置运营商网络单区域OSPF;
3、在R1与R3上分别为客户A网络与客户B网络配置虚拟专用网络 实例。分配:
          客户A网络的虚拟专用网络 实例为1,RD值为1:1,Export Target与Import Target为1:2;
          客户B网络的V虚拟专用网络 实例为2,RD值为2:2,Export Target与Import Target为1:2。
4、配置客户网络边缘设备与运营商网络边缘设备使用BGP协议传递路由:
          客户A网络的AS号为14,运营商网络的AS号为123,客户B网络的AS号为35。
          客户网络边缘设备与运营商网络边缘设备建立BGP的邻居关系,使客户私网路由通过BGP协议通告
    给运营商网络边缘设备。
5、在R1与R3之间采用MP-BGP协议传递客户的私网路由。
6、在运营商网络的所有设备上开启MPLS LDP协议,使用标签转发客户网络的私网数据。
7、分别在R4与R5上使用LoopBack1模拟客户网络的用户,使用Ping命令检查A网络与B网络的连通性。

mpls option b配置 mpls ce配置_运营商_11

》》》配置虚拟专用网络 的实例:

****** R1***********
[R1]ip vpn-instance 1	  //配置实例1
[R1-vpn-instance-1]route-distinguisher 1:1   //设置RD
[R1-vpn-instance-1-af-ipv4]vpn-target 1:2 both   //设置RT
[R1-vpn-instance-1-af-ipv4]dis this   //查看相应配置内容
[V200R003C00]
#
 ipv4-family
  route-distinguisher 1:1
  vpn-target 1:2 export-extcommunity
  vpn-target 1:2 import-extcommunity
#
return

[R1]int s1/0/0
[R1-Serial1/0/0]ip bin	
[R1-Serial1/0/0]ip binding v	
[R1-Serial1/0/0]ip binding vpn-instance 1  //接口绑定实例,并重新配置IP地址;
[R1-Serial1/0/0]ip ad 10.0.14.1 24


*****R3*******
[R3]ip vpn-instance 2
[R3-vpn-instance-2]route-distinguisher 2:2
[R3-vpn-instance-2-af-ipv4]vpn-target 1:2 both 
[R3-vpn-instance-2-af-ipv4]dis this
[V200R003C00]
#
 ipv4-family
  route-distinguisher 2:2
  vpn-target 1:2 export-extcommunity
  vpn-target 1:2 import-extcommunity
#
return

[R3]int s1/0/1
[R3-Serial1/0/1]ip binding vpn-instance 2
[R3-Serial1/0/1]ip ad 10.0.35.3 24

》》》CE-PE间的配置:

******R4******
[R4]bgp 14
[R4-bgp]peer 10.0.14.1 as-number 123
[R4-bgp]network 192.168.1.0 24

******R1*****
[R1]bgp 123
[R1-bgp]ipv4-family vpn-instance 1
[R1-bgp-1]peer 10.0.14.4 as-number 14

******R3***********
[R3]bgp 123
[R3-bgp]ipv4-family vpn-instance 2
[R3-bgp-2]peer 10.0.35.5 as-number 35

*******R5******
[R5]bgp 35
[R5-bgp]peer 10.0.35.3 as-number 123
[R5-bgp]network 192.168.2.0 24

》》》MP-BGP的配置:

******R1*********
[R1]bgp 123
[R1-bgp]peer 3.3.3.3 as-number 123	
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[R1-bgp]ipv4-family vpnv4	
[R1-bgp-af-vpnv4]peer 3.3.3.3 enable 

*****R3*********
[R3]bgp 123
[R3-bgp]peer 1.1.1.1 as-number 123	
[R3-bgp]peer 1.1.1.1 connect-interface LoopBack 0	
[R3-bgp]ipv4-family vpnv4
[R3-bgp-af-vpnv4]peer 1.1.1.1 enable

配置过后,使用命令display bgp vpn4 all  peer查看邻居状态:

mpls option b配置 mpls ce配置_虚拟专用网络_12

mpls option b配置 mpls ce配置_运营商_13

 可以看到BGP邻居和MP-BGP邻居都正常建立完成。

》》》开启MPLS协议功能:

****R1******
[R1]mpls lsr-id 1.1.1.1	
[R1]mpls	
[R1-mpls]mpls ldp
[R1-mpls-ldp]q
[R1]int s1/0/1
[R1-Serial1/0/1]mpls 
[R1-Serial1/0/1]mpls ldp 

****R2******
[R2]mpls lsr-id 2.2.2.2	
[R2-mpls]mpls
[R2-mpls]mpls ldp
[R2-mpls-ldp]int s1/0/1	
[R2-Serial1/0/1]mpls 	
[R2-Serial1/0/1]mpls ldp 
[R2-Serial1/0/1]int s1/0/0	
[R2-Serial1/0/0]mpls 
[R2-Serial1/0/0]mpls ldp

****R3****
[R3]mpls lsr-id 3.3.3.3
[R3]mpls 	
[R3-mpls]mpls ldp
[R3-mpls-ldp]int s1/0/1
[R3-Serial1/0/1]mpls 
[R3-Serial1/0/1]mpls ldp

配置过后,使用display mpls ldp session命令查看ldp的会话信息:

mpls option b配置 mpls ce配置_运营商_14

mpls option b配置 mpls ce配置_mpls option b配置_15

mpls option b配置 mpls ce配置_运营商_16

》》》检验连通性:A网络和B网络之间连通性正常。

mpls option b配置 mpls ce配置_R3_17