路由器测试技术和方法
随着信息产业的飞速发展,计算机网络技术得到广泛应用,计算机网络已成为现代工作生活中必不可少的一部分。路由器作为计算机网的核心设备,相应地在网络上存在广泛的应用。高端路由器现已由企业级设备成为公众网上重要的电信级设备。随着互联网络的逐步普及以及它在生活中重要性的增加,路由器的性能、功能、安全性、可靠性等指标变得越来越重要。所以对路由器的测试有其重要性与必要性。路由器测试规范主要有下面通信行业标准来规范:YD/T1156-2001《路由器测试规范-高端路由器》;YD/T1098-2001《路由器测试规范-低端路由器》。以上标准分别参照下面标准制定:YD/T1097-2001《路由器设备技术规范-高端路由器》;YD/T1096-2001《路由器设备技术规范-低端路由器》。本文的测试介绍主要依据上述路由器测试规范。但是由于以上测试规范只作设备入网测试标准,是一种入门测试,所以我们重点介绍在上述规范基础上补充的一些其他测试内容。
一、测试的目的和内容
路由器是通过转发数据包来实现网络互连的设备,可以支持多种协议(例如TCP/IP,SPX/IPX,AppleTalk),可以在多个层次上转发数据包(例如数据链路层、网络层、应用层)。
路由器需要连接两个或多个逻辑端口,至少拥有一个物理端口。路由器根据收到的数据包中网络层地址以及路由器内部维护的路由表决定输出端口以及下一条路由器地址或主机地址,并且重写链路层数据包头。路由表必须动态维护来反映当前的网络拓扑。路由器通常通过与其他路由器交换路由信息来完成动态维护路由表。
(一)路由器分类
当前路由器分类方法各异。各种分类方法有一定的关联,但是并不完全一致。通常可以按照路由器能力分类、结构分类、网络中位置分类、功能分类和性能分类等方法。在路由器标准制定中主要按照能力分类,按能力分为高端路由器和低端路由器。背板交换能力大于20Gbit/s,吞吐量大于20Mbit/s的路由器称为高端路由器。交换能力在上述数据以下的路由器成为低端路由器。与此对应,路由器测试规范分为高端路由器测试规范和低端路由器测试规范。
(二)测试目的及内容
通过测试路由器,可以了解到哪些路由器能提供最好的性能、路由器在不同负载下的行为、模型化网络使用路由器的设计参数、路由器能否处理突发流量、路由器的性能限制、路由器能否提供不同服务质量、路由器不同体系结构对功能和性能的影响、路由器的功能特性和性能指标、路由器的使用是否影响网络安全、路由器协议实现的一致性以及路由器可靠性和路由器产品的优势和劣势等内容。
低端路由器设备测试主要包括:常规测试,即电气安全性测试;环境测试,包括高低温、湿度测试和高低温存储测试;物理接口测试,测试低端路由器可能拥有接口的电气和物理测性;协议一致性测试,测试协议实现的一致性;性能测试,测试路由器的主要性能;管理测试,主要测试路由器对无大项网管功能的支持。
高端路由器测试主要包括:接口测试,高端路由器可能拥有的接口测试;ATM协议测试,测试ATM协议要求;PPP协议测试,测试PPP协议的一致性;IP协议测试,测试IP协议一致性;路由协议测试,测试路由协议一致性;网管功能测试,验证测试网关功能;性能和QoS测试,测试路由器性能和QoS能力验证;网络同步测试,测试设备同步定时能力;可靠性测试,验证设备可靠性;供电测试,测试整机功耗等内容;环境测试,包括高低温、湿度测试和高低温存储测试。
上述两个测试规范由于起草单位以及起草时间不同,组织安排有所不同。除上述测试外,建议在测试中考虑下面所列测试项目。
(1)功能测试:主要来验证产品是否具备了设计的每一项功能。(2)稳定性和可靠性测试:一般采取加重负载的办法来评估和分析设备在长时间、高负载的情况下的运行能力。(3)互操作性测试:不同的网络产品之间必须能够互操作。互操作性测试考察一个网络产品是否能在一个由不同厂家的多种网络产品互连的网络环境中很好地工作,如验证路由器与Cisco产品的互操作,交换机与Cisco、3Com、Lucent、Intel等的互操作等。
二、测试方法
路由器测试方法通常分为本地测试法、分布测试法、远端测试法和协同测试法。由于篇幅限制,本文不介绍其他测试法的特点以及适用范围,只列出路由器测试中最常用到的远端测试法。远端测试法如图1所示:
其中,控制观察点(PCO):通常由两个先入先出(FIFO)队列组成,其功能类似于一对输入输出端口,向队列一端发送命令,从同一队列的另一端接收应答信号;被测实体(IUT):Item Under Test;下测试器(LT):通过位于被测试实体下层的PCO与被测试层交互的测试系统称为下层测试系统。
三、测试分类
综合上文中的测试内容,路由器测试一般可以分成以下几类:功能测试、性能测试、稳定性可靠性测试、一致性测试、互操作性测试以及网管测试。
(一)功能测试
路由器功能通常可以划分为如下方面。
(1)接口功能:该功能用作将路由器连接到网络。可以分为局域网接口及广域网接口两种。局域网接口主要包括以太网、令牌环、令牌总线、FDDI等网络接口。广域网接口主要包括E1/T1、E3/T3、DS3、通用串行口(可转换成X.21DTE/DCE、V.35DTE/DCE、RS232DTE/DCE、RS449DTE/DCE、EIA530DTE)等网络接口。(2)通信协议功能:该功能负责处理通信协议,可以包括TCP/IP、PPP、X.25、帧中继等协议。(3)数据包转发功能:该功能主要负责按照路由表内容在各端口(包括逻辑端口)间转发数据包并且改写链路层数据包头信息。(4)路由信息维护功能:该功能负责运行路由协议,维护路由表。路由协议可包括RIP、OSPF、BGP等协议。(5)管理控制功能:路由器管理控制功能包括五个功能,SNMP代理功能,Telnet服务器功能,本地管理、远端监控和RMON功能。通过多种不同的途径对路由器进行控制管理,并且允许纪录日志。(6)安全功能:用于完成数据包过滤,地址转换,访问控制,数据加密,防火墙,地址分配等功能。
路由器对上述功能并非必要完全实现。但是由于路由器作为网络设备,存在最小功能集,对最小功能集所规定的功能,路由器必须支持。因为绝大多数功能测试可以由接口测试、性能测试、协议一致性测试和网管测试所函盖,所以路由器功能测试一般可以只对其他测试无法涵盖的功能作验证性测试。路由器功能测试一般采用远端测试法。
(二)性能测试
路由器是IP网络的核心设备,其性能的好坏直接影响IP网网络规模、网络稳定性以及网络可扩展性。由于IETF没有对路由器性能测试作专门规定,一般来说只能按照RFC2544( Benchmarking Methodology for Network Interconnect Devices)作测试。但路由器区别于一般简单的网络互连设备,在性能测试时还应该加上路由器特有的性能测试。例如路由表容量、路由协议收敛时间等指标。
路由器性能测试应当包括下列指标。
(1)吞吐量:测试路由器包转发的能力。通常指路由器在不丢包条件下每秒转发包的极限,一般可以采用二分法查找该极限点。(2)时延:测试路由器在吞吐量范围内从收到包到转发出该包的时间间隔。时延测试应当重复20次然后取其平均值。(3)丢包率:测试路由器在不同负荷下丢弃包占收到包的比例。不同负荷通常指从吞吐量测试到线速(线路上传输包的最高速率),步长一般使用线速的10%。(4)背靠背帧数:测试路由器在接收到以最小包间隔传输时不丢包条件下所能处理的最大包数。该测试实际考验路由器缓存能力,如果路由器具备线速能力(吞吐量=接口媒体线速),则该测试没有意义。(5)系统恢复时间:测试路由器在过载后恢复正常工作的时间。测试方法可以采用向路由器端口发送吞吐量110%和线速间的较小值,持续60秒后将速率下降到50%的时刻到最后一个丢包的时间间隔。如果路由器具备线速能力,则该测试没有意义。(6)系统复位:测试路由器从软件复位或关电重启到正常工作的时间间隔。正常工作指能以吞吐量转发数据。在测试上述RFC2544中规定的指标时应当考虑下列因素。
帧格式:建议按照RFC2544所规定的帧格式测试;帧长:从最小帧长到MTU顺序递增,例如在以太网上采用64, 128, 256, 512, 1024, 1280, 1518字节;认证接收帧:排除收到的非测试帧,例如控制帧、路由更新帧等;广播帧:验证广播帧对路由器性能的影响,上述测试后在测试帧中夹杂1%广播帧再测试;管理帧:验证管理帧对路由器性能的影响,上述测试后在测试帧中夹杂每秒一个管理帧再测试;路由更新:路由更新即下一跳端口改变对性能的影响;过滤器:在设置过滤器条件下对路由器性能的影响,建议设置25个过滤条件测试;协议地址:测试路由器收到随机处于256个网络中的地址时对性能的影响;双向流量:测试路由器端口双向收发数据对性能的影响;多端口测试:考虑流量全连接分布或非全连接分布对性能的影响;多协议测试:考虑路由器同时处理多种协议对性能的影响;混合包长:除测试所建议的递增包长外,检查混合包长对路由器性能的影响,RFC2544除要求包含所有测试包长外没有对混合包长中各包长所占比例作规定。笔者建议按照实际网络中各包长的分布测试,例如在没有特殊应用要求时以太网接口上可采用60字节包50%,128字节包10%,256字节包15%,512字节包10%,1500字节包15%。
除上述RFC2544建议的测试项外还建议测试如下内容。
①路由震荡:路由震荡对路由器转发能力的影响。路由震荡程度即每秒更新路由的数量可以依据网络条件而定。路由更新协议可采用BGP。②路由表容量:测试路由表大小。骨干网路由器通常运行BGP,路由表包含全球路由。一般来说要求超过10万条路由,建议通过采用BGP输入导出路由计数来测试。③时钟同步:在包含相应端口例如POS口的路由器上测试内钟精度以及同步能力。④协议收敛时间:测试路由变化通知到全网所用时间。该指标虽然与路由器单机性能有关,但是一般只能在网络上测试,而且会因配置改变而变化。可以在网络配置完成后通过检查该指标来衡量全网性能。测试时间应当根据具体项目以及测试目标而定。一般认为测试时间应当介于60秒到300秒之间。另外一般可以根据用户要求和测试目标作设定选择。路由器性能测试一般可采用远端测试法。
路由器测试技术和方法 续
(三)一致性测试路由器一致性测试通常采用“黑箱”方法,被测试设备IUT叫做“黑箱”。测试系统通过控制观察点PCO与被测试设备接口,其测试原理如图2所示。
不同的测试事件是通过不同的PCO来控制和观察的,按照其应答是否遵守规范,即定时关系和数据匹配限制,测试的结果可分为通过、失败、无结果3种。路由器是一种复杂的网络互连设备,需要在各个通信层上实现多种协议。例如相应的接口的物理层和链路层协议、IP/ICMP等互联网层协议、TCP/UDP等传输层协议、Telnet/SNMP等应用层协议以及RIP/OSPF/BGP等路由协议。
协议一致性测试应当包含路由器所实现的所有协议。由于该测试内容繁多测试复杂,在测试中可以选择重要的协议以及所关心的内容测试。由于骨干网上路有器可能影响全球路由,所以在路由器测试中应特别重视路由协议一致性测试例如OSPF和BGP协议。由于一致性测试只能选择有限测试例测试,一般无法涵盖协议所有内容。所以即使通过测试也无法保证设备完全实现协议所有内容,所以最好的办法是在现实环境中试运行。路由器一致性测试一般采用分布式测试法或远端测试法。
(四)互操作测试
由于通信协议、路由协议非常复杂且拥有众多选项,实现同一协议的路由器并不能保证互通互操作。并且因为一致性测试能力有限,即使通过协议一致性测试也未必能保证完全实现协议。所以有必要对设备进行互操作测试。互操作测试实际上是将一致性测试中所用的仪表替换成需要与之互通互操作的设备,选择一些重要且典型的互连方式配置,观察两设备是否能按照预期正常工作。
(五)稳定性、可靠性测试
由于大多数路由器需要每天24小时,每周7天连续工作,作为Internet核心设备的骨干路由器的稳定性和可靠性尤其重要。所以用户需要了解露由器的稳定性和可靠性。
路由器的稳定性和可靠性很难测试。一般可以通过两种途径的到:(1)厂家通过关键部件的可靠性以及备份程度计算系统可靠性;(2)用户或厂家通过大量相同产品使用中的故障率统计产品稳定性和可靠性。当然,用户也可以通过在一定时间内对试运行结果的要求来在一定程度上保证路由器的可靠性与稳定性。
(六)网管测试
网管测试一般测试网管软件对网络以及网络上设备的管理能力。由于路由器是IP网的核心设备,所以必须测试路由器对网管的支持度。
如果路由器附带网管软件,可以通过使用所附带的网管软件来检查网管软件所实现的配置管理、安全管理、性能管理、计帐管理、故障管理、拓扑管理和视图管理等功能。如果路由器不附带网管软件,则应当测试路由器对SNMP协议实现的一致性以及对MIB实现的程度。由于路由器需要实现的MIB非常多,每个MIB都包含大量内容,很难对MIB实现完全测试。一般可以通过抽测重要的MIB项来检查路由器对MIB的实现情况。
另外,由于路由器设备非常复杂,可能采用的接口和协议多种多样,所以对路由器测试所采用的仪表以及仪表的配置必须根据测试内容以及路由器实际配置来决定。一般来说路由器测试所使用的仪表可分为性能测试仪表、协议测试仪表以及其他种类仪表。
(1)性能测试仪表主要测试IP包转发能力。最典型的有NetCom公司的SmartBit、安捷伦公司的Router Tester等。性能测试仪表有时也要求一些协议仿真能力,例如对BGP、OSPF的仿真。(2)协议测试仪表主要测试路由器对协议实现的一致性。主要有路由协议一致性测试仪表例如安捷伦公司的Router Tester等。其他协议例如TCP/IP、ATM、ISDN、SNMP等众多路由器实现的协议一致性测试所用仪表可使用各种专用或通用仪表。(3)其他仪表主要包括一些通用仪表,如示波器、万用表、率耗器、光功率计等。还有在测试仪表的选择中还应当考虑仪表的精度以及误差范围。综上所述路由器的测试是一项复杂但是非常重要的工作,对路有器的测试只有在研究测试方法的基础上结合具体测试情况,制定正确测试方案,选择合适的测试仪表,认真测试才能达到测试目的。 多谢 做过一段时间的路由器测试
感觉楼主好强 thank you verymuch!! 厉害 本帖最后由 soledad120 于 2011-6-3 23:03 编辑
不容易 学习 内容挺全的。 虽然看不大懂,不过还是感谢搂住 学习了 :L 我们公司有测试交换机的,但不是我。我做的是另一个项目。 太牛了! thanks ,挣积分 非常好的文章,学习,谢谢 学习下。 非常谢谢~~~ 我们公司的接口程序都是给开发测试的 牛thanks 牛!学学!