APP下载

基于虚拟化技术的网络仿真实验环境实现

2013-10-25江魁张园红杨文玲

中国教育网络 2013年7期
关键词:模拟出思科网络设备

文 / 江魁 张园红 杨文玲

在计算机网络相关课程的教学环节中,网络设备的配置和管理是其中的重点,但由于路由器等专用网络硬件设备数量有限,学生往往只能多人共用一套网络设备,尤其对于需要多台网络设备完成的大型网络实验更是如此。由于数据在网络传输过程中的相互影响与学生操作上的相互干扰,学生很难掌握网络设备操作的实际技能,不能全面了解计算机网络的运行机制。

基于虚拟化技术以软件方式仿真各种网络硬件设备,从而构建真实网络的仿真实验环境是解决这一问题的方法之一,不仅能节约硬件设备的购置资金,同时还能让更多的学生同时进行实验。本文在对各种主流网络仿真软件分析和比较的基础上,基于Dynamips等仿真软件构建了包括路由器、交换机、防火墙等各种网络设备在内的网络仿真环境,为学生和教师提供了一个与真实网络体验完全一致的学习和实验环境,不仅能满足计算机网络相关课程实验教学的需要,而且也为网络工程技术人员提供了一个进行新技能学习与验证真实环境下网络配置的环境。

本文通过分析比较各种主流网络仿真软件,对基于虚拟化技术网络仿真实验环境体系结构的设计思路进行介绍,并在此基础上阐述路由器、交换机和防火墙等主要网络设备仿真的实现,最后对网络仿真环境的实际应用情况进行说明。

各种主流网络仿真软件分析比较

根据实现机制与应用场景的不同,网络仿真软件主要可以分为3类:

1.网络设备命令集仿真软件:以Boson NetSim、Packet Tracer、eNSP、Gambit Mimic等软件为代表,这类软件的实现机制是通过预先编写好的程序指令,对真实网络设备的命令输入/输出(包括命令响应和调试信息等)进行精确模拟,在接收用户的输入命令后输出相关命令的执行结果。其中Boson Netsim和Packet Tracer主要用于模拟思科路由器和交换机设备,Boson Netsim是业内首个商业化的网络设备仿真软件,对其他网络仿真软件的开发具有重要的启示意义, Paccket Tracer是思科公司提供的网络设备仿真软件。eNSP是华为公司提供的网络设备仿真软件,Gambit Mimic是一个能够同时实现思科和Juniper多厂家设备模拟的软件。此类仿真软件支持的命令集有限,甚至部分命令参数提供不全,只能是尽量接近真实设备的模拟,用户看到的也是模拟的输出结果,并不是网络设备的真实运行情况。如果用户输入的命令和参数不在软件预先设计的范围内,则此类仿真软件就无能为力,用户只能在该环境下初步学习设备配置命令。

2.网络设备运行环境仿真软件:这类软件以Dynamips、Simware、Pemu等为代表,其实现机制是模拟出真实网络设备运行的硬件平台,然后在该模拟平台上运行真实网络设备的操作系统。其中Dynamips用于模拟思科设备的运行环境,Simware用于模拟H3C设备的运行环境,Pemu主要用于模拟思科防火墙的硬件环境。由于用户是在模拟出的硬件环境中直接运行真实设备的操作系统,所仿真的网络设备具备物理设备的所有命令与功能特性。只要主机性能足够,能够再单台主机上模拟出多台网络设备,并将它们连接成虚拟网络,并与主机上的真实网卡或安装的虚拟机(如Vmware和Qemu等)的虚拟网卡相连,具备很强的扩展性,仿真的网络环境具有与真实网络环境完全一致的响应。

3.网络模型仿真软件:这类软件以Opnet、NS(包括NS2和NS3)、Qualnet等为代表,其实现机制是提供各种形式网络模型库和高级语言程序接口,模拟出需要的网络模型进行网络的优化设计、验证和分析。其中Opnet是一款商业软件,由ItDecisionGuru、Modeler、Modeler/Radio3个模块嵌套组成,能够为网络的规划设计提供可靠的定量依据,获取定量的网络性能预测数据。NS是一款开源的仿真工具,通过离散事件模拟技术实现仿真过程,没有特定的设备模型,适用性较高。QualNet主要用于无线移动通信网络的仿真,能够对无线网络的性能进行优化。此类软件主要提供给从事网络科研工作的人员使用,在网络课程的实验教学中不会用到。

经比较,第二类仿真软件最适用于计算机网络实验教学仿真环境的构建,因此将重点介绍基于第二类软件设计的网络仿真环境体系结构。

图1 网络仿真环境体系结构

网络仿真环境的体系结构

计算机网络是利用通信链路和网络设备将处于不同地理位置的计算机连接起来,在网络操作系统的控制下实现资源共享与信息交换的系统。构建网络仿真环境的关键包括实现网络操作系统的仿真、网络设备的仿真以及通信链路的仿真,可以通过虚拟化技术和网络仿真软件达到目的。在以上比较分析各类网络仿真软件的基础上,按照层次化原则基于虚拟化技术设计了网络仿真环境的体系结构,如图1所示。

从图1中可见,网络仿真环境的底层是计算机系统的硬件,包括内存、硬盘、显卡、网卡等,第二层是运行在其上的主机系统(包括Windows、Linux和MAC等),第三层则是网络操作系统虚拟化软件(包括Vmware和Qemu),通过引入虚拟化技术能够在在主机系统中仿真出不同的客户系统,模拟出不同规模的网络仿真环境。第四层是网络设备硬件运行环境仿真软件(包括Dynamips/Dynamgen、Pemu等),其中Dynamips/Dynagen主要用于路由器与交换机的仿真,Pemu用于硬件防火墙的仿真。第五层是整个体系结构的最高层,主要用于图形化的界面管理,也提供通信链路仿真的功能,并在一定程度上提供对网络操作系统的仿真支持。由此可见,按照层次化原则设计的基于虚拟化技术的网络仿真环境体系结构具有很强的扩展性与适应性,必要时更能够通过分布式部署实现对大规模网络仿真环境的支持,能够适用于不同规模的网络仿真需求。下面阐述路由器、交换机和防火墙等主要网络设备部件仿真的实现过程。

网络仿真环境的实现

基于Dynamips的路由器与交换机仿真

路由器是一个完整的硬件和软件结合的平台,底层是硬件,上层是操作系统。Dynamips是法国UTC大学 (University of Technology of Compiegn)的Christophe Fillot开发的一个路由器硬件环境模拟软件,可以运行在Windows、Linux以及Mac平台上,Vmware和Qemu等虚拟化软件是在物理机上虚拟出逻辑机,而Dynamips是在主机系统(也可以是主机系统上虚拟化出来的客户系统)上模拟出独立的路由器硬件环境,在此环境下直接运行思科公司的路由器操作系统IOS,可以在一个或多个物理计算机上建立多个虚拟路由器,这些虚拟路由器具有真实路由器的所有命令与功能特性。通过winpcap的支持,Dynamips还能够将主机系统上的物理网卡或客户系统上的虚拟网卡作为模拟出路由器的通信接口,不同的路由器可以同时运行并且互联成网络,并能与真实网络通信。目前支持的思科路由器型号主要有7200、3600系列(包括3620、3640和3660)、3700系列 (包括3725和3745)、2600系列(包括2691、2610到2650XM)以及1700系列等。由于思科路由器是业内应用最为广泛的路由器平台,其他厂家路由器的工作原理与之类似,区别只是在于命令的不同,掌握了思科路由器的配置方法基本就掌握了其他厂家路由器的配置方法。因此,网络仿真实验环境下主要基于Dynamips实现了对思科路由器的仿真。

通过执行“/bin/dynamips/dynamipswxp.exe”即可启动Dynamips仿真平台。Dynamips虽然不直接支持思科Catalyst交换机的仿真,但是支持在2600、3600和3700等路由器(需要12.2(8)T以上的iOS版本支持)上添加NM-16ESW模块来实现交换机常见功能的模拟。NM-16ESW是一块16口具备交换功能的网络模块,将该模块插入到路由器的NM模块插槽中,路由器就能提供16个以太网接口,得到一个模拟的16口交换机,在仿真出的交换机上能够完成包括生成树、VLAN划分配置、QoS等在内的各种交换实验。

文本控制前端

由于Dynamips配置需要手工编写很长的命令,设定各种参数及upd端口号等才能启动路由器,当网络规模较大时,拓扑结构参数的修改和配置更为复杂。Dynagen是基于Python语言开发的一个用来简化Dynamips配置的文本控制前端程序,基于模块化设计,支持主流操作系统,通过使用Dynamips提供的OOP API接口,按照规范编写配置文件就能完成各种网络拓扑结构的设计,更改需要路由器的数目、型号、模块数量和IOS等。

通过执行/bin/dynagen/dynagen.exe etlab.net将启动配置文件lab.net中指定的拓扑,还可用通过list、start、stop等命令行列出、启动、停止所仿真的设备,如果需要登录某台设备,只需要Telnet本地机器的相应端口(该端口在net配置文件中指定)。Dynagen不仅简化了网络仿真环境的创建工作,而且能够与多台主机上的Dynamips主机通信,支持分布式Dynamips的部署。

图形控制前端

在运行很多台路由器时,修改Dynagen配置文件仍然显得复杂,在Dynagen的基础上继续开发了Dynamips的图形化控制前端,主要有DynamipsGUI、GNS3等软件,此类软件能够通过图形界面配置向导生成需要拓扑结构的配置文件,使用起来更为简便。

DynamipsGUI是支持自定义网络拓扑的图形界面前端,运行于Windows平台,不仅支持思科路由器与交换机的仿真,也通过VPCS(Virtual PC Simulator)支持主机的模拟,同时提供多种连接方式(如PSTN、ISDN、PPP等)的仿真。用户只要通过图形界面就能自主完成网络拓扑的设计,同时生成相应的bat文件,通过执行bat文件即可启用网络仿真环境。

GNS3是基于python开发的开源软件,能够运行在多平台(包括Windows、Linux、和 MacOS等),与DynamipsGUI相比,功能更为强大。由于其图形部分通过PyQt使用Qt库,采用SVG技术(扩展的向量图形)提供高质量的图标用于网络拓扑设计,因此在创建、更改和保存网络拓扑方面更为方便,用户可以在图形用户界面上直接使用拖曳方法建立网络拓扑。GNS3还能通过配置cCloud与本地网卡或虚拟网卡连接,支持从仿真设备的接口上捕获分组到libpcap文件,再通过协议分析软件WireShark对其进行分析,这样可以进一步了解数据包在网络中处理的详细过程,实时观察网络运行情况。GNS3不仅支持VPCS模拟PC,而且内置了集成Linux微内核的镜像,能够避免虚拟主机占用更多的内存,提高了系统的性能。

通过一些优化措施,在一台物理主机上能够通过Dynamips仿真出10台左右网络设备的网络环境,基本能满足各种网络实验的需求。这些措施包括:避免使用最新的IOS,如在满足实验需求的前提下,用12.2版本代替12.4版本,能够节约内存和CPU的使用;在使用多个路由器时,通过Sparemen只为虚拟路由器正在使用的IOS分配虚拟内存;通过Ghostios使得内存中只需要存放一个IOS镜像即可支持多台路由器,降低了对内存的消耗;合理计算idlepc值降低CPU利用率等。

基于Qemu的防火墙仿真

Qemu是一套类似Vmware的操作系统虚拟化软件,虽然Qemu基于文字指令和参数使用,其易用性远远不如Vmware的图形用户界面,但仿真的客户系统运行效率更高,更适用于主机硬件资源有限的网络仿真环境。Qemu仿真出的虚拟客户系统拥有独立的虚拟硬件设备,从各个虚拟客户系统角度看,它们都是一个完整的系统,但从主机系统的角度来看,每个客户系统都是其上独立运行的应用进程,它们分别采用独立的地址空间,彼此之间没有任何关联。虚拟客户系统的资源都来自于物理机,只要主机系统的内存足够大,CPU性能足够好,理论上在主机系统中可以虚拟出不限数目的客户系统。

Pemu是运行在Qemu软件上的一个防火墙运行环境仿真软件,与Dynamips类似,模拟出的是防火墙的硬件环境,在该环境下运行思科防火墙的操作系统,通过编辑pemu.ini配置文件执行pix.sh,对思科防火墙PIX 525和ASA5520等安全设备提供了仿真支持,可以通过桥接方式将仿真防火墙网卡与真实网卡连接,实现与真实网络环境通信。

目前,我校在该仿真环境下开展了“计算机网络”、“中级网络管理”、“网络与系统原理”、“IPv6与下一代互联网”等多门网络课程的实验教学,与传统的网络实验环境相比,基于虚拟化技术构建的网络仿真实验环境具有以下优点:1.能够减少购买专门的网络硬件设备,降低了计算机网络相关课程实验教学的成本;2.能够更简便高效地完成之前需要多台网络设备才能完成的网络实验,让更多的学生同时进行实验;3.只需要通过备份和恢复网络拓扑配置文件即可完成网络实验拓扑的保存与创建,大大提高了网络实验教学的效率。

实践证明,学生不仅能在该环境下快速搭建所需要的各种拓扑结构,学习各种网络设备、操作系统和协议分析软件的配置方法,深入理解与掌握网络管理技术,达到理论与实践结合目的。网络工程技术人员也能在该环境下迅速方便地测试和验证真实网络环境下的设备配置与设备特性,利用该环境学习新的网络知识技能。最后需要指出的是,网络仿真环境虽然是网络课程学习和实验的重要辅助工具,但是只能模拟出真实网络设备的功能,并不能模拟出真实网络设备的性能,由于运行在虚拟平台之上,快速转发能力等性能指标远远不如真实设备,不能在生产性网络中替代真实的网络设备。?

猜你喜欢

模拟出思科网络设备
网络设备的安装与调试课程思政整体设计
一种基于C# 的网络设备自动化登录工具的研制
春 夜
思科新一代防火墙帮助客户实现全数字化计划
放射夕阳之光
声音从哪里来
能模拟真实天气的可视化预报器
地铁通信网络设备的维护