倪县乐 周卫华 丁 炜
摘要:虚拟专用网(VPN)业务是最具潜力的新一代电信业务之一。基于多协议标记交换(MPLS)网络实现VPN的技术方案大大改善了传统IP网络的缺陷,同时又能提供和帧中继/ATM网络一样的安全性保证,很好地适应了VPN业务的需求。介绍了MPLS VPN网络模型,并详细讨论了两种基于MPLS网络的二层VPN技术实施方案,最后分析了这项技术的优缺点。
关键词:MPLS,二层VPN,扩展性, 安全性, 可管理性
虚拟专用网(VPN)是一种利用公众网络资源来建立专用通信网络的技术,它可以使企业利用公众网的资源将分散在各地的办事机构和客户等动态地连接起来,使网络提供商、企业和最终客户三者都获利。VPN对于网络提供商和企业都蕴含着极大的商机,已经成为提供新一代电信业务的基石。但传统IP网络在实现VPN扩展性、安全性、管理性和服务质量保证等方面都有很大的先天缺陷,急需改造。传统的帧中继和ATM网络提供的VPN虽然安全性较好,但也存在扩展性差、管理和维护复杂等缺陷。多协议标记交换(MPLS)技术的出现,使整个Internet的体系结构都发生了变化。采用MPLS技术实现VPN的技术方案将大大改善传统IP网络的缺陷,又能提供和帧中继或ATM网络一样的安全性保证,可以很好地适应VPN业务的需求。因此MPLS VPN技术被美国《Telecommunications》杂志评为2002年十大热门技术之一。本文将仔细讨论基于MPLS网络的二层VPN技术实施方案,并通过分析比较,给网络提供商和企业实现VPN业务提出一些建议。
一、VPN技术概述
1.VPN实现方式的技术分类
VPN有多种实现方式,具体可以分为用户管理的VPN解决方案(CPE-VPN)和提供商实施的VPN解决方案(PP-VPN)。CPE-VPN方案是用户自己设置、管理并维护VPN网关设备,通过公共IP网在各个分支机构和公司总部之间建立基于标准VPN隧道的连接,隧道协议通常采用二层隧道协议(L2TP)、点到点隧道协议(PPTP)、IPsec、IP in IP和通用路由选择封装(GRE)等,并且利用各种加密技术和网络地址转换(NAT)技术来保障数据传输的安全。VPN隧道连接的建立与管理完全由用户自己负责,提供商不需要调整或改变网络的结构与性能。这种方式也就是通常所说的“自建VPN”方式。PP-VPN方案是指在提供商的公共数据网上设置VPN网关设备,用于专线接入用户或远程拨号接入用户。利用该网关设备,可以在全网范围内根据具体的VPN网络需求,通过隧道封装、虚拟路由器或MPLS等技术建立VPN,并且可以采用加密技术以保障数据传输的安全。VPN连接的建立完全由提供商负责,对用户透明。这种方式也就是通常所说的“外包VPN”方式。
按照VPN实现的网络层次进行分类,VPN可以分为二层VPN和三层VPN。二层VPN是指构成VPN的隧道封装在网络参考模型的第二层(即数据链路层)上来完成。客户将其三层路由映射到数据链路层的网络,提供商为客户的每个远端节点提供一个二层链路。这种方式下客户路由对提供商是透明的。传统的VPN大多是通过租用数据专线(帧中继或ATM)来组建的,都属于二层VPN。三层VPN是指在网络参考模型的第三层(即网络层)利用一些特殊的技术来实现企业用户各个节点之间的互连。这种方式下,提供商路由器参与客户三层路由,并管理与VPN相关的路由表,将路由发布给远端节点。
CPE-VPN方案的相应标准已经稳定并且已被实施,企业中具有许多专有的实施方案;PP-VPN方案中有关基于MPLS提供三层VPN的讨论也已经很多。因此,下面将集中讨论PP-VPN方案中基于MPLS网络提供的二层VPN技术。
2.MPLS VPN网络模型
MPLS VPN的网络模型,其中:客户边缘(CE:Customer Edge)设备可以是路由器或二层交换机,它位于客户端,提供到网络提供商的接入;提供商边缘(PE:Provider Edge)路由器主要维护与节点相关的转发表,与其他PE路由器交换VPN路由信息,使用MPLS网络中的标记交换路径(LSP)转发VPN业务,这就是MPLS网络中的标记边缘路由器(LER);提供商路由器(P)使用已建立的LSP对VPN数据进行透明转发,不维护与VPN有关的路由信息,这就是MPLS网络中的标记交换路由器(LSR)。
二、基于MPLS的二层VPN
过去,企业VPN网大多是通过租用数据专线(帧中继或ATM)来组建的二层VPN。提供二层VPN业务时,网络提供商只需为客户提供二层数据链路层的连通性,由客户来控制路由并可以灵活地选择三层协议,且客户VPN的安全性相对较高。但是对网络提供商来说,过去FR或ATM网络中的一般Internet流量和VPN流量是完全分离的,而且配置传统的二层VPN存在全网状连接的N2问题,因此这种传统的叠加式二层VPN为网络维护和管理带来了沉重的负担。目前,采用MPLS技术的网络已经被普遍认为是下一代核心网络的发展方向,而MPLS技术最主要的优势之一就是可以很好地支持VPN业务。网络提供商采用基于MPLS网络提供二层VPN技术,可以仅维护和管理单一的网络基础设施来同时提供二层VPN业务、三层VPN业务以及其他各种灵活的“尽力而为”或担保服务质量的IP业务,且VPN业务的配置实施将更加自动化。
基于MPLS网络的二层VPN技术实现方案目前主要有两种,分别是Kompella等提出的二层VPN(以下称Kompella二层VPN)和Martini等提出的二层VPN(以下称Martini二层VPN)。这两种方案的数据平面基本相似,都可以支持多种数据链路层技术,如帧中继、ATM AAL5 CPCS模式、ATM透明信元模式、以太网、以太网VLAN、思科HDLC和PPP等,它们的主要差别在于控制平面协议的使用。下面分别讨论两种方案的具体实施过程。
1.Kompella二层VPN
Kompella方案在实施二层VPN时分为以下三步:
第一步,建立LSP。网络在PE路由器间事先建立LSP,可采用RSVP-TE,LDP或CR-LDP中的任一种方法。这些LSP可被用于多种业务,包括传统Internet、二层VPN、三层VPN等。这一步实际上是网络提供商实施MPLS的一个必要步骤,与二层VPN的实施相对独立。
第二步,在PE路由器上实施VPN信息。这一步实际上是控制平面建立VPN数据传输通道的过程,是实施二层VPN的关键。首先,在PE2路由器上为每一个连接到它的CE设备建立一个VPN转发表(VFT),这个转发表包括该CE设备的身份识别码(ID)、可连接CE设备的最大数目N、标记值范围(预留N个连续的标记)、使用边界网关协议(BGP)时的路由目标共同体标识或使用标记分发协议(LDP)时的VPN ID,分配给CE-PE连接的一组本地子接口ID。其次,为每个CE设备配置VFT表(这里以配置CE3的VFT为例),为VFT中的每个子接口ID分配相应的标记,即要到达CE3的其他CE设备需要使用的VPN标记,如子接口数据链路连接标识(DLCI)=44时,VPN标记=300;然后使用BGP协议来实现成员自动发现和成员间链路自动分配,使用基于BGP路由目标共同体和目的地址的路由过滤来配置VPN拓扑。接下来,PE2利用BGP或LDP协议向拓扑中的其他VPN成员(如PE1)发布VPN连接表(VCT),其中VCT是VFT的子集,包含VFT中除本地子接口ID之外的前四项。收到VCT的PE1路由器更新自己VFT中相关的子接口ID列表, 如子接口DLCI=33是用于CE1去往CE3的,则为该子接口添加其VPN标记=300和相应的PE1到PE2的LSP隧道的LSP标记101。类似地可以配置其他VPN信息。
第三步,实施VPN数据转发。数据沿第二步建立的VPN通道转发的详细过程。CE1发往CE3的数据以DLCI=33发往PE1,在PE1处查找相应的VFT,将数据的帧中继头去掉,压入两层标记(VPN标记和LSP标记),核心网中的P路由器象处理普通MPLS分组一样只是根据LSP标记进行交换,根本不知道VPN的存在,直到出口前,执行倒数第二跳弹栈(pop)。在PE2处再根据VPN标记,查找相应的VFT表,用子接口DLCI=44恢复二层数据格式并转发给CE3。