盛仲飙
(渭南师范学院 数学与信息科学学院 计算机网络工程技术中心,陕西 渭南 714000)
VPN(Virtual Private Network)虚拟局域网,是指利用密码技术和访问控制技术在公共网络中建立专用通信网络。在虚拟专用网中,任意两个节点之间的连接并没有传统专用网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台之上的逻辑网络,虚拟专用网对用户端透明,用户好像是用一条专用线路通信[1]。与传统的专有线/租用线路相比,VPN费用低廉而且能很好地满足客户的需求。
出于用户业务模型的需求,VPN逻辑网络结构通常有主干-分支(Hub-Spoken)、半网状(Half-Mesh)以及全网状(Fullmesh)结构,这些逻辑网络结构通常通过路由控制技术来实现。在MPLS VPN网络中常用的路由控制技术是Route-Target(即RT技术,通常采用不对称RT实现路由控制),此技术是在MPLS VPN网络中比较通用的方式,在数据网中有广泛的应用。但是,在一些特定的场合,不能使用非对称RT技术,但又需要实现业务要求的各种VPN逻辑网络结构以保障网络隔离、网络QoS以及网络服务。
MPLS(Multiprotocol Label Switching,多协议标签交换)是从90年代中期新兴的一种多层交换技术,它吸收了ATM的VPI/VCI交换的一些思想,无缝地集成了IP路由技术的灵活性和2层交换的简捷性,在面向无连接的IP网络中增加了MPLS面向连接的属性。MPLS引入了基于标签的机制,它把路由选择和数据转发分开,由标签来规定一个分组通过网络的路径。由于MPLS将2层交换和3层路由技术相结合的优势,在解决VPN、CoS(服务分类)和流量工作等IP网络的重大问题时具有优异的表现,其应用也逐步转向MPLS流量工程和MPLS VPN了[2]。
MPLS网络与传统IP网络的不同之处主要在于MPLS域中使用了标签交换路由器LSR。它为进入网络中的IP数据包分配标记,并通过对标记的交换来实现IP数据包的转发。标记作为IP包头在网络中的替代品而存在,在网络内部MPLS在数据包所经过的路径通过交换标记(而不是看IP包头)来实现转发;当数据包要退出MPLS网络时,数据包被解开封装,继续按照IP包的路由方式到达目的地。一个标签是一个短的、长度固定的数值,由报文的头部携带。MPLS包头的结构如图1所示,包含20比特的标签,3比特的EXP(通常用作Cos),1比特的S,用于标识此标签是否为最底层标签,8比特的TTL。MPLS包头位于2层帧头与3层数据包头之间。
图1 MPLS包头结构Fig.1 MPLS Header Structure
MPLS VPN是一种基于MPLS技术的IP-VPN,是在网络路由和交换设备上应用MPLS技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标记交换实现的IP虚拟专用网络(IP-VPN),可用来构造宽带的 Intranet、Extranet,满足多种灵活的业务需求。MPLS VPN又称为“BGP_MPLS/VPN”,这种VPN技术建构在MPLS和BGP技术基础之上,它利用MPLS来实现三层交换和QoS,利用Multiprotocol BGP来实现VPN路由信息的传播。MPLS VPN是一种主要面向运营商的VPN解决方案,也是VPN技术的发展趋势[3]。
如图2所示,MPLS VPN网络主要由CE(用户网络边缘路由器)、PE(骨干网边缘路由器)和P(骨干网核心路由器)以及VPN用户节点组成。其中CE直接与服务提供商网络相连;PE与用户的CE直接相连,负责VPN业务接入,处理VPN-IPv4路由;P负责快速转发数据。在整个MPLS VPN中,P、PE设备需要支持 MPLS的基本功能,CE设备不必支持MPLS[4]。
图2 MPLS VPN网络结构图Fig.2 MPLS VPN Network Structure
在MPLS/BGP VPN中,属于同一VPN的两个site之间转发报文使用两层标签,在入口PE上为报文打上两层标签,外层标签在骨干网内部进行交换,代表了从PE到对端PE的一条隧道,VPN报文打上这层标签,就可以沿着LSP到达对端PE,再使用内层标签决定报文应该转发到哪个site上,由此实现对于用户的VPN逻辑隔离功能,此内层标签在实际应用中采用MP-BGP的扩展Community属性(即RT)实现[5]。
BGP是为了TCP/IP网络设计的用于自治系统之间的路由协议。它利用多协议扩展和共有属性来定义VPN的连接性,在基于MPLS的VPN中,BGP只对一个VPN的成员发布信息,通过流量分离来提供基本的安全性。因为数据是通过使用LSP来转发的,LSP定义一条不可改变的路径,以保证其安全性[5]。
BGP是在EGP应用的基础上发展起来的,BGP通过在路由信息中增加自治区域(AS)路径的属性,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的策略。同时,BGP支持无类型的区域间路由CIDR(Classless Interdomain Routing),可以有效的减少路由表条目,同时BGP本身的数据结构也可以支持较大的路由表[6]。为了提供对多种网络层协议 (如MPLS)的支持,IETF对BGP-4进行了扩展,形成MP-BGP,目前的MP-BGP标准是RFC2858。
要实现VPN逻辑结构,除采用非对称RT?技术之外,还可以利用BGP Community属性,通过结合路由过滤技术,实现对不同VPN的VRF中的路由表条目整形,从而实现不同的网络VPN逻辑拓扑。
BGP Community属性实质上是对于一条路由的标记,它是以一个字符串形式存在的编码。默认的BGP Community属性有 Internet,Local-as,no-advertise,no-export此 4 种,同时还可自定义此属性的内容(即自定编码,数值范围1~4 294 967 295)。
相对于BGP Community属性,非对称RT技术实际是利用了扩展的BGP Community属性,即在MP-BGP协议中,对于BGP路由协议新定义了一种属性,并对Community的数值编码范围进行了扩展,以容纳写入以AS:NN格式表示的RT数值。以此属性作为路由RT的携带载体。
利用BGP Community路由属性技术实现各种VPN逻辑结构的技术手段方式如下。
在一条路由进入BGP域传播时,通过策略路由(Route-Map),为本路由赋与一个Community值,在网络中的其他站点路由器根据收到的Community数值决定对本路由接受还是丢弃即路由过滤,各路由器经过路由过滤之后形成各自的对应于各VPN的路由表VRF,从而以这些VRF的路由条目组织形成了各种VPN逻辑结构。以下是利用BGP Commuinty技术实现同一物理拓扑上的不同逻辑VPN拓扑的方法:
如图2所示,利用BGP路由策略结合Community实现核心-分支的VPN逻辑结构,关键配置逻辑如下(以思科设备为 例 , 设 路 由 A=1.1.1.0/24,B=2.2.2.0/24,C=3.3.3.0/24,D=4.4.4.0/24,仅列出关键节点的关键配置,其他从略)
1)核心站点 PE 0:
2)分支站点 PE 1:
如上图所示,利用BGP路由策略结合Community实现半网状的VPN逻辑结构,关键配置逻辑如下(设路由A=1.1.1.0/24,B=2.2.2.0/24,C=3.3.3.0/24,D=4.4.4.0/24,仅列出关键节点的关键配置)
1)核心站点 PE 0:
2)分支站点 PE 3:
MPLS VPN技术可以在同一个物理网络上为不同的用户和业务提供独立、隔离的虚拟专用数据通道,且可以利用各种技术(如路由标记RT技术)针对不同的需求提供各种逻辑VPN网络拓扑结构,目前在数据通信网络中应用非常广泛。
文中提出的BGP Community结合路由过滤技术在逻辑VPN网络结构的实现上是RT技术的一种替代方法,它可以在RT技术不能使用或应用效果不佳的情况下代替其功能,实现基于同一物理网络拓扑的各种不同的VPN逻辑结构,其技术原理和实现均相对简单,且可以利用现有的各类路由器设备的BGP路由协议自身的功能,无需更换或升级设备,具有经济,实用和高效的特点。
[1]盛羽.基于BGP和MPLS的虚拟专网的研究与实现 [D].湖南:国防科技大学,2006.
[2]胡蔚星.MPLS VPN的原理与规划[J].有线电视技术,2004(12):15-16.
HU Wei-xing.MPLS VPN principles and planning[J].CATV Technology,2004(12):15-16.
[3]黄海清.MPLS VPN技术及其应用[J].中国数据通信,2003(1):12-13.
HUANG Hai-qing.MPLS VPN technology and its application[J].China Data Communication,2003(1):12-13.
[4]梁琦,张力军.MPLS VPN不同解决方案的比较分析[J].电信工程技术与标准化,2005(6):15-16.
LIANG Qi,ZHANG Li-jun.MPLS VPN comparative analysis of different solutions[J].Telecom Engineering Technics and Standardization,2005(6):15-16.
[5]张毓.MPLS VPNW网络的研究与设计[D].安徽:合肥工业大学,2007(3):16-17.
[6]李进印.MP-BGP协议在MPLS-VPN中的应用浅析 [J].科技资讯,2009(1):18-19.
LI Jin-yin.Analysis of MP-BGP protocol in MPLS VPN application[J].Science&Technology Information,2009(1):18-19.