基于MPLS的VPN 互访技术

2014-12-23 01:17:20张水平李有峰张凤琴
计算机工程与设计 2014年9期
关键词:路由器数据包标签

童 样,张水平,李有峰,张凤琴,梁 栋

(空军工程大学 信息与导航学院,陕西 西安710077)

0 引 言

虚拟专用网 (virtual private network,VPN)互访解决多个独立的VPN 之间互通的问题[1]。目前实现VPN 互访主要有以下方法:①Hub-and-Spoke方法。所有VPN 都通过IPSec协议连接到Hub-GW,通过Hub-GW 转发数据包实现互访。该方法的缺点:所有数据传输都要经过Hub-GW,当数据流量很大时,Hub-GW 负载增大,易造成数据包丢失。②Full-Mesh方法。各VPN 之间通过IPSec协议相互连接。这种方法要求各VPN 对每条连接都要有相应的密钥交换策略,开销很大。③K.Ishimura 等人在文献[2]中提出的动态IPSec-VPN 方法。它是Hub-and-Spoke和Full-Mesh方法的结合,当VPN 之间数据流量较小时,VPN 之间利用Hub-and-Spoke方法传输数据;当VPN 之间数据流量较大时,它们之间将动态建立一条直接链路。这种方法要求进行互访的VPN 都是IPSec-VPN,适用范围较窄,而且直接链路的建立需要在VPN 的用户边缘路由器(customer edge router,CE)和服务提供商边缘路由器(provider edge router,PE)之间多次建立VLAN 连接。

本文提出了一种基于多协议标签交换 (multi-protocol label switching,MPLS)的动态VPN 方法,详细叙述了动态MPLS-VPN (dynamic MPLS-VPN,DMVPN)方法的步骤以及优点。

1 主要VPN 互访方法分析

目前常用的VPN 互访方法是IPSec-VPN 方法。IPSec-VPN 方法分为3种:Hub-and-Spoke方法、Full-Mesh方法以及动态IPSec-VPN 方法。

1.1 Hub-and-Spoke方法

Hub-and-Spoke方法中,每个VPN 通过IPSec协议连接到Hub-GW 上,各VPN 通过Hub-GW 实现互访,达到与其他的VPN 通信的目的。因此,连接到Hub-GW 的任意2个VPN 之间都能互访。该方法中,各VPN 的CE 路由器只需要一条IKE/IPSec策略就能与其他VPN 通信。然而,由于所有流量都要通过Hub-GW,这种方法有2点不足:一是数据包可能因为链路较长而出现较大时延;二是Hub-GW 不断增加的负担可能导致数据包丢失。Hub-and-Spoke方法如图1所示。

图1 Hub-and-Spoke方法

1.2 Full-Mesh方法

Full-Mesh方法中,各VPN 之间通过IPSec协议直接相连,以此达到互访的目的。这种结构的优点是所有VPN之间能直接通信,且较大的通信流量对于网络性能的影响较小。其缺点是:对于每个VPN 的网关 (CE 路由器),它必须要为其他每一个VPN 网关制定一条IKE/IPSec策略,包括加密算法、认证算法、通信流量选择载荷信息等。Full-Mesh方法如图2所示。

图2 Full-Mesh方法

1.3 动态IPSec-VPN方法

这种方法是Hub-and-Spoke和Full-Mesh的结合。如图3所示,所有VPN 都与Hub-GW 相连,VPN1和VPN3有互访需求。当数据流量较小时,VPN1和VPN2通过Hub-GW 转发数据包实现互访;当数据流量很大,或是VPN1和VPN3不允许数据包有较长时延时,就利用移动多宿主协议 (mobility and multi-homing protocol,MOBIKE)[3,4]在VPN1和VPN3 之间建立直接链路。该方法只能用于IPSec-VPN 之间的互访,适用范围窄。

图3 动态IPSec-VPN 方法

2 动态MPLS-VPN方法

2.1 技术基础

多协议标签交换 (multi-protocol label switching,MPLS)技术是动态MPLS-VPN 方法的技术基础。

MPLS-VPN 依靠虚拟路由转发 (virtual routing forwarding,VRF)表和数据包的标记来创建一个安全的VPN,不但具有安全性及客户隔离的优点,同时也具有简化路由工作的优点[5]。MPLS技术的工作原理总的来说就是:核心交换,边缘路由[6]。当未被标记的数据分组 (IP包、帧中继或ATM 信元)到达入口标签边缘路由器 (label edge router,LER)时,LER 根据数据分组的头信息查找标签信息库LIB,确定并在包头加上该数据包的标签。之后数据包进行转发时,标签交换路由器 (label switching router,LSR)只需查找LIB,根据标签信息确定转发出口,并用新标签取代旧标签。当数据包到达出口LER 时,出口LER去除标签信息并按传统IP方式转发数据包。当数据分组的标签给定时,标签交换路径 (label switching path,LSP)由标签分发协议LDP[7]确定。

MPLS在解决网络的扩展性、实时流量工程、同时支持多种要求特定QoS保障的IP 业务等诸多方面具备技术优势。

2.2 方法原理

有互访需求的VPN 节点需要向管理服务器注册身份信息。只有注册了身份信息的节点才能进行VPN 互访。当VPN 内的节点请求与另一VPN 内节点互访时,该节点将向管理服务器发送连接申请。管理服务器接收到连接申请后,将查询互访规则集,判断申请能否通过。若连接申请不通过,则不会建立连接;若连接申请通过,将在互访节点之间建立连接。

当节点之间的连接申请被允许时,管理服务器分配新的标签,利用MPLS技术,在需要互访的节点所在VPN 之间建立一条标签交换路径 (LSP)。管理服务器根据节点信息,依据互访规则集制定过滤规则,并下发至节点所在VPN 的用户边缘路由器CE。VPN 中节点数据的传输严格遵守过滤规则,当数据包经CE过滤后,将到达PE 路由器(入口LER),PE 在数据包上加上新标签,然后通过LSP传输。

当设定的传输时长到达或是在传输时长内数据传输结束,互访节点的规则就被删除,节点之间不能互访。当互访节点所在的VPN 之间无任何节点连接时,标签信息和LSP被删除。

根据方法原理,使用动态MPLS-VPN 方法实现互访的工作流程如图4所示。

图4 动态MPLS-VPN 方法工作流程

2.3 方法特点

现有主要VPN 互联方法只能做到VPN 与VPN 之间的连接控制,无法实现不同VPN 内节点与节点之间的连接控制。DMVPN 互访方法可以实现节点与节点之间的连接控制,即当VPN1内的节点i与VPN2内的节点j有数据传输需求时,DMVPN 方法可以实现节点i与节点j之间的连接控制。DMVPN 方法能满足VPN 互访的细粒度控制要求,即按节点、按方向、按时间实现互访需求。同时,节点之间的数据传输严格按照规则实行,不会导致其他节点之间的路由导通。

3 动态MPLS-VPN方法实现

3.1 节点身份注册

加入互访系统的节点都要向管理服务器注册身份信息。身份注册的过程实际上是管理服务器制定互访规则集的过程。各节点通过所在VPN 的用户边缘路由器CE 向管理服务器发送注册信息。注册信息包括以下内容:节点所在VPN、IP和MAC地址、目的节点所在VPN、目的节点IP和MAC、数据流向 (流入或流出)、端口号、预计的传输时长。管理服务器收到注册信息后,将其填入互访规则集的相应位置。

互访规则集如图5所示。互访规则集由两级构成:一级互访规则和二级互访规则。一级互访规则由VPN 连接方、能否连接、标签信息、二级互访规则表标识构成,二级互访规则表标识用来快速查找连接方对应的二级互访规则;二级互访规则由节点i所属VPN、节点j所属VPN、节点i的IP和MAC地址、节点j的IP和MAC地址、数据流向、端口号以及传输时长构成。

图5 互访规则集

互访规则集有2个作用。一个作用是判断节点的互访申请是否允许。一级互访规则判断节点所在VPN 之间能否连接,二级互访规则判断节点之间能否连接,只有一级判断通过才会进行二级判断。当两级判断都通过时,节点的互访申请才会通过。另一个作用是制定CE 的过滤规则。当VPN1中的节点i申请与VPN2中的节点j互访,并且互访申请通过时,管理服务器根据互访规则集制定VPN1、VPN2的用户边缘路由器CE1、CE2的过滤规则。其过程如图6所示。

图6 用户边缘路由器过滤规则制定及下发

3.2 连接建立

2个节点之间使用DMVPN 方法建立连接包含3 个阶段:申请阶段、建立阶段以及传输阶段 (如图7所示)。连接建立过程如下:

图7 连接建立过程

3.2.1 申请阶段

(1)当VPN1内节点i有业务需求,需要与VPN2 内节点j进行数据传输时,节点i将通过VPN1的边缘路由器CE1向管理服务器发送Connect_Request消息,申请与节点j建立连接。Connect_Request消息包括节点i的IP 和MAC地址、VPN1 的标识、节点j的IP 和MAC 地址、VPN2的标识。

(2)管理服务器收到Connect_Request消息后,分析、提取信息,并与互访规则集进行比对,检查申请是否允许,并将结果消息Connect_Response通过CE1 发送给节点i。Connect_Response消息包括2种:当允许建立连接时,返回申请成功消息以及设定的数据传输时长;当拒绝建立连接时,返回申请失败消息。

(3)若节点i的申请被允许,管理服务器将通过VPN2的边缘路由器CE2向节点j发送建立连接通知消息:Connect_Notifying。Connect_Notifying消息包括节点i的IP和MAC地址、VPN1的标识。若节点i申请不允许,则向i返回申请失败消息,同时停止建立连接。

3.2.2 建立阶段

(1)管理服务器通过解析Connect_Request消息获得VPN1和VPN2的标识信息,查找互访规则集中的一级互访规则表,通过比对,查找对应的标签信息是否为空。若为空,说明CE1与CE2之间未连接;若不为空,则CE1与CE2之间已连接。

(2)若标签信息不为空,则直接使用该标签进行传输,管理服务器根据二级互访规则表生成相应的过滤规则 (如图6所示)。若标签信息为空,则管理服务器随机生成新的标签并填入一级过滤规则表中相应位置,并按图6方法生成对应的过滤规则,将标签信息下发至PE1和PE2,PE之间依照LDP协议建立标签交换路径 (LSP)。

(3)管理服务器将过滤规则对应下发至CE1 和CE2。CE1、CE2分别通知节点i、节点j连接已建立。

3.2.3 传输阶段LSP建立成功后,节点i和节点j之间通过CE1和CE2进行连接。此时节点之间可进行数据传输。

3.3 连接删除

在传输时长内节点数据传输结束、或是设定的传输时长到达时,节点之间的连接即被删除。根据连接删除的原因,可将节点之间连接删除的方式分为2 种:Terminate-Request型和Out-Time型。

3.3.1 Terminate-Request型

(1)当节点i和节点j之间的数据传输结束并且未超过传输时长时,CE1、CE2删除关于节点i与节点j数据传输的过滤规则,并检查VPN1、VPN2内节点是否还有连接。若没有,CE1 或CE2 向管理服务器发送Connect_Terminate消息,请求删除连接。Connect_Terminate消息包括VPN1的标识和VPN2的标识。

(2)管理服务器收到Connect_Terminate消息后,提取信息,删除一级过滤规则表中对应的动态标签信息。同时通知PE1和PE2删除相应的虚拟路由转发 (VRF)表。

Terminate-Request型删除方式如图8所示。

图8 Terminate-Request型删除方式

3.3.2 Out-Time型

节点i与节点j之间在设定的传输时长内未完成数据传输,或是在传输时长内数据传输结束,却未向管理服务器发送删除连接消息时,管理服务器将删除连接,其具体过程如下:

(1)传输时长到达后,管理服务器向CE1和CE2发送Out_of_Time消息,CE1、CE2删除对应规则并将超时消息分别通知节点i、节点j。

(2)CE1、CE2检查规则列表中关于VPN1、VPN2内节点之间连接的规则是否为空。若为空,CE1或CE2向管理服务器发送删除标签信息的消息。管理服务器删除一级互访规则表中对应的动态标签信息,同时通知PE1和PE2删除相应的虚拟路由转发 (VRF)表。

Out-Time型删除方式如图9所示。

图9 Out-Time型删除方式

4 动态MPLS-VPN 方法分析

相比于章节1所述IPSec-VPN 互访方法,DMVPN 方法具有以下优点:

(1)能够实现细粒度控制。IPSec-VPN 互访方法只能实现 “面到面”的控制,即整个VPN 之间的控制,无法细化到VPN 内各节点。使用DMVPN 方法,可以由VPN 内的节点发起连接请求、实现节点与节点之间的连接,根据过滤规则控制数据包的流向,根据设定的传输时长控制节点数据的传输时间,做到按节点、按方向、按时间的细粒度控制。

(2)适用范围更广。IPSec-VPN 方法只适用于IPSec-VPN 网络之间的互访,对于非IPSec协议的VPN 的互访需求,该方法不适用。DMVPN 方法的互访路径采用MPLS技术建立,MPLS技术具有很好的兼容性,支持任意网络层协议 (如IP、IPv6、IPX 等)和数据链路层协议 (如ATM、FR、PPP 等)[8]。因此,DMVPN 方法对有互访需求节点所在VPN 的类型没有限制,适用范围更广。

(3)数据传输更高效安全。动态IPSec-VPN 的创建需要进行3次VLAN 创建[9],VLAN 中所有设备位于同一广播域,利用相关软件工具很容易获取其他主机的通信信息,安全性不高[10]。此外,IPSec协议也无法满足数据传输的高效性、快速性和QoS。DMVPN 方法采用MPLS 技术,能满足数据传输的高效性、快速性和QoS。MPLS能兼容多种协议,因此DMVPN 也能满足数据的安全性要求,如与IPSec混合使用[11],即在CE 端对数据进行加密,使用标签在PE之间转发数据包。DMVPN 方法中的标签是动态随机分配的、并不固定,从而有效保证通信传输的安全。

(4)连接删除方法更加全面。动态IPSec-VPN 的删除机制只有一种,即管理服务器先删除数据库中CE1的MAC地址,然后通知PE1删除PE表 (包含源IP和MAC地址、目的IP、端口)中的相关内容,从而删除连接,VPN 下一次连接申请前仍需进行身份注册。该方法只能由服务器发起删除操作,不能确保及时删除链路,容易导致链路的长期占用。DMVPN 方法有2种删除机制,即Terminate-Request型和Out-Time型。Terminate-Request型由用户主动申请删除连接;Out-Time型引入时间域概念,设定传输时长来限制数据传输的时间,当传输时长到来即由管理服务器删除连接并通过CE通知节点。2种机制结合使用,节点和管理服务器都能发起删除操作,确保链路资源不被长期占用、节点之间的路由不会一直导通。DMVPN 连接的删除只是删除节点的过滤规则,当VPN 之间无节点连接时再删除标签信息和虚拟路由转发VRF表,节点下一次申请连接之前无需进行身份注册。

5 结束语

本文针对VPN 互访需求,提出了动态MPLS-VPN 方法。该方法使用随机分配的标签,在有VPN 互访需求的2个节点所在VPN 之间创建MPLS通道,利用互访规则集和过滤规则实现节点到节点的数据传输控制。DMVPN 方法具有细粒度控制、适用于大多数VPN 之间的节点互访、删除机制更加全面以及数据传输可控的优点。该方法对于管理服务器的要求较高,适合于VPN 互访需求较少的情况。下一步研究将着重于改善服务器性能,包括优化DMVPN方法连接建立方式和标签分配方法、增强DMVPN 方法的数据传输可控性,使DMVPN 方法能在更大范围、更广地域内可靠实施。

[1]DING Yi.The research and implementation of Layer3 MPLS VPN [D].Shanghai:Fudan University,2010 (in Chinese).[丁一.Layer3 MPLS VPN 技术的研究和实现 [D].上海:复旦大学,2010.]

[2]Ishimura K,Tamura T,Mizuno S,et al.Dynamic IP-VPN architecture with secure IPsec tunnels [C]//8th Asia-Pacific Symposium on Information and Telecommunication Technologies.IEEE,2010:1-5.

[3]Karbasioun MM,Berenjkub M,Taji B.Securing mobile IP communications using MOBIKE protocol [C]//International Conference on Telecommunications.IEEE,2008:1-5.

[4]Devarapalli V,Eronen P.Secure connectivity and mobility using mobile IPv4and IKEv2 mobility and multihoming (MOBIKE) [EB/OL]. [2013-03-02/2013-12-20].http//tools.ietf.org/html/rfc5266.

[5]NI Yanbiao.The research and implementation of applying MPLS VPN in the telecommunications supporting networks[D].Beijing:Beijing University of Posts and Telecommunications,2010 (in Chinese).[倪彦彪.MPLS VPN 在电信支撑网中的研究与实现 [D].北京:北京邮电大学,2010.]

[6]LANG He.Programming and application of MPLS VPN technology in Tianjin power integrated services digital networks[D].Tianjin:Tianjin University,2010 (in Chinese).[郎赫.MPLS VPN 技术在天津电力综合业务数据网中的规划应用[D].天津:天津大学,2010.]

[7]Lasserre M, Kompella V. Virtual private LAN service(VPLS)using label distribution protocol signaling [R].RFC 4762,2007.

[8]HAN Likun.The design and practice on IP bearer network CDMA of Ningxia telecom [D].Beijing:Beijing University of Posts and Telecommunications,2011 (in Chinese).[韩立琨.宁夏电信CDMA IP承载网络方案设计与实践 [D].北京:北京邮电大学,2011.]

[9]Liao WH,Su SC.A dynamic VPN architecture for private cloud computing [C]//Fourth IEEE International Conference on Utility and Cloud Computing.IEEE,2011:409-414.

[10]WANG Liping.Applications of MPLS VPN technologies in remotecontrol monitoring [D].Beijing:Beijing University of Posts and Telecommunications,2010(in Chinese). [王莉萍.MPLS VPN技术在遥控监测中的应用[D].北京:北京邮电大学,2010.]

[11]FAN Yaqin,ZHANG Licui,MA Qiang.Application of IPSec technology for MPLS VPN security solution [J].Journal of Jilin University (Information Science Edition),2008,26(1):6-9 (in Chinese). [范亚芹,张丽翠,马强.IPSec技术在MPLS VPN 安全保障中的应用 [J].吉林大学学报 (信息科学版),2008,26 (1):6-9.]

猜你喜欢
路由器数据包标签
买千兆路由器看接口参数
科教新报(2022年24期)2022-07-08 02:54:21
SmartSniff
无惧标签 Alfa Romeo Giulia 200HP
车迷(2018年11期)2018-08-30 03:20:32
不害怕撕掉标签的人,都活出了真正的漂亮
海峡姐妹(2018年3期)2018-05-09 08:21:02
标签化伤害了谁
你所不知道的WIFI路由器使用方法?
基于多进制查询树的多标签识别方法
计算机工程(2015年8期)2015-07-03 12:20:27
基于Libpcap的网络数据包捕获器的设计与实现
视觉注意的数据包优先级排序策略研究
无线路由器辐射可忽略