NQA检测VPN网络
PWE3 Ping测试
NQA的PWE3(Pseudo-Wire Emulation Edge to Edge) Ping测试例用于检测基于MPLS转发的PW路径是否可达。如图4-15所示,PWE3 Ping测试过程如下:
源端(PE1)根据配置的PW ID选择特定虚链路PW(Pseudo Wire)发送MPLS Echo Request报文。报文到达远端PE2后,返回目的地址为发起端接口地址的MPLS Echo Reply报文。
源端通过是否接收到目的端的MPLS Echo Reply报文,来判断此条PW是否可以用于数据转发。
发送端通过接收到的响应报文,统计出测试结果,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通信时间,从而清晰的反应出此条PW通路畅通情况。
PWE3 Trace测试
随着PWE3在网络中的广泛应用,PWE3也需要能够提供相应的运营维护支持。PWE3 Tracert功能就是应这种需求而产生的一种网络维护工具。
根据组网类型的不同,PW可以分为单段PW和多段PW。与之类似PWE3 Tracert也分为PWE3单段Tracert和PWE3多段Tracert。
PWE3单段Tracert
图4-16是PWE3的典型组网图。CE1和CE4属于VPN1。CE2和CE3属于VPN2。PE1到PE4的LSP是PE1-P-PE4。PE2到PE3的LSP是PE2-P-PE3。
在PE1上通过命令可以发起VPN1的PWE3 Tracert。此时的PWE3 Tracert和公网LSP的Tracert差别不大,只是报文中多了一层PW的标签,本端PE上收到对端设备发送来报文后,会检测报文中的标签和VC ID是否正确。
PWE3 Tracert的源端PE依次发出外层标签为TTL=1、2、3……,内层标签TTL=1的MPLS Echo Request报文。各LSR收到外层标签TTL为1的报文,不再继续转发该报文,根据报文内容检查具体业务与标签等信息是否正确,并回应MPLS Echo Reply报文给源PE。这样,源PE可以收集到PW经过的各LSR的信息,以及出口PE的信息。目前MPLS Echo Reply报文为不带标签的IP报文。
下面以PE1和PE4之间的LSP为例说明PWE3 Tracert收集节点信息的机制。
PE1通过发起PWE3 Tracert,可以收集到PE1到PE4的LSP的节点信息。通过对比PWE3 Tracert获得的路径信息和协议的PW的路径,可以确定是否存在错误。
如果PWE3 Tracert只收集到TTL=2(PE4)的信息,未收集到TTL=1(P)的信息,则可以认为是P不支持MPLS Ping。
如果PWE3 Tracert只收集到TTL=1(P)的信息,未收集到TTL=2(PE4)的信息,则可以认为是P和PE4之间链路或者PE4有故障。
如果PWE3 Tracert收集到的信息是PE1-PE2-PE4,则可能是P设备出现故障,协议已经重新计算得到了新的路径。
PWE3多段Tracert
图4-17是PWE3多段的典型组网。CE1、CE2之间建立了多段的PW,各段使用的PW ID不同。经过的LSP路径是:UPE1-P1-SPE1-SPE2-P2-UPE2。
从UPE1发起的PWE3 Tracert,只能从P1、SPE1得到正确的回应。而SPE2和UPE2会检查出“Remote PE Address”和“VC ID”与标签不符合。这就反映出该PWE3 Tracert是经过了PW多段的情况。另外,从各设备反馈的Downstream Mapping信息中也可以了解到PW标签交换的情况。
在SPE1上可以向UPE1发起PWE3 Tracert,也可以向SPE2和UPE2发起PWE3 Tracert。向UPE1的Tracert和单段PW的Tracert情况相同。向SPE2和UPE2发起的PWE3 Tracert则是多段的Tracert。
其他PE上发起的PWE3 Tracert与上述情况相同,这里不再赘述。
VPLS MAC Ping测试
概述
VPLS MAC Ping测试例,主要是用于检测VPLS网络的路径是否可达,目前只支持Ping对端的桥MAC。通过VPLS MAC Ping测试例,可以检测VPLS网络是否存在到目的MAC的VPLS路径,同时可以在目的端检测指定MAC是否存在。
测试过程
NQA的VPLS MAC Ping测试例用于检测VPLS网络的路径是否可达。如图4-18所示VPLS MAC Ping测试的过程如下:
VPLS MAC Ping测试需要指定VSI和MAC地址,MAC地址可以是VPLS网络内对端PE的桥MAC,也可以是用户CE侧MAC。首先,构造UDP的MPLS Echo Request报文,在IP头填入127.0.0.0/8网段的地址作为IP的目的地。根据查MAC表的情况决定报文如何转发:如果查到从PW侧学到的MAC表,则只往该PW转发报文;如果查MAC表未命中,则需要往该VSI对应的所有PW广播发送。
PE节点侦听3503端口接收请求报文,并回复MPLS Echo Reply响应报文。
如果请求端指定的MAC地址为用户CE侧的MAC,请求报文并不会转发到CE侧,只是在CE接入的PE节点上检查是否存在该CE的MAC地址,如果存在,则认为成功,否则,认为失败。
发送端通过接收到的响应报文,统计出测试结果,通过计算源端接收时间和源端发送时间之差,计算出源端到目的端的通信时间,从而清晰的反应出VPLS网络链路畅通情况。
根据图4-18,在PE1上发起VPLS MAC Ping测试,测试过程如下:
在PE1上配置VPLS MAC Ping测试例,目的MAC指定为CE2的MAC:0018-826d-4917。在PE1上的MAC表项中未查到目的MAC,因此向该VSI所有PW广播发送。
PE2和PE3都收到请求报文:在PE3上目的MAC与桥MAC不相同,MAC表项中也未命中目的MAC,根据水平分割原理,不再转发报文。
在PE2上目的MAC与桥MAC也不相同,但检查MAC表项,存在CE侧MAC表项与目的MAC相同,因此命中并回复应答报文,VPLS MAC Ping测试成功。
使用场景
支持普通VPLS场景、HVPLS场景。
使用价值
当链路出现故障时,可通过VPLS MAC Ping测试清晰的反应出VPLS网络链路畅通情况。
VPLS PW Ping测试和VPLS PW Trace测试
产生原因
VPLS作为搭建电信城域网的技术主体,已经在全球很多地方获得了规模性应用。在对业务的可管理性方面,现有的VPLS对业务进行监控的能力仍较差,迫切需要完善VPLS的OAM机制。
VPLS网络中PW的连通性关系到用户间流量转发是否正常,PW的转发性能关系到网络能否符合签订的SLA(Service Level Agreements)。VPLS PW Ping和PW Trace正是这样的工具,用于测量PW的连通性,收集PW的性能数据,进行路径发现和故障定位。
与普通命令行发起Ping和Trace检测原理相同,NQA的优点是增加了调度和结果收集的机制以及阈值告警等。
这两个工具的实现参考了相关标准,使用MPLS ECHO报文,带上特定FEC,使用隧道封装格式,使用Router Alert标签,需要VPLS支持Router Alert能力。该工具只检测PE到PE间网络内PW的状况,报文不会往CE转发,所以NQA测试例也只能在PE上配置,在其他设备配置将找不到对应VSI,检测结果为drop。
- 用户可以配置一个VPLS PW Ping或VPLS PW Trace类型的NQA测试例来执行对VPLS服务的主动监控,并检测这些服务的故障。当超过RTT阈值、连接中断或者一个请求报文的响应发生超时时,NQA测试例可以发出一个SNMP Trap。此外,RTT等数据将作为统计信息供查看。
- 通过使用NQA测试例的调度功能,可以周期调度一个NQA测试例,以有计划地执行对特定VPLS PW的检测。如果需要对多个PW进行检验,可以配置多个测试例。NQA支持多个测试例进行并发测试,NQA的调度功能可以保证测试例之间不相互影响,合理安排执行时间使尽可能多的测试例可以正常运行对PW进行检测(根据测试例的流量权值算出系统可以支持的测试例个数)。
实现过程
- 发起端PE1配置基于指定VSI、peer IP地址的测试例,发起到对端peer的检测。NQA模块查找相应的转发信息,封装好带Router Alert的MPLS echo request报文,发送到公网。
- 接收端PE2收到报文后,通过报文解析发现是本机报文后被上送CPU处理,打上收、发包时间戳后,按用户指定回包方式将报文送回。
- 发起端PE1收到MPLS echo reply报文后,将其时间信息取出,存入结果表,如果超时,则在结果表中记录错包。在设备做到时钟同步后,可计算出单向时延。
- 发起端PE1配置基于指定VSI、peer IP地址的测试例,发起到对端peer的检测,NQA模块查找相应的转发信息,封装好带Router Alert的MPLS报文,在私有TLV中打上时间戳,发送到公网;第一个包的TTL为1(用户也可指定初始的 TTL及最大TTL)。
- 中间节点收到MPLS echo request报文会通过TTL超时上送,通过入标签和入接口索引,并获取下一跳信息,封装DS TLV,发送MPLS echo reply报文。
- 发起端收到回包后,将TTL加1,继续发送,直到目的地回包或TTL达最大值。