7.3.3 MPLS VPN

7.3.3 MPLS VPN

虚拟专用网(Virtual Private Network,VPN)是在公共的运营网络中开辟出一片相对独立的资源,专门为某个企业用户使用,而企业用户可以具有一定的权限监控和管理自己的这部分资源,就如同自己组建了一个专用网络一样。“虚拟”是因为这个网络并不提供物理上端到端专有连接;“专用”是因为在一个共享的网络基础设施上,企业可以获得跟专网一样的安全性、可管理性、服务质量保证和地址分配方案。

1.MPLS VPN网络结构

基于MPLS技术构建的VPN称为MPLS VPN,其网络结构如图7-32所示。

(a)站点(Site):用户端网络的总称,可以通过一个单独的物理端口或逻辑端口连接到PE。

(b)CE(Custom Edge):用户端网络中直接与PE相连的路由器,CE通过标准的路由协议与PE交换路由信息。

(c)PE(Provider Edge):服务提供商骨干网中的边缘路由器,是MPLS VPN的主要实现者。PE路由器连接CE路由器,通过MBGP向其他的PE传播VPN的相关信息,包括VPN-IPv4地址、扩展成员关系以及标签。

(d)P(Provider Router):服务提供商骨干网中的核心路由器,负责MPLS标签转发。由于PE之间在传送业务之前已经知道了VPN成员关系,并通过LDP完成了标签绑定工作,建立了一条从PE到PE的标签交换路径LSP,所以P路由器无需维护VPN的路由信息和所承载业务流的信息,只要透明地传送由PE传送来的业务流即可。

图7-32 MPLS VPN的网络结构

2.MPLS VPN体系结构和工作过程

整个MPLS VPN体系结构可以分成控制面和数据面,控制面定义了VPN路由信息的分发和LSP的建立过程,数据面则定义了VPN数据的转发过程。

(1)控制面

在控制层面,P路由器并不参与VPN路由信息的交互,PE路由器则维护相连的所有VPN的路由信息。为了在MPLS网络中提供VPN的业务,PE路由器中存在两种独立的路由表:全局路由表和虚拟路由转发表(Virtual Routing Forwarding Table,VRF),如图7-33所示。全局路由表用于存放通过IGP学习到的路由;VRF则存放通过MP-BGP(扩展的BGP协议)学习到的来自CE的路由。在PE设备上,属于同一VPN的用户站点对应一个VRF,VRF包含同一个站点相关的路由表、转发表、接口(子接口)、路由实例和路由策略等信息。

为了将VPN用户可能重叠的IPv4地址空间映射为全局彼此不重叠的VPNv4地址空间,运营商为每个VPN分配了一个长度为64 bit的、全局唯一的标识符,称为路由标识符

图7-33 PE路由器中的全局路由表和虚拟路由转发表

(Route Distinguisher,RD)。VPNv4地址由RD和IPv4地址共同构成,RD的全局唯一性保证了每个VPNv4地址在网络中的唯一性。PE将VPNv4地址存储进VRF中用来代替IP地址。

VPN中另一个重要参数是路由目标(Route Target,RT)。RT的长度也是64比特,也具有全局唯一性。RT分成Import RT和Export RT,分别用于路由信息的导入和导出策略,即当PE从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记;当PE收到VPNv4路由信息时,只有所带RT标记与VRF表中任意一个Import RT相符的路由才会被导入到VRF表中。

重点难点讲解

下面以图7-34为例说明PE间VPN用户的路由信息交互过程。

图7-34 PE间VPN用户的路由信息交互过程

在图7-34所示的网络中,CE3和CE4属于VPN1,CE1和CE2属于VPN2,CE1和CE3连接到PE1,CE4和CE2分别连接到PE2和PE3。运营商为VPN1用户分配的VRF参数为RD=6500:1,RT=100:1;为VPN2用户分配的VRF参数为RD=6500:2,RT=100:2。CE和PE之间采用静态/默认路由或RIPv2、OSPF等动态路由协议进行路由信息的交互,PE和PE之间则采用MP-IBGP进行路由信息的交互。

以PE3为例,PE3从接口S1上获得由CE2传来的有关10.1.1.0/8的路由,PE3把该路由放置到和S1有关的VRF中,并且分配该路由的本地标签8。通过参考VRF中的RD参数,PE3把正常的IPv4路由变成VPNv4路由,如10.1.1.0/8变成6500:2:10.1.1.0/8,同时把RT值(100:2)和该路由的本地标签值(8)等属性加到该路由条目中去。PE3通过MP-IBGP把这条VPNv4路由发送到PE1处。

与PE3类似,PE2将由CE4传来的有关10.1.1.0/8的路由转换成VPNv4路由6500:1:10.1.1.0/8,并为该路由分配本地标签18。PE2把RT值(100:1)和该路由的本地标签值(18)等属性加到路由条目中后,通过MP-IBGP把这条VPNv4路由发送到PE1处。

PE1收到了两条有关10.1.1.0/8的路由,其中一条是由PE2发来,另一条是由PE3发来。由于RD的不同,PE1不会将这两条路由混淆。PE1的MP-BGP接收到该两条路由后,去掉路由所带的RD值,使之恢复IPv4路由原貌,根据RT值把IPv4导入到各个VRF中,也即带有RT=100:1和本地标签值(18)的10.1.1.0/8的路由导入到VRF1中,带有RT=100:2和本地标签值(8)的10.1.1.0/8的路由导入到VRF2中。PE1再通过CE和PE之间的路由协议把不同的VRF的内容通告到各自相连的CE中去。

因此,MPLS VPN的建立过程可以归纳如下:

(a)PE通过RIP、OSPF等常见的路由协议,从每个CE端学习到VPNv4路由,给该路由绑定标签;

(b)PE利用MP-IBGP将该VPNv4路由及标签传递给VPN出口PE;

(c)VPN出口的PE根据RT属性更新VRF表。

需要注意的是,除了路由协议外,在控制层面工作的还有LDP,它在整个MPLS网络中进行标签的分发,形成数据转发的逻辑通道LSP。MPLS网络只为从IGP协议获得的路由条目分配标签。

(2)数据面

在数据层面,VPN业务数据采用外层标签(又称隧道标签)和内层标签(又称VPN标签)两层标签栈结构。外层标签代表了从PE到对端PE的一条LSP,VPN报文利用外层标签,就可以沿着LSP到达对端PE。内层标签指示了PE所连接的站点或者CE,根据内层标签,对端PE就可以找到转发报文的出接口。

一个VPN业务分组由CE路由器发给入口PE路由器后,PE路由器查找该子接口对应的VRF表,从VRF表中得到内层标签、初始外层标签以及到出口PE路由器的输出接口。VPN分组被打上两层标签后,通过PE输出接口转发出去,然后在MPLS骨干网中沿着LSP被逐跳转发。在出口PE之前的最后一个P路由器上,外层标签被弹出,P路由器将只含有内层标签的分组转发给出口PE路由器。出口PE路由器根据内层标签查找对应的输出接口,在弹出内层标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现了整个数据转发过程。

下面以图7-35为例对上述过程作进一步的说明。

假设CE1和CE2所在的站点属于同一VPN,PE3为到达CE2的路由分配标签8,并将路由与标签的绑定信息通过MP-IBGP协议发送至PE1。当CE1给CE2发送数据时,这些数据在PE1处被划分为转发等价类X。假设在PE1与PE3之间也已经为转发等价类X建立了LSP,PE1上与CE1(S1接口)对应的VRF表内容、各P路由器和PE路由器上的转发表中相应内容如图7-35所示,则CE1到CE2的数据转发过程如下。

图7-35 MPLS VPN的数据转发过程

(a)CE1接收到发往10.1.1.1的IP数据报,查询路由表,把该IP数据报发送到PE1。

(b)PE1从S1口上收到IP数据报后,查询与S1接口对应的VRF表,给数据报打上标签8(内标签)。数据被划分为转发等价类X后,PE1根据转发表,给数据包打上标签2(外标签)。所以该IP数据报被打上了两个标签。

(c)P1从S0接口收到标签包后,根据转发表分析顶层的标签,把顶层标签换成4,将标签包从接口S1发往P2。

(d)P2和P1一样做同样的操作。由于次末中继弹出机制,P2去掉标签4,直接把只带有一个标签的标签包发往PE3。

(e)PE3收到标签包后,分析标签。由于该标签8是它本地产生的,所以根据转发表,PE3去掉标签包的标签,恢复其IP数据报原貌,从S1端口发出。

(f)CE2获得IP数据报后,进行路由查找,把数据发送到10.1.1.0/8网段上。

相对于传统VPN,MPLS VPN可以实现底层标签的自动分配,在业务的提供上比传统VPN更加廉价,更快速。同时,MPLS VPN通过利用标签中的EXP等字段,与区分服务、流量工程等相关技术相结合,可以为用户提供不同服务质量等级的服务。因此MPLS VPN凭借其强大的QoS能力、高可靠性、高安全性、扩展能力强、控制策略灵活以及管理能力强大等特点,在下一代网络的承载网中得到广泛的应用。