协议一致性测试_第1页
协议一致性测试_第2页
协议一致性测试_第3页
协议一致性测试_第4页
协议一致性测试_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IPv6协议一致性测试发布时间:2010年02月05日o分享•推荐•打印•收藏文/黄哲导言IPv6测试首先需要关注在各个协议模块的一致性测试和性能规格测试,其次是各种应用组网和互通测试,尤其是关注过渡技术是否能满足当前IPv6与IPv4网络并存时期的需求。本文将针对IPv6设备的协议一致性测试,介绍其测试特点、测试环境搭建、测试脚本执行,以及测试结果的分析,帮助读者有效的进行相关测试,从而选择符合协议标准的IPv6设备。IPv6一致性测试的特点作为一个新的协议族,IPv6相对IPv4的主要变化首先在于网络层基础协议,包括地址、ND协议等;其次各路由协议也都提供了IPv6的版本;在链路层、应用层也配合地址的变化做了相应的修改;并且新增了隧道、NATPT等过渡技术。相对IPv4而言,IPv6协议一致性测试的特点在于首先要考虑数据平面的模块测试,而其中的报文处理、ICMP和ND模块为重点和难点,且这些模块的RFC都在不断的更新过程中,一些功能有了相应的变化,典型的例子就是0型路由扩展头在最新的RFC5095中被废弃。因此在协议一致性测试中,需要及时的关注协议的更新。测试工具TahiIPv6Ready协议一致性测试套是目前认可度最高、最被广泛使用的IPv6协议一致性测试工具,可以在Tahi组织的网站()上免费下载,运行在安装FreeBSD系统的PC上,截至目前的最新版本是4.0.5。通过该测试的设备,可以获得IPv6论坛(IPv6Forum)的IPv6ReadyPhase2的金牌认证。TahiIPv6Ready测试套是一种基于脚本开发的一致性测试工具,分为3个层次,如图1所示,分别为底层的FreeBSD操作系统、居中的测试平台、以及最上层的测试脚本集。TestToolStructureE<5rU^er^c^indevelopth&lest^.--\r6EVAl.Appljc-aOotiLayrtTrilAConfonnMJMIc-Tt<CDFbrf<wmIqiAppfec^tnjriTestPl^atfofmtorIFLayerTeslE<5rU^er^c^indevelopth&lest^.--\r6EVAl.Appljc-aOotiLayrtTrilAConfonnMJMIc-Tt<CDFbrf<wmIqiAppfec^tnjriTestPl^atfofmtorIFLayerTeslO|>FrniiiigSysreiniFreeBSD6.2-RKLEASEi图1TahiIPv6Ready测试套架构测试内容TahiIPv6Ready测试脚本集包含了网络层和应用层常见的需要一致性测试的模块,包括基础协议、IPsec、MIPv6、DHCPV6、SIP、IKE等,其中IPv6CoreProtocol为核心模块,是IPv6一致性测试最基础的部分,在目前的IPv6Ready一致性测试中,通常只选用此部分进行测试,其他模块由于目前缺少用户需求,因而极少有设备支持,所以在现有情况下很少进行测试。IPv6CoreProtocol测试集可以分为5个模块:SPEC、ADDR、ICMP、ND、PMTU,与RFC的对应关系如表1O模块名称对应RFCSPECRFC2460InternetProtocol,Version6(IPv6)SpecificationRFC2464TransmissionofIPv6PacketsoverEthernetNetworksRFC5095DeprecationofType0RoutingHeadersinIPv6ADDRRFC4862IPv6StatelessAddressAutoconfigurationICMPICMPRFC4443InternetControlMessageProtocolNDRFC4861NeighborDiscoveryforIPversion6PMTURFC1981PathMTUDiscoveryforIPversion6表1模块与RFC对应列表测试环境使用TahiIPv6Ready测试套进行IPv6一致性测试时,测试环境包括三个部分:测试仪器、被测设备、控制台。分别对应下面拓扑图中的FreeBSD系统的PC、H3CMSR50路由器、控制台PC。FreeBSD瀏试仪器)3FFE:5O1:FFFF100::/64—FreeBSD瀏试仪器)3FFE:5O1:FFFF100::/64—MSR50(被测设备)图2测试拓扑如图2所示,运行测试脚本的FreeBSD系统需要提供两块网卡,而被测设备MSR50提供两个以太网接口,两者之间建立两条直连以太链路。在这两条链路上所使用的IPv6地址前缀分别为3FFE:501:FFFF:100::/64和3FFE:501:FFFF:101::/64,并采用EUI64格式生成接口ID。在MSR50和FreeBSD上,应当只运行基础的IPv6协议栈,并尽可能关闭其他一切非必要的模块,例如路由、STP等,避免无关的报文影响测试脚本的判断。测试过程协议一致性测试属于黑盒测试的一种,它只对协议实现的外部可观察行为(即报文的格式、内容、时间等)进行测试,其测试过程原理可以用如图3的测试状态机来描述。图3测试状态机SO:初始状态S1:接收报文后的状态S2:验证报文正确后的状态E1:接收一个报文E2:验证报文正确E3:验证报文错误E4:丢弃该报文以图4中,SPEC模块的测试例#13中对于未知类型扩展头的测试执行为例来介绍。脚本执行是命令行形式的文本界面,脚本构造正确或异常报文与设备进行交互,同时将收发的报文内容以文字描述形式输出在文字界面上。ClearCapturedPackets(LinkO)SendNt:i.yhborhducrtistTwtrtt(Link-LoeftLAddressufthDifferentLink^ldijcrAddirts$)tnLlnkfiSemriEchoRequesttoLinkOUeiitfortrnnsittargetMeighborCacheEntrytniHCDMPLETE/MOMCE£10see.JStepCdpturIngP4jCl(cts(LinkOI->PASS==“=====TESY13==========./]P_NH_Unexpectc<i,seq-pkt./IF..NH^UnExpected.def-log13.himI-ti'TartB&USB;Unexpttte^NextHerderin[PubHertdur"SUrtCapturingPackets(LinkO)SendEcJidRequestuithUnexpectedHextHeaderRccuNeighborSolicitation(LinkuLacaltcLink-LacaDSendNeighborAduertiseiwntELink-LucaltoLink-Lccrtl)ftecuICUPtvrar(ParameterFrobJeWjunrecognUeclIF□&optionOKCleanupRUTCledrCapturedPackets(LinkOVSendHeighliDrAduert(Link-LncalAddres?wftliDifferentLink-L^yerAddress)toLink时SendEchoBequesttoLin阀曲itfartrartsitUruetbti^iborCdchcEhtrytoIhCOfiPLETEyMOUCE(10sec.)^tepCapturingPackets(binkO)->PASSTESTM¥“*====图4测试脚本执行界面在这个测试过程中,脚本向被测设备MSR50发送含有未知类型扩展头的请求报文,MSR50收到请求后,状态由SO变为S1,然后判断报文存在错误,回复差错消息,则此脚本的执行获得预期结果。最后是状态复位动作,设备重新回到状态SO,单个测试例的执行过程结束。在5个模块的一致性测试过程中,均是根据此原理与过程进行。SPEC模块的测试:分为IPv6报文基本头检查、扩展头处理,以及转发和以太层封装几个层次。覆盖了IPv6在传输层以下各个头部的所有细节字段。)S4111231WrsionTr:iffkCLuiSiFlowL;^belPiiylomlLfuatliNex*HtiidtrHopLunitSouirtDestination<i<hl]'essLxtHtrnkr2图5IPv6报文头部测试脚本在报文的IPv6基本头部或扩展头部设置正确或错误的值,检查MSR50路由器在报文转发过程中,是否能检查出错误所在,并做响应处理,例如是正常转发,或是丢弃并触发ICMPv6差错消息等。ADDR模块的测试:检查设备在配置地址后是否正确的进行通过NS/NA检测报文交互,判断地址的可用性;以及对交互报文的合法性检查。MSR50MSR50ICMPtypeICMPtype-135MSSrc="Dst-FFC21FFM1ICMPtype■13B才WAsrc击2000:1M-FF02U1图6DAD过程当MSR50配置新地址时,会发送DADNS报文,测试仪针对收到的DADNS,会做响应的回复,当回复的NA报文合法时,MSR50会报地址冲突;当回复的NA报文存在非法字段时,MSR50新配置的地址能够生效,并正确用于转发。ICMP模块的测试:验证ICMPv6的报文封装格式、设备在处理错误报文时所触发的差错消息、以及信息查询消息。

EchoRequestICMPEiroiM昭MSRWEchoRequestICMPEiroiM昭MSRWEchoRequest图7ICMP差错消息的触发脚本构造EchoRequest给MSR50进行转发,并在报文中设置HopLimit字段为1、未知类型的扩展头等错误场景,MSR50能识别检测到报文错误,并回复ICMP的超时、参数错误等差错消息。ND模块的测试:测试内容包括地址解析、邻居不可达检测、邻居状态机、路由器和前缀发现、重定向功能四个部分,以及交互的NS/NA/RS/RA/Redirect报文的有效性验证。图8邻居状态机脚本主要围绕着邻居状态机制,通过发送NS/NA/RS/RA/Redirect报文,验证MSR50上的邻居状态是否能正确切换。PMTU模块的测试:包括了动态PathMTU表项的生成,并根据PathMTU表项进行本地发包的分片。FreeBSDIUMPTooBisM池EchoRetpestwithflagFreeBSDIUMPTooBisM池EchoRetpestwithflagMSR50图9动态PathMTU与报文分片脚本构造ICMPTooBig消息给MSR50,然后通过检查MSR50发送的分片大小来验证MSR50是否生成正确的动态PathMTU表项。测试结果

测试结果如表2所示,5个模块的319个脚本全部通过,不存在失败或阻塞问题,通过率达到100%。模块测试项总数通过失败阻塞通过率SPEC797900100%ADDR292900100%ICMP464600100%NPMTU151500100%总计31931900100%表2H3CMSR50测试结果由此可以看出,H3CMSR50路由器在IPv6的核心协议栈的实现很完善,完整的支持IPv6CoreProtocol所涉及的RFC1981、2460、2464、4443、4861、4862、5095等标准,并提供了丰富的配置命令,适用于不同的应用场景。结语:IPv6的协议一致性测试,可使用TahiIPv6Ready协议一致性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论