可扩展的分布式网络协议测试与验证系统
【摘要】:近些年来,随着云计算规模的不断扩大与可编程数据平面的逐渐普及,数据中心内的网络协议正发生着快速的变革。为保证新协议的稳定与可靠,需要在部署前对其功能与性能进行大量工程上的测试与验证。由于真实设备的成本较高,所以一般使用仿真环境进行操作。在该过程中,会遇到三个问题:第一,由于这些网络的规模较大,而传统网络仿真技术的性能有限,因此难以对整个网络进行真实流量的仿真;第二,现有系统对网络仿真的关注较多,而对网络协议测试验证技术的研究相对较少;最后,分布式仿真环境中的网络遥测技术有待进一步完善。因此,本论文针对上述问题,提出了一种分布式网络协议仿真与测试系统的设计方案。首先,系统使用了容器与隧道技术,使仿真网络的节点与链路能够同时运行于多台主机中,解决了大规模网络仿真中系统的扩展性问题;其次,由于在协议的开发及测试过程中,需要通过运行数据对其进行调试与分析,所以论文利用eBPF技术,提出了一种应用于分布式仿真场景下的带外遥测技术,它能够以较低的开销按需过滤与提取网络节点中的数据包;最后,论文还提出了一种基于测试用例的协议测试方法,并提倡以测试驱动的方式完成网络协议的开发与测试。此外,论文通过模拟为数据中心网络添加新协议及进行对比实验的方式,测试了系统的功能及性能。功能测试结果表明,系统对大规模网络的分布式仿真、带外实时遥测和协议的自动化测试验证都具有良好的支持。性能测试结果表明,系统在具有双核CPU和4GB可用内存的单机上,就可以仿真拥有约640个节点和1280条链路的网络。并且在具有多个工作节点的情况下,系统创建仿真网络时的性能具有显著的提升。