当前位置:易博PCB抄板工作室 >> 技术文档 >> 互操作性测试研究――BGP4测试

互操作性测试研究――BGP4测试

    由于互操作性测试对于产品的推广应用具有非常重要的意义,因此,国内外有许多研究机构在从事互操作性测试的研究工作,例如:日本的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已经不能满足实际的应用需要,pcb抄板为了使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是抽象意义上的互操作性测试工具。