浅谈MPLS测试方法——MPLS应用测试方法

网络 网络管理
MPLS是以各种应用形式部署于各大网络中,对MPLS的测试也必然需要包括对这些应用的验证。本文对MPLS几种主要应用分别进行讨论。

3 MPLS应用测试方法描述

MPLS技术能够得到日益广泛的应用,其原因本不是因为其转发技术本身有多么大的优势,特别是在计算机硬件技术快速发展的今天,路由器和交换机的IP转发效率已经能够达到甚至超过MPLS转发,何况由于MPLS转发需要多个基础协议作为实现基础,在很多实际测试中相同路由器的IP转发效率往往还会优于MPLS转发效率。为MPLS技术赋予旺盛生命力的是其具有良好的灵活性和易扩展性,能够使我们利用这个技术实现更多、更丰富、更灵活的应用,满足了服务提供商和用户两个方面对网络的需求。这些应用主要包括:MPLS L3VPN、MPLS L2VPN和MPLS TE等几类。这些应用也是MPLS技术在实际网络中的存在形式。

既然,MPLS都是以各种应用形式部署于各大网络中,对MPLS的测试也必然需要包括对这些应用的验证。与上面讨论对某个具体协议的测试不同,这些应用都没有专有协议相对应,RFC中只介绍了这些应用的基本框架和为实现这些应用而在各个协议进行的一些扩展,主要是对LDP、BGP和各种路由协议进行扩展。那么在对这些MPLS应用测试时,我们需要从这些协议扩展功能和各种应用本身功能两个方面进行验证。下面我们对MPLS几种主要应用分别进行讨论,由于MPLS TE应用本身理论、相关协议和实现都相对比较复杂和独立,这里不作介绍。

3.1 L3VPN测试方法

MPLS L3VPN应用是目前在网络中使用的最广泛的MPLS应用。服务提供商通过为各个VPN网络维护、转发用户路由,并利用MPLS转发技术实现各个VPN Site之间报文转发,从而达到将位于不同物理位置的用户网络连接为一个整体的最终目的。在PE上为不同VPN分别维护各自独立的路由表,为VPN用户网络提供了必要的私有性和安全性。

同时,MPLS L3VPN也是最为复杂、发展最为迅速的一种应用。为了不断满足各种用户多样性的网络应用需求,L3VPN本身也在不断变化,解决方案逐步丰富、完善。目前已经有包括基本L3VPN组网、跨域VPN组网、运营商的运营商(CSC)、嵌套VPN组网、分层PE组网、MCE、Hub-Spoke等多达十几种的网络拓扑结构。这些组网的基本结构相同,仅在某些设备(PE或CE)上实施的配置、所处位置和交互协议上有所不同,因此对这些不同组网模式的测试方法也没有太多变化。

L3VPN最初的应用是服务提供商在自己的网络内部(一般属于同一个自治系统)提供的一种VPN服务,为用户不同站点或不同用户(需要通信)之间提供安全的数据传输业务。因此,最基本的L3VPN组网就是L3VPN中所有的P和PE设备都处于服务提供商在自己的相同的自治系统内部。

对于基本L3VPN组网,根据设备的不同位置和作用分为P、PE和CE设备。在测试过程中,对不同位置的设备要进行有重点的测试:

P设备主要应用于电信级运营商或者大企业网络的骨干位置,其上承载着整个网络上的所有路由,路由容量大,对性能的要求也非常高。因此对于P设备,其测试重点首先是L3VPN流量转发能力(其实也就是MPLS报文的转发能力)以及转发延迟和稳定性等方面。可以通过使用各种测试仪器厂时间持续打入大量L3VPN的路由和来进行转发能力及转发延迟的测试,通过长时间运行进行拷机测试。此外,在进行上述测试过程中执行shutdown/undo shutdown物理接口、reset ospf、reset bgp、reset ldp进程、包括reboot系统等各种异常情况测试。

PE设备处于服务提供商网络边缘连接用户网络,由于用户网络协议配置和上连链路类型存在的多样性,并且PE需要为不同VPN分别维护独立的路由表,因此,对于PE的功能和性能要求是比较高的。PE设备的测试重点在几个方面:首先,也是最主要的测试内容就是PE与CE之间采用各种多实例的测试。包括在各种不同的网络接口类型(Frame Relay、ATM、E1、T1、E3、T3、FE、GE、POS、GRE等)上运行各种多实例(BGP多实例、OSPF多实例,RIP多实例,IpSec多实例,NAT多实例,ARP多实例等)。其次,测试MPLS L3VPN的表项建立和刷新情况。通过命令检查所有相关表项的建立、通过执行shutdown/undo shutdown私网接口、绑定/去绑定存在的VPN实例、绑定/去绑定不存在的VPN实例、重置各种多实例进程等异常操作,测试L3VPN各个表项的刷新/删除/重新建立的有效性和时间。再次,测试L3VPN用户网络不同站点之间各种应用,包括Ping(大包、小包)、Telnet、Ftp、HTTP、各种组播应用(语音、视频)、IPSec、L2VPN等的功能和性能,对于出现的问题,通过打开调试信息检查MPLS报文转发时的标签压栈、交换和弹出操作是否正确。

此外,PE之间包括PE与P之间的不同组网结构的测试,主要是MBGP的组网结构包括反射、联盟、多层反射、反射和联盟混合结构和各种MBGP属性等的应用,这部分内容应该属于BGP测试的内容,在进行L3VPN测试的时候也要关注一下,这里需要特别注意的是地址重叠的情况,因为L3VPN需要定义VPN实例,通过BGP协议Update报文中携带的RT属性匹配远端VPN实例。配置两个VPN实例,采用相同的或者重叠的地址空间并不断的修改VPN实例的RT值并使BGP不断的发送Update报文,进行重叠地址空间情况下的异常测试。

CE设备主要应用于用户网络的边缘,用于与运营商网络的接入。在L3VPN的实现中,CE设备作用相对小一些,不用作太多测试,重点考察下L3VPN不同站点CE之间的各种应用的功能和性能。

对于一些特殊应用的L3VPN应用,包括跨域VPN组网、运营商的运营商(CSC)组网、嵌套VPN组网、分层PE组网、MCE、Hub-Spoke等,大体上的测试方法同上,但是针对不同的组网结构或应用模式的特点,也要有相应的测试手段。

跨域VPN组网模式是L3VPN基本应用的一个扩展,VPN用户分布在不同的自治系统中。目前支持三种跨域VPN的实现方式,第一种背靠背方式其实就是相邻的两台ASBR互联的接口都绑定在VPN里,这种方式并没有什么特殊的内容,测试中可以进行一些异常情况测试,比如在ASBR上执行接口下绑定/去绑定VPN实例、shutdown/undo shutdown接口等简单测试项(其实这部分测试前面已经提过)并测试跨域的用户网络之间的各种应用,包括Ping(大包、小包)、Telnet、Ftp、HTTP、各种组播应用(语音、视频)、IPSec、L2VPN等的功能和性能。

跨域VPN的另外两种实现方式都是通过MBGP支持实现的。第二种实现方式在ASBR之间建立MBGP邻居关系,通常也称为单跳MP-EBGP方式,根据ASBR之间转发VPN路由时是否改变下一跳又分为两种情况。第三种实现方式在跨域的P之间或者PE之间建立MBGP邻居关系,通常称为多跳MP-EBGP方式。由于这两种实现方式都是通过MBGP支持,只是实现原理有点儿差异,因此测试中的方法也基本一样。首先要对这两种实现方式的三种情况重点测试PE/P和ASBR上BGP对VPN路由的标签分配和转发时的标签操作,通过在PE/P、ASBR上检查各个相关表项信息和打印调试信息进行这方面测试。其次,要重点测试各种异常操作引起的PE/P、ASBR的相关表项的刷新(删除、重新建立)情况和时间,包括重置BGP、OSPF、LDP进程、重启系统、shutdown/undo shutdown接口等异常测试。此外,要重点测试跨域L3VPN的不同用户网络的各种应用:包括Ping(大包、小包)、Telnet、Ftp、HTTP、各种组播应用(语音、视频)、IPSec、L2VPN等。

运营商的运营商(CSC)组网模式就是将基本L3VPN组网模式中的CE作为下一级L3VPN应用的P或者PE从而实现将L3VPN应用进行分级的效果,通常也称为CSC(Carrier Support Carrier)方式。目前我司已经支持分层设备之间IGP多实例和LDP多实例的配置实现(BGP多实例的方式正在调试)。因此对于这种VPN组网应用模式,在测试中要重点测试作为层次边缘的设备IGP多实例和LDP多实例。由于IGP多实例在基本L3VPN组网中已经作为测试重点,因此在CSC组网中要重点测试通过在各种类型接口(Frame Relay、ATM、E1、T1、E3、T3、FE、GE、POS、GRE等)上LDP多实例以及通过异常操作测试LDP多实例的表项刷新/删除/重新建立过程。此外,在各台设备上打开调试信息测试报文转发过程中的标签交换过程也是必须的。还要重点测试CSC组网结构中的应用情况:包括Ping(大包、小包)、Telnet、Ftp、HTTP、各种组播应用(语音、视频)、IPSec、L2VPN等。

嵌套VPN组网也是将基本L3VPN组网进行分层,结构上和前一种组网模式(CSC)基本一样,只不过上级的PE要负责维护整网的VPN路由,而CSC结构中不需要。我司设备暂时还不支持这种实现方式。

分层PE、Hub-Spoke、多角色主机和MCE等几种L3VPN组网应用模式并没有特别的地方,按照配置进行功能测试,测试方法参照前面的描述。

3.2 L2VPN测试方法

与L3VPN不同,在L2VPN应用中服务商网络不负责维护、转发VPN用户网络路由信息,只负责封装、转发所有由VPN用户接口接收到的数据报文。因此,可以将MPLS网络看作是连接各个用户CE设备的物理线路,用户所有数据都被透明地传递到远端CE设备上,不需要对其进行分析、处理和修改。这种应用一方面减小了对PE设备内存、处理能力的要求,另一方面却为其数据转发能力和接口类型方面提出了更高的要求。相对于传统VPN,具有更便于部署、管理维护和扩展的特点,只是由于对用户两端链路类型和链路层协议要一定要求,所以目前还没有得到广泛应用。

作为L2VPN应用,服务商为分布在各处的VPN用户网络提供二层连通性,及提供VLL服务,因此能否正确连接用户网络是测试中首要关注点。在测试中,我们建议尽量使用各种类型的物理接口,并在这些接口上封装各种类型的链路层协议如:PPP、FR、X.25等,同时配置各种常用的链路层应用,如PPP认证、地址协商、地址借用等。多种条件综合应用才能充分暴露问题。此外,基于链路协议的虚接口也是测试重点之一:MP、MFR以及各种类型子接口之间互连。验证CE之间连接是否正常的方法除了通常ping操作外,我们还可以在CE之间配置各种上层应用,验证这些应用功能是否正常,通常包括:Telnet、FTP、各种路由协议、组播应用、LDP、PPPoE、L2TP等甚至将CE配置为另一个MPLS域中的PE设备,在其上面承载其他MPLS服务等。可以看出,由于路由器支持板卡类型众多、而每种类型接口板又支持多种类型链路层协议,同时还需要为每一种情况配置多种应用,加上L2VPN本身实现方式又有不同,所以这些测试组合种类繁多、数目巨大,完成这些测试需要有极大的耐心和责任感。由于,L2VPN要求两端CE设备连接到PE设备所使用的链路类型必须相同,这对我们测试网络结构、规模和复杂性提出了较高的要求。同时,也需要测试人员对各种接口、链路层、上层应用以及他们相互之间的组合应用方式都比较熟悉,才能进行深入的测试。

上面描述的测试方法仅关注了PE、CE之间链路变化,是针对连接PE、CE之间和本地与远端CE之间网络的测试。对于MPLS域中PE和PE之间连接的测试则根据L2VPN实现形式不同而各不相同。就实现而言,目前我司设备支持4种方式L2VPN:CCC方式、SVC方式、Martini方式和Kompella方式。通常我们可以将前面两种认为是手动发现方式,需要手动配置PE间的连接关系和VPN对应关系以及手动分配VPN标签,而后两种是自动发现方式,它们分别利用LDP和BGP协议自动发现远端PE上的对应VPN实例并且协商标示VPN实例的内存标签。由于工作方式不同,对L2VPN的测试也可以分两种情况进行讨论:

手动发现方式L2VPN,由于没有任何其他协议参与协商,也没有任何自定义消息在PE间传递。在测试中我们只需要关注标签分配与释放、PE间LSP建立和切换等基本情况。测试方法于静态LSP测试方法类似,主要还是考虑与各种类型链路、LDP邻居振荡、多接口、多路由相互备份切换等各种手段相结合。同时,L2VPN支持在PE之间使用LSP和GRE(讲来还会支持TE Tunnel)等多种隧道模式传递VPN数据(CCC方式除外),因此各种类型隧道之间相互备份、切换也是测试一个方面。

对于自动发现方式L2VPN,这里主要介绍对实现远端PE设备自动发现和VPN标签协商功能的LDP、BGP协议扩展功能的测试。Martini方式L2VPN使用remote方式LDP发现PE、根据配置的VPN id匹配VPN实例,并主动进行标签协商。那么remote peer方式LDP是测试重点之一,包括使用不同类型接口IP地址建立邻居关系,邻居关系振荡,带验证的邻居关系建立等。

LDP remote方式邻居关系建立后,并不会向对端发送任何FEC绑定的Map消息,而是会根据本地L2VPN的配置将VPN类型、VPN ID、本地为这个VPN分配的标签和其他选项数据一起封装在LDP消息里面发送给对端,消息收到放设备会将消息中携带的VPN ID与本地配置相对比如果有相同ID,则取出消息中携带的标签信息和对端设备loopback对于LSP一起填写到当地L2VC表项下发给LSPM模块,形成对应转发表项。因此,LDP对L2VPN标签消息发送,设备对收到标签消息处理也是我们需要测试的重要环节,设备往往会在LDP连接出现振荡时,丢失LDP消息或由于本地配置改变而对LDP消息处理产生错误。我们在测试中可以采用不断改变L2VPN配置、修改VPN ID和LDP邻居关系等方法验证设备在网络动态变化时是否能正确处理消息。

Kompella方式L2VPN配置与L3VPN类型,需要定义VPN实例,并利用BGP协议Update报文中携带的RT属性匹配远端VPN实例。同时,支持一次性为一个Site网络分配一块标签资源,具有很好的网络扩展性,可利用BGP路由的反射器等特性完成全网PE设备自动互联具有很好的可维护性等优势。但是其配置则稍显复杂,配置项中各个参数不易理解。

由于Kompella方式具有以上特点,我们主要测试下面几个方面:首先,MBGP对L2VPN能力支持,是否能够正确建立对应能力的BGP邻居关系,同时还可以结合其他BGP实现和组网结构(如反射等)同时存在MBGP其他能力等结合进行测试,特别是对标签资源分配、收回等进行测试;其次,对L2VPN实例中配置的RD和RT匹配规则进行测试,测试方法与L3VPN中类似,可以通过完全匹配、部分匹配和空配置、不匹配几个方面验证,动态修改配置等手段结合测试;再次,是对VPN标签池再分配能力的测试,由于Kompella方式L2VPN支持动态扩展为每个CE预留的标签空间,而标签通过标签池基准标签大小加上偏移量和CE ID计算得到,标签池扩展对标签计算会产生很大影响,所以测试中应该有意不断修改标签池大小,不断修改本地和对端CE ID值验证设备对标签计算是否正确;然后,对CE ID匹配进行测试,不同实例CE ID是否能够重复使用,CE ID匹配是否正确等;最后,也是最重要的是对标签计算的测试,Kompella方式L2VPN的标签是通过计算得到的,所以设备在不断收到Update报文时很可能由于计算错误使标签不匹配,引起MPLS转发不通。

3.3 VPLS测试方法

VPLS是另外一种MPLS二层VPN的应用,和VLL不同它应用方式是多点对多点。VPLS为许多原来使用点到点L2VPN业务的运营商提供了一种更完备的解决方案,通过VPLS服务,地域上隔离的用户站点能通过MAN/WAN相连,并且两地连接效果像在一个LAN中一样。

IETF相应的一系列草案中描述了使用MPLS的虚链路作为以太网桥链路的VPLS解决方案,通过MPLS网络提供一种透传的LAN服务。

所以在VPLS测试中对链路要求很简单,就是以太链路,但是其组网要求复杂。为了体现多点对多点,最基本的配置也是3台PE两两直连,每个下挂1台CE。

VPLS测试应该覆盖如下内容:

1、 VPLS相关的草案中提供了两种基本VPLS网络架构:“虚链路(PW)逻辑全连接”的VPLS网络架构和“分层”的VPLS架构。这是VPLS最基本的两种组网应用,要分别验证这两种组网下的VPLS功能;

2、 PW信令协议验证:PW信令协议是VPLS的实现基础,用于创建和维护PW,同时也可用于自动发现VSI的对端PE设备。目前,PW信令协议主要有LDP和BGP。我司都支持,所以两种信令协议都要一一测试到;

3、 MAC地址学习与泛洪测试:VPLS组完最终在客户端看到仿佛就是一个大的LAN,所以它能支持MAC地址学习、老化、回收功能,要一一测试到;

4、 环路检测测试:VPLS中,使用“全连接”和“水平分割转发”来避免在ISP网络上跑用户STP协议,“水平分割转发”是从指从公网侧PW收到的数据包不再转发到其他PW上,只能转发到私网侧。我们要从用户角度验证在自己L2VPN私网内运行STP协议是允许并正确的。正常情况下,所有的STP的BPDU报文都必须在ISP网络上透传。

5、 在分层PE组网中测试中还需关注:UPE可以以QinQ接入NPE,此时NPE上对应实例的接入方式应为VLAN接入;我司还支持链路备份,此时需要在UPE与两个NPE之间启用STP来备份链路;

在分层PE组网中测试中还需关注:UPE可以以LSP接入NPE时,此时UPE可以以VLL、VPLS方式接入NPE,此时在NPE需要明确指明接入的设备为UPE;我司还支持链路备份,这种主备PW备份应用下需要指明NPE的主备关系;

4 结束语

我们同样应该了解在实际网络部署中,一个MPLS应用也不会孤立存在,它往往会根据用户类型、用户需求而不断变化,其组网模式和结构也不断变化。总的来说,用户需求不外乎包括:VPN用户访问公网资源、VPN网络之间资源互访与共享、VPN数据安全、VPN服务质量等几个方面。为满足这些需求,MPLS VPN通常与IPSec、防火墙、网管、NAT、QoS、策略路由、路由策略等其他应用方式组合实施,形成各种类型解决方案。所以,我们往往也会承担对各种解决方案的测试任务,包括:鉴定测试、综合组网测试、开局验证测试和网上问题复现等。对这些综合组网的测试需要涉及到众多模块、协议测试,已经超出了MPLS测试范畴,相信会在以后的文档中得到详细讨论。

到这里,我们已经分别就MPLS基础协议和MPLS基本应用及其为实现这些应用而对某些协议进行相关功能扩展等几个方面的测试方法进行了一个简单的归纳总结。相信这些方法早已为大家所熟知和广泛采用,也相信还有许多更好、更方便、更全面的测试方法正在被大家发现和使用。

责任编辑:许凤丽 来源: TT网络
相关推荐

2010-04-13 10:49:32

2010-04-13 10:43:05

MPLS

2011-06-20 17:25:02

单元测试

2011-11-07 11:15:31

2009-04-10 09:22:48

SQL Server并发测试

2009-12-31 11:18:30

2009-12-30 10:01:17

MPLSVPN网络

2009-10-19 11:02:09

综合布线测试仪

2011-05-16 16:52:09

单元测试彻底测试

2009-02-16 09:44:00

MPLS路由结构

2022-07-27 11:51:39

契约测试开发测试

2010-07-07 17:24:39

BGP协议

2010-11-18 14:16:09

广域网VPNMPLS VPN

2022-08-24 17:04:19

软件测试数据集合测试效果

2021-05-10 09:00:00

Web工具安全

2023-09-02 20:22:42

自动化测试软件开发

2012-02-20 10:12:04

2009-08-19 04:15:00

线性链表

2010-09-25 16:00:43

WiMax

2010-05-28 10:17:13

LinuxCpu测试
点赞
收藏

51CTO技术栈公众号