网络能支持的基于网络层的VPN数取决于归属该VPN的站点数及维护每个VPN站点的信息量。为了便于扩展,SP一般把VPN的功能放在骨干网的边路由器PE上,而VPN对骨干网透明,骨干网只是VPN隧道的传输通道,因此VPN业务不会对骨干网产生任何影响,而只会对PE产生影响,所以基于网络层的VPN扩展性完全取决于PE,与PE路由器的可扩展性有关主要有三个方面:虚拟路由器支持多个VPN环境的状态数和路由实例、网络管理系统支持每个VPN交换所需用的控制信息量的复杂度及VPN隧道在各PE直接的建立和维护。
基于网络层的VPN的扩展性主要可从以下几方面来衡量。
1.虚拟路由器
在PE路由器中实现IPVPN功能意味着为特定PE所支持的每个VPN创建独立的环境。这个独立的环境需为特定的VPN维护虚拟路由状态,且有专用的虚拟路由转发实例。通常将这些独立的环境叫做虚拟路由器(VR)或虚拟路由转发实例(VRC)。VR通常驻留在Internet边界的PE设备上Internet骨干网路由器并不知道VPN网络的存在。因此很容易扩展VPN网络只需在PE上添加VR即可。
PE可支持的VR的数目是VPN服务的可扩展性的关键参数。每个PE不仅要支持全局Internet路由转发任务及运行全局路由协议,以支持非VPN的正常业务,还要支持每个VPN所需的VR虚拟路由转发表。每个VR保护一个路由表,它对该VR隶属VPN中节点至节点的可达信息做了描述。
由于每个PE路由器的内存容量和CPU处理能力是有限的,且PE还要维护大量的全局Internet路由转发表,因此,若每个VR的路由转发信息越少,则该PE路由器能支持的VR数就越多,VPN的可扩展性就越好。设计较差的用户网络有可能使VR维护大量的可达信息。这些大量的可达信息不仅要在直接相连的VR中维护,且通过VR的路由信息交换。这些信息会分发到其他PE中同一VPN的VR中,所以设计良好、子网划分恰当的用户网络会使PE中VR的可达信息较少,从而使PE路由器能支持更多的VPN,最终提高VPN的可扩展性。
更进一步,可考虑限制VR中的路由数,把可达信息概括或汇聚到相应VR中的少量路由中。或把多个VR连接到一个VR(叫做“骨干VR”)上,然后再连接到骨干网,由于骨干VR允许VPN VR的聚合,所以当加入新的VPN节点时,骨干网的配置可保持不变。
2.管理复杂性
影响VPN可扩展性的另一个重要因素是网络管理的复杂性。实际上,每个PE需要知道同一VPN中的其他PE的情况。从理论上讲,当要把一个隶属特定VPN的新站点加到一个特殊PE上时,可把这个信息手工配置其他的PE。
对于有大量PE的大SP来说,这会使响应时间过长且易出错。因此,大部分VPN模型用“自动发现”机制,通过智能自动管理系统,或直接在PE间运行外部网关协议(BGP4)来实现配置。当添加一个新的VPN站点时只需配置这个新站点所附属的PE,其他的PE通过运行BGP-4协议交换路由信息,自动发现这个新站点。通过路由协议传播成员信息减少了手工参与的程度,提高了VPN的可扩展性。
3.VPN隧道的维护
除了须支持多个VPN环境和路由实例及网络管理系统之外,与PE路由器的可扩展性有关的另一要考虑的问题是PE要和其他PE路由器共同建立和维护隧道。
在无连接网络中,只在边缘路由器PE中维护每个隧道的状态,而与骨干网无关,如 IPSec、GRE、IPin-P和L2TP中的情况。但是对于MPLSVPN要在支持特定连接的每个骨干网路由器节点中引入标记状态,这会给支持大量MPLS隧道的骨干网带来严重的可扩展性问题。为解决这一问题,需采用MPLS标记栈技术实现隧道复用,即把经过两个特定PE间的多个MPLS隧道复用成这两个PE间单一的MPLS管道。由此,骨干网路由器只需为这些较少的MPLS管道维护标记状态,只有PE路由器要为每个隧道维护隧道标记信息(对输入的MPLS分组),每个VPN用一个MPLS标记(以下称内部标记)PE将该标记压入标记栈内,查找路由转发表,找出骨干网中的出口PE,并把对应这两个PE间的管道标记压入标记栈顶,在骨干网中用新的栈顶管道标记标记交换。到达出口PE后,出口PE将管道标记弹出,用内部标记把MPLS分组转发到相应的VPN子网中去。