当前位置:首页 > 通信技术 > 通信技术
[导读] 针对面向IPv6的边界网关协议BGP4+进行了互操作性测试研究。讨论了BGP4+与BGP4的区别,给出了BGP4+协议测试的有限状态机模型。运用形式化与非形式化相结合的方法生成了BGP4+的测试例,并给出了运用测试例对具体的协议实现测试的结果。

互操作性测试就是检测在不同厂商生产的设备之间能否实现正确的通信交互的测试方法。由于BGP4+[1]是下一代互联网中重要的域间路由协议,因此对它展开互操作性测试对于验证下一代互联网络产品在真实网络环境中的互连互通能力具有十分重要的意义,对于路由设备与软件开发商在对产品进行调试、验证和改进等方面也有着非常重要的作用。
 由于互操作性测试对于产品的推广应用具有非常重要的意义,因此,国内外有许多研究机构在从事互操作性测试的研究工作,例如:日本的TAHI计划研发了IPv6协议的互操作性测试系统。德国的JOIN(Join Open InterNetworks)工程,建立了互操作性测试实验网络。美国New Hampshire大学的IOL(Interoperability Lab)专门成立IPv6小组进行IPv6相关协议的测试研究工作,在其网站上可以免费下载到用于测试BGP4+、OSPFv3、RIPng等路由协议的互操作测试套件。国内的清华大学、中科院计算所、中国科技大学、兰州大学、上海交通大学等多所高校也成立了IPv6实验室在从事这方面的研究。
 在互操作性测试例的生成算法研究方面,国内外有许多相关的文献,例如,参考文献[2]中提出了一种生成互操作性测试例的算法,但是这种算法的缺陷是只能处理两个内部消息交互的情况;参考文献[3]中研究了在互操作性测试生成过程中如何避免状态爆炸的问题;参考文献[4]中提出了一种基于有向图的测试序列生成算法可以满足互操作性测试的最小完全覆盖准则。但目前关于互操作性测试工具的开发研究方面的文献并不多见。
1 BGP4+协议与BGP4的不同
 随着下一代互联网络协议IPv6的部署,原来只能支持IPv4的边界网关协议BGP4已经不能满足实际的应用需要,为了使BGP4能够支持IPv6,IETF组织修订完成了RFC2858(Multiprotocol Extentions for BGP4)。在BGP4+中,IETF定义了一个特殊属性——MP-BGP(Multi-Protocol BGP)来携带IPv6的路由信息,使得BGP4+既可以运行在IPv4网络上也可以运行在IPv6网络上。
 在BGP4协议的消息属性中有三部分与IPv4的信息相关,分别是:NEXT-HOP、NLRI和AGGREGATOR属性。假设任何BGP发言者都有一个IPv4地址,那么要使BGP4能够支持多网络层协议的路由只需要加入两个功能把特定的网络层协议分别与NEXT-HOP和NLRI关联起来。因此,IETF在修订后的BGP4+中增加了MP_REACH_NLRI(Multiprotocol Reachable NLRI)属性和MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI)属性。这两个属性是可选非传递的,不支持多协议扩展的BGP发言者可以忽略这两个属性中携带的信息并且不转发这些信息。MP_REACH_NLRI属性详细定义了所使用的网络层协议的类型、下一跳长度和地址、子网接入点信息和NLRI信息。如果在UPDATE消息中使用了MP_REACH_NLRI属性,就不需要原来的IPv4的NEXI-HOP属性了。而MP_UNREACH_NLRI属性相对简单得多,如果在UPDATE消息中使用了MP_UNREACH_NLRI属性就不需要携带其他的路径属性了。RFC1771规定UPDATE消息中必须包含强制属性,否则就发送NOTIFICATION消息,但是RFC2858中增加的这两个属性无形中改变了这一规定。BGP4+中还增加了对这两个新属性的错误处理,而且还采用了BGP能力通告协议[5],该协议定义了BGP4+的OPEN消息的可选属性中可以采用BGP能力通告,用来决定在BGP连接建立时是否与对等体使用多协议扩展传递路由信息,否则将无法获知其他对等体是否能支持这一扩展。如果双方都支持这一扩展,它们转发的UPDATE消息就可以携带IPv6网络层可达信息。BGP4+的这种扩展机制是向后兼容的,支持这种扩展的路由器能够与不支持这种扩展的路由器完全交互。
2 测试体系结构
 在对BGP4+进行互操作性测试的过程中选用的体系结构如图1所示。在该互操作性测试体系结构中,IUT(被测实现)A 和IUT B分别代表了两个进行互操作的产品实现;网络协议分析仪由装有Ethereal协议分析软件的PC机来代替,它可以捕获在IUT A和IUT B之间传递的内部消息,并对捕获的信息进行观察和分析,但是不能对这些消息进行更改,这样可有效地减少外界环境对被测系统的干预,并能体现IUT A和IUT B之间能否进行互操作的真实情况;测试器A和测试器B是抽象意义上的互操作性测试工具。

3 测试BGP4+
3.1 BGP4+的形式化定义

 图2是完整的BGP4+互连行为有限状态机,可以看到,在BGP4+对等体完全建立连接之前要经历的状态包括:Idle、Connect、Active、OpenSent、OpenConfirm和Established。

 

 

 在BGP4+的有限状态机中,导致状态变迁发生的是BGP的输入输出事件,RFC4271中规定的输入输出事件包括Administrative事件、Timer事件、TCP连接事件和BGP消息事件,其中每类事件又包括必选事件和可选事件,具体事件如表1所示。

3.2 测试例的生成与应用
 在对BGP4+进行互操作性测试的研究中,首先通过有限状态机对其进行形式化描述,然后运用了参考文献[6]中提出的测试例生成算法来生成测试例,其算法思想如下:
 
 (8)全局终态gs_n=(2,b);
 (9)得到互操作测试套:Tr?椎=(1,a)-V/((nil,uin),(U, nil))(2,b)。
 以图3的BGP4+消息交换实例来说明测试例(Idle,Active)---start-a/{(nil,Open),(nil,Open),(nil,KeepAlive),(nil,NotiFMsg),(close,nil)}→(Idle,Idle)的生成方法。在BGP4+的有限状态机中,初始IUT A和IUT B的状态分别是Idle和Active,即gs_i=(Idle,Active)、gs_i.Si=Idle、gs_i.Sj=Active。WΦ⇔{(nil,Open)},TrΦ=nil。经过多次Call interaction_sequence函数的调用,使得两个被测实现IUT A和IUT B经过变迁start-a/{(nil,Open)、(nil,Open)、(nil,KeepAlive)、(nil,NotiFMsg)、(close,nil)}最终到达gs_n=(Idle,Idle)状态。运用这个方法自动生成了10个BGP4+互操作测试例。

 对于协议中无法抽取规范的形式化描述的测试内容则需要给出测试目的和测试内容,根据RFC协议标准的内容手工抽取测试例。首先,在详细阅读RFC协议标准并充分理解的基础上,对协议进行测试项目的划分;然后,根据不同的测试项目确定该项目中的测试目的和测试内容;最后,针对不同的测试目的设计适当的测试配置和测试数据。表2是一个采用手工抽取的测试例的实例,表中列出了测试目的、测试配置、测试步骤以及预期的测试结果和测试判定。被测系统如图4所示。

 图5是使用Ethereal捕获到的在Cisco 1721和模拟路由软件Zebra-0.95之间传递的BGP4+的OPEN消息,其中Hold Time的实际值为180 s,符合预期结果。因为协议规定通信双方的Hold Time以时间短的一方作为最终协商结果,因此,测试例的最终结果为PASS。
 运用这些测试例对BGP4+协议的实现进行了互操作性测试,下面以Linux下的Zebra-0.95为例,列举了部分对协议可选项处理情况的测试例列表及测试结果,如表3所示。
随着IPv6协议簇的广泛应用,对实现了IPv6协议簇的相关产品的测试是保证它们能正确在网络中工作的关键。BGP4+作为IPv6协议簇中重要的路由协议,对它的测试有助于进一步完善IPv6协议簇。因此,作为最基本和最重要的域间路由协议,测试BGP4+协议实现的互操作性具有重要的应用价值。这些研究工作的结果将会使下一代互联网具有一个更为稳定和坚实的基础。

 本文首先对BGP4+与BGP4的区别进行了分析,然后介绍了BGP4+互操作性测试的体系结构,最后详细讲解了生成BGP4+互操作性测试例的方法及运用这些测试例对BGP4+协议实现,如在Linux环境下对Zebra-0.95进行互操作性测试所发现的问题。后续的工作包括开发通用性强的互操作性测试工具以及在提高差错覆盖率方面进一步研究新的测试例生成算法。
参考文献
[1] RFC 2858: multiprotocol extensions for BGP-4. June,2000.
[2] SHIN J, KANG S. Interoperability test suite derivation for the ATM/B-ISDN signaling protocol[J]. IWTCS Proceedings of the IFIP TC6 11th International Workshop on Testing Communicating Systems, 1998: 313-330.
[3] KANG S, SHIN J, KIM M. Interoperability test suite derivation for communication protocols[J]. Computer Networks, 2000, 32(3):347-364.
[4] 林华辉,赵保华,屈玉贵. 基于有向图的最小完全覆盖互操作测试序列生成算法[J].中国科学技术大学学报,2006,36(2):225-229.
[5] RFC 2842: Capabilities adveritsement with BGP-4, May,2000.
[6] KANG S, KIM M. Interoperability test suite derivation for symmetric communication protocol[C]. Proceeding FORTE X/PSTV XVII′97, 1997, 107:57-72.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月16日 /美通社/ -- 4月14日,为期四天的第89届中国国际医疗器械博览会(CMEF)盛大收官。澳鹏Appen很荣幸再次作为唯一的人工智能训练数据参展商参与此次"航母级"规模医疗...

关键字: APP 医疗器械 PEN 模型

北京2023年9月22日 /美通社/ -- 随着人工智能、云计算等技术的快速发展,算力需求爆发,服务器设计呈现多元异构特征,如何快速适配多种通用计算处理器、多种异构加速器和各类部件,实现服务器高效、稳定、可靠运行,对服务...

关键字: 三星 开源 英特尔 PEN

北京2023年9月21日 /美通社/ -- 近日,由开放数据中心委员会(ODCC)主办的2023“开放数据中心大会”在北京国际会议中心举行。今年是ODCC成立10周年,大会汇集了数据中心产业链上下游企业、科研机构、专家学...

关键字: 数据中心 TI PEN DC

北京2023年9月15日 /美通社/ -- 9月8日,2023年鲲鹏应用创新大赛陕西赛区决赛成功落幕。经过现场答辩、问题答疑等环节,软通动力"基于鲲鹏硬件的信创医共体解决方案" 最终荣获20...

关键字: 大赛 PEN 操作系统 华为

冠闵信息近年云收入保持双位数增长 北京2023年9月13日 /美通社/ -- 亚马逊云科技连续七年授予上海冠闵信息科技有限公司(以下简称:冠闵信息)托管服务提供商(MSP)认证,其借助亚马逊云科技在云能力、技术方案构建...

关键字: 亚马逊 数字化 SEARCH PEN

(全球TMT2023年9月4日讯)8月31日,第二十五届中国国际软件博览会在天津梅江会展中心拉开帷幕。软通动力子公司鸿湖万联受邀参会,通过展示开源生态建设成果,为中国软件产业腾飞提供“加速度”。 鸿湖万联...

关键字: PEN HARMONY AI 软件

北京2023年8月31日 /美通社/ -- 与狭义的人工智能相比,通用人工智能通过跨领域、跨学科、跨任务和跨模态的大模型,能够满足更广泛的场景需求、实现更高程度的逻辑理解能力与使用工具能力。2023年,随着 LLM 大规...

关键字: 模型 AI TOKEN GP

北京2023年8月31日 /美通社/ -- 进入2023年,ChatGPT推动世界步入一个全新时代——大模型时代,它不仅引发了AI产业的整体升级换代,同时也让各种大模型层出不穷,背后的关键原因在于,大模型能普遍提升生产力...

关键字: 模型 向量 开源 GP

北京2023年8月22日 /美通社/ -- 共聚软件名城,共谋数字未来。8月20日—8月23日由江苏省工业和信息化厅、南京市人民政府主办,南京市工业和信息化局、南京市软件集群发展促进机构承办的2023中国(南京)国际软件...

关键字: 开源 软件 鸿蒙 PEN

北京2023年8月16日 /美通社/ -- 近日,在备受业界关注的OCP China Day 2023(开放计算中国技术峰会)上,面对多元算力平台运维管理方面的重重挑战,浪潮信息正式发布了基于OpenBMC的I...

关键字: 固件 PEN 开源 芯片
关闭
关闭