王嘉诚,陈文龙,徐 敏,唐晓岚
(首都师范大学 信息工程学院,北京 100048)
隧道机制广泛应用于互联网的安全数据传输及异构网络互连,例如同一单位不同分支机构间就常用VPN隧道实现安全组网.多径隧道则可以支持数据传输路径备份,提升隧道传输的可靠性,同时还能增大基于隧道传输的2个区域间的通信带宽.
多径隧道传输主要特征如下:1)隧道两端通常属于相同的管理体系或有控制层协商机制,隧道两端可视为属于统一管理体系;2)报文传输过程分3个阶段,源端主机—源端隧道网关,源端隧道网关—目的端隧道网关,目的端隧道网关—目的端主机;由此也形成了3段相对独立的路由阶段;3)由于隧道网关可统一管理或协商交互,使得管理者或网关可以获取隧道传输相关网络性能:时延、带宽、丢包率等.
在网络环境中,由于网络硬件设施来源于不同厂家,运行不同网络协议,所以设备指标差异明显.同时,不同隧道在互联网中的实际传输路径不同,导致隧道传输性能差异较大.本文通过获取隧道路径的各项关键参数,对隧道的传输性能进行评价,设计权值向量表示流量对各项网络性能的服务诉求,继而选取最优隧道路径传输对应流量.
由于多隧道网关的部署,隧道路径选择的灵活性提升,运营者需要研究在哪些网关之间建立隧道.当然,隧道网关间全连接建立隧道也是一种方案,但这样可能产生一些使用率极低或完全不使用的隧道,增加了隧道连接的管理代价.同时,隧道网关的流量应尽量均衡,减小部分网关流量过载的风险.针对上述问题,提出一种最少隧道构建方案,在满足最小化最大隧道网关带宽利用率的前提下,建立最少隧道,提升隧道管理效率,降低隧道网关的带宽使用率,为多径隧道的管控提供参考方案.
本文的后续结构如下:第2部分介绍了研究背景及相关工作;第3部分首先分析了多径隧道传输特征,基于多种网络参数提出了面向流量服务诉求的隧道调度方法,并进一步针对网络带宽利用率设计最少隧道构建方案;第4部分介绍了3种不同的隧道流量控制具体实施策略;第5部分对研究工作进行模拟仿真实验,并对实验结果进行分析;第6部分总结了全文.
为了将流量发送到适配路径,满足用户需求,以及控制路径,均衡网络负载,需要对网络模型进行网络性能监测及网络性能评价,同时以二维路由等路由方式,对流量进行路径控制.
近年来网络应用种类逐渐增多,导致互联网结构愈发复杂,网络管理发挥的作用渐渐增强,其中网络性能是评定一个网络环境优劣的主要依据,所以网络性能监测能够发挥十分重要的作用.目前,以软件定义网络SDN(Software Defined Network)为代表的下一代网络技术正在快速发展.相较于传统网络,SDN网络更适合进行网络监测工作[1].文献[2]与文献[3]分别提出了基于SDN的监控框架PayLess以及OpenNetMon,以满足针对SDN网络的监测需求.PayLess提供自适应信息收集服务,可以采集高度准确的实时网络状态数据,并且较少消耗网络资源.OpenNetMon可以监测OpenFlow网络中的网络状态,尤其是丢包率、网络延时和网络吞吐量.文献[4]基于LLDP协议提出一种SDN网络监测方法,能够提供链路延时和链路拥塞数据.文献[5]等提出一种针对SDN的网络安全测评机制,可以高效准确地评估网络安全态势.除此之外,在传统网络环境中SNMP(简单网络管理协议)被广泛应用,文献[6]在考虑网络安全问题的条件下,提出一种基于SNMP协议的网络性能监测方法.
在网络性能监测中,端到端的可用带宽是最重要的指标之一.文献[7]通过对网络中大量可用带宽的分析,提出了一种基于多流形的可用带宽预测算法(MD-AVB).文献[8]等提出一种计算可用带宽估值,再通过自适应方法逐渐增大探测流,从而计算出可用带宽的方法.文献[9]提出ABLSF(Algorithm Based Least Square Fitting)算法,该算法降低探测包的冗余,大幅减少网络可用带宽探测开销.目前,机器学习技术逐渐成熟.相较于传统的可用带宽测量,基于机器学习的可用带宽测量方法更加高效.文献[10]提出了一种基于机器学习的可用带宽测量方法,在计算可用带宽的同时考虑了网络流量随时间的变化.文献[11]将传统的探测间隔测量模型与机器学习方法相结合,更高效测量可用带宽.
完成对网络性能参数的获取工作后,需要结合网络性能参数对网络环境进行评价,并结合评价结果选择适配路径.文献[12]通过分析节点在网络中的关键度,结合关键度计算节点效能,从而体现网络综合性能.文献[13]基于SDN网络设计了网络评价体系,由交换机监测网络状态并上传至控制器,控制器对网络性能进行评价.文献[14]引入了多个指标来衡量覆盖质量(QoC),满足应用程序的不同需求.
二维路由在流量划分、负载均衡、控制路径、避免网络拥塞等方面发挥着十分重要的作用,受到学者们的广泛关注.文献[15]提出了二维路由(TwoD-IP),实现线速转发并降低对存储空间的占用.文献[16]提出了基于二维路由的域间流量工程模型,解决流量细分问题.文献[17]提出了一种二维开放式最短路径优先(OSPF)路由方案TOL,以均衡域内流量,同时较少额外消耗网络资源.文献[18]使用二维路由调度策略,控制流量的网关及路径选择.文献[19]基于自治域系统(AS),提出了一种互联网流量二维转发的差异化传输服务和优化方法.
边缘网络(Edge Network,EN)是隧道传输的使用者,通过隧道网关(Tunnel Gateway,TG)对报文封装,并在骨干网络(Core Network,CN)中透明传输.本文研究的网络场景是边缘网络部署多个隧道网关,即2个边缘网络之间会有多个可选的隧道路径.研究目标包括2个方面:1)调度隧道传输路径,满足各类隧道流量的不同服务质量诉求;2)在满足流量传输需求的同时,减少隧道建立数量,并均衡隧道网关的负载.
对每一个隧道网关,应关注它的双向带宽:1)B_Gbranch,隧道网关连接边缘网络的带宽,若隧道网关有多个接口与边缘网相连,则B_Gbranch是多个接口链路带宽之和;2)B_Gcore,隧道网关连接骨干网络的带宽,若隧道网关有多个接口与骨干网相连,则B_Gcore是这些接口链路带宽之和.显然,对于单个隧道网关,其隧道传输带宽是上述2个带宽值的最小值,即:
BG=min(B_Gbranch,B_Gcore)
(1)
如考虑隧道封装负载,令封装带宽为δ,则:
BG=min(B_Gbranch,B_Gcore-δ)
(2)
对于某一边缘网络ENk,令ENk有NTk个隧道网关,则ENk所有隧道网关的传输带宽之和为B_Nk.
由于网络隧道是一种逻辑通道,可认为属于不同边缘网络的任意2个隧道网关都建立了隧道通路.
首先,分析2个边缘网络的隧道带宽.ENa中每个网关带宽为B_Ga,i,1≤i≤NTa;ENb中每个网关带宽为B_Gb,j,1≤j≤NTb.假设隧道在骨干网传输链路的带宽足够大,则2个边缘网络多条隧道的总带宽为式(3):
(3)
接着,分析NUM_EN个边缘网络的总体隧道带宽,NUM_EN大于2.每条隧道带宽会消耗两端隧道网关的带宽,且这2个隧道网关必须属于不同边缘网络.令所有边缘网带宽值全集为S={B_N1,B_N2,… ,B_NNUM_EN},将其拆分为2个集合:Sa和Sb,且满足2个集合的带宽差值最小.不失一般性,令Sa的总带宽不小于Sb的总带宽,则满足式(4):
(4)
接着,可计算全网隧道带宽值Btotal,满足式(5):
(5)
若Sa中只有一元素,即有一个边缘网的隧道带宽非常高,大于其它所有边缘网(即Sb)的隧道带宽总和,则Btotal取值为Sb的带宽值.否则,Btotal是所有边缘网隧道带宽的一半.
对于多边缘网场景,可根据传输流量的服务需求,调整隧道带宽的分配策略.
令网络拓扑中共有NUM_EN个边缘网络:EN1~NUM_EN,边缘网络ENi有NTi个隧道网关.对于某一个边缘网,与之相连通的边缘网数不超过NUM_EN-1,对于任意两个相互连通的边缘网络:ENi和ENj,它们的隧道路径数记为Nij,它的值不超过NTi*NTj.
(6)
为了计算方便,将丢包率转换为传输率,即“传输率”=1-“丢包率”,再放入公式(6)处理.需要注意,当参数是路径带宽、传输率等与吞吐量成正比的物理量时,Best_Pr是数据集合{P(1,r),P(2,r),…,P(Nij,r)}中的最大值,此τ=1时;当参数是路径跳数、路径时延等与吞吐量成反比的物理量时,Best_Pr是数据集合{P(1,r),P(2,r),…,P(Nij,r)}中的最小值,此时τ=-1.经过式(6)变换后得到矩阵Q′:
(7)
Fi=T(i,1)×C1+T(i,2)×C2+…+T(i,M)×CM
(8)
集合Sfin中元素的值越高,说明流量与隧道路径适配性越强,应该优先考虑使用该隧道路径发送适配流量.
网络拓扑中可能存在多个边缘网络,如图1所示,本文对其中两个相连通的EN1和EN2进行分析.EN1中有网关TGA与TGB,EN2中有网关TGC与TGD,共有隧道路径4条,分别是Tunnel_1:(TGA,TGC)、Tunnel_2:(TGA,TGD)、Tunnel_3:(TGB,TGC)、Tunnel_4:(TGB,TGD).网络性能参数包括以下4项:路由跳数、路径带宽(Mbps)、路径时延(ms)和传输率.假设4条路径的参数为矩阵Q:
图1 边缘网络连接示例
假设网络中共有NUM_EN个边缘网络,并且已知边缘网络ENi和ENj间的流量传输需求为NB_N(i,j),边缘网络ENi的总体流量需求为NB_AN(i),其中流量需求应将输入带宽IN及输出带宽OUT独立考量计算.即:
(9)
(10)
网络拓扑中,属于不同边缘网络的任意2个隧道网关都建立了隧道通路,则ENi中每个网关都能连接所有其它边缘网络的隧道网关.令B_NIN(i)和B_NOUT(i)分别为ENi中所有网关的输入负载能力与输出负载能力,则ENi中网关输入带宽的平均带宽利用率及网关输出带宽的平均带宽利用率LB_NIN(i)与LB_NOUT(i)分别为:
(11)
(12)
遍历所有边缘网络,从全部边缘网络的输入带宽平均带宽利用率LB_NIN与输出带宽平均带宽利用率LB_NOUT中选取最大值,记作LB_Nmax,则LB_Nmax为网络拓扑中最小的最大带宽利用率.
为提升网络整体效能、改善网络环境,在均衡负载的同时,要尽量减少网络隧道建立的数量.设网络拓扑建立的隧道数为Tun_num,则目标为:
{min(Tun_num)|min(LB_Nmax)}
(13)
LB_Nmax为网络拓扑模型中最大带宽利用率,令B_GIN(i,a)与B_GOUT(i,a)分别为ENi中各网关的输入负载能力与输出负载能力,UB_GIN(i,a)和UB_GOUT(i,a)分别为ENi中各隧道网关最大输入可用带宽与最大输出可用带宽,其中1≤a≤NTi,则:
UB_GIN(i,a)=B_GIN(i,a)*LB_Nmax
(14)
UB_GOUT(i,a)=B_GOUT(i,a)*LB_Nmax
(15)
将所有边缘网络间的带宽需求从大到小排列为NB_N队列,将带宽需求最大的2个边缘网络弹出队列,并分析边缘网络间的隧道建立情况,直至队列为空.值得注意的是,对于边缘网络ENi与ENj来说,NB_NIN(i,j)与NB_NOUT(i,j)同时参与NB_N队列排序,并且NB_NIN(i,j)=NB_NOUT(j,i)、NB_NOUT(i,j)=NB_NIN(j,i),故对于相互连通的2个边缘网络,将其中1个边缘网络的带宽需求加入NB_N队列排序即可,且当NB_NIN(i,j)为队列NB_N中最大带宽需求时,应同时考虑NB_NOUT(i,j),即NB_NIN(i,j)与NB_NOUT(i,j)同时弹出队列,反之亦然.
设共有3个边缘网络,随机生成各边缘网络间的流量需求,则其边缘网络弹出NB_N队列情况如表1所示.
表1 NB_N队列表
对弹出队列的2个边缘网络,分别以隧道网关可用带宽之和满足NB_NIN与NB_NOUT为目标寻找网关集合,同时有两个优先原则:1)第1优先原则:集合中隧道网关数量尽量少;2)第2优先原则:集合中隧道网关可用带宽之和尽量小.设弹出队列的2个边缘网络为ENi和ENj,令满足其输入需求的隧道网关集合分别为φIN(i)与φIN(j),满足其输出需求的隧道网关集合分别为φOUT(i)与φOUT(j),则有:
(16)
(17)
(18)
(19)
值得注意的是,φIN(i)与φOUT(j)是一对网关集合,φIN(j)与φOUT(i)是一对网关集合.为方便描述,令φcon为当前网关对应的对方边缘网络涉及建立隧道网关节点集合,即φIN(i)中各网关的φcon对应的是φOUT(j),同理φOUT(j)中各网关的φcon对应的是φIN(i),令φA(i,j)=φOUT(i)∪φIN(j),φB(i,j)=φOUT(j)∪φIN(i),则φA(i,j)为ENi到ENj单向传输涉及网关节点集合,φB(i,j)为ENj到ENi单向传输涉及网关节点集合.
以分析ENi到ENj间的单向传输为例,通过轮询机制为网关节点做初始化处理.φA(i,j)中各网关都至少需要连接1条网络隧道,则令每个网关连接隧道数量限制为Limit=1.将φA(i,j)中各网关可用带宽值从大到小排列为队列UB_GA,取其中满足条件的最大的可用带宽值UB_GA[max],令UB_GA[max]所对应的网关为TGmax,并遍历队列UB_GA中TGmax的φcon中各网关的可用带宽值,从中选取满足UB_GA[max]带宽需求的网关,此时同样保持上述内容中的两个优先原则.值得注意的是,TGmax和φcon中各网关均应满足连接隧道数量小于Limit的条件.若遍历整个队列UB_GA都没有新的隧道建立,且此时建立的隧道仍未满足NB_NOUT(i,j),则Limit++,以控制边缘网络间建立隧道数量最少.每次遍历计算出连接隧道后,需要对模型进行收敛,即UB_GA[max]与{UB_GA[r]|TGr∈φcon}以及NB_NOUT(i,j)相应降低,并且检查是否存在单一网关可用带宽大于边缘网络间带宽需求的情况,即UB_GA[0]≥NB_NOUT(i,j)的情况.若存在,则退出循环,记求得的建立隧道集合为φTA.算法如下:
Input:UB_GA,NB_NOUT(i,j),φA(i,j)
Output:φTA
While(flag==0)
{
Change=0;//记录一次周期中,有没有建立隧道.
若没有建立,则限制连接隧道数量+1
i=0;
While(i { if(UB_GA[i]≤NB_NOUT(i,j)&&TGiis underLimit) {//找到符合要求的UB_GA[max] Select(TGrfromφA(i,j));//找到符合要求的网关集合队列 forrinTGr: { Connect(TGi,TGr);//建立隧道 Write(φTA);//记录建立隧道集合 Release(UB_GA[i],UB_GA[r],NB_NOUT(i,j));//收敛模型 Change=1;//标志位 } flag=Check(UB_GA[0],NB_NOUT(i,j));//是否有单一网关带宽能力大于需求,返回值为0或1 if(flag==1)break; } i++; if(flag==1)break; } if(flag==1)break; if(Change==0)Limit++; else Sort(UB_GA),Change=0; } 完成上述算法后,形成UB_GA[0]所对应网关与φcon中若干个网关建立隧道即可满足传输需求的模型,此时建立的隧道数量最少. 同理,将UB_GB、NB_NOUT(j,i)、φB(i,j)代入上述算法,求得隧道集合为φTB,若φTA⊃φTB,则φTA为所求,反之则φTB为所求.若φTA与φTB与不存在包含与被包含关系,则在ENi到ENj单向传输模型中建立隧道集合φTB,同时在ENj到ENi单向传输模型中建立隧道集合φTA,将NB_NOUT(i,j)、NB_NOUT(j,i)分别代入两个模型中进行收敛,收敛后的模型再次运行上述算法分别求到建立隧道集合φTA′与φTB′,则最少的隧道建立数量为: min(|φTA|+|φTA′|,|φTB|+|φTB′|) (20) 互联网通常以IP路由的形式指定去往不同目的IP网络的流量传输路径,即流量所属的目的IP前缀相同,则其传输路径相同.虽然互联网支持多径传输,但仍会尽量确保同一数据流的报文经相同路径传输,避免同一数据流的乱序问题. 对于多径隧道传输,本文关注3种路由调度策略. 首先,轮询调度策略以目的IP为依据,调度不同目的IP的流量依次选择不同隧道.该策略的优点在于实施简单,可以充分利用某几条路径传输能力,而缺点在于不能均衡网络负载,易造成网络拥塞. 其次,一维路由均衡调度策略也是基于目的IP划分流量,并根据不同目的IP流量需求与各网关负载能力加权分配目的IP前缀到不同网关,在一定程度上均衡网络负载. 假设每个边缘网络ENi有N_IPi个用户子网,即N_IPi个IP前缀,T_IPi,j(n)为ENi到ENj中第n个IP前缀网络的带宽需求,则2个边缘网络ENi到ENj的带宽需求为: T_ENi,j=∑1≤n≤N_IPjT_IPi,j(n) (21) 将T_ENi,j以目的IP地址为分类标准进行流量划分加权分配到各源端网关,并再次进行流量划分加权分配到各目的端网关,即ENi到ENj的T_IPi,j分为NTi个集合,令sum(φ)为集合φ的元素和,则源端目标为: (22) 并将流量φ1…φNTi分配到B_G1…B_GNTi上. 同时将ENi到ENj的TIPi,j分为NTj个集合,目的端目标为: (23) 并将流量φ1…φNTj分配到B_G1…B_GNTj上. 此外,二维路由均衡调度策略在关注目的IP前缀的同时,还分析源IP前缀,以<源IP,目的IP>的映射方式精细划分流量需求,进一步均衡网络负载. 令T_IPi,j(m,n)为ENi中第m个IP前缀网络到ENi中第n个IP前缀网络的带宽需求,则2个边缘网络ENi到ENj的带宽需求为: T_ENi,j=∑1≤m≤N_IPi,1≤n≤N_IPjT_IPi,j(m,n) (24) 二维路由均衡调度策略将T_ENi,j以<源IP,目的IP>为分类标准进行流量划分加权分配到各源端网关,并再次进行流量划分,将流量加权分配到各目的端网关,更能均衡不同隧道网关之间的流量负载. 针对章节3.1内容,本文以随机生成的方式进行流量模拟,设置3个网络区域Area1、Area2、Area3,其中Area1为数据中心,Area2与Area3为办公园区.办公园区间的数据传输量小于办公园区与数据中心间的数据传输量,以模拟企业在现实生活中的流量特征,网络拓扑图如图2所示. 图2 实验拓扑图 网关节点集合为{1,2,3,4,5,6,7},普通路由节点集合为{8,9,10,11,12,14,15,16,17,18,19},通讯路由节点集合为{13,20}.普通路由节点与数据中心的流量需求量较大,带宽需求权值较大,通讯路由节点主要用于不同办公园区间的实时交流合作,所以流量更关注时延、丢包等参数,带宽需求适量降低.将各隧道路径网参评价流量加权后,得到服务质量匹配度图,如图3所示. 图3 服务质量匹配度 其中节点9与节点13所连接的隧道路径网络参数相差较大,节点16与节点20所连接的隧道路径网络参数相差较小,本模型在网参相差较大的情况下可以获得更好的收益. 本文设计仿真实验,实现3.2所述算法.随机生成网络拓扑及区域间流量,设定各项指标阈值,共生成少区域低流量、少区域高流量、多区域低流量、多区域高流量4种模型.低区域模型的区域阈值为[3,5],高区域模型的区域阈值为[6,8],低流量模型是指各网关的带宽利用率期望值阈值为[0.2,0.4],高流量模型是指各网关的带宽利用率期望值阈值为[0.6,0.8],区域内网关数量为常数3.分析对比各模型的区域数量、最大网关带宽利用率、建立隧道数量、平均网关连接隧道数量等指标,实验结果如图4所示. 图4 4种模型各项指标 区域数量对建立隧道数量的影响作用大于最大网关带宽利用率对建立隧道数量的影响作用.最大网关带宽利用率较低的拓扑可以在一定程度上进一步降低隧道建立数量,同时最大网关带宽利用率会有相应增高,需注意协调两个指标间的关系. 针对第4章内容,本文在网络拓扑中创建3个区域,区域1、区域2、区域3的网关数量分别是{2,2,3},IP前缀数量分别是{8,7,10},随机生成各IP前缀间的流量需求,并根据3种不同路由调度策略为各网关分配流量,网络负载情况如图5所示. 图5 3种调度策略网络负载 轮询调度策略的网络负载均衡能力很差,一维路由均衡调度策略在很大程度上提升了网络负载均衡能力,但由于区域3中的源IP前缀较多,且目的IP前缀较少,导致到每个目的IP前缀的流量需求较大,难以划分为与网关负载能力成比例的集合,所以一维路由均衡调度策略不能均衡区域3中的网关发送端的网络负载.二维路由均衡调度策略将流量细分,进一步均衡各网关负载. 本文针对多径隧道网络环境中的传输路径控制问题展开研究.基于多种网络性能参数提出了针对用户网络服务诉求的隧道调度方法,即以计算网络参数指标比值的方式评价隧道的多种网络性能,并通过用户网络服务诉求加权,求得用户服务诉求与各隧道传输性能的适配度,以此实施隧道路径调度,满足多样化的用户流量诉求.同时,提出了基于带宽利用率的隧道调度机制,分析多径隧道传输特征,在满足最小化最大隧道网关带宽利用率的前提下,降低隧道建立数量及管理开销.此外,提出了轮询调度、一维路由调度、二维路由调度等3种多径隧道传输的具体实施策略,为多径隧道部署提供参考. 后续,将在针对用户网络服务诉求的隧道调度方法方面进一步优化,根据用户真实的网络吞吐量、时延、带宽、丢包率、数据安全等多个维度,对真实的数据传输质量进行评价反馈,精确分析隧道传输流量,进一步满足用户流量需求.4 路由调度策略
5 实 验
6 总 结