一种基于虚拟化技术的域际路由模拟平台
2020-07-04于鹏秦超逸张宇
于鹏 秦超逸 张宇
摘要:网络模拟在计算机网络研究、协议设计和网络管理等领域具有广泛的用途和意义,但是目前基于数学模型的模拟工具往往只是计算和预测网络行为,或仅仅构建网络协议栈以支持转发。基于对自治域级网络拓扑模拟的需求,提出了基于虚拟化技术的域际路由模拟平台构建方案。方案从数据源采集BGP路由拓扑数据,这就从自治域级拓扑向IP地址级拓扑的映射方案,使用虚拟交换技术和图划分算法实现多机扩展。最后,对该方案的实现初步评价了功能实现情况和基本性能指标,并介绍了对未来工作的展望。
关键词: 域际路由; 虚拟化; 网络模拟
【Abstract】 Network simulation has a wide range of uses and senses in computer network research, protocol design and network management. However, current mathematical model-based emulation tools often only calculate and predict network behavior, or simply build a network protocol stack to support forwarding. Based on the requirements of autonomous system network topology emulation, the paper proposes a construction scheme of inter-autonomous routing emulation platform based on virtualization technology. The solution collects real BGP routing topology data, designs a mapping scheme from autonomous-system-level topology to IP-address-level topology, uses virtual switching technology and graph partitioning algorithm to implement multiple hosts extension. Besides, the paper initially evaluates the function implementation and the basic performance indicators. Finally, the paper introduces the prospects for future work.
【Key words】 inter-autonomous routing; virtualization; network simulation
0 引 言
網络模拟是一种利用软件来实现计算不同网络实体之间的交互,以模拟网络行为。模拟的实体包括路由器、交换机、节点、链路等。通过网络模拟来解决真实互联网环境中的问题更加安全有效,具备更小的风险。本文提出了一种基于Docker虚拟化技术的网络模拟方案,利用该方案模拟了真实BGP路由网络,并进行了初步的测试和评价。
边界网关协议(Border Gateway Protocol, BGP)是运行在自治域边界路由器上的路由协议。作为一种域际路由协议,通过维护IP路由表或网络前缀来实现自治域之间的可达性,能够去中心化地使各个网络自治。在自治域系统中,自治域间的路由不只是选择到达目标的最短路径,还需要符合特定的一些路由策略。一个自治域通常有至少一个BGP路由器,但是为了简化网络复杂度,本方案对于每一个自治域部署一台虚拟BGP路由器。这在不影响模拟真实性的情况下,使研究工作关于本论文所述的内容更具针对性。
1 相关工作
1.1 域际路由模拟技术
国内外目前有很多基于路由协议模拟的工作,这些网络模拟技术在协议验证和安全事件模拟中具有重要的意义。当前对路由协议的模拟分为静态路由模拟和动态路由模拟,其中动态路由模拟包括对BGP和OSPF等动态路由协议的模拟[1]。Quoitin提出了模拟大规模拓扑中BGP协议的模拟器C-BGP[2],但并未实现真实TCP连接和真实数据包交换的模拟。基于SSFNet的BGP模拟技术[3]模拟了几乎BGP协议中的所有细节,具有较高的真实度。
同时,作为用于互联网自治系统之间的路由协议探究,Varadhan等人[4]的研究说明了路由测量配置将引起路由震荡或者发散。Labovitz等人[5]对BGP的研究证明了路由震荡对路由网络的危害,且文献[5-6]通过对路由变化的测量研究表明BGP聚合时间的延迟将很大,这种延迟将会造成拥塞或者网络瘫痪。
1.2 虚拟化技术
虚拟化作为一种资源管理技术,虚拟化[7-8]将计算机及互联网体系中的各种实体进行一定程度的抽象、转换后呈现出来,对计算机领域生产力提升有着重要价值。软件定义网络[9-10](Software Defined Network, SDN),即通过软件程序的形式定义和控制网络。应用软件定义网络技术,能够对设备建立依照需求的互连,而且能够随时根据业务逻辑的修改来重新定制网络连接方式,更好地实现对网络的控制和管理。
2 设计
2.1 系统概览
本文研究最初是基于对BGP路由拓扑模拟的需求,并提出了一个可行的模拟方案。域际路由模拟系统概览如图1所示,系统部署在一定数量的宿主机上,宿主机之间网络可达。在每个宿主机上生成虚拟BGP路由器并建立虚拟网络的连接关系,对于跨宿主机的链路,使用虚拟交换技术构建。虚拟BGP路由器之间运行路由协议,从而构建为路由拓扑网络。
(2)带宽测试。使用Iperf3带宽测量工具对模拟平台多个链路进行了带宽测试,得到了带宽的数据,实验环境同上。带宽测试结果见表2。
从测试结果来看,Docker虚拟化网络提供了较大上限的虚拟网络链路带宽,而跨宿主机的虚拟BGP路由器之间的链路带宽由于受到实际物理网卡带宽限制而相对较低。如果想要模拟真实网络中的带宽环境,可以通过第三方工具如 TC、Wondershaper 等带宽限制工具根据需求设置虚拟链路带宽。
3.3 拓扑搭建过程性能
在单宿主机上测试了3组数据,分别是生成 30 节点、60 节点和 90 节点拓扑的情境。研究可知,CPU使用情况见图7。从测试结果来看,30节点拓扑构建时间约为37 s,60节点拓扑构建时间约为67 s,90节点拓扑构建时间约为93 s,随着节点数量的增加,构建时间的花费基本上呈线性增长趋势。从图7中可见,在构建过程中CPU的使用率基本在8% ~10%,并且不会由于构建规模的增大而增大,这是一个可以接受的CPU使用率和变化情况。
拓扑构建过程中内存占用如图8所示。内存使用会随着构建规模的增大而增大,而且一旦节点构建完成,模拟平台对内存的使用是持续的。直到这些模拟任务结束后、这些节点被销毁时,内存才会恢复原状态。从图8中可知,构建30节点规模的拓扑约需要内存3%(32 G内存总量),构建60节点的拓扑约需要内存5%,构建90节点的拓扑约需要内存7%。基本上内存使用情况也是随着节点规模增长而线性增加的。
4 结束语
本文提出了一种基于虚拟化技术的域际路由模拟方案,并初步模拟了真实的BGP路由拓扑。通过对域际路由拓扑的网络模拟,总结了提出的模擬技术的特点和价值。具体内容如下:
(1)这种网络模拟具有高扩展性和可定制性。虚拟化的网络设备实际上是一台轻量级容器,不仅仅可以模拟BGP路由器,也可以通过运行其它路由协议从而扮演其它角色,而且作为操作系统在网络层之上也可以安装应用层服务等。
(2)由于这种模拟具有较高的真实度,不仅可以作为一种测量和分析网络运行状态的工具,更能够作为一个进一步构建网络实验的平台,如进行各种基于网络流量的应用设计研究、网络靶场设计探索等。另一方面可将本方案提出的模拟平台[CM(22]中的节点与真实物理设备相连,通过连接真实路由[CM)][LL]设备来验证模拟平台构建的路由会话与真实路由一致。
参考文献
[1] 丁金科. BGP协议模拟技术研究[D]. 哈尔滨:哈尔滨工业大学,2009.
[2]QUOITIN B, UHLIG S. Modeling the routing of an autonomous system with C-BGP[J]. IEEE Network,2005,19(6):12.
[3]DARPA. SSFNet 2000 [EB/OL]. [2005-07]. https:// www.ssfnet.org.
[4]VARADHAN K, GOVINDAN R, ESTRIN D. Persistent route oscillations in inter-domain routing[J]. Computer Networks, 2000,32(1):1.
[5]LABOVITZ C, AHUJA A, BOSE A, et al. Delayed internet routing convergence[J]. IEEE/ACM Transactions on Networking, 2001,9(3):293.
[6]TANGMUNARUNKIT H, GOVINDAN R, SHENKER S, et al. The impact of routing policy on Internet paths[C]// Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213). Anchorage, AK, USA:IEEE,2001:736.
[7]UHLIG R, NEIGER G, RODGERS D. Intel virtualization technology [J]. IEEE Computer Society, 2005, 38(5):48.
[8]SMITH J E, NAIR R. The architecture of virtual machines [J]. Computer, 2005, 38(5):32.
[9]MIT Technology Review. 10 breakthrough technologies, TR10: Software-defined networking [EB/OL]. [2009].http://www2.technologyreview.com/article/412194/tr10-software-defined-networking/.
[10]NUNES B A A, MENDONCA M, NGUYEN X N, et al. A survey of software-defined networking: Past, present, and future of programmable networks [J]. IEEE Communications Surveys and Tutorials, 2014,16(3):1617.