魏镇韩,江兰,刘桂英
(解放军75842部队,广东广州 510500)
随着IP 网络快速发展,及时有效地判断IP 链路拥塞或故障状况对网络运维及管理具有重要意义。网络断层扫描(Networks Tomography,NT)[1]根据网络边界的测量信息来分析和推断网络内部的性能及状态,网络测量节点均为外部端节点,在没有网络节点协作的条件下,把网络看作一个黑盒子,通过端到端路径的性能指标结合不同端到端路径之间的交叉状况,推断网络内部链路的性能参数[2-3]。其目标是以较小网络统计代价来揭示局部网络拥塞、路由故障及异常情况。本文简要分析了传统NT 技术的局限,提出了一种简便的分布式IP链路故障评估方法。
从源点s向目标d发送测量分组,令分组转发路径为p,时间Δt内分组成功通过该路径的概率为t(p),通过某链路e∈p的概率为t(e),设各链路分组通过率相互独立,则存在表达式即一条路径的分组通过概率为其各链路分组通过概率的积,上式两端取对数,令Yp=logt(p),Xe=logt(e),可转化为线性表达式选取不同s和d进行测量,记录相应Yp作为已知变量,所有相关Xe均为未知变量。设有m条路径进行了测量,其中涉及n条链路,则可形成n元线性方程组(常以矩阵形式表达)。NT 基本思想即通过求解上述n元线性方程组来获取各链路的分组通过概率,不同研究中分别采用高斯消元[4]、逆矩阵[5-6]和增广矩阵[7]等代数方法进行求解。
实践中若链路出现阻断则对传统NT技术造成严重不利影响。链路阻断后路由器短时间内重新选择路由,源点到目标的分组转发路径发生变化,难以及时确定路径与链路准确的对应关系,无法建立准确的测量方程,更不利的是若路由更改后原有端到端测量仍能成功完成,则NT 技术完全无法察觉发生链路阻断。
从应用角度来看,目前各种网络断层扫描技术多为模拟环境下的理论研究,简化了实际网络运行机制,仅将IP 网络理解为一个简单拓扑图;同时过于依赖各种数学模型,缺乏对网络底层技术机理深入探讨和融合,导致在应用可靠性和网络可测量性上均存在较大限制[8],长期以来无法真正实用化。为解决此突出问题,本文深入研究了路由器动态选路的内在机制,设计一种基于逐跳测量中间路由器接口的方式来实现链路性能及阻断的评估判断。
Ping 获取的是端到端(通常跨越多个IP 链路)通阻数据,需进一步获得链路级通阻数据。如图1所示,从源点S依次向端口地址a11、a21、a31、a41发送Ping分组,正常情况下均能获得成功响应。当R2与R3之间的IP链路出现某种故障时(如线路故障、路由器本身故障、端口故障、协议配置不当等),无论实践还是仿真结果都能验证下列结果:源点S 无法正常Ping 通地址a31(此时动态选路协议不更新直连网段的路由表项,因此该端口即使处于激活状态也不存在迂回路由);地址a11、a21仍能Ping 通,而地址a41经动态选路更新后若存在迂回路由则能Ping通。
图1 基于Ping获取IP链路级的通阻数据
得出如下结论:使用Ping依次测量一条稳定的分组转发路径上的路由器接口地址,相继观察返回结果,若某个接口无法Ping 通,则反映了其直连IP 链路存在故障。据此可设计一种基于Ping的测量方法,将IP 端到端/路径级的测量结果解析为链路级通阻数据。
表1定义了网络测量模型,Ri表示路由器,vi表示其接口地址,ex,y=(Ri,vy)表示两个路由器之间的直连链路,通常使用测量分组进入路由器的接口地址标识路由器,而在多点测量环境中某链路的第一个路由器Ri可能具有多个分组进入接口,而该链路的第二个路由器的直连接口vj是确定的。s∈S表示测量源点,一般是位于中心机房附近的一台计算机终端;d∈D表示测量目标,一般是各维护方向上的使用终端。
表1 网络测量模型描述
2.2.1 单点测量
针对特定测量源点s和目标节点d,假设从s到d所途径的稳定转发地址为p(s,d)=(v1,v2,...,vn),测量周期Δt内从s向v1...vn分别发送测量分组,可直接获取一系列子路径的分组通过概率:
设各链路分组通过率相互独立,则一条测量路径的分组通过概率等于该路径各链路分组通过概率之积,令s=v0,则对于特定i∈[1,n],存在下式:
利用上述两式可依次计算各相关链路的分组通过概率:
上式成立条件是∏k∈[1,i-1]X(ek-1,k|s)不为0,即Δt内s 与vi-1之间所有链路分组通过概率均不为0。计算遵循3个基本规则:①依序计算。按照i从1到n的顺序依次计算一条路径中所有链路分组通过率X(ei-1,i|s),前提是该链路所有前驱链路分组通过率均不为0。②阻断判断。较传统NT技术,本方法具备确定性链路阻断判断手段,在(2)式中,若Y(s,vi)为0 而X(e0,1|s)直至X(ei-2,i-1|s)均不为0,则判断链路ei-1,i处于阻断状态:X(ei-1,i|s)=0。考虑动态选路因素,该时间周期内该链路的所有后继链路均处于不可计算状态,即从源点s角度无法确定其准确的通阻状态,不再计算这些后续链路的通阻状态(但不影响从其他测量源点角度来测量并计算该链路)。若后续计算周期内计算出X(ei-1,i|s)不为0,则该链路所有链路将退出不可计算状态,继续进行计算。③最高限值。X(ex,y|s)取值范围为[0,1],若利用算式(2)计算X(ex,y|s)取值大于1时,则应近似表示为1。
2.2.2 多点测量
若链路ex,y仅存在于某特定源点的一条或多条测量路径中,则直接按式(3)计算其分组通过概率。若ex,y存在于多个测量源点s1,...,sm的不同测量路径中,则其特征是从m个源点到节点地址vy的m条测量路径p(sk,vy)中的最后一条链路皆为ex,y,k∈[1,m]。令S={s1,...,sm},由m个源点向节点地址vy分别发送测量分组,则根据式(2)有:
Y(sk,vy)直接由测量获取,设ex,y所有前驱链路均已计算出各自分组通过率,则上式存在m个方程1个未知量,属于超定方程组,无法直接计算X(ex,y|s)值,需求其最小二乘解。
构造如下正规方程组:
其中,AT=[a1a2..am]为A 的转置向量,则求解该正规方程组可得:
该解即为(5)式超定方程组的最小二乘解。故多个源点下某共同链路的分组通过率计算公式为:
若m条测量路径中ex,y的各个前驱链路分组通过率均不为零,上式可简化为:
为解决传统NT技术无法有效感知阻断链路的问题,本文讨论了路由器端口可达性与链路故障之间的内在关联(对特定测量点而言),据此设计了一种分布式轻量级主动测量机制,通过简单的Ping测量逐跳获取中间路由器接口的响应数据,推导出分布式测量环境中链路分组通过率的计算公式来快速识别故障链路。实践中,一线维护人员只需要进行一些简单网络配置即可实现IP 链路级分组通过率的自动监测和分析,具有较高的应用价值。