目前测试协议一致性使用OpenFlow协议一致性测试工具。测试拓扑如下图所示:
OpenFlow一致性测试仪与支持OpenFlow的交换机之间建立1个控制平面的连接和4个数据平面的连接。测试仪可以模拟控制器发送OpenFlow协议消息来检测交换机行为,数据平面的连接用于测试和验证交换机能够对网络数据包正确处理,包括转发,修改数据包指定字段等。
2. SDN互通性测试
互通性测试是不同厂商的OpenFlow设备之间互连互通能力的测试。互通性测试是非常必要的,这样可以让网络中的设备不至于被绑定在同一家设备厂商。通过进行多厂商SDN 互通性测试,一方面能够发现设备SDN实现的问题和对协议理解的问题,有助于自身SDN产品的协议实现方面完善和优化,另一方面可以验证SDN 标准的可执行性和完整性,进一步促进OpenFlow协议不断更新和完善,推动SDN产业的发展。
最基本的互通性测试包括:控制通道的建立;流表测试;请求消息测试;流超时等。下面以拓扑发现为例介绍互通性测试。
将不同厂商的控制器和交换机设备按照测试拓扑进行连接,并对所有网络设备进行正确配置,控制器应该能够和所有交换机设备正常建立控制通道,正确发现所有网络设备和它们之间的连接,并以图形界面或在命令行正确显示。
3. 功能性测试
功能测试是对OpenFlow设备的功能进行测试和验证。在SDN发展的初期,各个厂商设备对OpenFlow协议支持的情况都不同,OpenFLow协议有很多可选的功能,厂商不同程度地支持这些功能。另外,许多厂商会自行对OpenFLow协议做一些扩展,添加一些有用的特性,所以除了协议一致性测试和互通性测试,功能性测试也是非常必要的。
功能性测试一般使用功能性测试仪作为测试工具,测试工具模拟控制器发送消息,有需要时能够发送数据流量到交换机端口,同时可以对控制平面和数据平面的数据包进行抓包和分析,从而判断和确定交换机支持的功能。
4. 性能测试
性能测试是对OpenFlow设备性能进行测试。由于目前测试整个网络系统还有很大的挑战,所以这里的性能测试指的是单个网络设备的性能。交换机流表容量测试和控制器最大连接交换机数量也属于交换机性能测试的范畴。测试方法如下图所示:
总结
SDN在迅速地发展,现在还处于一个早期的阶段。相关标准仍不够成熟、设备对标准的支持情况也还不够成熟,不同设备厂商对标准理解不同,设备实现也不尽相同,所以测试的重要性是毋庸置疑的。通过测试,可以促进SDN更快被大家接纳,让大家对SDN设备建立信心,也让设备的实现更加规范,可以用于商业部署。
目前,测试还存在很多挑战,测试方法还不够全面,测试工具也不够完善。目前的测试多为对OpenFlow设备的测试和对SDN应用的验证。SDN网络和系统的测试还存在很大的挑战。现阶段,OpenFlow协议一致性测试和互通性测试都在积极开展。随着SDN技术的发展,SDN的测试方法也将越来越完善。(张俊)
|