4、认识网络模拟器
使用物理设备测试的功能和数据是最可靠的,也是最贴近实际场景的;但是随着云计算和NFV等技术的推广,可能有些技术人员搞了几十年网络也没接触过几次物理设备。初学者可以通过模拟器来学习技术,进阶者可以通过NFV来锤炼技能,再高级的可能都开始研究开源的技术和产品了。
我们之前大致介绍过了几款模拟器,分别是H3C的HCL(HCL与Pipe、Autoit和MobaXterm的组合使用)、华为的eNSP(华为模拟器eNSP安装初体验)、思科的Packet Tracer(为什么“华系”设备用久了,用不了“美系”设备),还有混合场景的EVE-NG(千呼万唤始出来:EVE-NG终于来了!);NFV设备主要还是用的H3C的CAS(H3C CAS部署之CVM纳管CVK节点)、VSR(都从VXLAN到SR了,你还不会装VSR?来,我教你!)、vFW(VMware环境部署vFW虚拟防火墙)和VMware(惠普VMware ESXI 6.7定制版部署)等等。
4.1、HCL华三云实验室
首先还是介绍一下我使用最多的HCL(H3C Cloud Library,华三云实验室),HCL是新华三集团推出的功能强大的界面图形化全真网络设备模拟软件,用户可以通过HCL实现H3C公司多种型号路由器、交换机、防火墙、无线等网络设备及PC的虚拟组网、配置、调试,用户可以借助它在个人电脑上搭建虚拟化的网络环境。
在2021年之前,HCL已经很久没有更新了,2018年2月份发布的V2.1.1,2021年1月份发布的V2.1.2,2021年8月份发布的V3.0.1;从2022年6月份发布V5.0.0之后,更新速度开始狂飙起来了,到2023年3月份,一共发了10个V5小版本,赶上月更了。暂时无法确认最近会不会再更新,那就以最新版的V5.7.2来大概介绍一下吧。
软件下载路径位于“首页→支持→文档与软件→软件下载→其它产品→华三云实验室→华三云实验室→H3C网络设备模拟器官方免费下载”,下载链接为:
https://www.h3c.com/cn/d_202303/1817976_30005_0.htm
软件安装很简单,下载完成并解压之后,直接双击安装即可;安装时会自动安装HCL和VirtualBox两个软件,如果电脑上已经安装了VirtualBox的,建议检查软件版本,确保不低于6.0.14。
安装完成之后,直接运行H3C Cloud Lab。
打开页面之后,我们可以看到软件布局如下图所示。上面的4部分分别是工程文件配置、HCLHub配置、工程编辑和软件设置,左侧是添加设备和互联、用户区域,主体部分是工程设计区域,右侧两个小窗口分别展示抓包接口列表和拓扑汇总。
最主要的就是左侧的添加设备部分和互联区域还有工程设计区域了,目前HCL支持2款虚拟路由器(MSR36-20和VSR-88)、2款虚拟交换机(S5820V2-54QS-GE和S6850)、2款虚拟防火墙(F1060和F1090)、2款虚拟无线设备(无线控制器WX5500H和无线接入点WA6320)、5款虚拟终端(主机网卡、PC、远端主机、服务器和手机),还有一款DIY设备。
当然,如果你没有接触过物理设备,可能对这些设备没有什么概念,那我们不妨到官网简单了解一下。以MSR36-20为例,我们到官网从“首页→支持→文档与软件→文档中心→路由器”下,找到对应的MSR3600路由器产品系列,比如我这次的H3C MSR 3600路由器(Comware V7),点进来。进入到“了解产品”下面的“硬件描述”,打开对应的硬件描述文档。
在产品介绍下面,可以看到该系列下所有型号的产品外观及其介绍。
这里一共有33款型号,我们找到MSR 36-20 AC,展示如下:
当然,对于HCL中的部分设备,我们还可以在设备关机的情况下直接双击设备或右击图标选择“配置”进入到设备配置页面。
在配置页面,我们可以看到设备外观和硬件描述中基本一致,并且扩展插槽还插了模块;当有业务测试需求时,我们还可以调整设备内存大小或启用网卡增强功能来提升模拟效果。
硬件描述手册里面另外一个比较重要的信息就是产品指示灯介绍。
通过指示灯说明,我们可以直观地看到设备的运行状态。
而如果我们要查看HCL模拟器里面最常用的交换机S5820V2-54QS-GE设备的外观情况,则需要查看设备的安装手册了。查看安装指导适用于之前的老文档,这是目前最常用的两种操作方法。
在安装手册中,我们找到S5820V2-54QS-GE产品的面板外观如下:
如果我们通过HCL中的设备配置进行查看,展示如下:
同样的,我们还可以查看F1060的设备外观:
而WX5500H的展示就有点不符合实际了。
这个我们需要通过安装手册确认一下:
如果设备图标是灰色的,表明设备处于停止状态;我们可以右击图标启动设备,设备启动之后图标为绿色。双击启动后的设备可以进入到设备命令行。
进入到命令行之后的操作就和硬件设备一致了。
截至发文,HCL的最新版本是5月12日更新的V5.8.0,功能介绍里面提到“新增Cloud设备:通过UDP隧道方式连接其他设备中HCL软件或第三方软件”。其他操作和前面介绍的完全一致。
4.2、eNSP企业网络模拟平台
eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台,主要对企业网络路由器、交换机进行软件仿真,完美呈现真实设备实景,支持大型网络模拟,让广大用户有机会在没有真实设备的情况下能够模拟演练,学习网络技术。
这个软件历史比较悠久了,就说在2019年就停止维护了,彼时HCL才推出到V2.1.2版本。整体上看,设备型号都比较老旧,但是用来熟悉华为设备的命令基本上是够用了。
不过,华为对网络爱好者提供的资料有限,学习资料需要各位老板自行解决。还有部分特性支持稍有缺陷(VXLAN小实验:静态方式手工建立隧道)。
首先准备安装包,VirtualBox版本建议使用5.2.44,高于此版本eNSP启动时会报错。
eNSP V100R003C00SPC100 Setup是安装的主程序,需要使用这个程序进行安装;其他6个文件夹为设备镜像文件。安装时会检查系统环境,需要WinPcap、Wireshark和VirtualBox的支持,如果未安装或安装不全都会导致安装终止。
准备好软件环境后继续安装,全程默认设置即可。安装完成后打开软件,注意放通所有防火墙提示的访问权限。
软件页面如上图所示,左边为设备信息,有详细的设备型号,点击设备还能显示设备接口配置信息。中间有样例工程,可以打开直接使用。最右边是学习指导,点击会跳转到使用帮助文件。
从系统配置要求可以看到,软件对系统配置要求不高,4G内存可以支持到24台设备,而且每增加1G内存可以多支持10台设备,最大可支持到50台设备,十分厚道。
然后看一下导入设备镜像,也就是另外6个文件夹中镜像文件的用法。
以CE12800为例,这是一台数据中心交换机,从左边拖一台设备出来,右击设备图标,选择“启动”。
然后会提示“导入设备包”,找到对应目录下的img镜像导入就可以了。那哪些设备需要导入镜像呢?其实在设备介绍的地方是有显示的,显示备注为“第三方集成设备”的,就是需要导入镜像的。
镜像导入成功之后,再次右击、启动设备就可以了。
毕竟是高端设备,启动时间比较长,请耐心等待。启动过程中也可能提示设备启动超时,不超出上图这些#的时间,可以无需理会。
启动完成后使用display version命令查看设备版本信息(和华三设备命令是一样的,毕竟华为是爹),确认设备型号和版本加载成功(网络之路8:命令行的基本操作命令)。可以看到这是一台CE12800的交换机,软件版本为V8.180,后面还有内部版本。
再使用display memory命令查看设备内存利用率,设备总内存为5.35GB,开机后占用内存1.24GB。怎么和帮助文件有点不一样呢?
从任务管理器查看性能信息,开了两台CE设备之后,主机内存使用5.25GB。
然后关闭CE设备及eNSP软件,主机内存使用量为2.43GB,减少2.82GB,和两台设备占用内存总量大致相等。也就是说设备的实际使用内存都是加载到系统中的内存,如果这么计算,那高端设备无法开启到50台之多。而且CPU利用率可能有点高。
启动之后,跟HCL一样,我们可以在HCL中查看到复制出来的虚拟机列表。
然后我就把设备列表里的设备大概都点了一下,把之前没测试的设备也都补充了一下(华为模拟器eNSP安装初体验)。得到设备的相关信息如下:
除安全设备USG5500不支持查看内存之外,其余有数据的项目均为实测值,供大家参考。
4.3、Cisco Packet Tracer
在国内,网络技术主要掌握在华为和华三手里,但是要学习网络,我们还是要了解一下网络行业的老大哥-思科。现在国内很多厂商的设备命令还能看到思科的影子,比如中兴、锐捷等等。当然,Cisco不是我主要研究的对象,这里仅做一下简单介绍,而且我们有Cisco设备,只能用模拟器来介绍了。
Cisco Packet Tracer,是Cisco官方提供的网络模拟器,专门用于教学和学习网络技术。它提供了广泛的Cisco设备模拟,并具有一个直观的界面,可用于创建、配置和模拟网络拓扑。
我们之前测试给C9300交换机配置策略路由时,曾经试着用Packet Tracer模拟一下(为什么“华系”设备用久了,用不了“美系”设备),但是发现Packet Tracer这个软件的定位竟然是CCNA级别,功能非常简单,不支持相关命令。
我们需要在Cisco Networking Academy网站注册账号并加入相关的课程后,才能下载Packet Tracer,Cisco Packet Tracer下载链接如下:
https://skillsforall.com/resources/lab-downloads
我这次下载的是Windows版本的8.2.1,相比于上次介绍用的8.0.0.又差了不少。官方介绍,8.2版本将提供更出色的学习体验,并且修复了一些Bug,进一步提高了软件质量。一些改进包括:
1、支持自行选择思科网络技术学院登录服务器,以确保数据合规性。这里也是一个坑,国内用户需要在netacad.cn注册,与Cisco的海外账户不通用;
2、Packet Tracer指导练习(Packet Tracer Tutored Activities,PTTA)是一种全新的练习方式,学员可以在练习中按需获取提示,可以打造更加个性化的学习体验并保证学习效果。同时将Packet Tracer练习(Packet Tracer Activities,PKA)用户的档案名称和时间戳添加至标题栏,和HCLhub类似;
3、增强的物理模式可以让您在虚拟实验室中真实体验在机架中进行设备布线的场景。这有助于巩固设备更换(机架和堆叠)、设备通电、端口间布线(包括线缆选择和管理)、故障排除等重要技能。
4、提供更多帮助文档(包括更多无障碍支持功能信息)
安装包下载完成之后,安装就很简单了,都是下一步就可以了。推荐使用Windows10以上的操作系统,我使用Windows7安装之后无法登录。
Packet Tracer的主页面如下所示:
上方是类似HCL工程选项的网络管理菜单,可以打开现有网络或Cisco示例网络、保存当前网络、修改用户配置文件或首选项等;
下面类似于HCL左侧的设备按钮,可以添加设备并通过电缆或无线连接,可以选择、删除、检查、标记和分组网络中的组件,或以其他方式管理网络。
中间部分是工程区域。我们先来个好玩的,我们点击“Physical”按钮进入物理视图,图中展示了一块地图。
然后我们放大进入到建筑视图,就可以添加Closet机房了。
在机房里面,就可以添加Rack机柜、Table桌子和inventory shelf货架了。
然后,我们就可以在下方的设备中选择设备进行上架了。
简单添加几台设备之后,开始接线。
有点机房那意思了,然后我们再切换回逻辑视图,看看拓扑长什么样。
举个例子,如果我们现在想配置ISR4331,首先我们通过设备分类发现它是一台路由器设备,我们就去Cisco官方网站(https://www.cisco.com/)上下载Cisco ISR4331的配置手册。
在Cisco主页右上方的搜索框中输入“ISR4331”进行搜索。
在搜索结果中,我们进行筛选,选择“Cisco 4000系列集成服务路由器”的“配置指导”。在搜索结果中,我们重点关注与“Configuration Guide”(配置指南)或“User Manual”(用户手册)相关的链接。
上次使用时,我还不知道Everest、Fuji和Gibraltar等的意思,现在我初步知道这些都是Cisco网络设备操作系统(IOS-XE)的不同版本名称:
Everest是Cisco IOS-XE操作系统的一个版本,它引入了一些新的功能和改进,并提供了更高级的网络功能和性能。Everest版本通常具有较高的稳定性和可靠性,适用于需要稳定网络环境的企业和组织。
Fuji是Cisco IOS-XE操作系统的另一个版本,它也引入了新的功能和增强,旨在提供更好的性能和可靠性。Fuji版本可能会包括一些特定于行业的功能,以满足特定部署需求或支持新兴技术。
Gibraltar是Cisco IOS-XE操作系统的另一个版本。它是较新的版本,引入了最新的功能和改进,并且通常是为了支持新的硬件平台或满足特定的业务需求而推出的。Gibraltar版本可能包括更先进的网络功能、更好的性能和更强大的安全性能。
这些版本名称代表了Cisco在不同时间段推出的不同操作系统版本,每个版本都可能有不同的功能、改进和修复。选择适当的版本取决于您的网络需求、硬件支持和Cisco的建议。建议在使用特定版本之前查阅Cisco官方文档和发布说明,以了解每个版本的详细信息和适用性。
我们先启动设备ISR4331,注意检查设备的电源是否处于打开状态。
如果是交换机C3650这种,连电源模块都得手工插上。
要说老外是真贴近生活实际,模拟器还得插上电源模块通电才能用。没接触的,估计这得研究半天,跟之前用的模拟器差别还是很大的。
开机之后还有初始配置内容,输入“no”再回车,或者直接“Ctrl+C”就行了。
使用命令show version查看设备版本,得到版本号为16.6.4,。
然后我们去官网查看对应的Everest 16.6版本的配置手册。
然后我们就可以参考配置手册开始配置了。
比如使用命令show running-config查看运行配置。
最后,Cisco Packet Tracer既然提供了这么多种类和型号的模拟器,那我们就简单看一下吧。
根据模拟器的分类我们也可以大概了解到一些思科的设备型号和分类。经过大半天时间的统计,一些设备的基本信息如下表:
4.4、EVE-NG
目前各家的模拟器都在尝试向第三方模拟器进行对接,但是整体效果上都稍微差一些。那有没有一个开放的平台,可以直接打通各家的设备呢?当然有了!目前群众中使用比较多的应该就是EVE-NG(Emulated Virtual Environment-Next Generation)、GNS3(Graphical Network Simulator)和PNETLab(Packet Network Emulator Tool Lab)这3款,其中GNS3需要审核,PNETLab和EVE-NG长得差不多,所以我还是以EVE-NG来向大家做个简单介绍吧。
我们首先到EVE-NG的官网下载好安装镜像。
下载的文件有两种,一种是类似EVE-COMM-VM-112.zip的压缩包,这种一般使用导入OVF和vmdk的方式来部署;另一种是类似EVE-20171007.iso的ISO镜像,这种一般用于从头安装部署。
4.4.1、从OVF导入部署到ESXi
解压文件EVE-COMM-VM-112.zip,我们就得到了ovf和vmdk文件,说明需要用VMware的虚拟化环境。EVE-NG 5.0的部署过程请参考(快速部署新鲜出炉的EVE-NG 5.0,并导入VSR镜像)。
接下来,我们在Vmware ESXi新建一台虚拟机,选择“从OVF或OVA文件部署虚拟机”。
给虚拟机起个名字,同时选择解压出来的ovf和vmdk文件。
选择存储。
网络映射这里需要调整一下,确保网络映射选择的网卡可以直接访问到,我还是放到VMWare管理网了,磁盘默认是精简置备,取消“自动打开电源”。
简单确认一下虚拟机信息。
大概半分钟就导入成功了,我们先看看虚拟机的配置情况。
操作系统是64位的Ubuntu,硬件配置是4个CPU、8 GB内存,那这个配置我肯定是要调整一下的。直接翻4倍,上16核、32 GB。
接下来就可以启动虚拟机了,很快,几秒钟就好了。
登录时输入默认账户密码root/eve。
登录之后会提示设置新密码。
设置主机名。
主机的DNS名称设置可以直接忽略了。
按方向键上下移动选中“static”使用静态IP地址,再按空格确认选择,按回车确认。
设置管理网IP地址、掩码及网关信息。
DNS服务器先设置一个境内的吧。
然后再配置一个可用的NTP服务器。
网络直连,不用设置代理。
这是最后一步,设置完虚拟机会自动重启。
重启之后,就可以通过http://192.168.1.66直接登录了。
默认的登录账户密码是admin/eve。
4.4.2、使用ISO安装到WorkStation
在使用VMWare ESXi导入EVE镜像的时候我们大概了解了虚拟机的配置需求。操作系统是Linux-Ubuntu 16.04.7 LTS(64位),CPU数量是4个,内存大小是8 GB,硬盘大小是50 GB。这样一来,我们就能够尝试在VMWare WorkStation上使用ISO镜像进行安装了。
创建虚拟机时的兼容性还是选择ESXi 6.7。参考(VMWare WorkStation安装Linux Mint Cinnamon 20)。
客户机操作系统选择“Linux”→“Ubuntu 64位”。
处理器数量设置为1,每个处理器的内核数量设置为4。
内存大小配置为EVE系统推荐的8 GB。
为了从主机上进行访问,我们保持网络类型设置为“使用网络地址转换”。
硬盘大小配置为50 GB。
最后记得把系统部署镜像挂载上。
开机之后进入安装程序,没想到在这里竟然能选择语言了。
试试中文安装是什么效果的。
没想到中文支持还有问题,先忽略,继续安装试试。
应该是没啥问题,配置网络阶段,给主机设置一个主机名。
时区检测到是“哈尔滨”,一样的,不改了。
然后就是等待安装操作系统。
系统更新这里就选择“没有自动更新”吧。
挺快的,几分钟就安装完了,回车确认重启虚拟机。
安装挺快,倒是这个更新时间太长了,大概持续了二十多分钟。重启登陆之后就进入到和vmdk部署一样的环节了。
这部分不再重复介绍了,有需要的请参考4.4.1章节。
部署完成之后,同样使用IP地址进行登录即可。
4.4.3、EVE-NG导入iol镜像
EVE-NG部署好之后,系统是没有设备的软件镜像在的。通过前端我们可以看到在添加节点时,有大量的可选设备类型,但是只有Virtual PC是可以添加的,其他的都是灰的。
所以此时要上传一部分设备镜像上来。但是从前端页面是不能直接操作的,要登录到服务器后台上传设备镜像。文件上传的位置是/opt/unetlab/addons/,该路径下有dynamips、iol和qemu三个目录,分别对应image、bin和qcow2三种格式的镜像,需要区分格式进行上传。
今天我们先看一下IOL设备的导入方式。
创建一个Python脚本文件:
vi /opt/unetlab/addons/iol/iol.py
把下面的内容粘贴进去。
#! /usr/bin/python print("*********************************************************************") print("Cisco IOU License Generator") print("*********************************************************************") import os import socket import hashlib import struct hostid=os.popen("hostid").read().strip() hostname = socket.gethostname() ioukey=int(hostid,16) for x in hostname: ioukey = ioukey + ord(x) print("hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:]) iouPad1 = b'\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A' iouPad2 = b'\x80' + 39*b'\0' md5input=iouPad1 + iouPad2 + struct.pack('!I', ioukey) + iouPad1 iouLicense=hashlib.md5(md5input).hexdigest()[:16] print("\n Copy the following text to /opt/unetlab/addons/iol/bin/iourc:") print("[license]\n" + hostname + " = " + iouLicense + ";\n")
运行脚本文件,获取license信息。
再新建一个授权文件,把授权信息粘贴进去。
vi /opt/unetlab/addons/iol/bin/iourc
然后我们把设备的镜像文件导进去。
最后再修复一下权限就OK了,注意:如果不修复权限可能无法启动设备。
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
此时再添加设备,Cisco IOL这个选项就可选了。
选中之后,下面会展开,提示要添加的设备数量、名称或名称前缀、选择设备镜像文件、设备图标、设备规格等等信息。
然后我们创建2台日期比较新的交换机,设置前缀为SW,调整图标为交换机图标,设备接口数量设置为4个。
然后可以看到新增出了SW1和SW2两台交换机,图标旁边有个按钮提示可以进行连线操作。
连线之后会弹出对话框,我发现前面我好像理解错了,创建设备的时候是以太网端口组,每组有4个端口,我填了4个,现在有16个端口了。
可以单击单台设备进行启动,也可以选中多台设备右键进行批量启动。
在登录设备之前,我们要安装EVE-NG-Win-Client-Pack-2.0这个Windows 客户端包,它将安装在 EVE-NG上工作/构建实验室时运行 telnet、vnc、wireshark、rdp 应用程序所需的一切,包括:Wireshark 3.0.6.0、UltraVNC 1.2.3.1、putty 0.73(用作默认 telnet 客户端)、plink 0.73(用于wireshark)等所有必要的包装。同时,它将修改 Windows 注册表文件以正常工作
因为我已经安装了WireShark的更高版本3.4.5,所以我就不安装WireShark了。
安装好之后,我们再双击设备,就可以调出putty客户端了。
设备启动速度还是比较快的。
简单测试一下PBR的配置能不能做。
可以配置,但是因为接口是二层口,导致配置出错了;将接口切换成三层口之后再配置就成功了。
4.4.4、EVE-NG导入qemu镜像
如果我们直接看EVE-NG的设备列表,是没有H3C设备的,这时候就要手工添加一下了,捎带着介绍一下如何导入qemu镜像。
现在,我们已经知道HP VSR1000=H3C VSR1000了(HPE的VSR1000长啥样?在Workstation中部署一台瞧瞧),那么只要把HP的镜像搞定,就能和H3C的一样用了。
首先登录到服务器后台,创建磁盘路径。EVE-NG要求的路径格式形如firepower6-FTD-6.2.1,即需要是“设备型号-软件版本”的样式,这里最后会和添加节点时选择Image时显示相同,其中对于HP virt router要求的文件夹前缀为hpvsr-,所以本次我们将文件夹命名为hpvsr-710-CMV710-R0633P17。
mkdir /opt/unetlab/addons/qemu/hpvsr-710-CMV710-R0633P17/
同时需要修改镜像文件的名称,EVE-NG支持的镜像文件名称如下:
结合上面两张图的要求,VSR1000镜像文件的名称应该是hda.qcow2。接下来我们先把qco格式的镜像文件上传到该目录下。
cd /opt/unetlab/addons/qemu/hpvsr-710-CMV710-R0633P17/
之前的案例中,我们介绍过,qco又称为QCOW2,格式全称是QEMU Copy On Write Version 2,是一种磁盘镜像格式,常用于KVM虚拟化环境,之前我们在公有云环境中部署VSR的时候已经使用过了(以腾讯云为例,在公有云部署一台VSR)。
接下来,我们对镜像文件执行重命名操作。
mv VSR1000_HPE-CMW710-R0633P17-X64.qco hda.qcow2
最后,执行权限修复操作即可。
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
修复完成之后,我们再从EVE-NG前端添加节点试一下,可以发现HP VSR1000已经是可选的了。
先添加一个节点,console选项选择Telnet,然后启动设备。
此时我们会发现设备无法登录,一直提示登录失败。
然后我们修改设备的console连接类型为VNC,再次启动设备。
可以看到是可以正常登录成功的。
此时我们注意到有一个细微的差别,那就是通过VNC登录时,显示的是“Line con0 is available”,而通过Telnet登录时,显示的是“Line aux0 is available”,这就说明两种方式登录的用户线是不一样的。那我们就来看一下用户线的相关配置信息。
乍一看好像没什么问题,但是我们查看状态看一下。
可以看到,console用户线的缺省认证方式为none,所以可以直接登录。
而AUX用户线的缺省认证方式为password,所以无法直接登录。此时只需要修改AUX用户线的认证方式为none,再将权限配置为network-admin即可。
保存配置,然后关机,修改console连接类型为Telnet,再次启动设备。