公务员期刊网 论文中心 正文

计算机网络教学轻量级虚拟化技术应用

计算机网络教学轻量级虚拟化技术应用

[关键词]计算机网络;网络模拟;网络仿真;网络虚拟化

一、引言

研究生和本科阶段的计算网络教学离不开基于软件的网络验证。网络验证主要包括以下两大范畴:1.网络仿真(Simulation):利用软件模仿真实网络的运行过程。其优点包括:执行速度快,具备压缩的时间轴,因而可快速得到实验结果;由于网络协议和网络设备均用自定义的进程替代,因此可以方便地通过程序脚本快速部署网络拓扑和应用。其缺点包括:协议实现与真实协议有差异,并非真正运行协议本身,因而网络运行的还原度较低。其典型的代表包括:OMNeT++、NS3、OPNET等。2.网络模拟(Emulation):利用软件再现真实网络的运行过程。其优点包括:在协议方面,运行真实协议,发送标准分组,对网络运行的还原度高;在设备方面,提供接近真实网络设备的配置接口、调用接口。缺点包括:由于运行了基本完整的网络协议栈,对运算资源需求较大,因此部署大规模网络较为困难;操作上主要依赖于人工配置和运行;网络协议栈不包含用户流量生成模块,因此不同流量模型下的大规模流量注入不便;需额外调用多种工具用于分析研究。其典型代表包括:Mininet[1]、GNS3、CISCOPacketTracer、PlanetLab[2]等。为克服上述局限性,本文研究将轻量级虚拟化技术如Docker[3]、SDN(Software-DefinedNetworking,软件定义网络)[4]应用在计算机网络教学中,面向研究生和本科阶段计算网络教学,搭建高保真、易编程的实验环境。

二、轻量级虚拟化技术的应用

1.网络拓扑的设计部署:Docker作为本系统虚拟网络部署的核心技术,将Docker容器作为虚拟网络的网络节点,并结合OVS(OpenvSwitch)[5]交换机提供网络节点的网络连通性。首先,Docker容器完整地封装了网络协议栈,并进行隔离运行,是对真实网络协议的高保真再现。相对于传统的采用虚拟机模拟网络节点的方法,Docker容器在实现良好隔离的基础上,对于资源要求更低,易于大规模部署和扩展。其次,Docker具有丰富的镜像仓库,有助于模拟功能复杂的网络(防火墙、深度包检测等),更接近真实Internet。同时,Docker本身提供丰富的网络支持,包括bridge、host、none、overlay、macvlan等网络驱动,Calico等第三方网络解决方案,使得网络部署具有良好的可编程性。前端配合利用jQuery和jsPlumb实现了典型拓扑模板+用户手动拖拽的虚拟网络拓扑结构设计界面,提供了教学的直观性和操作的易用性,可方便地进行虚拟网络拓扑结构的设计和部署。

2.用户流量的灵活注入:利用Docker和OVS等技术将虚拟网络拓扑结构部署到物理宿主机资源池之后,若没有用户流量的注入,则无法对数据平面的性能进行有效评估。这就要求能够在数量众多的虚拟网络端系统上进行大规模的数据请求和响应。在网络模拟工具中(如GNS3、PacketTracer等),主要依赖人工登录端系统来手动触发数据平面流量(例如手动Ping操作、访问网页等)。一方面,这样的操作所产生的数据量小,难以匹配实际网络的流量规模,也无法长期手工执行,造成教学过程的操作繁琐,容易出错;另一方面,当虚拟网络包含大量端系统时,手工操作变得不可行。相比之下,在网络仿真工具中(如OMNeT++、NS3等),虽然能以特定流量模型批量调用大量端系统注入用户流量,但是,如前所述,其运行的并非实际网络协议,而是仿真进程,因此还原度、保真度相对于网络模拟工具又大打折扣。为解决这一问题,本系统利用Docker等轻量级虚拟化技术,以Docker容器形式模拟运行虚拟网络端系统。Docker提供了各主流编程语言的API支持,无需人工操作容器,DockerAPI可以方便地启停容器、调用容器内部功能,实现脚本式、规模化管控,因此,可将注入用户流量的逻辑脚本批量运行在模拟端系统的Docker容器中,无需人工干预,即可实现海量用户流量的灵活注入,大大提升了流量注入的可编程性。本系统中,用户流量注入工具采用了docker-py作为与虚拟网络端系统进行交互的编程接口,将需要运行的容器内部应用程序及其所需参数,通过docker-py的exec_run命令发送给Docker容器,从而根据参数执行应用,产生流量注入网络。

3.网络指标的监控统计:Docker本身提供了命令行工具,支持Docker容器级别的监控,同时,第三方容器集群框架(如Kubernetes[3])可实现集中式全局监控,从而实现粗、细粒度监控的广泛覆盖。而OVS交换机受控于SDN控制器,利用LLDP协议进行拓扑发现和心跳维护,若将设备本身的带宽、时延等网络指标封装在可扩展的LLDP协议分组中,则可利用LLDP协议实现捎带网络指标监控、统计,并有效降低监控、统计带来的流量开销。

4.在教学中的应用:本系统的测试版本已在西南民族大学计算机网络相关课程中投入了试点应用,相关专业的研究生和本科生普遍反映本系统具有直观性高、操作方便、易于理解等优势,降低了计算机网络模拟操作的门槛,相对于传统网络模拟/仿真工具,在实验过程中的出错概率也大大降低,取得了良好的教学效果。

三、结束语

综上所述,本文研究将轻量级虚拟化技术如Docker、SDN等应用于计算机网络的教学当中,可以有效地提供网络拓扑的设计部署、用户流量的灵活注入、网络指标的监控统计等功能,深入地帮助理解网络协议的工作原理,有效支撑研究生和本科阶段计算网络教学。

作者:陈曦 吴涛 单位:西南民族大学