当前,两种新兴的VPN技术:BGP/MPLS VPN和IPSec VPN越来越受到人们的关注。本文分别讨论了基于BGP/MPLS和IPSec来提供VPN业务的机制,评价了两种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保障。
声明:中国IT运维网登载此文出于传递更多信息之目的,并不意味着本站赞同其观点或证实其描述。其原创性以及文中陈述
文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或
承诺,请网友及读者仅作参考,并请自行核实相关内容。如原作者不同意在本网站刊登内容,请及时通知本站予以删除。凡本网站注明"来源:中国IT运维网"的作品,在授权范围内使用时,请保留注明"来源:中国IT运维网"。