仿真虚拟机上网设置
虚拟机上网设置 时间:2021-04-01 阅读:(
)
26网络仿真平台中虚拟网络的加速创建方法摘要:为了提高大规模集群网络的可靠性与稳定性,测试人员需要在高拟真度的网络仿真系统中对集群网络进行验证,并将仿真结果应用到实际网络系统中.
本文描述了MockNet网络仿真系统,它可在虚拟机集群中以容器为载体创建仿真网络设备,搭建虚拟网络连接.
MockNet中的仿真设备运行了真实的设备操作系统,配置文件与网络应用软件,其仿真结果可准确反应实际网络系统的运行状况.
为了配合MockNet仿真大规模实验网络的需求,我们提出了三种加速仿真网络创建的方法,并对部分方法进行了实验论证.
实验结果表明,MockNet网络仿真系统可显著降低仿真网络的创建时间.
关键词:网络仿真系统网络虚拟化段经璞王汉凌汪漪鹏城实验室1.
引言大规模集群网络是云计算系统的关键组成部分,承载了云计算系统的核心业务流量.
时至今日,云计算系统已成为处理全社会数字信息的枢纽,而大规模集群网络的稳定、可靠运转也成为保障云计算系统正常运作的基石.
作为一个大规模分布式系统,集群网络中的微小故障可导致网络系统的整体失效,因此,如何提高大规模集群网络的稳定性与可靠性,已成为业界普遍关注的重点问题之一.
现有的研究成果已经充分表明[1],集群网络故障的主要原因来自于网络设备中的配置错误与软件异常.
因此,提高稳定性与可靠性的关键,在于对网络中的设备配置信息与软件运行状况进行系统级测试,并在测试中提前解决问题.
然而,集群网络的测试异常困难.
一个典型的集群网络拥有成千上万台交换机、路由器等核心网络设备.
单台设备价格昂贵,配置复杂,运行多种网络应用程序.
进行系统级测试需搭建规模相似的测试集群,并逐一修改、更新每台设备的配置信息与软件版本.
这将消耗大量人力物力,在实际生产系统中无法推广.
解决上述问题的有效手段是对大规模集群网络中的配置正确性与软件运行状况进行仿真,并将仿真结果直接复用于实际系统之中.
然而,传统的网络仿真系统,如NS3[2],OMNet[3]等,仅通过事件驱动的方式模拟了数据报文在网络中的传输过程,无法运行实际网络设备的配置文件与软件代码,其仿真结果难以反应实际网络系统的运行状况.
MiniNet[4],CrystalNet[2]等系统则使用Linux内核构建高拟真的仿真网络.
利用Linux中的轻量级虚拟化技术,测试人员可以容器、虚拟机为载体创建虚拟网络设备.
虚拟网络设备运行了与实际物理设备完全相同的操作系统、配置文件、应用程序,并通过虚拟网络相互连接.
Linux中完善的虚拟化技术在最大程度上消除了虚拟网络设备与真实物理设备之间的差异,使得虚拟网络设备中的仿真结果可直接应用与真实网络系统中.
为了仿真大规模实验网络,同时解决网络实验复现困难的问题,湾区网以Linux虚拟网络为基础,设计了一套名为MockNet的高拟真网络仿真系统,27用于在部署物理实验网络并开展相关实验之前,对实验网络的配置正确性、网络连通行及软件运行状况进行测试与验证.
MockNet沿用了CrystalNet仿真系统的基础架构,在云虚拟机中以容器的形式创建仿真网络设备,可以较低的运行成本仿真大规模网络.
由于设计目标的不同,MockNet对仿真系统进行了相应改进,并重点优化了仿真网络的创建速度.
MockNet主要用于仿真实验网络.
在进行网络实验时,研究人员需要频繁地调整实验网络的拓扑结构,因此,MockNet需要快速创建大规模网络,以提供实时的仿真网络创建体验.
然而在CrystalNet中,成规模仿真网络的创建时间高达30分钟以上,难以满足实时性需求.
为了加快仿真网络的创建速度,我们提出了三种行之有效的优化方法:(1)MockNet使用并行加速技术,将仿真网络分割为相互独立的部分,以在多台虚拟机中并发创建仿真网络.
并行加速技术将仿真网络的创建时间缩短为单台虚拟机中仿真网络设备的创建与连接时间,可取得显著的加速效果.
(2)MockNet改进了CrystalNet中用于提供统一虚拟网络端口的PhyNet容器技术,并将PhyNet容器替换为一个独立的网络命名空间,称之为PhyNet命名空间.
PhyNet命名空间在提供统一虚拟网络端口的同时,消除了创建容器的额外开销,可将单台虚拟机中仿真网络设备的创建时间缩短2倍以上.
(3)MockNet中的虚拟网络连接分为单机连接两种模式.
我们通过实验证实,单机连接的创建时间相比跨机连接可缩短8%以上.
针对这一发现,我们提出了相应的仿真网络分割方法,可最大程度地减少跨机链路.
在加速仿真网络创建的同时,该方法也可减少跨虚拟机传输的数据流量,提升仿真网络的运行效率.
本文在MockNet仿真平台上进行了实验,论证了部分优化技术的具体效果.
通过阅读本文,读者可以对大规模网络仿真平台的具体架构有一个更好的了解.
图1MockNet架构示意图2.
MockNet基础架构在本章中,我们将对MockNet网络仿真平台的基础架构进行简要介绍.
图1中展示了MockNet仿真平台的架构示意图.
2.
1创建仿真网络在MockNet中,用户可以向主控服务器提交一个待仿真的网络拓扑结构,并指定仿真网络中每一个设备的具体型号.
值得注意的是,为了配合湾区网项目白盒交换机组网的仿真需求,当前版本的MockNet仅支持使用交换机进行组网.
在提交仿真网络拓扑时,用户可以指定交换机设备的端口数量以及网络设备操作系统的型号.
主控服务器会以提交的网络拓扑结构为基础,在云环境中创建虚拟仿真网络.
主控服务器首先根据待仿真设备的数量在云环境中启动相应的虚拟网络仿真平台中虚拟网络的加速创建方法网络通信283.
仿真网络的加速创建在本章中,我们详细介绍引文章节中提到的三种仿真网络加速创建方法.
2.
2状态保存与恢复3.
2PhyNet命名空间3.
1并行加速2.
3互动式仿真在仿真网络创建完成后,MockNet会将仿真网络的详细信息保存到数据库中,并随时监控仿真网络的运行状态.
我们在后续描述中可以了解到,MockNet中不同虚拟机之间是完全解耦的,任意两台虚拟机的运行状态互不影响.
因此,当仿真网络中某一个虚拟机节点失效后,MockNet只需重启该虚拟机节点,并根据数据库中保存的状态信息重建该虚拟机中运行的仿真网络设备,就可以恢复失效的仿真网络.
如图2所示,MockNet中的仿真网络设备由两部分组成.
第一部分被称作PhyNet命名空间,是一个Linux操作系统中独立的网络命名空间(NetworkNamespace)[5].
在该命名空间中,MockNet会根据待仿真设备的配置添加相应数量的虚拟网络端口.
虚拟端口通过LinuxVeth设备[6]实现.
每一个Veth设备包含两个相互连通的端口,即图2中的Tap0与Tap1.
Tap0端口会被移动到PhyNet命名空间中,而Tap1端口则保留在虚拟机中,用于与其他仿真网络设备中的Tap1端口建立虚拟网络连接.
PhyNet命名空间中还会有一个监控程序,用在创建仿真网络时,MockNet会通过图分割的方法将输入网络拓扑图切分为若干子图,每一个子图都包含数量均等的待仿真网络设备.
MockNet为每一个子图分配一个虚拟机,并在该虚拟机中创建子图中的仿真网络设备与虚拟网络连接.
由于不同虚拟机的工作过程不会相互干扰,上述过程可做行化处理.
MockNet主控程序利用异步编程的方式,同时向所有虚拟机下达仿真设备与虚拟网络的创建指令.
虚拟机同时进行创建工作,并在创建完成后通知MockNet主控程序.
并行化技术将仿真网络的整体创建时间大致缩短为单一子图的创建时间,大大加快了仿真网络的创建速度,使用户可以根据实验需求实时修改网络拓扑结构,而无需长时间等待.
用户可以使用MockNet对仿真网络进行互动式仿真.
用户可以使用MockNet创建的管理网络登录每一台仿真网络设备,对配置文件与程序进行实时修改.
用户也可随时重启仿真设备,以启用更改后的配置.
用户可以使用流量生成器向仿真网络中注入指定格式的数据包,并通过MockNet中自带的抓包程序实时获取数据包在仿真网络中经过的路径,以验证仿真网络的配置正确性.
在完成网络仿真后,用户可将被仿真网络的配置信息与设备程序保存到数据库中,并直接移植到物理网络环境中使用.
机,构成一个仿真用的虚拟机集群.
集群中的虚拟机预先安装了代理服务器程序,可接收主控服务器下发的仿真网络创建请求.
在集群初始化完毕后,主控服务器会将网络拓扑中的每一个待仿真设备映射到集群中某一个虚拟机上,并在该虚拟机中启动容器,以运行相应的仿真网络设备.
主控服务器会在仿真网络设备之间设置虚拟网络连接,并创建数据与管理两类虚拟网络.
数据网络用于传输真实的数据包流量,以测试仿真网络的配置正确性与设备连通性;而管理网络则赋予了MockNet使用者登录和管理被仿真设备的能力.
图2MockNet中仿真网络设备的结构29于与其他仿真网络设备中的Tap1端口建立虚拟网络连接.
PhyNet命名空间中还会有一个监控程序,用于捕捉不同Tap0端口中收到的仿真流量,并向MockNet主控程序反馈仿真流量的路径.
第二部分则是设备操作系统容器,由用户预先上传的设备操作系统镜像创建而成.
为了使用PhyNet命名空间中的虚拟网络端口,MockNet在创建设备操作系统容器会将PhyNet命名空间指定为其网络命名空间.
上述设计延续了CrystalNet中设备操作系统容器与虚拟网络端口相互解耦的设计.
当设备操作系统容器重启时,PhyNet命名空间中的虚拟网络端口不会因容器的临时关闭而消失,避免了频繁创建虚拟网络端口而带来的运行开销.
在CrystalNet中,保存虚拟网络端口的结构是一个独立的容器,既PhyNet容器,其创建开销过大.
而在MockNet设计中,我们将容器替换为简单快速的PhyNet网络命名空间.
在后续的实验中,我们发现,将PhyNet容器替换为PhyNet命名空间后,可将仿真网络设备的创建时间缩短2倍以上,是一个行之有效的加速方案.
3.
3虚拟网络连接如图3所示,MockNet中的虚拟网络连接方式分为单虚拟机网络连接(单机连接)与跨虚拟机网络连接(跨机连接)两种.
当两台仿真设备的待连接端口同处一台虚拟机中时,使用单机连接的方式创建虚拟网络链路.
具体的连接方法是创建一个独立的内核网桥,并将两个待连接端口添加到内核网桥上.
若两台仿真设备在两台不同的虚拟机之中时,则使用跨机连接的方式创建虚拟网络链路.
具体方法是在每一个虚拟机中创建一个内核网桥和一个相对应的VxLAN端口,并将VxLAN端口与仿真设备的待连接端口共同添加到内核网桥上.
VxLAN端口会在数据包外部添加一层封装,在发送到另外一台虚拟机上的VxLAN端口之后,该封装会被解除,使得原始数据包可正常发送至另一个仿真设备的接收端口之中.
通过上述分析,我们可以发现,跨机虚拟网络连接需要在虚拟机中额外创建一个VxLAN端口.
我们在上述实验部分中证实,相比于创建单机连接,跨机连接耗时更长,不利于虚拟网络的加速创建.
同时,由于VxLAN隧道需要对每一个数据包进行加、解封,在传输仿真流量时会额外消耗虚拟机CPU资源,延长互动式仿真的完成时间.
为了加快仿真网络的创建时间,MockNet应尽量减少跨机连接的数量.
在3.
1中,我们讨论了输入仿真网络的预处理方式,即将网络图分割为若干子图.
分割之后,子图3虚拟仿真网络的连接方式网络仿真平台中虚拟网络的加速创建方法网络通信304.
实验5.
结论在本部分中,我们就前文中提出的仿真网络加速创建方法进行实验验证.
图4中展示了在一台虚拟机中创建不同数量仿真网络设备的耗时.
我们为实验用虚拟机配置了两个CPU核心及4GB内存.
仿真网络设备均具备32个端口.
由于设备操作系统容器为MockNet用户指定,且不同类型操作系统的启动时间缺乏统一标准,我们在本实验中省略了设备操作系统的启动时间.
从图4中可以看到,MockNet的PhyNet命名空间优化可以显著降低仿真网络设备的创建时间.
当创建9台仿真网络设备时,PhyNet命名空间(14.
75秒)相比PhyNet容器(42.
86秒)可节省两倍以上的创建时间.
本文描述了MockNet网络仿真平台的整体架构,并介绍了MockNet仿真平台用于加速仿真网络创建的三种优化方法.
通过实验,本文证实了PhyNet命名空间与减少跨机连接数量均可作为加速仿真网络创建的有效手段.
在后续工作中,我们将进一步完善MockNet网络仿真平台的架构设计,并将其与湾区网全自动实验环境进行整合.
图5中展示了在一台虚拟机中创建不同数量的虚拟网络连接的总时间.
我们首先在虚拟机中创建单机连接(LocalConnection),并计算创建时间.
之后我们将连接方式切换为跨机连接(RemoteConnection),并计算创建时间.
可以看到,64个单机连接的创建时间(21.
88秒)相比64个跨机连接(23.
96秒)可缩短8%以上.
图内的边将被创建为单机连接;而分割过程中被切割的边,即连接不同子图的边,则被创建为跨机连接.
为了尽量减少跨机连接的数量,我们需要最小化图分割过程中切割的边的数量.
该问题可以通过平衡图割(BalancedGraphCut)的算法解决,受文章篇幅的影响,我们不在本文中讨论该算法.
图4仿真网络设备的创建时间图5虚拟网络连接的创建时间[1]Liu,HongqiangHarry,etal.
"Crystalnet:Faithfullyemulatinglargeproductionnetworks.
"Proceedingsofthe26thSymposiumonOperatingSystemsPrinciples.
2017.
[2]"NS3NetworkSimulator.
"https://www.
nsnam.
org/[3]"OMNeT++DiscreetEventSimulator.
"https://omnetpp.
org/[4]"Mininet:AnInstantVirtualNetworkonyourLaptop(orotherPC).
"http://mininet.
org/[5]"LinuxNetworkNamespace.
"https://man7.
org/linux/man-pages/man8/ip-netns.
8.
html[6]"LinuxVethDevice.
"https://man7.
org/linux/man-pages/man4/veth.
4.
html参考文献31ABSTRACT:Toimprovethereliabilityandstabilityoflarge-scaleclusternetworks,networkmaintainersshouldverifythecorrectnessoftheunderlyingnetworkinanetworkemulatorwithhighfidelity,beforeapplyingtheemulationresulttothereal-worldnetwork.
ThispaperdescribestheMockNetnetworkemulator,whichcancreateemulatednetworkingdeviceandestablishvirtualnetworkconnectionsbylaunchingcontainersinvirtualmachineclusters.
Theemulatednetworkingdevicerunsrealdeviceoperatingsystem,configurationfilesandnetworkapplicationsoftware.
TheemulationresultofMockNetcancorrectlyreflectthebehaviorofareal-worldnetwork.
Tocatertheneedforemulatinglarge-scaleexperimentalnetworks,wefurtherproposethreemethodstoacceleratethecreationofemulatednetworks,andtestsomeofthesemethodswithexperiments.
TheresultshowsthatMockNetcaneffectivelydecreasethecreationtimeoftheemulatednetworks.
KEYWORDS:NetworkemulatorsNetworkvirtualizationAcceleratingNetworkCreationsinNetworkEmulatorsDuanJingpuWangHanlingWangYiPengChengLaboratory网络仿真平台中虚拟网络的加速创建方法网络通信
我们在去年12月分享过Hosteons新上AMD Ryzen9 3900X CPU及DDR4内存、NVMe硬盘的高性能VPS产品的消息,目前商家再次发布了产品更新信息,暂停新开100M带宽KVM套餐,新订单转而升级为新的Budget KVM VPS(SSD)系列,带宽为1Gbps端口,且配置大幅升级,目前100M带宽仅保留OpenVZ架构产品可新订购,所有原有主机不变,用户一直续费一直可用。Bud...
10gbiz发布了9月优惠方案,针对VPS、独立服务器、站群服务器、高防服务器等均提供了一系列优惠方面,其中香港/洛杉矶CN2 GIA线路VPS主机4折优惠继续,优惠后最低每月仅2.36美元起;日本/香港独立服务器提供特价款首月1.5折27.43美元起;站群/G口服务器首月半价,高防服务器永久8.5折等。这是一家成立于2020年的主机商,提供包括独立服务器租用和VPS主机等产品,数据中心包括美国洛...
提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...
虚拟机上网设置为你推荐
kaixin001.com耍开心网的具体步骤有哪些?留学生认证留学生前阶段双认证认证什么内容?关键字关键词编故事巫正刚想在淘宝开一个类似于耐克、阿迪之类的店、需要多少钱、如何能够代理同一服务器网站一个服务器能运行多少个网站javbibibibi直播是真的吗关键词分析如何进行关键词指数分析恶魔兜兜狼人杀恶魔技能是什么 PANDAKILL恶魔有什窝尚公寓窝尚网到底搞什么?窝尚网真的有那么好么?欢颜网欢颜网怎样?
com域名注册1元 安徽双线服务器租用 欧洲免费vps 免费域名申请 高防dns siteground 私服服务器 流媒体服务器 缓存服务器 win8.1企业版升级win10 租空间 合肥鹏博士 已备案删除域名 双十一秒杀 isp服务商 购买国外空间 网站在线扫描 银盘服务 免费mysql数据库 独享主机 更多