人们对MPLS技术的安全性存在几个误解。最大的误解是:基于IP的MPLS不安全。事实上,为增强安全性,MPLS为本地IP网络增加了很多功能,包括路径隔离、数据隔离、分组过滤和网络隐藏机制等。
另一个误解是,服务供应商客户相互之间可以侵入到对方的VPN中。事实上,这是根本不可能的,因为不同客户的MPLSVPN是完全隔离的。第三个误解是,MPLSVPN容易遭受外部DoS攻击。这也是不对的。纯MPLSVPN网络是非常安全的。如果供应商边缘路由器只提供VPN接入,同时提供互联网接入的MPLS核心也可以有效防止DoS攻击。另一个常见问题是,即使为VPN服务使用了专用的供应商边缘路由器,也容易遭受DoS攻击。虽然理论上正确,但实际使用中从未遇到这个问题,因为在使用中很容易发现并断开与入侵者的连接。
不需要修改地址
管理式VPN服务不需要对企业的内部网、台式机或服务器作较大的改动。多数企业都采用了专用IP定址计划。基于成本和安全原因,企业希望在移植到管理式IPVPN服务的共享网络环境时沿用原来的计划。MPLS允许不同的VPN使用相同的地址空间(RFC1918)。由于为每条IPv4路径添加了64位路径标识符,因此,即使是共用地址,在MPLS核心中也是唯一的。每个VPN客户和MPLS核心本身都可以完全独立地使用整个IPv4地址空间。
路由和数据分离
MPLS通过两种方式实现路由分离。第一种方式是将每个VPN分配到虚拟路由和转发(VRF)实例。供应商边缘路由器上的每个VRF只保留某个VPN的路径,保留时可以使用静态配置的路径,也可以使用供应商边缘与客户机边缘路由器之间运行的路由协议。第二种方式是为多协议边缘网关协议(BGP)添加唯一VPN标识符,例如路径辨别符。多协议BGP在相关的供应商边缘路由器之间交换VPN路径,并将路由信息保存在VPN专用的VRF中。对于每个VPN来讲,MPLS网络上的路由是相互分离的。
MPLSVPN通过IPVPN转发表的分离而实现第三层数据分离。服务供应商核心内的转发基于标记。MPLS将设置供应商边缘路由器开始和结束的标记交换路径(LSP)。分组只能通过与该VPN相关的供应商边缘路由器接口进入VPN,而且由接口确定路由器应该使用哪个转发表。这种地址计划、路径和数据的分离能够帮助MPLSVPN实现与帧中继或ATMVPN相当的安全性。
隐藏核心
将MPLS核心网络对外隐藏起来,能够增加攻击的难度。MPLS隐藏核心的方法是对分组进行过滤,以及不在边缘以外显示网络信息。分组过滤能防止向外暴露VPN客户的内部网络信息或MPLS核心。由于只有供应商边缘路由器包含VPN专用信息,因而并不需要显示内部网络拓扑信息。服务供应商只需按照供应商边缘和客户边缘之间的动态路由协议的要求,显示供应商边缘路由器的地址即可。
在动态提供路径的情况下,如果客户VPN必须向MPLS网络公开其路径,也不会降低网络安全性,因为核心只了解网络路径,而不了解具体主机的路径。由于供应商网络不向第三方或互联网显示地址信息,因此,MPLSVPN环境完全能够阻挡住攻击者发动的攻击。在提供共享互联网接入的VPN服务中,服务供应商可以利用网络地址转换(NAT)宣布路径。即使使用这种方法,向互联网公开的信息量也不会高于典型的互联网接入服务。
阻挡攻击
为防止路由器遭受攻击,服务供应商将对分组进行过滤,并隐藏地址。访问控制列表(ACL)只包含从客户边缘路由器到路由协议端口的接入。外部黑客的惯用方法是,先穿过MPLS核心,然后直接攻击供应商边缘路由器,或者攻击MPLS信令机制,最终攻入第3层VPN。对路由器进行适当的配置可以同时防止这两种攻击。虽然设备地址不对外公开,但内部黑客可以猜测。MPLS地址分离机制认为向内传输的分组属于VPN客户的地址空间,由于逻辑上不可见,因而黑客不可能通过地址猜测攻入核心路由器。
通过路由配置,服务供应商可以防止黑客直接攻击供应商边缘路由器上的已知对等接口。静态路由是最安全的方法。在这种情况下,供应商边缘路由器将拒绝动态路由请求。静态路由指向供应商边缘路由器的IP地址,或者客户边缘路由器的接口。当路由指向接口时,客户边缘路由器不需要知道核心网络中的任何IP地址,甚至不需要知道供应商边缘路由器的地址。