MPLS VPN的实现方式分析
摘要:文章针对MPLS VPN网络的构成和数据传输原理展开了深入的分析,首先从有关概念出发,指明MPLS VPN网络的技术构成,而后给出MPLS VPN网络的结构示意图,并对其构成展开深入讨论。随后对这种网络中的数据包结构,以及数据的传输过程进行必要分析,充分阐明了MPLS VPN网络传输的实现方式。
关键词:MPLS VPN 网络 原理
目前在信息传输领域,VPN(Virtual Private Network),即虚拟专用网络,以其自身专有的独特属性满足了市场的需求,目前较为广泛使用的VPN技术包括MPLS VPN和IPSEC/L2TP/GRE/UDP VPN两种,其中MPLS VPN应用更为广泛,专门用于实现网络中各类资源的逻辑划分以及安全隔离。
MPLS VPN是MPLS技术和VPN技术的结合,其中MPLS(Multi-Protocols Label Switching),是一种在数据包中绑定标签,并且通过网络进行数据包转发的技术,这种技术以有效地结合了网络中交换层和路由层的技术而著称,相对而言能够以简洁的方式完成数据传输,其实质是将网络中需要的寻址服务和数据包转发相分离,并且由标签进行统一的规定操作。
MPLS VPN网络的理论结构图见图1。
图1 MPLS VPN网络结构示意图
图1中,P为MPLS VPN网络中的核心路由器,不负责维护VPN信息;而PE则是MPLS VPN网络的边缘路由器,负责将CE连接进入到网络中的边缘路由器,同时负责维护VPN成员的具体信息;而CE则是客户端借以接入网络的路由设备,CE处于VPN中,同时对VPN透明。
在这样的VPN网络中,遵守的是MPLS的数据标签结构。整个数据包中依次包括二层头部、MPLS头部、IP头部以及需要传输的数据几个部分,其中MPLS头部中又可以加以细分,依次包括Label(标签)、EXP、S以及TTL几个部分,其数据容量以及结构参见图2。
整个MPLS头部共32bit,其中标签Lable占据了20bit的长度,其主要功能在于标记转发地址。其后的EXP字段长3bit,这个字段并没有明确标示出其功能和作用,目前常常用于标记服务的业务登记COS(Class of Service)。S字段只占据一个字节,用于标识出MPLS标签是否为最低层标签。而最后的TTL则占据了8bit,用于避免产生路由回路,当数据包每经过一个路由器,TTL的值都会减1,一直到值为0为止;而当TTL的值为0的时候,无论数据包是否送达目标,
都会被数据传送网络当做垃圾数据并采取丢弃。
图2 MPLS头部数据结构
在这样的数据结构之下,MPLS VPN网络能够实现有效而安全地数据传送。
客户端路由CE和VPN边缘路由器PE通过BGP或IGP路由进行连接,而PE之间,则采用MP-BGP传送VPN路由信息以及相应的VPN内层标签,同时PE节点上还存储有对应于每个VPN网络的虚拟路由表VRF,以支持数据在PE阶段进行寻址。在边缘路由器PE节点和MPLS VPN网络核心路由器P之间,采用IGP协议相互学习路由信息,并采用LDP协议进行MPLS外层标签与信息的绑定。整个MPLS VPN网络正是基于此将两层标签以及数据包本身相绑定,并且将CE、PE以及P三类节点连接成为一个整个MPLS VPN网络。
需要传送的数据包从某一个VPN的CE节点进入整个网络,在CE和PE相连接的接口上对数据包的来源身份进行识别,并且在PE节点上查找对应于其来源VPN的路由信息,确定相关的目标PE端,并在起始端PE中需读取MPLS骨干网络的路由信息,同时采用LDP在用户前传数据包中打上内层标签。随后将该数据包送入以核心路由节点P构成的骨干网络中,同时在数据包上附加用于MPLS标签交换外层标签。在这一骨干网络中,每一个核心路由节点均只读取外层信息标签,一直到找到对应的PE端路由器。在数据包到达了最终的PE端路由器之前的最后一个骨干网络P节点时,该P节点负责将数据包的外层标签剥离,交由PE端读取内层标签并找出相应的VPN,进而送达最终目标。
从MPLS VPN网络对数据包进行传输的整个过程中可以看出,骨干网络中的P节点只读取数据包上的外层标签,从而对处于公网中的数据包完整性有着一定的保护作用。同时,对于PLS VPN网络中的骨干部分而言,P节点路由器只需要参与骨干IGP路由,而不需要存储过多的VPN路由信息,因此在效率提升方面具有一定优势。此外,MPLS VPN网络在扩展方面具有很好的弹性,MPLS VPN网络丝毫不改变CE和PE原有的配置,一旦有新的CE加入到网络时,只需在PE上简单配置,其余的改动信息由BGP自动通知到CE和P。