刘冬梅 张燕春 陈常嘉
摘 要 当前,两种新兴的VPN技术:BGP/MPLS VPN和IPSec VPN越来越受到人们的关注。本文分别讨论了基于BGP/MPLS和IPSec来提供VPN业务的机制,评价了两种VPN解决方案,为网络管理者评估这两种方案提出了指导方针。
关键词 MPLS IPSec VPN
1 简介
目前,两种既各具特点又具有一定互补性的VPN(虚拟专用网)架构正逐渐在提供新兴服务的基础网络领域大行其道,这两种VPN就是融BGP(边界网关协议)和MPLS(多协议标记交换)技术的VPN和基于IPSec的VPN。
RFC 2547定义了允许服务提供商使用其IP骨干网为用户提供VPN服务的一种机制。RFC 2547也被称为BGP/MPLS VPN,因为BGP被用来在提供商骨干网中发布VPN路由信息,而MPLS被用来将VPN业务从一个VPN站点转发至另一个站点。BGP/MPLS VPN能够利用公用骨干网络强大的传输能力,降低企业内部网络/Internet的建设成本,极大地提高用户网络运营和管理的灵活性,同时能够满足用户对信息传输安全性、实时性、宽频带和方便性的需要。
IPSec是由IETF 的IPSec 工作组定义的一种开放源代码框架。IPSec 的工作组对数据源认证、数据完整性、重播保护、密钥管理以及数据机密性等主要的有关方面定义了特定协议。IPSec通过激活系统所需要的安全协议、确定用于服务的算法及所要求的密钥来提供安全服务。由于这些服务在IP层提供,能被更高层次的协议所利用(如TCP、UDP、ICMP、BGP等),并且对于应用程序和终端用户来说是透明的,所以,应用和终端用户不需要更改程序和进行安全方面的专门培训,同时对现有网络的改动也最小。
2 BGP/MPLS VPN体系结构
RFC 2547中定义了三种类型的路由器:CE(用户网边缘路由器)在用户侧为用户所有,接收和分发用户网络路由,CE连接到提供商的PE(骨干网边缘路由器);PE处理VPN-IPv4路由,这是BGP/MPLS VPN的核心;位于骨干网核心的P(骨干网核心路由器)负责MPLS包的转发。
VPN是若干个用户站点的集合,而站点是VPN中一个孤立的IP网络,比如可以是公司总部或分支机构等。用户接入BGP/MPLS VPN的方式是每个站点提供一个或多个CE同骨干网PE的连接,每个站点在PE中由各个VRF(虚拟路由转发实例)来表示,它包含了与一个站点相关的路由表、转发表、接口、路由实例以及路由策略等。PE上的接口可以绑定到唯一一个VRF上,一个VRF也可以被绑定到多个接口上,但PE之间不能交换VRF信息。
当边缘设备在两个VPN站点使用相同的地址前缀,就会在路由解析时出现冲突,BGP/MPLS VPN使用VPN-IPv4地址族和MP-BGP(多协议扩展BGP)来解决这一问题。一个VPN-IPv4地址(12字节)是由8字节的RD(路由标示)和4字节的IPv4地址组成。这样就可以把相同的地址前缀翻译成不同的VPN-IPv4地址,也就可以分别为每个VPN站点生成与该VPN-IPv4地址对应的不同路由。
BGP/MPLS VPN中有两种重要的数据流,一种是进行路由分发和LSP(标记转发路径)确定的控制流,另一种是用户的VPN业务流。存在两种控制机制,一种负责不同PE间路由信息的交换,另一种负责建立通过提供商骨干网的LSP。
路由分发基于BGP的扩展共同体属性,以目的路由为基准进行过滤。当一条VPN路由插入到BGP中后,VPN路由目标扩展共同体属性就与其相关联,这些都来源于路由学习建立的VRF相关BGP出口列表。每一个PE也包含与每一个VRF对应的入口列表,入口列表类似于路由器中允许接入VRF的ACL定义。例如,PE中某一条特定VRF的入口列表包含目的接口A和C,但不包含B,则包含接口A和C的VPN路由能够接入VRF,B的则不能。
VPN隧道的LSP的建立可以通过LDP或RSVP来完成。LDP在PE之间建立尽力而为的LSP,当VPN需要QoS时,则必须通过RSVP建立具有QoS能力的路由LSP。
路由器CE1向CE2所在的网络发送数据。首先转发到默认网关PE1,PE1在与站点1对应的VRF中进行路由查询,PE2广播的到站点2的路由对应标记5,同时查询BGP的下一跳路由,PE1查找到PE2的路由LSP在转发分组到特定分组之前需加标记100,即入口路由器P1在分组上加两个标记,栈底的5使PE2将分组转发到特定CE,栈顶的100用来在网络中转发分组。
分组在路由器P1处交换标记,用标记2替代100,P2作为LSP的倒数第2个路由器在转发分组到PE2前弹出栈顶标记,PE2利用栈底标记5来标识下一跳的CE,弹出标记5后将IPv4包转发到CE2。
3 BGP/MPLS VPN特点
BGP/MPLS VPN为安全的点到点通信提供了一种可选的方案,它是具有与ATM/FR虚电路的VPN相同安全级别的VPN。BGP/MPLS VPN建立了几种内部机制来保障安全性。VPN-IPv4地址可以使不同的VPN在地址前缀重叠时保持独立。
路由分离通过使连接到PE的用户站点对应不同的VRF来实现,并且,在BGP扩展共同体属性中,通过使用唯一标示符在BGP路由更新过程中进一步保证路由分离。当正确地配置了地址空间和路由分离后,BGP/MPLS VPN就能够提供同二层VPN,如ATM/FR VPN同样的安全性。此时要想通过MPLS云侵入其他VPN是不可能的,除非经过了特定的配置。
这些安全机制存在于提供商网络的内部,提供商核心网络的结构对用户来说是不可见的。CE知道下一跳的PE路由,却不能得到任何核心P路由,因此,用户不能获得核心网络结构的情况,这就能保护潜在的攻击者使用这些信息进行拒绝服务、欺骗、会话窃取等攻击。
可能出现欺骗用户空间的情况,然而,因为每一个VRF都对应一个或多个指向用户的接口,要想在VPN中欺骗IP地址,攻击者必须在用户侧。如果VPN用户能够采取措施保障内部站点的安全性,则这种情况不会发生。由此考虑,BGP/MPLS VPN能够提供与IPSec相同级别的安全性。PE和CE之间物理链路的存在和与之相关的PE中对应的VRF取代了认证VPN端点的必要性,因为他们必须与站点保持正确的物理连接。
也可能出现欺骗MPLS标记的情况,然而,有两种解决的方法,一种是CE与PE之间的接口是IP接口,任何LSP都不包含这些接口,正确配置的PE应丢弃从CE来的MPLS流量。另一种方法是对于每一个P来说标记仅具有本地意义,这意味着攻击者不仅要获得提供商的物理接入,还要在特定位置用欺骗标记来接入特定VPN,这几乎不可能办到。并且提供商的安全策略应该能够这样做。
与BGP/MPLS VPN安全性有关的最大问题是当有多个VRF和目标通信者时配置提供商网络的复杂性,对于好多提供商来说,管理众多BGP路由表并保持好的连通性是很困难的,因为一张表的改变会影响很多其他表。
BGP/MPLS VPN比传统的二层或基于IPSec的VPN更经济,BGP/MPLS VPN的另一个优点是它的可扩展性,二层或IPSec VPN是点到点的,因此,星型结构是扩展时最常用的结构,而提供商可简单地将BGP/MPLS VPN配置成全网状结构,这不仅能方便地排出内部路由故障,还能够极大简化提供潜在的敏感应用,如语音和视频。BGP/MPLS VPN还能够提供与MPLS网络同等级的QoS保障。
4 IPSec VPN体系结构
IPSec通过选择特定的安全协议在IP层提供安全服务,确定服务所用的算法,为提供所需的业务增加加密密钥,IPSec能够在一对主机、一对安全网关或主机和安全网关之间保护一条或多条“通道”。
本质上,IPSec是为提供两个设备间的安全IP 通路而指定的一系列协议。因IPSec VPN是基于设备的,而不是基于网络的,它比BGP/MPLS VPN在实施上提供了更大的灵活性,提供商无需对路由器进行额外的配置。IPSec VPN可以在主机或站点之间通过安全网关实现。
IPSec使用两个协议来保障IP上的安全传输。AH(认证头)协议为IP数据报提供无连接的数据完整性和数据源身份认证,同时具有防重放攻击的能力。ESP(封装安全载荷)协议为IP数据包提供加密机制,为数据流提供有限的机密性保护。
IPSec提供了两种不同的模式来传输加密数据:传输模式和隧道模式。通常情况下,传输模式只用于两台主机之间的安全通信,传输模式能够为两台主机间的每一次协议会话提供分离的通道,它插在IP头和有效载荷之间,保护的是IP包的有效载荷或者说是上层协议。隧道模式必须用在网关到网关的会话或主机到网关的会话。隧道模式为会话提供唯一的加密通道,为整个IP包提供保护,先为原始IP包增加AH或ESP字段,然后在外部增加一个新的IP头,指向目的IPSec网关。
IPSec没有指定必须使用何种加密和散列算法。通常的加密算法有DES和3DES,散列算法有MD5和SHA-1,Diffier-Hellman被用来交换加密密钥。然而,因为IPSec并没有指定需要特定的加密和散列算法,它提供了一种方法供设备协商通用的策略。采用 SAC(安全联盟)的构建方案来确定双方使用的策略和会话密钥,SA驻留在SPD(安全策略数据库)中,VPN网关查询SPD来确定如何处理从特定VPN隧道来的数据包,在转发前在包头添加SPI(安全策略标示符),接收端根据目的信息和SPI查询SPD对数据包进行解密/认证处理。
IPSec的一项重要的功能是交换加密后的数据,为了有效、准确地实现这一功能,必须进行加密密钥的交换。IKE(因特网密钥交换)协议是一个产生和交换密钥并协调IPSec参数的框架。IKE在通信系统之间建立安全联盟,提供密钥确定、密钥管理的机制,将密钥协商的结果保留在SA中,供AH和ESP以后通信时使用。
IKE在两个端点间协商SA的过程包括两个阶段。阶段1用于两个对等实体建立一个安全的、已认证的通信通道,阶段2用于IPSec进行密钥和参数的协商。
一个隧道模式的VPN组网,主机A发送最终目的地为主机B的数据到它的默认网关G1,G1为IPSec网关和防火墙。它查询策略,确定到主机B的数据需加密;查询SPD,没找到对应主机B所属网关的SA,则G1和G2之间必须先建立SA,G1执行IKE阶段1,之后G1、G2执行阶段2,建立SA,确定通信使用3DES/SHA-1加密和散列算法,插入各自的数据库,双方交换加密密钥,G1对数据包进行加密并添加SHA-1散列值,G2接收到分组,根据包头的SPI查询SPD,检查散列值,对数据包进行解密转发到主机B,如同LSP路由,IPSec SA是单向的,G2必须建立SA来允许主机B对主机A应答。
5 IPSec VPN特点
IPSec在IP层上实现了加密、认证、访问控制等多种安全技术,极大地提高了TCP/IP的安全性。由于整个协议在IP层上实现,上层应用可不必进行任何修改,并且由于IPSec在实现安全策略上的灵活性,使得对安全网络系统的管理变得简便灵活。
在IPSec VPN中通过加密来保证数据的机密性,SA定期协商更新来提供更强的保护,因DES容易被解密,推荐使用3DES,IKE协议进一步减少了暴露的机会。
然而,IPSec并非没有缺点,如果要一个大的点对点的VPN或企业远程接入VPN,则其中的主机都必须被单独配置,这对企业应用VPN带来了巨大的压力,并且VPN的配置是相当复杂的,一发而动全身,小的失误也可能带来严重的后果。
更重要的是IPSec在理论上提供了充足的安全性,但应用上并非完全这样。相对于加密本身,攻击者可能更热衷于在用户和用户之间的VPN之间建立站点,但这不应作为VPN本身的缺陷。另一个不利因素是有的用户试图为安全设备扩展原本不属于它的功能,如为安全网关增加发送邮件的功能来融合VPN和邮件服务器,这都会带来安全隐患。
6 BGP/MPLS VPN和IPSec VPN比较
VPN的服务目的就是在共享的基础公共网络上向用户提供网络连接,不仅如此,VPN连接应使得用户获得等同于专有网络的通信体验。合理和实用的VPN解决方案应能够抗拒非法入侵、防范网络阻塞,而且应能安全、及时地交付用户的重要数据,在实现这些功能的同时VPN还应该具有良好的可管理性。在站点与站点之间实施VPN时,网络管理者应该综合比较BGP/MPLS和IPSec VPN两种方案,下面的参数用来比较这两种解决方案。
数据机密性:IPSec VPN通过强大的加密算法来保障数据的机密性,BGP/MPLS通过在提供商物理站点间定义一条唯一的数据通道来加强数据的机密性,这可以禁止攻击者非法获得数据拷贝,除非他们在提供商的网络上放置镜像器。尽管BGP/MPLS使数据被窃取的机会最小化,但IPSec通过加密可以提供更好的数据机密性。第三种方案是采用IPSec over BGP/MPLS VPN,这样显然可以保证更高水平的数据机密性。
数据完整性:IPSec使用散列算法来保证数据的完整性,对于BGP/MPLS VPN来说,没有什么根本的方法来保障数据的完整性,然而,通过地址空间隔离和路由信息,防止不熟练的攻击者对数据的添加、删改还是有一定的效果的。
数据有效性:IPSec基于Internet进行数据传输,尽管攻击者不能读取数据,但攻击者可以通过在Internet路由表中加入错误路由来旁路数据。BGP/MPLS VPN基于LSP来传输数据,因LSP仅有本地意义,欺骗攻击很难实现。BGP用于在VPN中传递路由信息,然而,BGP扩展共同体属性使错误路由的引入相当困难,因此,从这点上说,BGP/MPLS能够提供更好的数据有效性。
Internet接入:大多数IPSec VPN基于Internet传输数据,因此,大多数IPSec VPN体系结构允许VPN接入到所连的站点。在BGP/MPLS体系结构中却很难实现这一点,在BGP/MPLS VPN接入Internet方案中,通常选择分离的Internet连接来保障整个VPN的安全性。
远程接入:尽管很多提供商支持远程接入,但对BGP/MPLS VPN来说并不是本来这样,并且,他们要么要求远程接入的用户在相同的提供商网络中,要么提供商必须实施相同级别的BGP/MPLS VPN。从这一点来看,IPSec在提供远程接入方面有优越性。
可扩展性:IPSec VPN难以扩展。因配置方面的要求,IPSec通常是点到点的连接,BGP/MPLS由提供商配置,能够轻易地实现全网状的网络结构,并且,BGP/MPLS VPN还允许网络管理者利用MPLS的特性如QoS,因此在企业环境中BGP/MPLS VPN比IPSec VPN更具扩展性。
BGP/MPLS和IPSec VPN具有各自的优点,BGP/MPLS VPN扩展性好,能够提供更好的数据有效性,而IPSec VPN能够保障更好的数据机密性和完整性。两种VPN都难以配置,每一种方案都应考虑应用简便,然而,对于点到点连接,两种方案都成立,用户在实施时应仔细分析两种方案的优缺点,选择最适合自己的。
----《中国数据通信》