张 超,秦雅娟,苏 伟
(北京交通大学 电子信息工程学院,北京 100044)
标识分离映射协议一致性测试的设计与实现
张 超,秦雅娟,苏 伟
(北京交通大学 电子信息工程学院,北京 100044)
一体化标识网络中标识分离映射协议可以实现用户身份与位置分离,克服传统TCP/IP协议标准体系中IP地址的语义二重性在路由可扩展性、移动性、安全性等方面带来的问题。为了弥补国内外协议一致性测试系统的缺点和不足,文中介绍了一种模块化协议一致性测试系统。该系统可以实现自定义测试用例和测试流程,支持新协议的一致性测试。文中充分分析了一体化标识网络中的标识分离映射协议,针对标识分离映射协议的基本首部、分片重组、安全认证、安全加密、标识分离映射五个方面设计一致性测试集,在协议一致性系统上按照测试描述语言实现测试用例,并利用协议一致性测试系统进行测试。对测试结果进行分析,验证被测设备中标识分离映射协议实现符合协议标准定义。
一体化标识网络;标识分离映射;一致性测试;测试系统
现在的互联网采用TCP/IP协议体系,IP地址代表用户身份与位置信息,IP地址语义双重性是引起路由可扩展性受限、移动性支持差、存在安全隐患等问题的根本原因[1]。国家“973”项目“一体化可信网络与普适服务体系基础研究”提出了基于身份与位置分离思想的一体化标识网络。一体化标识网络采用标识分离映射协议实现用户身份信息与位置信息的分离,以解决IP语义过载带来的问题。
协议一致性测试是根据一个协议的文本描述对协议中的某个实现进行测试,检测该实现是否与协议标准描述的相一致。协议一致性测试是一种“黑盒测试”[2],即不涉及协议内部实现,只关心被测试者的外部行为[3]。目前,国内外都致力于协议一致性测试系统的研究,如Spirent TestCenter,IXIA公司研制的IxANVL[4],清华大学的PITS[5]。国内外厂商的协议一致性测试系统的共同不足是协议数量和范围受限,新协议在成为标准之前研究人员无法对其进行一致性测试。
文中首先介绍了一体化标识网络协议一致性测试系统,通过自定义测试用例和测试流程可以完成新协议的一致性测试。文中设计了标识分离映射协议一致性测试集,利用测试系统实现了标识映射协议一致性测试,并对测试过程和测试结果进行举例分析。
一体化标识网络中采用的标识分离映射协议是用自然语言描述的,为了完成标识分离映射协议一致性测试需要将协议标准转化为机器可执行的测试用例。本节简要介绍标识分离映射协议并提出协议一致性测试系统的设计方案。
1.1 标识分离映射协议简介
一体化标识网络的网络架构分为服务层和网通层。服务层对应OSI七层结构的应用层、表示层、会话层和传输层,网通层对应网络层、数据链路层、物理层[6-7]。标识分离映射协议为网通层最主要的协议,实现身份与位置的分离。在图1所示的组网模型中,一体化标识网络分为接入网和核心网两部分。接入网实现各类终端的接入,核心网主要负责网络数据包的路由和通信终端的位置管理,接入网通过接入交换路由器接入核心网。
图1 一体化标识网络组网模型
接入网和核心网使用独立的标识空间。接入网中使用接入标识(AID)进行通信,核心网中使用路由标识(RID)进行通信,由接入交换路由器完成接入标识和路由标识之间的分离映射。接入网内的数据包经过源端接入交换路由器进入核心网时,源端接入交换路由器将数据包中的源和目的接入标识替换成相应的路由标识,而后在核心网中进行路由传输;当数据包到达目的端接入交换路由器时,目的端接入交换路由器将数据包中的路由标识替换为接入标识,传送到目的端接入网中,如图1所示。
1.2 协议一致性测试系统简介
标识分离映射协议一致性测试系统设计的基本原则是从测试数据生成到测试执行和评估的过程都不依赖于底层协议栈,避免协议栈的限制。测试系统分为四个模块(见图2):测试描述语言、测试数据构造、测试执行和判定、测试系统界面。
测试描述语言[8]确定了测试系统中文本文件的编写规范,从协议标准中抽象出测试用例,并用测试描述语言编写出可供测试系统读取的测试文本。测试用例文本包括测试数据和测试行为两部分。测试数据是若干报头按照一定顺序组合而成,如MAC头部、标识分离映射协议基本首部和扩展首部一并构成最基本的测试数据。数据报头文本以标准定义的报头结构为基础[9],定义各字段并赋值。测试数据中可以直接引用报头名称,并修改某字段的值[10]。
图2 标识分离映射协议一致性测试系统设计方案
测试数据构造模块的功能是解析测试用例中的测试数据描述语言,生成测试所需要的数据报文,将测试数据报文传递到测试执行和判定模块进行后续处理。测试数据构造模块主要分为测试数据解析模块和数据报头生成模块。数据报文生成模块定义标识分离映射协议测试数据所需各种首部格式、对各字段初始化已经完成测试用例中字段修改赋值。测试数据解析模块调用数据报头生成模块将报头文本信息解析成测试数据。
测试执行和判定模块解析测试执行和判定的描述语言,与测试数据生成测试事件,组成测试序列,完成一致性测试。主要包括发送依据标识分离协议定义的数据包,等待接收被测设备返回的响应,将被测设备的响应结果与测试用例中定义的期望结果进行比较,如标识地址比较、映射标志位比较等,并将测试结果反馈给测试系统界面[11]。
测试系统界面模块提供用户可查看的测试集描述以测试用例的一致性声明,配置测试环境,完成测试用例并生成测试报告,并且支持用户自定义测试用例。该模块将“测试指令”传递到测试数据构造模块及测试执行和判定模块,接收测试执行和判定模块传递的测试结果。
标识分离映射协议主要定义了基本首部、扩展首部(分段选项、认证选项、加密选项)、分离映射机制、安全通信过程等。文中设计了标识分离映射协议一致性测试集,共分为5个测试组,共21个测试例,如表1所示。
表1 标识分离映射协议一致性测试集
每个测试组的测试例都分为两部分,一部分是测试系统发送完全符合协议规定的数据包,另一部分是测试系统发送不符合协议规定的数据包。两种情况下被测系统做出不同处理响应,通过测试系统的测试执行和判定模块解析出最后的测试结果。
为了完成表1中所列的5个测试组的测试用例,文中搭建了如图3所示的拓扑环境,以满足文中所有测试用例的测试环境需求。TN(Test Node)为测试设备,IUT(Implementation Under Test)为被测设备,其中TNA、TNB为测试设备上的不同网卡,在一台设备上实现多台主机的功能,IUTA、IUTB为被测设备上的不同网卡。
图3 测试拓扑
2.1 基本首部测试
标识分离映射协议数据包结构由基本首部和有效载荷组成。基本首部的一致性测试用来测试被测设备对于基本首部实现的正确性,采用如图3(a)所示的拓扑。基本首部一致性测试用例设计如下:
(1)TNA向IUTA发送符合基本首部格式的数据包,验证IUTA对数据包进行正确处理。
(2)TNA向IUTA发送版本号不为1的数据包,验证IUTA丢弃数据包并向源点发送“参数错误”控制报文[12]。
(3)TNA向IUTA发送映射标识位不为0或1的数据包,验证IUTA丢弃数据包并向TNA发送“参数错误”控制报文。
(4)TNA向IUTA发送目的地址为TNB的数据包,验证TNB收到的数据包中跳数限制字段减1处理。
(5)TNA向IUTA发送无法识别的下一个首部字段值的数据包,验证IUTA丢弃数据包并向IUTA发送“参数错误”控制报文。
2.2 分片重组测试
标识分离映射协议数据包结构的有效载荷包括扩展首部和数据部分。扩展首部中分段选项用于支持大于路径MTU的数据包的分片。分片重组的一致性测试用来测试被测设备中分段选项实现的正确性,采用如图3(a)所示的拓扑。分片重组一致性测试用例设计如下:
(1)TNA向IUTA发送符合分片重组规则的两个分片数据包,验证IUTA完成数据包的重组。
(2)TNA向IUTA只发送一个分片后的数据包(分片标志位为1),60s内无其他分片到达,验证IUTA丢弃该数据包并发送“超时”控制报文[13]。
(3)TNA向IUTA发送一个分片报文,其中分片标志位为1但数据长度不为8的整数倍,验证IUTA丢弃该数据包并发送“参数错误”控制报文。
(4)TNA向IUTA发送两个分片报文,但两个分片报文数据长度之和超过了8 191字节,验证IUTA丢弃该数据包并发送“参数错误”控制报文。
(5)TNA向IUTA发送两个标识号不同的分片报文,验证IUTA丢弃该数据包,不对其进行重组。
2.3 安全认证测试
扩展首部中认证选项用于对数据包的完整性和数据源的认证并防止重放攻击。安全认证的一致性测试用来测试被测设备中认证选项实现的正确性,采用如图3(a)所示的拓扑。安全认证一致性测试用例设计如下:
(1)TNA和IUTA上添加统一的认证参数,TNA向IUTA发送一个带有认证选项的数据包,验证IUTA可以对该数据包进行认证处理。
(2)TNA和IUTA上添加非统一的认证参数,TNA向IUTA发送一个带有认证选项的数据包,验证IUTA丢弃该数据包。
(3)为防重放攻击,每发送一个数据包序列号增加1,TNA向IUTA发送一个序列号为0的数据包,验证IUTA丢弃该数据包。
(4)TNA向IUTA发送一个认证值为0的数据包,验证因为接收端计算的认证值与源端不一致,IUTA丢弃该数据包。
2.4 安全加密测试
扩展首部中加密选项用于对数据的加密。安全加密的一致性测试用来测试被测设备中加密选项实现的正确性,采用如图3(a)所示的拓扑。安全加密一致性测试用例设计如下:
(1)TNA和IUTA上添加统一的加密参数,TNA向IUTA发送一个带有加密选项的数据包,验证IUTA可以对该数据包进行解密处理。
(2)TNA和IUTA上添加非统一的加密参数,TNA向IUTA发送一个带有加密选项的数据包,验证IUTA丢弃该数据包。
(3)为防重放攻击,每发送一个数据包序列号增加1,TNA向IUTA发送一个序列号为0的数据包,验证IUTA丢弃该数据包。
2.5 标识分离映射测试
标识分离映射的一致性测试用来测试接入交换路由器根据网络接口、数据包格式等处理分离映射或转发行为实现的正确性,采用如图3所示的拓扑(其中(1)、(2)、(3)采用如图3(a)所示的拓扑,(4)采用如图3(b)所示的拓扑)。标识分离映射一致性测试用例设计如下:
(1)TNA和TNB所处同一个接入网,TNA经过ASR向TNB发送接入网格式数据包,验证被测设备ASR没有对数据包进行标识分离映射,只是转发到TNB。
(2)TNA向IUTA(ASR接入口)发送一个不符合接入网格式的数据包,验证IUTA丢弃该数据包。
(3)TNA向IUTA(ASR路由口)发送一个不符合核心网格式的数据包,验证IUTA丢弃该数据包。
(4)TNA属于接入网,TNB属于核心网,TNA经ASR向一个与TNA非本地的接入标识发送接入网格式数据包,配置路由使其经过TNB,ASR本地存储目的端的映射关系,验证被测设备ASR对数据包进行分离映射,将接入标识替换成路由标识转发到TNB。
前面详细介绍了标识分离映射协议一致性测试集的测试用例的设计,以2.5节测试用例(4)为例,介绍一致性测试的实现过程。
3.1 测试用例
测试用例(4)是为了测试被测设备的标识分离映射功能。按照测试用例描述,TNA发送目的地址为其他接入网地址的接入网格式的数据包。因为已经配置经过TNB的路由,ASR上存储目的接入标识的映射关系,则在TNB应该接收到分离映射后的数据包。测试用例如图4所示。
图4 标识分离映射测试用例文本
TNA的接入标识为13333-0-1-2-0-0-0-7,分离映射后的路由标识为13333-50000-1-2-0-0-0-7,目的接入标识为13333-0-2-2-0-0-0-9,分离映射后的路由标识为13333-50000-2-2-0-0-0-9。ASR上存有13333-0-1-2-0-0-0-7 13333-50000-1-2-0-0-0-7,13333-0-2-2-0-0-0-9 13333-50000-2-2-0-0-0-9两条映射关系。
依据测试用例,由TNA端口发送标识分离映射数据包,源地址为TNA接入标识,目的地址为13333-0-2-2-0-0-0-9。由于已配置路由,则数据包经由ASR转发到TNB,在TNB端口应该能够接收到分离映射后的数据包。
3.2 测试结果分析
测试过程中,TNA向与TNA不属于同一接入网的目的地址13333-0-2-2-0-0-0-9发送一个“ping”包,在TNA和TNB端口抓包结果如图5和图6所示。
图5 TNA处抓包结果
图6 TNB处抓包结果
图5中原始数据包的映射标识位为0,源地址和目的地址分别为测试用例中定义的源和目的接入标识。图6中替换后的数据包映射标识位为1,源地址和目的地址为源和目的接入标识对应的路由标识。
测试用例中对TNB收到的数据包进行判断,比较其目的地址是否为路由标识,实际测试结果可以得出被测设备ASR通过此测试用例。
标识分离映射协议一致性测试的测试用例都可以用类似的方法编写测试用例,利用协议一致性测试系统进行测试,通过抓包软件可以验证测试反馈结果的准确性。
文中设计了标识分离映射协议一致性测试集,分为5组共21个测试用例,并扩展协议一致性测试系统功能,利用测试系统对这些测试用例进行测试。测试结果为测试用例全部通过,被测设备可以做出正确的处理,说明被测设备中标识分离映射协议的实现符合协议标准定义。后续将继续设计一体化网络中与标识分离映射协议并行的其他网络协议的一致性测试集,扩大协议一致性测试系统的功能。
[1]ClarkD,BradenR,FalkA,etal.FARA:reorganizingtheaddressingarchitecture[J].ACMComputerCommunicationsReview,2003,33(4):313-321.
[2] 田 军,张玉军,李忠诚.IPv6协议一致性测试系统[J].计算机辅助设计与图形学学报,2002,14(4):296-300.
[3]ISO/IEC9646-1:1994-Informationtechnology-opensysteminter-connection-conformancetestingmethodologyandframework[S].[s.l.]:[s.n.],1996.
[4] 孙静波.IPv6邻居发现协议一致性测试研究[D].北京:中国科学院研究生院,2004.
[5] 吴建平,陈修环,郝瑞兵,等.基于形式化技术的协议集成测试系统-PITS[J].清华大学学报:自然科学版,1998,38(S1):29-32.
[6] 董 平,秦雅娟,张宏科.支持普适服务的一体化网络研究[J].电子学报,2007,35(4):599-606.
[7] 张宏科,苏 伟.新网络体系基础研究——一体化网络与普适服务[J].电子学报,2007,35(4):593-598.
[8]ZhangYujun,LiZhongcheng.AnewformaltestsuitespecificationlanguageforIPv6conformancetesting[C]//Proceedingsofinternationalconferenceoncommunicationtechnology.[s.l.]:[s.n.],2003:174-177.
[9] 陈 想,周华春,苏 伟.IPv6地址协议一致性测试系统设计与实现[J].计算机应用与软件,2013,30(11):28-31.
[10] 倪海铜.OpenFlow协议一致性测试系统设计与实现[D].北京:北京交通大学,2015.
[11] 郑红霞,田 军,张玉军,等.IPv6协议一致性测试例的设计[J].计算机应用,2003,23(4):62-64.
[12]PostelJ.Internetcontrolmessageprotocol[S].[s.l.]:IETF,1981.
[13]ContaA,DeeringS,GuptaM.InternetControlMessageProtocol(ICMPv6)fortheInternetProtocolVersion6 (IPv6)specification[S].[s.l.]:IETF,2006.
Design and Implementation of Conformance Test for Identifier Separating Mapping Protocol
ZHANG Chao,QIN Ya-juan,SU Wei
(School of Electronic and Information Engineering,Beijing Jiaotong University, Beijing 100044,China)
The identifier separating mapping protocol in the universal identifier network can realize the separation of the identifier and locator,which can solve the routing scalability,mobility,security issues caused by the semantic duality of IP address in the TCP/IP.In order to make up for the disadvantage and shortage of the protocol conformance test system at home and abroad,a kind of protocol conformance test system is presented.It can customize the test cases and procedures and support the new protocol conformance test.The test set of the identifier separating mapping protocol is designed after the full analysis of identifier separating mapping protocol in universal identifier network,including the basic header,slicing and recombination,security authentication,security encryption,identifier separating mapping.It finishes the test cases according to the testing language,tests them in the conformance test system,analyzes the results and verifies the correctness about the identifier separating mapping protocol of the tested device.
universal identifier network;identifier separating mapping;conformance test;test system
2015-05-22
2015-09-08
时间:2016-03-22
国家自然科学基金资助项目(60903150,61271201)
张 超(1990-),女,硕士研究生,研究方向为下一代互联网理论与技术;秦雅娟,博士,教授,研究方向为下一代互联网理论与技术;苏 伟,博士,副教授,研究方向为下一代互联网关键理论与技术。
http://www.cnki.net/kcms/detail/61.1450.TP.20160322.1518.036.html
TP31
A
1673-629X(2016)04-0006-05
10.3969/j.issn.1673-629X.2016.04.002