陶骏,刘晴晴,佘星星
(安徽信息工程学院 计算机与软件工程学院,安徽 芜湖,241000)
企业接入互联网的模式有:NAT(地址翻译)模式、完全地址宣告模式、专线模式和VPN(虚拟专用网)模式。为了节省投资和资源,大部分企业会采用NAT(地址翻译)组网模式,其过程为:企业向通信运营商申请互联网接入,运营商负责分配相关的IP(网际互连协议)地址和建设运营商到企业的物理电路,然后企业在其出口路由器上配置NAT和静态默认路由,企业即可接入互联网。但是当企业具有分布在多个物理区域的分部时,这种组网模式就存在严重的弊端,每个分部都能够单独访问互联网,但是它们之间不能进行相互访问。专线模式不存在NAT模式的缺陷,但此种模式需要向通信运营商支付高额租金,成本昂贵。VPN模式也能避免NAT模式的缺陷,它可以通过MPLS VPN(多协议标签虚拟专用网)、L2TP VPN(二层隧道技术虚拟专用网)和IPSEC VPN(互联网安全虚拟专用网)等技术实现,MPLS VPN是一种基于快速交换标签转发的VPN技术,其转发数据的速度优于L2TP VPN和IPSEC VPN,但是传统的跨越互联网的MPLS VPN网络模式也需要向运营商支付相关的电路租金,而且MPLS VPN网络的管理权限属于通信运营商,对使用此模式的企业完全“透明”,这造成了企业网络管理的效率低下[1]。
GRE(通用路由封装)隧道可以为被异种网络分离的2个物理站点建立点到点的通信隧道,GRE隧道能够跨越通信运营商的网络,根据这个特点,本研究在MPLS VPN的hub-spoking(中心连接)和full-mesh(全互连)的模式基础上提出了一种新的BFFH(分部全互连和核心中心连接)网络数据转发模式,并建立了一种基于GRE隧道和BFFH模式的MPLS VPN网络模型。
企业向通信运营商申请互联网接入时,由于IPv4地址资源紧张,运营商只会给企业分配少量的IP地址,分配的IP地址远不能满足企业的需求。例如如图1所示,此时运营商只给企业分配了一个公网IP地址202.102.216.1,但是企业有3个终端,起码需要3个IP地址,企业可采用NAT(地址翻译)技术解决此矛盾,先为终端分配私网IP地址,私网IP地址经过用户路由器后和相关的TCP端口号进行组合,然后此组合被NAT翻译成运营商分配的公网IP地址后访问互联网。私网IP地址和公网IP地址存在一个多到少的函数映射:f(私网IP,TCP端口号)=公网IP,图1中的3个私网地址192.168.0.1、192.168.0.2和192.168.0.3都映射为公网地址202.102.216.1。
图1 NAT组网方式
当企业具有位于不同物理区域的多个分部时,此种网络模式存在严重的缺陷,因为各分部的私网路由在运营商的公网上没有宣告发布,虽然各分部都可以单独访问互联网,但是它们没有收到各分部的路由通告,所以它们之间不能进行互访[2]。
VPN网络被称作虚拟专用网络,其在互联网上利用公共的物理电路资源为用户创建逻辑独立的专用通道,比专线电路代价低,而且用户接入更加灵活。
MPLS是一种多协议标签交换技术,传统路由交换大都使用路由表进行转发,在转发的每一个路由器上都要进行最长的子网掩码匹配查找,这会导致数据包的转发速度低,影响传输的效率,而MPLS协议在数据的第二层帧头和第三层包头之间插入1个MPLS标签字段,MPLS标签头长度为32位,包含4个数据项,分别为:标签项、优先级项、标签位项和生存期项。其中标签项长度为20位,负责数据发送;优先级项为3位,共有8种组合,其不但决定数据发送的优先级,而且能够配合QoS(网络服务质量)设定数据业务的优先级;标签位项为1位,其确定此标签是否最后一个标签,即MPLS标签是否存在嵌套使用,如果此值为0,表明此标签后还有标签,如果此值为1,则此标签是最后一个标签;生存期项共有8位,其又称为MPLS TTL(多协议报文生存期),主要作用是防止环路[3]。
MPLS的体系结构包括数据转发和控制2个模块,控制模块包括路由协议、IP路由表和MPLS标签协议3个部分;数据模块包括标签转发表和IP路由转发表2个部分。
MPLS域中的路由器依靠LDP(标签分发)协议建立LDP会话后形成邻居关系并交换标签信息,LDP协议通信的主要消息类型包括:hello(发现邻居)、initialization(协商参数)、keepalive(监控连接)、address withdraw(撤销地址)、address(宣告地址)、label mapping(映射信息)、label request(请求映射)、label withdraw(撤销映射)、label release(释放标签)和notification(有错误信息)。LDP session的状态类型有:NON-EXISTENT(初始阶段)、INITIALIZED(建立阶段)、OPENSENT(打开发送阶段)、OPENREC(打开接受阶段)和OPERATIONAL(成功会话阶段)。LDP运行状态机如图2所示。
图2 LDP运行状态机
MPLS VPN是1种三层的VPN技术,其通过BGP协议在运营商的骨干核心网上发布用户的私网路由,使用MPLS标签技术在运营商的骨干核心网上转发用户的业务数据。MPLS VPN组网形式灵活,而且扩展性良好,并且支持QoS和TE技术。1个MPLS VPN的基本组网结构图如图3所示。
图3 MPLS VPN组网结构图
VPN用户通过CE(用户边缘设备)接入到网络,CE可以是路由器、三层交换机或一台主机,CE不运行MPLS协议,运行普通的路由协议即可,CE和PE(运营商边缘设备)一般通过静态或者EBGP(外部边界网关协议)路由协议进行通信[4]。
PE学习CE发布的路由,把CE路由存放到相应的VPN实例的路由表中,PE和P(运营商核心设备)通过OSPF(开放式最短路径优先协议)或者ISIS(中间系统到中间系统路由协议)协议进行通信,PE设备要开启运行MPLS协议,PE和对端的PE建立IBGP(内部边界网关协议)邻居,PE为CE的路由加上RD(路由区分符)标签再通过MBGP(多协议边际网关协议)协议发送给对端的PE,PE会给发送的数据增加2个标签,外层MPLS标签负责在MPLS域进行数据转发,内层VPN标签决定数据的具体VPN归属。
当数据到达PE后,PE根据接收到的路由的RT(路由目标)值Export(出)和Import(入)属性决定是否转发,转发的条件是:源端Export值等于本端的Import值,而且本端的Export值等于源端的Import值,否则相关数据包会被路由器丢弃。
根据Export和Import的设置,可以把MPLS VPN的类型分成2种模式:一种是full-mesh类型,此时每个VPN接入点的RT属性都设置成A:A的模式,Export和Import的值是相等的,任何一个VPN接入点的Export都等于其余VPN接入点Import,任何一个VPN接入点的Import都等于其余VPN接入点Export,此时任何2个VPN接入点都可以相互访问,实例如图4所示,3个PE的RT值是完全相同的,所以他们可以相互通信;另一种是hub-spoking类型,总部的RT属性设为A:B,分部的RT值设为B:A,总部的Export值为A,其和分部的Import属性值A相等,总部的Import值为B,其和分部的Export属性值B相等,所以总部和分部可以相互访问;分部的Export属性值为B,Import属性值为A,所以任意2个分部都不能相互访问,因为它们的Export值不等于Import值,实例如图5所示,PE1的RT值Import属性值等于PE2和PE3的Export属性值,PE1的RT值Export属性值等于PE2和PE3的Import属性值,所以PE1可以和PE2、PE3通信。PE2的Export属性值不等于PE3的Import属性值,PE2的Impor属性值不等于PE3的Export属性值,所以PE2和PE3不能通信,PE1为总部,而PE2和PE3则充当了分部的角色。
图4 full-mesh模式
图5 hub-spoking模式
隧道技术指网络设备把一种网络协议封装到另一个网络协议中以跨越特定的网络。发送网络设备将需要传送的数据包进行封装,在穿越特定的网络后,接受网络设备解封收到的数据包;隧道技术是一种点对点的传输技术,必须在隧道的两端进行隧道的相关配置;传输过程中的特定网络并不知道所封装的数据包对应的网络协议,特定网络只是对数据包进行透明传输,被传输的数据只把隧道当成一段独立的逻辑电路[5]。
GRE是指通用路由封装协议,其能够对特定网络层协议的相关数据报文进行封装,然后把这些被封装的报文在基于另一种网络层协议的网络中进行发送。所以GRE协议用于三层VPN电路,为数据报文的传输提供一个透明可靠的通道。
GRE协议特点主要有:体系机构简单,不需要维持相关的状态,建立隧道两端的设备的系统负荷小;但GRE协议本身不提供数据的安全加密,加密可以与IPSEC联合部署使用;此外,GRE协议不提供流量控制和QoS等流量安全策略。
GRE协议的格式如图6所示。C表示校验和验证标识,C=1表示可选的Checksum(对GRE头部和负载计算校验和)字段生效,C=0表示不生效。K=1表示可选的Key(关键字信息,用于对被接受的报文进行验证)字段生效,K=0表示不生效。Recursion表示报文被封装的层数,其最大值为3,表示最多能封装3层。Flags值为0,为预留值。Version是版本号,其值为0。Protocol Type指乘客协议类型。其他的是填充位,填充位都是0。
图6 GRE协议格式
通过GRE隧道的发送数据过程如下:如果报文的目的地必须经过GRE隧道才能到达,则网络设备先将此报文发给对应的GRE隧道的虚拟接口;虚拟接口收到此报文后立即进行GRE封装,然后封装IP包头,再根据此IP包的目的IP地址对报文进行转发;GRE隧道的另一端网络设备会去掉此报文的IP包头,再交给GRE协议进行处理,需要进行对密钥的校验和计算,并对报文序列号进行验证等;GRE协议完成处理后,网络设备会去掉GRE报头,再使用目的地的路由协议对此数据报文进行转发[6]。
在基于GRE隧道的MPLS VPN网络中,分部可能具有多个PE,如果采用full-mesh模式,任意2个PE都要相互通信,则会浪费大量带宽。如果采用hub-spoking模式,每台PE都要和总部的PE通信,这将加大总部PE的设备压力;其次由于每个分部的PE都能通过GRE隧道跨越运营商,也会增加每个分部的出口带宽使用率,降低GRE隧道的效率。
本研究提出的BFFH模式在分部PE之内使用fullmesh模式,总部PE和分部出口PE之间采用hub-spoking模式,分部出口PE设置2个RT值,第一个RT值和总部PE的RT值匹配并完成hub-spoking通信,第二个RT值和本分部PE的RT值匹配并完成full-mesh通信,具体实例如图7所示。PE2是分部1的出口路由器,其设置了B:A和C:C 2个RT值,RT值B:A和总部PE1路由器的RT值A:B匹配,所以其能通过GRE隧道和PE1进行MPLS通信;RT值C:C和分部1的路由器PE5的RT值C:C匹配,所以PE2和PE5也能通信;但是其RT值不和分部2的路由器的RT值B:A和D:D匹配,所以其不能访问分部2的任意路由器;分部1的路由器PE5的RT值与总部和分部2的任意路由器的RT值不匹配,所以PE5只能访问本分部的路由器。
图7 BFFH模式
基于GRE隧道和BFFH模式的MPLS VPN网络首先在两端的网络出口路由器之间建立GRE隧道,然后在GRE隧道上运行MPLS协议,最后两地的用户通过BFFH网络模式进行互访,此种网络接入方式对运营商而言是“透明”的,不需要运营商进行任何操作。用户网络需要设置P、PE和CE路由器(P和PE的角色可以由一台路由器充当),而不是在运营商的网络中设置P、PE和CE路由器,和传统的MPLS VPN网络的对比如图8所示。
图8 2种MPLS VPN网络对比
在此网络模型中,所有的MPLS VPN的管理设置都由用户完成,完全脱离了运营商,所以不用再向运营商支付租金,降低了用户代价;而且在用户的网络中,全程都使用MPLS标签交换发送数据,提高了数据发送的速度;根据RD值设置了互相隔离的VPN实例,这也使用户数据的安全性得到了保障;BFHH模式降低了分部出口PE的带宽,降低了总部汇聚设备的压力,提升了网络运行的效率。
在Linux环境下用NS2网络软件模拟了MPLS VPN、基于GRE和BFFH的MPLS VPN和L2TP VPN 3种网络模式。使用Waxman随机图数学模型对网络的性能进行分析,在此模型中,图中的结点满足随机分布,会生成1个满足假设需求的网络拓扑图形,结点x与y之间存在边的概率为
其中:d(x,y)为结点x到结点y的欧拉距离;L是欧拉距离最大值;参数α,β都属于开区间(0,1),α的值越大,结点间的存在边的概率就越大,β越大,网络的稠密越高。在实验中取α=0.643,β=0.357,为了比较3种网络的性能[7],做如下设定:
PM、PG和PL代表这3种网络模型的性能,性能和2个因素相关,第1是网络参数fx,取决于网络的时延、抖动和丢包等参数,第2是网络代价cx,和网络的建造代价有关,定义网络性能为
其中x属于集合(M,G,L),M、G和L代表3种VPN网络模型,a是网络参数,b是代价参数,a与b之和为1。
定义代表MPLS VPN网络相对于L2TP VPN网络的优化百分比其中i代表进行实验的网络结点数。模拟实验选取网络结点的数目i取值为k到n(k>4,4<n≤115),i值每次加1,取θML的平均值为定义代表基于GRE和BFFH的MPLS VPN相对于L2TP VPN的优化百分比θGL= ( (PG-PL) /PL)× 1 00%,其中i代表进行实验的网络结点数。模拟实验选取网络结点的数目i取值为k到n(k>4,4<n≤ 115),i值每次加1,取θGL的平均值为
实验对公式(2)的参数a和b设置了2组数据,首先当a=0.5,b=0.5实验结果如图9所示,MPLS VPN优于L2TP VPN,AV(θML)=4.2%;基于GRE和BFFH的MPLS VPN也优于L2TP VPN,AV(θGL)=4.5%。随着结点数目的增加,基于GRE和BFFH的MPLS VPN的优势越明显。其次当a=0.3,b=0.7实验结果如图10所示,因为代价低,基于GRE和BFFH的MPLS VPN的网络优势明显,AV(θGL)=4.8%,而MPLS VPN网络随着结点增加,代价增大,优势较小,AV(θML)=1.1%。
图9 模拟实验结果图(a=0.5,b=0.5)
图10 模拟实验结果图(a=0.3,b=0.7)
使用新提出的网络模型对某企业的网络进行了构建,此企业具有1个总部和2个分部,这3个物理区域的企业通过租用运营商的电路互联,CE设备为新华三集团的MSR3620路由器,P和PE设备为新华三集团的F100防火墙,具体网络拓扑图如图11所示。
图11 网络构建拓扑图
CE路由器负责用户接入,CE上配置子接口,负责接入不同VLAN的数据,CE上配置默认静态路由把用户数据包发送给PE;PE上启动MPLS和LDP进程并进行VRF(虚拟路由转发)配置,设定相关的RT和RD值,配置指向客户路由网段的静态路由,配置和其他PE路由器逻辑相连的BGP协议,配置和P路由器互联的IGP协议,总部PE和分部PE的互访采用BFHH模式;P路由器启动MPLS和LDP进程,配置和P路由器互联的IGP协议,配置与其他P路由器通信的GRE隧道[8]。
网络构建完毕后,网络管理系统检测到分部CE到总部CE的24小时时延如图12所示。图12中时延均小于60 ms,属于正常时延范围(告警值110 ms)。24小时观测的丢包和抖动个数如表1所示。24小时的丢包次数属于正常时延范围(告警值20个),24小时的抖动次数属于正常时延范围(告警值40个)[9]。
图12 CE之间时延
表1 丢包和抖动次数
传统的NAT组网模式只能满足单物理区域的企业连接互联网,具有多个物理区域的企业接入互联网需要通过专线和VPN模式,专线和传统MPLS VPN组网模式需要向运营商支付高昂的电路租金,本研究提出了一种基于GRE隧道和BFFH模式的MPLS VPN组网模型,其对于通信运营商完全透明,在现有网络的基础上升级构建网络,不会增加企业任何成本,而且具有高效、快速和安全的特点。模拟仿真结果良好,在实际的网络建成后,时延、抖动和丢包等网络性能参数满足企业的要求。
下一步研究方向是:通过IPSEC模式对经过GRE隧道用户业务数据进行加密处理[10],通过SDN机制对网络设备进行统一的管理[11],从而进一步提高网络的运行效率。