收稿日期:2005-04-14;修返日期:2005-06-18基金项目:国家自然科学基金资助项目(60273070,60403031)BGP4+协议一致性测试系统设计与实现*翟鹏1,2,王旸旸2,李登道1,毕经平2(1.
山东科技大学,山东青岛266510;2.
中国科学院计算技术研究所,北京100080)摘要:BGP4+是一种在自治系统间运行的动态路由协议,其功能是在自治系统间交换网络层可达信息.
IPv6协议作为下一代互联网最有竞争力的核心协议成为研究热点.
BGP4+是IPv6最重要的路由协议,已经在路由器等网络设备中得到广泛实现.
如何保证各网络设备协议实现的一致性,是保证各设备可以互连、互操作的关键.
在介绍BGP4+的基础上,设计并实现了BGP4+的协议一致性测试系统,并对一基于FreeBSD平台的BGP4+一致性测试实现的结果进行了分析.
关键词:协议一致性测试;BGP4+;IPv6;测试方法中图法分类号:TP393.
06文献标识码:A文章编号:1001-3695(2006)05-0202-03BGP4+ProtocolConformanceTestSystemDesignandImplementationZHAIPeng1,2,WANGYang-yang2,LIDeng-dao1,BIJing-ping2(1.
ShandongUniversityofScience&Technology,QingdaoShandong266510,China;2.
InstituteofComputingTechnology,ChineseAcademicofSciences,Beijing100080,China)Abstract:BGP4+isadynamicroutingprotocolwhichrunsbetweenautonomoussystemstoexchangeNLRIbetweenthem.
IPv6,asoneofkernelprotocolsofnextgenerationInternet,hasbecomethehotspotofresearch.
BGP4+isoneofthemostimportantroutingprotocolhasbeenimplementedinmanynetworkequipments,especiallyinrouter.
Howtoguaranteethecon-formanceofprotocolimplementationinthesenetworkequipmentsisthekeypointofinterconnectionandinteroperationamongthem.
ThispaperdescribedBGP4+ProtocolConformanceTestDesignandimplementationonthebaseofBGP4+protocol,anddiscussedBGP4+protocoltestresultsforaLinuxplatform.
Keywords:ProtocolConformanceTest;BGP4+;IPv6;TestMethodInternet是由不同的自治系统(AutonomousSystem,AS)[1]构成.
所谓的自治系统就是一组相对独立的路由器,它拥有同一路由策略,处于同一部门的管理之下.
在外界看来,整个自治系统是一个单一的实体.
自治系统间是通过公共网络访问点(PublicNetworkAccessPoints,NAP)和外部网关协议(Exte-riorGatewayProtocols,EGP)[2]来交换路由信息的,在自治系统内部则是通过内部网关协议(InteriorGatewayProtocols,IGP)进行内部路由计算的,如OSPF,IS-IS和RIP等.
网络路由协议实现的正确性将直接影响Internet的互操作性、稳定性和性能.
协议测试是验证协议实现是否符合协议标准的有效手段.
随着Internet规模的不断扩大,IPv4在地址空间、安全、性能等问题越来越显示出其局限性.
IPv6由于其近乎无限的地址空间、层次化的地址结构、高速的路由、更强的安全性、对移动性和服务质量的更好支持等特性,被认为是替代IPv4协议,解决目前Internet面临的困境,为下一代Internet提供更好的服务和发展的最佳协议.
当前支持IPv6的较为成熟的路由协议有RIPng,OSPFv3和BGP4+.
随着支持IPv6的网络产品的日渐增多,各IPv6设备必须实现与协议标准相一致的路由协议才能保证各设备的顺利转发数据包,因此IPv6路由协议实现与协议标准的一致性问题也越来越重要,对IPv6路由协议进行一致性测试的需求也越来越强烈.
目前日本TAHI工程,美国新罕布什尔大学等从事协议一致性测试的机构已公布的BGP4协议测试系统在进行BGP4协议测试时都会产生大量的空表项,从而造成产生的测试文件非常庞大,测试执行时间长,动态测试效率低.
他们的测试系统只能在IPv4网络上运行.
本文的创新之处在于设计改进了BGP4一致性测试系统,使它能在IPv6上顺利运行,采用改进的远程测试法,通过虚拟测试,利用测试序列包中的地址字段和其他特征字段,仅用一台测试器就搭建了一种逻辑测试结构,实现了多台虚拟测试器的测试拓扑.
1BGP4+协议边界网关协议(BorderGatewayProtocols,BGP)是为TCP/IP网络设计的用于自治系统之间的路由协议,其基本目标是在自治系统之间交换网络可达信息.
BGP使用TCP作为它的传输协议(端口是179).
这样就保证了所有传输的可靠性都是由TCP来实现而无须在BGP中实现,从而简化了设计可靠性所带来的协议的复杂度.
为了节省带宽和处理资源,BGP在交换路由时使用了"递增式"机制.
这种机制是:只有在BGP对等体建立时才交换完整的路由信息,在连接完全建立后,只有在路由发生变化时,才会由相应的路由器通过UP-DATE报文向其所有对等体通告有关的路由更新信息.
BGP系统中使用四种报文进行会话,即OPEN报文、·202·计算机应用研究2006年KEEPLIVE报文、UPDATE报文和NOTIFICATION报文.
GP对等体在完全建立连接之前经历了不同的阶段.
这些状态包括:Idle状态、Active状态、Connect状态、OpenSent状态、Open-Confirm状态和Establish状态.
为了使BGP支持更多的网络层协议,IETF的InterDomainRouting工作组在2000年制定了RFC2858(MultiprotocolExtensionsforBGP-4,即BGP4+)[3],BGP4+在BGP4的基础上引进了两个新属性,即MultiprotocolReachableNLRI(MP_REACH_NLRI)和MultiprotocolUnreach-ableNLRI(MP_UNREACH_NLRI).
MP_REACH_NLRI主要功能是允许路由器通告通往某个目的地址所要经过的下一跳的网络层地址,而MP_UNREACH_NLRI被用来撤销一个或多个不可用路由.
2协议一致性测试介绍协议测试是网络设备研究、开发和生产中非常重要的一个阶段.
网络设备通过协议测试来保证其一致性、互操作性以及性能等[4].
协议测试是一种黑盒测试,它依据协议标准来控制观察被测试协议实现的外部行为,对被测协议实现进行测试[5].
协议测试主要有四种:一致性测试(ConformanceTes-ting)、互操作性测试(InteroperabilityTesting)、性能测试(Per-formanceTesting)和强健性测试(RobustnessTesting).
协议测试中的一致性测试是一种"功能测试"[6],它依据一个协议的描述对协议的某个实现进行测试,判别一个协议的实现与所对应的协议标准是否相一致.
在一致性测试中,只对协议实现的外部可观察行为进行测试,而不涉及协议实现的内部结构.
协议一致性测试一直是国内外研究的重点之一.
20世纪90年代,国际化标准组织ISO专门制定了一套标准———ISO/IEC9646(协议的一致性测试方法和框架),它为协议的一致性测试提供了基本方法和框架,为测试集制定了设计步骤和描述方法,并为测试系统的实现提供了指导.
随着支持IPv6产品的增多,国内外有关IPv6的协议测试研究小组也越来越多.
目前著名的IPv6协议一致性测试研究项目组有日本由东京大学、Yokogawa计算机公司及电气公司组织的TAHI、德国的国家科教部及电信局的JOIN、美国新罕布什尔大学(UniversityofNewHampshire)的IOL实验室等.
因为路由协议的复杂性,特别是BGP4协议的复杂性,这些项目目前都没有涉及BGP4+路由协议的一致性测试.
作为最基本和重要的域间路由协议,测试BGP4+协议实现的一致性具有重要的现实意义.
目前TCP/IP协议族的一致性测试系统基本上实现方法为:测试设备通过唯一的接口和被测实现IUT(ImplementationUnderTest)相连,通过发送和接收协议数据单元(PDU)来判断协议实现的一致性.
为了避免环路的出现,路由协议不会把路由信息在转发到收到该消息的端口,所以单端口不能满足路由器协议一致性测试的需求.
另外,路由协议本身的复杂性使得它难以用一般的形式化语言(如TTCN)进行描述.
并且在用TTCN来实现协议的形式化描述并编译执行的时候需要额外的编译器,一旦修改了测试数据,就需要对整个测试集重新编译处理.
因此如何设计测试例描述语言,对于BGP4+一致性测试系统的实现也是至关重要的.
3BGP4+协议一致性测试系统设计与实现3.
1测试方法ISO9646定义了四种抽象测试法:本地测试法、分布式测试法、协调测试法和远程测试法.
BGP4一致性测试一般采用远程测试法.
如图1所示,下测试器和被测协议实现是对等实体,它们之间通过提供N-1层服务的底层协议实现来连接.
不要求能访问被测协议实现的上边界,不定义上测试器,也不需要显式地测试协调过程.
这种方法依赖于被测协议来实现与下测试器间的同步,远程测试法所采用的一个假设是被测协议实现的状态可由下测试器通过(N-1)层服务与之交换N层PDU来确定,测试判决则是由基于下测试器对被测协议实现提供的激励以及下测试器所观察到的被测协议实现的响应作出的.
我们在试验中采用了改进的穿越测试法.
把原有远程测试方法的多个下测试器集成在一起,实现远程测试,克服了原有测试方法中两个系统的同步和协调问题(图2).
3.
2BGP4+一致性测试系统的设计BGP4+测试系统结构如图3所示,主要包括图形用户接口、系统控制模块以及控制观察点模块.
BGP4+采用两个进程实现,图形用户接口和下面两层分开,避免由上层显示给测试例执行带来额外的负载,保证测试的高效执行.
系统实现使用了TCL/TK与C结合的方式.
图形界面采用TCL/TK来实现,系统控制和执行用C语言来实现.
C语言提供了丰富的库函数,易于实现控制循环,在测试例实现上提供了很大的灵活性,可以准确地控制复杂路由协议的各种状态变迁.
图形用户接口模块的主要功能如下:(1)参数配置,包括接口的选择、被测路由器的相关参数以及某一具体协议实现的PICS和PIXIT的编辑与存储.
(2)测试例选择,可以根据测试需要选择不同测试例.
(3)测试结果的显示,其中包括数据包交互显示,简单的解包功能以及测试结果的显示.
(4)给下层模块传递必要参数和控制信息.
其他两个模块为系统控制模块和控制观察点模块,也是系统最主要的模块,其主要功能如下:(1)从图形用户模块获得测试例执行的必要信息,完成每个测试例中的协议数据单元的编码和解码工作.
(2)根据不同的接口选择,对数据单元进行相应的封装和·302·第5期翟鹏等:BGP4+协议一致性测试系统设计与实现晕-员层服务提供者下测试器圆晕层被测协议实现上测试器粤杂孕粤杂孕栽悦孕下测试器员栽悦孕晕-员层服务提供者晕层被测协议实现上测试器粤杂孕下测试器栽悦孕图员远程测试法结构图图圆改进的远程测试法结构图结果显示参数配置测试例选择和控制结果验证消息处理测试步骤产生数据包的产生数据包解封装日志数据包的封装发送底层接口接收封装类型的选择图形用户接口模块系统控制模块图猿月郧孕系统结构控制观察点模块解封装.
(3)对(IUT)被测实现的响应作出判断,给出测试结果.
(4)记录每个测试例的全部过程并把相关的数据传给图形界面显示.
测试系统运行时,首先启动图形用户进程,并由该进程启动系统控制和执行进程.
要执行测试例,首先要进行相应的参数配置以及测试例的选择.
测试例可以单选或者多选,系统会依次自动执行每个测试例.
当运行测试例的时候,图形用户模块首先会把相应的参数,如MAC地址、路由参数、接口参数等,传给系统控制模块.
系统控制模块首先会根据不同的测试例产生相应的测试步骤,并把相应的消息传给消息处理子模块.
消息处理子模块则根据不同的消息负责调度相应的子模块实现相应的功能,如数据包的产生、数据包的发送和接收以及结果的验证等.
控制观察点模块主要根据不同的接口类型对数据包进行相应的封装和解封装,并负责与底层通信.
4测试实验与测试例分析测试实验的运行环境为CPU(IntelPentium42.
0GHz),Memory(256MB),HardDisk(40GB),NIC(3COM3c905b-TXFastEtherLinkXL);OS.
:FreeBSD4.
5.
路由软件为zebra-0.
92a-3.
实验网络图如图4所示.
根据BGP4+协议及相关草案,我们设计了七个测试组:ConnectingCapability,UpdateMessageFormat,UpdateMessageProcessing,RoutingProcessing,ErrorProcessing,RouteReflect,CommunityAttributeProcessing,一共有93个测试例.
通过测试,发现BGP4+基本实现了协议.
在FreeBSD上测试了上述93个测试例,所有测试例发送包的过程完全正确.
其中有八个测试例未通过(测试判决为失败).
按照协议规定,当条件不满足时,测试例不应该通过,测试判决应该为失败.
由于篇幅有限,选取了部分测试例如表1所示.
5结论协议是互联网络非常重要的组成部分,路由协议在网络中是数据包顺利转发的基础.
随着下一代互联网技术的发展,支持IPv6的不同路由设备的研发和需求也越来越多.
本文介绍了支持IPv6的路由协议BGP4+的协议一致性测试系统的设计与实现,提出了新的测试例实现方法和测试方法,并用所实现的测试系统对开放源码的路由协议软件包Zebra进行了测试.
测试取得了较好的效果,该软件包在BGP4+实现上与RFC1771基本一致.
路由协议是一种非常复杂的协议,对路由协议性能测试和互操作性测试也是非常重要的.
进一步的工作包括继续完善BGP4+的协议一致性测试,增加有关性能方面的测试,建立完整的IPv6路由器测试系统.
表1测试例测试例编号测试例内容描述测试结果(Zebra)TC_17_1_2EnsuretheNUTcanestablishBGP4+con-nectingonitsownPASSTC_17_2_3EnsurethatDUTCouldcorrectlyhandleUPDATEmessagewithAS_PATHfield(32B)PASSTC_17_2_8EnsurethatthereceivedUPDATEmessageisforeigntotheorderofthePath_AttributePASSTC_17_4_3EnsurethatNUTcandeleteroutescorrectlyPASSTC_17_4_7EnsurethatNUTcandistributeroutesco-rrectlyPASSTC_17_6_2ToverifywhenNUTreceivesanupdatemessagefromaclientpeer,itshouldreflectittoallotherclientpeersanon-clientpeersPASSTC_17_7_10EnsuretheDUTcouldcorrectlyhandletheCOMMUNITYattributewhenaggregatingrouteFAIL参考文献:[1]alabiS,McPhersonD.
InternetRoutingArchitectures(2ndEd.
)[M].
US:CiscoPress,2000.
98-110.
[2]RekhterY,LiT.
ABorderGatewayProtocol4(BGP-4)[S].
RFC1771,IETF,1995.
[3]BatesT,RekhterY.
MultiprotocolExtensionsforBGP-4[S].
RFC2858,IETF,2000.
[4]YZhao,JWU,XYin.
FromActivetoPassive-ProgressinTestingInternetRoutingProtocols[J].
ComputeScience&Technology,2002,17(3):264-283.
[5]BSarikaya.
PrinciplesofProtocolEngineeringandConformanceTes-ting[C].
EllisHorwood:SeriesinComputerCommunicationsandNetworking,1993.
[6]DSidhu,TLeung.
FormalMethodforProtocolTesting:ADetailedStudy[J].
IEEETrans.
onSoftwareEngineering,1989,15(4).
作者简介:翟鹏(1978-),男,山东邹城人,硕士生,研究方向为网络性能分析及测量;王旸旸(1979-),男,安徽淮北人,硕士生,研究方向为网络测试与测量;李登道(1952-)男,山东聊城人,研究员,研究方向为网络工程与管理信息系统技术;毕经平(1974-),女,山东肥城人,副研究员,博士,研究方向为网络监控与管理.
(上接第201页)[5]rankKHwang,DanaSRichards,PawelWinter.
TheSteinerTreeProblem[R].
North-Holland,1992.
121-142.
[6]SSaroiu,PKrishnaGummadi,SDGribble.
AMeasurementStudyofPeer-to-PeerSharingSystems[C].
ProceedingsofMultimediaCompu-tingandNetworking2002(MMCN'02),SanJose,CA,2002.
361-382.
[7]SNouyan.
Agent-basedApproachtoDynamicTaskAllocation[A].
MDorigo,GDiCaro,MSampels.
AntAlgorithms:The3rdInternationalWorkshop,ANTS2002,volume2463/2002ofLectureNotesinCom-puterScience[C].
Heidelberg:Springer-Verlag,2002.
282-290.
[8]DBShmoys,ETardos,KAardal.
ApproximationAlgorithmsforFa-cilityLocationProblems[C].
The29thACMSymposiumonTheoryofComputing,1997.
265-274.
[9]HLouren_co,DSerra.
AdaptiveSearchHeuristicsfortheGenera-lizedAssignmentProblem[J].
MathwareandSoftComputing,2002,9(2-3):209-234.
作者简介:曹怀虎(1977-),男,博士研究生,研究方向为新一代网络体系结构、网格技术、OverlayNetwork、工业控制网;余镇危(1942-),男,博导,主要研究方向为网络体系结构、计算机系统结构、覆盖网络、ATM核心技术等;潘耘(1974-),女,博士,研究方向为覆盖网络、网络性能评价.
·402·计算机应用研究2006年云则藻藻月杂阅源援缘在e遭则葬鄄园援怨圆葬鄄猿陨灶贼藻则宰葬贼糟澡砸燥怎贼藻则图源测试连接图
HostKvm又上新了,这次上架了2个线路产品:俄罗斯和香港高防VPS,其中俄罗斯经测试电信CN2线路,而香港高防VPS提供30Gbps攻击防御。HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。俄罗斯VPSCPU:1core内存:2G...
BGP.TO目前针对日本和新加坡服务器进行促销,其中日本东京服务器6.5折,而新加坡服务器7.5折起。这是一家专门的独立服务器租售网站,提供包括中国香港、日本、新加坡和洛杉矶的服务器租用业务,基本上都是自有硬件、IP资源等,国内优化直连线路,机器自动化部署上架,并提供产品的基本管理功能(自助开关机重启重装等)。新加坡服务器 $93.75/月CPU:E3-1230v3内存:16GB硬盘:480GB ...
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...
ps移花接木教程为你推荐
百度沸点颁奖典礼百度沸点2010年颁奖典礼什么时候举行伪装微信地理位置微信和微信伪装地理位置打不开怎么办?一点就一闪就完了刷网站权重提升百度权重的几个方法金山杀毒怎么样金山杀毒软件咋样?吴晓波频道买粉《吴晓波频道》《罗辑思维》《专栏精粹》怎么评价?http与https的区别https://和http://区别手机区号打电话怎么加区号?安卓应用平台哪个手机应用平台的软件比较正版,安全?iphone越狱后怎么恢复苹果手机越狱后怎么恢复qq怎么发邮件怎么发送QQ邮件
出租服务器 看国外视频直播vps 工信部域名备案系统 dns是什么 主机评测 wavecom l5520 好看的桌面背景大图 搜狗抢票助手 eq2 阿里校园 isp服务商 qq云端 中国电信测速网 微软服务器操作系统 lamp怎么读 镇江高防 徐州电信 域名转入 免费网络空间 更多