2.2 VPN隧道技术
常规的直接拨号连接与虚拟专网连接的不同点在于,在前一种情形中PPP(点对点协议)数据流是通过专用线路传输的。在VPN中,PPP数据包流是由一个LAN上的路由器发出,通过共享IP网络上的隧道进行传输,再到达另一个LAN上的路由器。隧道代替了实实在在的专用线路。隧道好比是在WAN云海中拉出一根串行通信电缆。那么,如何形成VPN隧道呢?
建立隧道主要有两种方式:客户启动(Client-Initiated)和客户透明(Client-Transparent)。客户启动要求客户和隧道服务器(或网关)都安装隧道软件。后者通常都安装在公司中心站上。通过客户软件初始化隧道,隧道服务器中止隧道,ISP可以不必支持隧道。客户和隧道服务器只需建立隧道,并使用用户ID和口令或用数字许可证鉴权。一旦隧道建立,就可以进行通信了,如同ISP没有参与连接一样。
另外,如果希望隧道对客户透明,ISP的POPs就必须具有允许使用隧道的接入服务器及可能需要的路由器。客户首先拨号进入服务器,服务器必须能识别这一连接要与某一特定的远程点建立隧道,然后服务器与隧道服务器建立隧道,通常使用用户ID和口令进行鉴权。这样客户端就通过隧道与隧道服务器建立了直接对话。尽管这一方针不要求客户有专门的软件,但客户只能拨号进入正确配置的访问服务器。
下面就现在项目应用中的几种主流VPN协议进行阐述。
2.2.1 点到点隧道协议(PPTP)
PPTP(Point-to-Point Tunneling Protocol)即点对点隧道协议,该协议由美国微软公司设计,用于将PPP分组通过IP网络封装传输。通过该协议,远程用户能够通过Windows操作系统及其他装有点对点协议的系统安全访问公司网络,并能拨号接入本地ISP,通过Internet安全连接到公司网络。
PPTP隧道提供PPTP客户机和PPTP服务器之间的加密通信。PPTP客户机是指运行了该协议的PC,如启动该协议的Windows 95/98,PPTP服务器是指运行该协议的服务器,如启动该协议的Windows NT服务器。PPTP可看做是PPP协议的一种扩展。它提供了一种在Internet上建立多协议的安全VPN通信方式。
PPTP的功能特性被分成两个部分:PAC(PPTP Access Concentrator,PPTP访问集中器,可以理解为客户端)和PNS(PPTP Network Server,PPTP网络服务器)。PPTP在PAC和PNS之间实现,PAC往往位于一台远程计算机上。通过PPTP、VPN的建立通常需要如下步骤:第一步,远程拨号客户首先按常规方式拨号到ISP的接入服务器NAS,建立PPP连接,使得客户接入公共IP网络Internet。第二步,PAC通过PPP连接建立一条控制信道,并且通过Internet连接PNS。这一步使用TCP协议来完成。第三步,通过控制信道协商PPTP隧道的参数,建立PPTP隧道。第四步,通过PAC与PNS之间的PPTP隧道,从远程用户建立进入NAS的PPP连接。这时,远程访问用户就可以通过这条PPP连接访问公司的专用网络传送多种协议的数据报了。PPTP隧道的建立如图2-4所示。
图2-4 PPTP隧道的建立
图2-5是发送和接收过程的数据包封装过程。从图上可以看到,在发送端,首先将PPP的有效载荷(如IP数据报、IPX数据报或NetBEUI帧等)进行加密,添加PPP报头,封装成PPP帧;PPP帧再添加GRE报头,GRE报文又添加一个IP报头;进而,再次进行数据链路层封装,加上数据链路层报头和报尾(可能是PPP报头和报尾,也可能是以太网报头和报尾),封装成数据链路层帧发送到ISP NAS。此时的传送的报文就是在PPTP隧道进行传输了。在接收端(PPTP客户或者PPTP服务器)接收到PPTP数据包后,逐次处理并除去各项报头、报尾,得到有效数据。
图2-5 发送和接收过程的数据包封装过程
PPTP本身并不提供数据安全功能,而是依靠PPP的身份认证和加密服务提供数据的安全性,例如,可以采用基于RSA公司RC4等数据加密方法,保证了虚拟连接通道的安全性。
2.2.2 第二层转发协议(L2F)
第二层转发协议(Layer2 Forwarding,L2F)是由Cisco、Northern Telecom及Shiva Corporation等公司开发的一种适合可控制网络的虚拟拨号上网协议。L2F用于建立跨越公共网络(如因特网)的安全隧道连接到企业内部网关。这个隧道建立了一个用户与企业客户网络间的虚拟点对点连接。PPTP把GRE用做封装协议,L2F使用任何能够提供终端到终端连接的报文定向协议(Packet-Oriented Protocol),如UDP、X.25或者帧中继。
图2-6所示为L2F的结构,L2F的实现分以下几步:第一步,远程用户通过拨号接入本地服务提供商的NAS,从而连入Internet,在这一步通常使用用户名及口令进行身份验证;第二步,通过验证后,用户已经可以使用因特网资源,如果要建立L2F隧道,用户的ISP需要向专用网络的网关发起申请,这样L2F就从NAS到专用网络的本地网关之间建立了一条隧道,这里的本地网关一般是路由器设备(注意,L2F协议是Cisco等网络设备生产商开发的,是适合路由器等设备的协议);第三步,L2F将连接指示同一些验证信息送到本地网关,本地网关接收扩展的SLIP或者PPP连接(使用PPP时,可以将整个隧道看做从移动用户到专用网络的一个PPP连接)并为其建立一个虚拟接口;实现以上三步后,IP数据报被送到专用网络,实现隧道通信。
图2-6 远程用户使用L2F进行拨号上网
2.2.3 第二层隧道协议(L2TP)
第二层隧道协议(L2TP)是用来整合多协议拨号服务至现有的因特网服务提供商点。L2TP是L2F和PPTP的结合。但是由于PC的桌面操作系统包含着PPTP,因此PPTP仍比较流行。隧道的建立有两种方式:即“用户初始化”隧道和“NAS(Network Access Server)初始化”隧道。前者一般指“主动”隧道,后者指“强制”隧道。“主动”隧道是用户为某种特定目的的请求建立的,而“强制”隧道则是在没有任何来自用户的动作及选择的情况下建立的。
L2TP作为“强制”隧道模型是让拨号用户与网络中的另一点建立连接的重要机制。建立过程如下:①用户通过Modem与NAS建立连接;②用户通过NAS的L2TP接入服务器身份认证;③在政策配置文件或NAS与政策服务器进行协商的基础上,NAS和L2TP接入服务器动态地建立一条L2TP隧道;④用户与L2TP接入服务器之间建立一条点到点协议(Point to Point Protocol,PPP)访问服务隧道;⑤用户通过该隧道获得VPN服务。
与之相反的是,PPTP作为“主动”隧道模型允许终端系统进行配置,与任意位置的PPTP服务器建立一条不连续的、点到点的隧道。并且,PPTP协商和隧道建立过程都没有中间媒介NAS的参与。NAS的作用只是提供网络服务。PPTP建立过程如下:①用户通过串口以拨号IP访问的方式与NAS建立连接取得网络服务;②用户通过路由信息定位PPTP接入服务器;③用户形成一个PPTP虚拟接口;④用户通过该接口与PPTP接入服务器协商、认证建立一条PPP访问服务隧道;⑤用户通过该隧道获得VPN服务。
在L2TP中,用户感觉不到NAS的存在,仿佛与PPTP接入服务器直接建立连接。而在PPTP中,PPTP隧道对NAS是透明的;NAS不需要知道PPTP接入服务器的存在,只是简单地把PPTP流量作为普通IP流量处理。
采用L2TP还是PPTP实现VPN取决于要把控制权放在NAS还是用户手中。L2TP比PPTP更安全,因为L2TP接入服务器能够确定用户是从哪里来的。L2TP主要用于比较集中的、固定的VPN用户,而PPTP比较适合移动的用户。
L2TP的协议结构示意图如图2-7所示,下面简略介绍各个字段的意义。
图2-7 L2TP的协议结构示意图
T—T位表示信息类型。若是数据信息,该值为0;若是控制信息,该值为1。
L—当设置该字段时,说明Length字段存在,表示接收数据包的总长。对于控制信息,必须设置该值。
X—X位为将来扩张预留使用。在导出信息中所有预留位被设置为0,导入信息中该值忽略。
S—如果设置S位,那么Nr字段和Ns字段都存在。对于控制信息,S位必须设置。
O—当设置该字段时,表示在有效负载信息中存在OffsetSize字段。对于控制信息,该字段值设为0。
P—如果Priority(P)位值为1,表示该数据信息在其本地排队和传输中将会得到优先处理。
Ver—Ver位的值总为002。它表示一个版本1L2TP信息。
Length—信息总长,包括头、信息类型AVP及其他的与特定控制信息类型相关的AVPs。
Tunnel ID—识别控制信息应用的Tunnel。如果对等结构还没有接收到分配的Tunnel ID,那么Tunnel ID必须设置为0。一旦接收到分配的Tunnel ID,所有更远的数据包必须和Tunnel ID一起被发送。
Session ID—识别控制信息应用的Tunnel中的用户会话。如果控制信息在Tunnel中不应用单用户会话(如一个Stop-Control-Connection-Notification信息),Session ID必须设置为0。
Nr—期望在下一个控制信息中接收到的序列号。
Ns—数据或控制信息的序列号。
Offset Size & Offset Pad—该字段规定通过L2F协议头的字节数,协议头是有效负载数据起始位置。Offset Padding中的实际数据并没有定义。如果Offset字段当前存在,那么L2TP头Offset Padding的最后八位字节后结束。
2.2.4 GRE协议
一般路由封装协议(Generic Routing Encapsulation,GRE)主要用于源路由和终路由之间所形成的隧道。例如,将通过隧道的报文用一个新的报文头(GRE报文头)进行封装,然后带着隧道终点地址放入隧道中。当报文到达隧道终点时,GRE报文头被剥掉,继续原始报文的目标地址进行寻址。GRE隧道通常是点到点的,即隧道只有一个源地址和一个终地址。然而也有一些实现允许点到多点,即一个源地址对多个终地址。这时就要和下一条路由协议(Next-Hop Routing Protocol,NHRP)结合使用。NHRP主要是为了在路由之间建立捷径。
GRE隧道用来建立VPN有很大的吸引力。从体系结构的观点来看,VPN就像是通过普通主机网络的隧道集合。普通主机网络的每个点都可利用其地址及路由所形成的物理连接,配置成一个或多个隧道。在GRE隧道技术中入口地址用的是普通主机网络的地址空间,而在隧道中流动的原始报文用的是VPN的地址空间,这样反过来就要求隧道的终点应该配置成VPN与普通主机网络之间的交界点。这种方法的好处是使VPN的路由信息从普通主机网络的路由信息中隔离出来,多个VPN可以重复利用同一个地址空间而没有冲突,这使得VPN从主机网络中独立出来,从而满足了VPN的关键要求:可以不使用全局唯一的地址空间。隧道也能封装数量众多的协议族,减少实现VPN功能函数的数量。还有,对许多VPN所支持的体系结构来说,用同一种格式来支持多种协议同时又保留协议的功能是非常重要的。IP路由过滤的主机网络不能提供这种服务,而只有隧道技术才能把VPN私有协议从主机网络中隔离开。基于隧道技术的VPN实现的另一特点是对主机网络环境和VPN路由环境进行隔离。对VPN而言主机网络可看成点到点的电路集合,VPN能够用其路由协议穿过符合VPN管理要求的虚拟网。同样,主机网络用符合网络要求的路由设计方案,而不必受VPN用户网络的路由协议限制。
虽然GRE隧道技术有很多优点,但用其技术作为VPN机制也有缺点,如管理费用高、隧道的规模数量大等。因为GRE是由手工配置的,所以配置、维护隧道所需的费用和隧道的数量是直接相关的—每次隧道的终点改变,隧道都要重新配置。隧道也可自动配置,但有缺点,如不能考虑相关路由信息、性能问题及容易形成回路问题。一旦形成回路,会极大恶化路由的效率。除此之外,通信分类机制是通过一个好的粒度级别来识别通信类型。如果通信分类过程是通过识别报文(进入隧道前的)进行,就会影响路由发送速率的能力及服务性能。
2.2.5 IP安全协议(IPSec)
IPSec(IPSecurity)是一种开放标准的框架结构,特定的通信方之间在IP层通过加密和数据摘要(Hash)等手段来保证数据包在Internet网上传输时的私密性(Confidentiality)、完整性(Dataintegrity)和真实性(Originauthentication)。IPSec协议如图2-8所示。
图2-8 IPSec协议
IPSec VPN系统工作在网络协议栈中的IP层,采用IPSec协议提供IP层的安全服务。由于所有使用TCP/IP协议的网络在传输数据时,都必须通过IP层,所以提供了IP层的安全服务就可以保证端到端传递的所有数据的安全性。
虚拟私有网络允许内部网络之间使用保留IP地址进行通信。为了使采用保留IP地址的IP包能够穿越公共网络到达对端的内部网络,需要对使用保留地址的IP包进行隧道封装,加封新的IP包头。封装后的IP包在公共网络中传输,如果对其不做任何处理,在传递过程中有可能被“第三者”非法查看、伪造或篡改。为了保证数据在传递过程中的机密性、完整性和真实性,有必要对封装后的IP包进行加密和认证处理。通过对原有IP包加密,还可以隐藏实际进行通信的两个主机的真实IP地址,减少了它们受到攻击的可能性。IPSec的框架结构如图2-9所示。
图2-9 IPSec的框架结构
IPSec支持两种封装模式:传输模式和隧道模式。传输模式不改变原有的IP包头,通常用于主机与主机之间,如图2-10所示。
图2-10 IPSec传输模式结构图
隧道模式增加新的IP头,通常用于私网与私网之间通过公网进行通信,如图2-11所示。
图2-11 IPSec隧道模式结构图
AH模式无法与NAT一起运行,AH对包括IP地址在内的整个IP包进行hash运算,而NAT会改变IP地址,从而破坏AH的hash值,如图2-12所示。
图2-12 AH模式无法与NAT一起运行
ESP模式下,只进行地址映射时,ESP可与NAT一起工作。进行端口映射时,需要修改端口,而ESP已经对端口号进行了加密和(或)hash运算,所以将无法进行,如图2-13所示。
图2-13 ESP模式示意图
启用IPSec NAT穿越后,会在ESP头前增加一个UDP头,就可以进行端口映射,如图2-14所示。
图2-14 IPSec转换示意图
2.2.6 SSL协议
SSL的英文全称是“Secure Sockets Layer”,中文名为“安全套接层协议层”,是网景(Netscape)公司提出的基于Web应用的安全协议。SSL协议指定了一种在应用程序协议(如Http、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性及可选的客户机认证。目前SSL协议被广泛应用于各种浏览器应用,也可以应用于Outlook等使用TCP协议传输数据的C/S应用。正因为SSL协议被内置于IE等浏览器中,使用SSL协议进行认证和数据加密的SSL VPN就可以免于安装客户端。相对于传统的IPSec VPN而言,SSL VPN具有部署简单、无客户端、维护成本低、网络适应强等特点,这两种类型的VPN之间的差别类似C/S构架和B/S构架的区别。图2-15是SSL VPN应用示意图。
图2-15 SSL VPN应用示意图
SSL协议层包含两类子协议:SSL握手协议和SSL记录协议。它们共同为应用访问连接(主要是Http连接)提供认证、加密和防篡改功能。SSL能在TCP/IP和应用层间无缝实现Internet协议栈处理,而不对其他协议层产生任何影响。SSL的这种无缝嵌入功能还可运用类似Internet应用,如Intranet和Extranet接入、应用程序安全访问、无线应用及Web服务。
SSL能基于Internet实现安全数据通信:数据在从浏览器发出时进行加密,到达数据中心后解密;同样地,数据在传回客户端时也进行加密,再在Internet中传输。它工作于高层,SSL会话由两部分组成:连接和应用会话。在连接阶段,客户端与服务器交换证书并协议安全参数,如果客户端接受了服务器证书,便生成主密钥,并对所有后续通信进行加密。在应用会话阶段,客户端与服务器之间安全传输各类信息。
SSL在以远程和移动的方式访问VPN的使用上是最好的;而IPSec在固定站点之间创建VPN的使用上是最好的。
在使用SSL VPN时,远程用户和内部资源之间的连接经过网页访问的方式发生在应用层,不同于IPSec VPN的网络层公开隧道。对于远程和移动用户来说,使用SSL是十分理想的,这是因为:SSL不需要被下载到用于访问公司资源的设备中;SSL不需要由终端用户进行设置;只要有标准网页浏览器的地方,就有SSL,它存在于任何的计算机和移动设备中。
SSL提供基于数字化认证的客户端和服务器端身份验证、完整性检查和加密。SSL利用密钥提供传输级的加密机制,并通过公共密钥提供密钥管理和身份验证。RSA握手(或DH)在使用上和IPSec中的IKE相同,而SSL密码库用于确保对称隧道的安全,那些受保护的IPSec隧道将使用类似的加密技术。SSL VPN和IPSec VPN都支持先进的加密、数据完整性验证和身份验证技术,如3-DES、128位RC4、AES、MD5或SHA-1。SSL VPN实现流程图,如图2-16所示。
图2-16 SSL VPN实现流程图
(1)客户端发送列出客户端密码能力的客户端“您好”消息(以客户端首选项顺序排序),如SSL的版本、客户端支持的密码对和客户端支持的数据压缩方法。消息也包含28字节的随机数。
(2)SSL VPN设备以SSL VPN设备“您好”消息响应,此消息包含密码方法(密码对)和由SSL VPN设备选择的数据压缩方法,以及会话标识和另一个随机数。
注意
客户端和SSL VPN设备至少必须支持一个公共密码对,否则握手失败。SSL VPN设备一般选择最大的公共密码对。
(3)SSL VPN设备发送其SSL数字证书(SSL VPN设备使用带有SSL的X.509V3数字证书)。
如果SSL VPN设备使用SSLV3,而SSL VPN设备应用程序(如WebSSL VPN设备)需要数字证书进行客户端认证,则客户端会发出“数字证书请求”消息。在“数字证书请求”消息中,SSL VPN设备发出支持的客户端数字证书类型的列表和可接受的CA的名称。
(4)SSL VPN设备发出SSL VPN设备“您好完成”消息并等待客户端响应。
(5)接到SSL VPN设备“您好完成”消息,客户端(Web浏览器)将验证SSL VPN设备的SSL数字证书的有效性并检查SSL VPN设备的“您好完成”消息参数是否可以接受。
如果SSL VPN设备请求客户端数字证书,客户端将发送其数字证书;或者,如果没有合适的数字证书是可用的,客户端将发送“没有数字证书”警告。此警告仅仅是警告而已,但如果客户端数字证书认证是强制性的,SSL VPN设备应用程序将会使会话失败。
(6)客户端发送“客户端密钥交换”消息。此消息包含pre-mastersecret(一个用在对称加密密钥生成中的46字节的随机数字)和消息认证代码(MAC)密钥(用SSL VPN设备的公用密钥加密的)。
如果客户端发送客户端数字证书给SSL VPN设备,客户端将发出签有客户端的专用密钥的“数字证书验证”消息。通过验证此消息的签名,SSL VPN设备可以显示验证客户端数字证书的所有权。
注意
如果SSL VPN设备没有属于数字证书的专用密钥,它将无法解密pre-master密码,也无法创建对称加密算法的正确密钥,且握手将失败。
(7)客户端使用一系列加密运算将pre-mastersecret转化为mastersecret,其中将派生出所有用于加密和消息认证的密钥。然后,客户端发出“更改密码规范”消息将SSL VPN设备转换为新协商的密码对。客户端发出的下一个消息(“未完成”的消息)为用此密码方法和密钥加密的第一条消息。
(8)SSL VPN设备以自己的“更改密码规范”和“已完成”消息响应。
(9)SSL握手结束,且可以发送加密的应用程序数据。
2.2.7 多协议标记交换(MPLS)
MPLS属于第三代网络架构,是新一代的IP高速骨干网络交换标准,由IETF(Internet Engineering TaskForce,因特网工程任务组)所提出,由Cisco、ASCEND、3Com等网络设备大厂所主导。
MPLS是集成式的IP Over ATM技术,即在Frame Relay及ATM Switch上结合路由功能,数据包通过虚拟电路来传送,只需在OSI第二层(数据链结层)执行硬件式交换(取代第三层软件式routing),它整合了IP选径与第二层标记交换为单一的系统,因此可以解决Internet路由的问题,使数据包传送的延迟时间减短,增加网络传输的速度,更适合多媒体信息的传送。因此,MPLS最大技术特色为可以指定数据包传送的先后顺序。MPLS使用标记交换(Label Switching),网络路由器只需要判别标记后即可进行转送处理。
MPLS VPN是一种基于MPLS技术的IP VPN,是在网络路由和交换设备上应用MPLS(Multiprotocol Label Switching,多协议标记交换)技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标记交换实现的IP虚拟专用网络(IP VPN)。这种基于标记的IP路由选择方法,要求在整个交换网络中间所有的路由器都识别这个标签,运营商需要大笔投资建立全局的网络。而且跨越不同运营商之间,如果没有协调好,标签无法交换。
MPLS VPN一般采用图2-17所示的网络结构。其中VPN是由若干不同的site组成的集合,一个site可以属于不同的VPN,属于同一VPN的site具有IP连通性,不同VPN间可以有控制地实现互访与隔离。
图2-17 MPLS VPN网络结构示意图
MPLS VPN网络主要由CE、PE和P 3部分组成:CE(Custom Edge Router,用户网络边缘路由器)设备直接与服务提供商网络相连,它“感知”不到VPN的存在;PE(Provider Edge Router,骨干网边缘路由器)设备与用户的CE直接相连,负责VPN业务接入,处理VPN-IPv4路由,是MPLS三层VPN的主要实现者:P(Provider Router,骨干网核心路由器)负责快速转发数据,不与CE直接相连。在整个MPLS VPN中,P、PE设备需要支持MPLS的基本功能,CE设备不必支持MPLS。
PE是MPLS VPN网络的关键设备,根据PE路由器是否参与客户的路由,MPLS VPN分成Layer3 MPLS VPN和Layer2 MPLS VPN。其中Layer3 MPLS VPN遵循RFC 2547bis标准,使用MBGP在PE路由器之间分发路由信息,使用MPLS技术在VPN站点之间传送数据,因而又称为BGP/MPLS VPN。本文主要阐述的是Layer3 MPLS VPN。
在MPLS VPN网络中,对VPN的所有处理都发生在PE路由器上,为此,PE路由器上起用了VPNv4地址族,引入了RD(Route Distinguisher)和RT(Route Target)等属性。RD具有全局唯一性,通过将8byte的RD作为IPv4地址前缀的扩展,使不唯一的IPv4地址转化为唯一的VPNv4地址。VPNv4地址对客户端设备来说是不可见的,它只用于骨干网络上路由信息的分发。PE对等体之间需要发布基于VPNv4地址族的路由,通常是通过MBGP实现的。正常的BGP4只传递IPv4的路由,MP-BGP在BGP的基础上定义了新的属性。
MP-iBGP在邻居间传递VPN用户路由时会将IPv4地址打上RD前缀,这样VPN用户传来的IPv4路由就转变为VPNv4路由,从而保证VPN用户的路由到了对端的PE上以后,即使存在地址空间重叠,对端PE也能够区分分属不同VPN的用户路由。RT使用了BGP中扩展团体属性,用于路由信息的分发,具有全局唯一性,同一个RT只能被一个VPN使用,它分成ImportRT和ExportRT,分别用于路由信息的导入和导出策略。在PE路由器上针对每个site都创建了一个虚拟路由转发表VRF(VPNRouting & Forwarding),VRF为每个site维护逻辑上分离的路由表,每个VRF都有ImportRT和ExportRT属性。当PE从VRF表中导出VPN路由时,要用ExportRT对VPN路由进行标记;当PE收到VPNv4路由信息时,只有所带RT标记与VRF表中任意一个ImportRT相符的路由才会被导入VRF表中,而不是全网所有VPN的路由,从而形成不同的VPN,实现VPN的互访与隔离。通过对ImportRT和ExportRT的合理配置,运营商可以构建不同拓扑类型的VPN,如重叠式VPN和Hub-and-spokeVPN。
整个MPLS VPN体系结构可以分成控制层面和数据层面,控制层面定义了LSP的建立和VPN路由信息的分发过程,数据层面则定义了VPN数据的转发过程。
在控制层面,P路由器并不参与VPN路由信息的交互,客户路由器是通过CE和PE路由器之间、PE路由器之间的路由交互知道属于某个VPN的网络拓扑信息。CE-PE路由器之间通过采用静态/默认路由或采用ICP(RIPv2、OSPF)等动态路由协议。PE-PE之间通过采用MP-iBGP进行路由信息的交互,PE路由器通过维持iBGP网状连接或使用路由反射器来确保路由信息分发给所有的PE路由器。除了路由协议外,在控制层面工作的还有LDP,它在整个MPLS网络中进行标签的分发,形成数据转发的逻辑通道LSP。
在数据转发层面,MPLS VPN网络中传输的VPN业务数据采用外标签(又称隧道标签)和内标签(又称VPN标签)两层标签栈结构。当一个VPN业务分组由CE路由器发给入口PE路由器后,PE路由器查找该子接口对应的VRF表,从VRF表中得到VPN标签、初始外层标签及到出口PE路由器的输出接口。当VPN分组被打上两层标签之后,就通过PE输出接口转发出去,然后在MPLS骨干网中沿着LSP被逐级转发。在出口PE之前的最后一个P路由器上,外层标签被弹出,P路由器将只含有VPN标签的分组转发给出口PE路由器。出口PE路由器根据内层标签查找对应的输出接口,在弹出VPN标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现整个数据转发过程。