无论是从技术本身,还是从常规的网络应用来说,MPLS VPN都可以达到与ATM、帧中继同样的安全程度。
一、MPLS技术安全性
为了实现MPLS网的高度安全性,MPLS VPN做到了以下几点:
1.地址空间和路由独立
在MPLS VPN中,不同的VPN之间,地址空间是完全独立的。这意味着:
(1)任一VPN必须使用与其他VPN同样的地址空间;
(2)任一VPN必须使用与MPLS核心同样的地址空间;
(3)任意两个VPN之间的路由必须相互独立;
(4)任意VPN和核心网络之间的路由必须相互独立。
这是为了实现某一VPN中的数据包不至于到达其他VPN或MPLS核心网中具有同样地址的主机。
2.隐藏MPLS核心网
MPLS不会暴露任何不必要的信息给外界,包括其VPN用户,这样将使网络攻击变得十分艰难。图1示出了VPN可能暴露于外界的地址空间:VPN1看不到P路由器或其他VPN,CE和PE路由器之间的连接属于VPN的地址空间,而PE路由器上的其他地址则属于核心网。
3.攻击防范
由于地址空间和路由的独立性,直接实施对某一VPN的攻击几乎不可能,只能通过MPLS核心网实现。对MPLS核心的攻击有两种基本途径:直接攻击PE路由器、攻击MPLS信令机制(多数为路由)。
VPN和MPLS核心网之间有两种路由配置方式:一是静态路由,二是动态路由。
如果从CE路由器到PE路由器的静态路由指向CE接口,CE路由器就不需要知道核心网络的任何IP地址,甚至不需要知道PE路由器地址。这虽不利于网络的进一步配置,但对网络安全来讲,是一种更有优势的选择。
除上述情况外,CE路由器至少需要知道PE路由器的标识符(RID,IP地址),这将导致安全隐患的出现。一种可能的攻击是,攻击者向PE路由器发送大规模的路由或路由变更数据包,实施DoS攻击。在实际网络应用中,可通过访问列表(ACL)将对PE路由器的访问限制在某些必需的路由协议范围之内。
为了降低这种被攻击的风险,在PE路由器上尽可能安全地配置路由协议,有以下几种途径达到这一目的。
(1) 只允许来自CE的路由协议进入PE,而禁止来自任何其他地方的路由;或在CE路由器的接口上绑定ACL,只允许到达PE路由器的访问进入。
(2) 为路由协议配置MD5鉴权,BGP、OSPF、RIPv2都可以做到这一点。需要注意的是,这需要SP和用户就所有CE和PE路由器之间的共享加密达成一致意见。
(3) 配置某些路由协议参数。如在BGP协议中,配置“BGP dampen”及相关参数,有效抑制路由震荡和相互制约。此外,如果可能,对每个VRF配置可以接受的最大路由数。
由上可知,从一个VPN攻击其他VPN或核心网几乎不可能,但从理论上讲,CE路由器依然可能通过路由协议对PE路由器实施DoS攻击,因此,必须对PE路由器加以很好的保护,尤其是与CE路由器相连接的PE接口。
4.拒绝标记哄骗
在MPLS网络中,数据包转发是依据PE路由器所附加的标记来完成的,而非目标IP地址。与IP地址哄骗(攻击者调换源IP地址和目的IP地址)攻击相类似,攻击者也可能对MPLS数据包实施标记哄骗。
但PE路由器不可以接受来自CE路由器带有标记的数据包,任何此类数据包都将会被丢弃,因此,在MPLS网络,通过标记哄骗来实施攻击是不可能的。但发送到MPLS核心网的数据包,其IP地址仍然有可能被哄骗,然而由于PE路由器有严格的地址独立性,每个VPN都有自己的VRF,因此,这种攻击只能影响产生地址哄骗的VPN,而对MPLS并没有增加任何风险。
二、MPLS的安全加强措施
仅靠MPLS的自身技术安全性还不足以让人放心。对SP来说,采取附加措施保护MPLS核心网安全非常重要。首先要考虑以下因素。
● 可信任设备:PE及P路由器、远程访问服务器、AAA服务器等,都必须被看作可信任的系统,这需要非常强大的安全管理,包括物理安全系统及访问控制列表、安全配置管理等等。而CE路由器不属于SP的管理范围,被视作不可信任系统。
● CE/PE接口:PE和CE路由器之间的接口对于MPLS网络的安全来说至关重要,PE路由器的配置应尽可能严密。从安全角度讲,最好将CE路由器配置为非指定IP地址,并使用静态路由。
1.网络核心的保护
包过滤器的配置非常重要,它可以只允许来自CE路由器的某些特定路由到达PE路由器对等接口,而其他流量将被拒绝。这可有效防止针对P及PE路由器的攻击,而PE路由器上的对等接口,由于其特殊地位,需要专门的保护措施。