基于EVE-NG的虚拟网络实践教学平台设计与实现
2019-07-12曹雪峰傅冬颖于万国计大杰朱会卿
曹雪峰, 傅冬颖, 于万国, 计大杰, 朱会卿
(河北民族师范学院 数学与计算机科学学院, 河北 承德 067000)
各种网络模拟软件的出现,为计算机网络实践教学提供了丰富的手段。常见的软件包括支持思科设备的Packet Tracer和GNS3,特别是GNS3集成了Oracle VM VirtualBox和VMware Workstation虚拟机管理软件接口,可以把虚拟机导入GNS3虚拟网络,可以灵活进行所需软件的安装和配置。导入IOL镜像后,占用资源明显降低,可以组建规模较大的网络[1-2]。eNSP是支持华为设备的模拟器,不仅支持有线设备组网,还支持WLAN设备组建虚拟无线网络[3]。HCL是支持H3C设备的网络设备模拟器,但是仅适用于单机环境,对于B/S架构就无能为力了。EVE-NG是基于Ubuntu操作系统、采用B/S架构,支持多用户的功能强大的网络设备模拟器[4-5]。它提供了通过Web界面使用虚拟设备的工具,包括Dynamips、IOL和KVM,将它们与其他虚拟或物理设备相互连接,实现了EVE-NG虚拟网络与真实网络的交互,支持利用Wireshark在节点上选择端口进行报文捕获和分析。
1 安装配置EVE-NG服务器
为了便于维护,以安装CentOS7操作系统并接入校园网的服务器为宿主机[6],采用ova虚拟机模板安装EVE-NG,这样可以利用宿主机上的虚拟系统管理器对EVE-NG虚拟机进行快照管理,后期维护比较方便。EVE-NG虚拟机的两块网卡采用桥接模式连接于宿主机的物理网卡。
其中一块网卡的作用是作为主接口实现EVE-NG虚拟机与宿主机所在物理网络的互联互通;另一块网卡的作用是与EVE-NG中的Network节点配合,实现在EVE-NG中搭建的虚拟网络与物理网络的互联互通,因此需要修改EVE-NG虚拟机中的/etc/network/interfaces文件[7]。具体修改内容如下:
root@eve-ng:~#vi /etc/network/interfaces
……
# The primary network interface
iface eth0 inet manual
auto pnet0
iface pnet0 inet static
brodge_ports eth0
bridge_stp off
address 192.168.10.3
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 111.11.11.1
# Cloud devices
iface eth1 inet manual
auto pnet1
iface pnet1 inet dhcp
brodge_ports eth1
bridge_stp off
……
运行EVE-NG虚拟机,第一次以root用户登录EVE-NG虚拟机后需要修改登录密码,以保证系统安全。
然后进行EVE-NG服务器初始化配置。利用scp命令从宿主机导入dynamips 的镜像文件c1710-bk9no3r2sy-mz.124-23.image、c3725-adventerprisek9-mz.124-15.T14.image和c7200-adventerprisek9-mz.152-4.S6.image到EVE-NG虚拟机的/opt/unetlab/addons/dynamips文件夹中;导入IOL镜像文件L2-ADVENTERPRISE-M-15.1-20140814.bin、L3-ADVENTERPRISEK9-M-15.4-1T.bin、CiscoIOUKeygen.Py和iourc文件 到EVE-NG虚拟机的/opt/unetlab/addons/iol/bin文件夹中,并执行python CiscoIOUKeygen.Py命令, 生成license;导入qemu镜像(解压后的文件夹)到EVE-NG虚拟机的/opt/unetlab/addons/qemu文件夹中,并执行/opt /unetlab /wrappers /unl_wrapper -a fixpermissions命令,修正镜像权限。为EVE-NG服务器分配域名netlab.hbun.net,打开火狐浏览器登录EVE-NG服务器,可以看到导入的虚拟设备。
最后通过用户管理选单添加用户。
至此,基于EVE-NG的虚拟网络实践教学平台就搭建好了。以计算机网络课程中设计的演示实验说明该平台的使用。
2 搭建虚拟网络
在校园网的任意一台主机上登录域名为“netlab.hbun.net”的EVE-NG服务器,用户名为系统管理员用户admin,按图1所示网络拓扑结构搭建虚拟网络。
图1 演示实验的网络拓扑结构
其中net_internet节点为network节点,类型选择Cloud1。结合EVE-NG服务器上对eth1网卡的配置,实现EVE-NG虚拟网络与校园网以及因特网等真实网络的互联互通。
R1路由器进行PAT配置,主要配置命令如下[8-10]:
R1(config)# interface ethanet0/0
R1(config-if)# ip address 192.168.10.254 255.255.255.0
R1(config-if)# ip nat outside
R1(config-if)#no shutdown
R1(config-if)#interface ethenet0/1
R1(config-if)#ip address 172.16.0.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no shutdown
R1(config)#access-list 1 permit 172.16.0.0 0.0.15.255
R1(config)#ip nat inside source list 1 interface ethernet0/0 overlocad
R1(config)#router rip
R1(config)#version 2
R1(config)#network 172.16.0.0
R1(config)#no auto-summary
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1
在R1、R2、R3和R4路由器上进行RIP路由协议和默认路由配置,实现网络互通。SW1和SW2不需配置。虚拟网络中的DNS、WWW和DHCP服务器是运行Windows 2003 Server操作系统的虚拟机。PC1、PC2和PC3是运行Windows XP操作系统的虚拟机,设置为自动获取IP地址,在拓扑结构图中给出了MAC地址。
EVE-NG虚拟网络运行后,网络中的虚拟机可以通过访问校园网上的泛雅网络教学综合服务平台,下载教师提供的实验工具软件进行实验,如图2所示。虚拟网络中的所有主机也可以通过校园网访问因特网。
图2 虚拟网络中主机访问真实网络
3 实验内容
3.1 交换机工作过程分析
虚拟机PC1、PC2、PC3卸载TCP/IP协议,利用XCAP软件构造以太网数据帧如表1所示[11-14]。
表1 构造以太网数据帧
在PC1上发送1号以太网数据帧,同时在SW1的e0/0—e0/3和SW2的e0/0—e0/2共7个端口对应的链路上捕获报文,通过查看捕获的报文可以看到都捕获到了此数据帧,这是因为此时SW1的MAC地址表为空,SW1从e0/3端口收到此帧后向其他所有端口转发,并且在MAC地址表中保存MAC地址50:00:00:05:00:00与端口e0/3的映射关系,SW1的MAC地址表变化情况如表2所示。
表2 SW1中MAC地址表的变化
SW2也是同样道理, SW2的MAC地址表变化情况如表3所示。
表3 SW2中MAC地址表的变化
在PC2上发送2号以太网数据帧,此时在SW1的e0/0、e0/2端口和SW2的e0/1端口上没有捕获到此数据帧,这是因为此时SW1和SW2的MAC地址表中已经有了MAC地址50:00:00:05:00:00与端口的映射关系。SW1和SW2收到此帧,查找MAC地址表后,会按照目的MAC地址50:00:00:05:00:00对应的端口进行转发,而在其他端口上不会转发此数据帧。
同样,在PC2上发送3号以太网数据帧,此时可以看到都捕获到了此数据帧;在PC3上发送4号以太网数据帧,此时在SW1的e0/0、e0/2端口和SW2的e0/2端口上没有捕获到此数据帧。
在PC2上发送5号以太网数据帧,此时在SW1的e0/0—e0/3端口和SW2的e0/0端口上没有捕获到此数据帧。
在PC1上发送6号以太网数据帧,通过查看捕获的报文可以看到在7条链路上都捕获到了此数据帧,这是因为此数据帧是广播帧,SW1和SW2会在除了此帧输入的端口之外的所有端口转发该帧。
3.2 动态滑动窗口工作过程分析
在TCP协议中,由接收方采用动态滑动窗口机制,通过限制发送方发送窗口大小来实现流量控制。
在PC2的浏览器中登录ftp://ftp.hbun.net文件服务器并下载文件(几十MB),同时在R2路由器的e0/0端口捕获报文,如图3所示
图3 捕获的TCP报文
图3中,35931号报文是客户端PC2发送给服务器端的TCP报文段,其中窗口字段值为42175B,也就是PC2客户端根据自己的接收能力,通知服务器端设置发送窗口大小即为此值,此时发送窗口的右边沿为40133776B(确认号字段值+窗口字段值=40091601+42175)。
然后服务器端发送了4个TCP报文段,最后一个TCP报文段的序号字段值为40107661B,长度为1460B。
这时服务器端收到了35936号报文,确认号字段值为40109121B,也就是发送窗口中已发送的17520(40107661+1460-40091601)字节的数据被确认,如果在发送窗口大小不变的情况下,发送窗口的右边沿变为40151296B(40133776+17520),但是因为此TCP报文段窗口字段值为24655B,因此服务器端发送窗口要比原来缩小了17520B(42175-24655),因此发送窗口右边沿不变。发送窗口大小变化情况如图4所示。
图4 TCP报文时序图
4 结语
通过采用EVE-NG搭建B/S架构的虚拟网络实践教学平台,实现了与学院泛雅网络教学综合服务平台的互联互通。在平台上设计搭建虚拟网络环境,既可以用于课堂教学演示实验,也可以供学生课下学习研究。利用平台进行学生分组实验,便于教师对实验结果的检查,教师和学生均不受时间和场地的影响,可以在网上实时讨论同一网络场景,甚至进行远程网络配置和调试,随时解决学生提出的具体问题。实践表明,利用此平台进行计算机网络实践教学效果较好,是计算机网络实践教学的有益尝试。