尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

EVE-NG网络模拟器实战:从部署到VLAN间路由配置

EVE-NG网络模拟器实战:从部署到VLAN间路由配置 不用先装整机也能玩路由交换、防火墙、无线AC这些设备EVE-NG就是干这个的。很多刚入行的网络工程师或者正在备考CCNP、华为数通认证的朋友最大的痛点就是“没设备、没环境”公司核心设备不能乱碰自己买一台交换机几千块组个稍微像样的实验环境动辄要几台真机房租和电费都比机器贵。EVE-NG算是我这几年用得最顺手的网络模拟器几乎所有厂商的设备镜像都能往上塞拓扑构建直接在网页上拖拽完成配置窗口就是设备真实的CLI和真机操作几乎没差别。这篇东西我会从VM层原理讲到镜像导入再带你们跑通一个带VLAN间路由的实验最后是排错经验争取让一个没接触过EVE-NG的人花一个下午就能把环境搭起来并且具备自己继续学下去的能力。1. 先搞清楚EVE-NG帮你解决了什么问题1.1 EVE-NG到底是什么它和GNS3、VMware Workstation有什么区别EVE-NG全称是Emulated Virtual Environment - Next Generation本质上是一个基于Ubuntu的Linux发行版专门用来跑各种网络设备的虚拟化镜像。它靠QEMU、KVM和Dynamips这类底层虚拟化技术工作再在外面套了一个Web管理界面让你打开浏览器就能完成拓扑绘制、设备启停、配置修改这些操作。刚开始接触模拟器的人最喜欢问的一个问题是我直接用VMware开一台Windows跑GNS3不就行了这确实是一个方案但两者的定位完全不一样。VMware给你的是一个通用的虚拟机环境装Windows、CentOS、Ubuntu都可以但你要在它里面跑思科交换机镜像还得自己装GNS3或EVE。而EVE-NG的定位就是“专跑网络设备”系统装好后web界面直接提供设备模板你选一个设备模板它就自动配置好CPU、内存、虚拟网卡连控制台都给你处理好省掉了大量手工对接的麻烦。和GNS3相比EVE-NG最大的优势在于多用户与资源管理。GNS3是单机软件拓扑和工程都绑在本地多人协作很痛苦EVE-NG是一台服务器团队成员可以各自远程加节点、改配置互不干扰。设备“在线率”也比GNS3稳定特别是当你跑一些比较大的拓扑、或者需要长期挂机的时候EVE-NG的健壮性要强不少。1.2 为什么网络工程师离不开这类“实验沙盒”说个很实际的场景你在考HCIE或CCIE之前需要练各种IPv6、BGP、OSPF、MPLS实验真机实验环境要么没有要么昂贵又难预约。用EVE-NG你可以在自己电脑上装一个平台建立一套由数台路由器、交换机、防火强组成的虚拟网络一天二十四小时随便折腾配置错了就清了重来完全不心疼。另一个场景是项目预验证。有一次我要给客户部署一套多出口链路的方案两边运营商线路、核心交换机、双防火墙做冗余。直接在客户机房调风险太大而且网络窗口只有两小时。我提前在EVE-NG里按客户拓扑一比一搭了实验环境把OSPF优先级、NAT策略、心跳线这些全都验证了一遍再在现场照着配置一步步导入整个过程几乎没有返工。所以你会发现EVE-NG不是一个“玩具”它是一种工程化的工作方式。做认证备考的人能够靠它练出手感在项目现场的工程师则靠它规避变更风险。这也是为什么我愿意花篇幅把部署、镜像、实验这三个环节写透因为这三件事做好了这个工具才真正发挥价值。2. 从零部署EVE-NG硬件选型和安装避坑2.1 硬件配置怎么选才不至于三天两头死机EVE-NG和很多Linux服务一样硬件需求完全取决于你想同时跑多少台设备。只做二层交换实验三台IOSv加两台vIOS交换机总共五个节点8G内存的电脑跑起来都轻松但如果你要跑NX-OS、F5、FortiGate这些重型镜像一个节点就占掉2~4G内存不认识这点很容易“开局即崩”。我自己的建议是分三档来看入门学习档CPU i5或同级别内存16G起步硬盘200G SSD。适合跑基础路由交换、普通的无线AC实验。工程预验证档CPU i7或至强内存32G硬盘500G SSD或NVMe。适合同时跑防火墙、核心交换机、多台路由器的大型拓扑。团队共享档建议直接上独立服务器两颗至强CPU内存64G以上挂企业级SSD加至少千兆网口。多人并发操作时这种配置才扛得住。关于CPU还有个细节EVE-NG的KVM虚拟化对CPU虚拟化指令集有要求虚拟机嵌套虚拟化必须开启。你如果是用VMware Workstation装EVE-NG需要给虚拟机勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”如果用Hyper-V就要把嵌套虚拟化开关打开。很多人EVE-NG启动设备一直报错“KVM not enabled”八成就是这一步漏了。2.2 两种安装路径ISO装系统 vs 直接导入OVAEVE-NG官方推荐两种安装方式适合的人群不一样。第一种是用ISO镜像来安装适合你要把EVE-NG装在一台真实物理服务器或独立虚拟机上的场景。流程并不复杂下载最新版EVE-NG社区版ISO刻录到U盘或直接挂载到虚拟机光驱开机后选择Install EVE-NG按照提示选择磁盘、设置root密码等十几分钟就能装完重启后系统会自动进入命令行界面默认管理IP会在屏幕上显示出来。第二种是OVA导入适合只想快速在VMware Workstation或ESXi里用起来的同学。下载官方OVA文件后在VMware里选择“部署OVF模板”设置好虚拟机名称、存储位置一路下一步即可。OVA导入方式的好处是系统已经做过基本优化开机即用磁盘分区、网卡配置、SSH服务都已经处理好了。无论哪种方式装完以后第一件事就是把系统源更新到最新然后执行一次系统升级。EVE-NG社区版升级很简单SSH登录到后台执行以下命令apt update apt upgrade -y升级完成后重启服务在Web界面右上角能看到当前版本号。社区版镜像每几个月会更新跟踪版本信息不需要太频繁但遇到设备模板加载异常时先看看是不是版本太老再决定要不要升级。2.3 登录后的第一件事网络与存储检查我第一次装EVE-NG的时候犯过一个很低级的错误装完之后没查存储空间就去下载了一堆镜像结果把根分区塞满了所有设备节点启动全部失败白白排查了一个晚上。这里建议在装完系统之后先登录后台跑两条命令确认基础环境是健康的df -h free -h第一眼要确认根分区和/opt分区都有充足空间。EVE-NG的镜像默认存放在/opt/unetlab/images目录如果这个分区满了新的QEMU镜像根本拷贝不进去。内存方面也要确认没有被其他进程占满避免一导入镜像系统就swap到卡顿。网络方面EVE-NG默认管理口是eth0安装完系统后用浏览器访问https://你的IP就能打开Web界面,用户名admin密码默认是eve。这里注意是https不是http而且EVE-NG自带的证书是自签的浏览器会提示不安全正常选择继续访问就可以了第一次使用的人别在这一关卡住。3. 镜像导入与设备模板最容易被“坑”的环节3.1 QEMU镜像从哪里来该放到哪个目录EVE-NG本身不包含任何厂商的网络设备镜像镜像需要你自己去找、自己导入。常用的镜像包括思科的IOSv、IOSvL2、NX-OSv华为的AR1000v、CE6800还有H3C、锐捷、Juniper、Palo Alto等厂商的虚机镜像。这些镜像大多可以在厂商官方网站或者合作伙伴页面下载有些需要注册或申请试用许可实操中也可以去一些技术社区或GitHub仓库找现成做好的EVE-NG镜像包。拿到镜像之后把它放到/opt/unetlab/images/qemu/目录下面然后按“设备型号_版本号”这种命名方式建一个文件夹例如cd /opt/unetlab/images/qemu mkdir -p iosv-15.2 # 将镜像文件改名为 hda.qcow2 或 virtioa.qcow2 mv /tmp/vios-adventerprisek9-m-15.2.qcow2 iosv-15.2/virtioa.qcow2这里有个关键点EVE-NG针对不同设备模板会去固定文件名读取磁盘镜像。像思科IOSv模板读取的文件名是virtioa.qcow2而有些较老的模板要求文件叫hda.qcow2。如果你导入镜像后设备启动失败优先检查文件名是否与模板要求匹配。放好镜像之后还需要给镜像目录设置正确的权限否则EVE-NG的进程无法读取。在后台执行/opt/unetlab/wrappers/unl_wrapper -a fixpermissions这条命令会把所有镜像文件和目录的属主改成www-data相当于是修复权限的“一键脚本”。权限不对的时候节点状态会一直卡在“stopped”或启动瞬间失败控制台连不上表现非常迷惑。3.2 模板参数怎么理解CPU和内存给多少在EVE-NG的Web界面里添加节点时会弹出菜单让你选择设备模板模板里预设了CPU、内存、控制台类型、网卡数量这些参数。有些模板参数是合理的直接使用即可有些模板参数则需要手动调整尤其是在跑大型镜像的时候。以思科vIOS交换机为例系统默认分配1024M内存但如果你的实验里VLAN很多、开启了STP、跑了组播1024M经常会不够用导致设备启动后不断重启或CLI明显卡顿。这时候可以在建节点时把内存调到2048M或3072MCPU核心给2个。华为AR1000v默认内存是2048M跑基础路由实验够用但如果你打算在上面做NAT、策略路由、隧道建议也直接给到4096M。这里要补充一个底层原理EVE-NG写节点配置时会生成对应的.yml文件里面记录了cpu和ram这两个字段。你修改Web界面的参数后台其实是改了这个yml文件。如果对Web界面不熟悉也可以直接在后台改但改完记得重启该节点否则不生效。3.3 设备启动失败的三个隐藏原因排错的时候很多人的第一反应是重装系统但EVE-NG启动设备失败通常就集中在三个原因上逐一排查比重装高效得多。第一个是嵌套虚拟化没有开启。如果你把EVE-NG装在了虚拟机里宿主机必须允许嵌套虚拟化否则KVM无法启动虚拟机节点会一直停留在“stuck in boot”。VMware Workstation、Proxmox VE甚至云服务器都要检查这一项。第二个是镜像格式不兼容或镜像文件损坏。下载的qcow2镜像如果是用老版本qemu-img生成的或者本身就不支持KVM加速启动后也会异常。vsdx后缀、vmdk后缀这类镜像不能直接用需要先用qemu-img工具转换格式qemu-img convert -f vmdk -O qcow2 source.vmdk final.qcow2第三个是权限问题。很多朋友在导入镜像时习惯直接用root登录操作结果镜像目录属主变成了rootEVE-NG的Apache进程读不了。这个问题用上面的fixpermissions命令就能解决。4. 亲手搭一个实验多交换机VLAN间路由实战4.1 从空白画布到搭建拓扑前面讲的都是基础准备这章我们直接进入正题从零创建一个网络实验。以下是一个常见的二层网络架构实验两台核心层交换机做了链路聚合下挂两台接入交换机划分三个业务VLAN并配置VLAN间路由。登录EVE-NG Web界面后左上角“File - New Lab”创建一个新实验然后从左侧的设备列表里拖三个交换机设备到画布核心交换机选用vIOS-L2接入交换机选用IOSvL2。再拖一台路由器或三层交换机用于承担VLAN间路由的角色。节点摆到画布上之后下一步就是连线。EVE-NG的连线方式和Visio类似鼠标左键点击第一个节点的网口图标再点击第二个节点的网口图标就可以创建一条链路。连线时要注意EVE-NG的网口0通常是管理口不要用来连接业务链路否则拓扑画对了但实际数据平面根本不通。管理口是单独走的管理网络和实验网络的逻辑是隔离的。搭建拓扑过程中建议顺手给每个设备改个名字比如“Core-SW1”“Core-SW2”“Access-SW1”“GW-Router”。原因我后面细说——当你同时调试十几台设备时满屏的“R1”“R2”只会让你头疼。4.2 VLAN配置与Trunk链路设置拓扑搭好后双击核心交换机节点会打开一个命令行控制台窗口。这个窗口和真机CLI没有任何区别直接在配置模式下操作就可以。先配置核心交换机上的VLANconf t vlan 10 name Office vlan 20 name Guest vlan 30 name Server exit然后配置与接入交换机相连的Trunk端口。核心交换机上使用接口Ethernet0/0和Ethernet0/1与两侧接入交换机相连接口配置如下interface range Ethernet0/0-1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20,30接入交换机上的配置思路相同与核心相连的上行口配成Trunk与PC相连的口则根据业务不同划分到对应VLAN。假设接入交换机Access-SW1的Ethernet0/2端口下接的是办公区PC就将该端口划入VLAN 10conf t vlan 10 name Office exit interface Ethernet0/2 switchport access vlan 10 switchport mode access exit有同学会问为什么我划了VLAN之后终端之间还是不通答案往往在“Trunk allowed vlan”这一步。如果你在创建Trunk时用了默认配置只放行了VLAN 1那么即使胸前交换机端口划到了VLAN 10数据帧也会被Trunk洪泛丢弃。这是新手最容易忽略的一环。4.3 三层接口与VLAN间路由配置在二层VLAN划分完成后不同VLAN里的终端还是不能互访因为它们是不同的广播域。你需要一台三层设备来做VLAN间路由。在EVE-NG里可以用三层交换机或路由器来实现。这里我们采用核心交换机开启三层功能的方式这也是企业网络中最常见的做法。核心交换机上先开启三层路由功能然后给每个VLAN配置一个网关地址conf t ip routing interface Vlan10 ip address 192.168.10.1 255.255.255.0 no shutdown interface Vlan20 ip address 192.168.20.1 255.255.255.0 no shutdown interface Vlan30 ip address 192.168.30.1 255.255.255.0 no shutdown exit此时各VLAN下的PC只要把自己的网关设置成对应VLAN接口的IP地址就能实现跨VLAN通信。这个过程的底层原理是PC发出的数据包目标地址不在本网段会先发给网关网关再根据路由表把数据包从对应VLAN的三层接口转发出去。4.4 连通性测试与常见失败原因所有配置完成后在PC1上执行ping测试ping 192.168.20.2如果通了说明你的VLAN间路由配置成功。如果不通可以逐段进行排查第一步检查PC的网关配置是否正确。PC的网关必须是核心交换机Vlan10接口地址不能是任意地址。第二步在接入交换机上执行命令查看端口所属VLANshow vlan brief确认端口没有被意外划到别的VLAN。第三步查看Trunk是否放行对应VLANshow interfaces trunk。第四步检查三层接口状态show ip interface brief确认Vlan10、Vlan20接口是up状态且配置了正确IP。这样一个完整的“VLAN划分 Trunk VLAN间路由”实验就完成了。你在EVE-NG里练熟了这套流程不管是去考认证还是做项目都有很大帮助。5. 日常运维必看镜像备份、版本管理与性能调优5.1 做好镜像与实验的备份关键时刻能救命EVE-NG用久了你会在里面积累大量镜像和实验拓扑。镜像可以随时重新下载但实验拓扑里包含的节点配置、连线关系一旦丢失很难重建。建议每周定期备份整个/opt/unetlab目录核心命令如下tar -czvf eve_net_backup_$(date %F).tar.gz /opt/unetlab这个备份包可以拷贝到外部存储或者另一台服务器上。恢复备份时解压覆盖到原目录然后重新执行权限修复命令即可。如果你用的是OVA部署方式也可以直接在VMware层面做虚拟机快照这是一个更便捷的备份方式。在改动系统级配置或批量导入镜像之前先打个快照出问题后只需要回滚到上一个快照。但对于生产环境长期使用的EVE-NG服务器建议每个季度做一次完整备份避免快照文件占用太多磁盘空间。5.2 换机器迁移EVE-NG需要做哪些调整很多人在一台电脑上搭好了全套环境换了一台更高配置的电脑想把原实验环境整体迁过去。EVE-NG的迁移比想象中复杂一些不是简单拷贝目录就行。正确的做法是在旧机器上备份/opt/unetlab目录在新机器上完成EVE-NG基础安装、配置好网络然后停掉EVE服务把备份包解压覆盖到新机器对应目录systemctl stop unetlab tar -xzvf eve_net_backup_xxx.tar.gz -C / systemctl start unetlab覆盖完成后再执行一次权限修复命令/opt/unetlab/wrappers/unl_wrapper -a fixpermissions这里有一个细节EVE-NG社区版在启动时会把节点ID与MAC地址映射关系写到/opt/unetlab/tmp目录下迁移后tmp目录里没有对应的运行态文件一些旧节点启动后可能连不上控制台。遇到这种情况直接删掉这些节点重建一遍即可不必重新配置网络因为节点配置保存在实验文件中。5.3 性能调优如何让设备跑得更丝滑随着实验规模变大EVE-NG的Web界面和节点启动速度会逐渐下降。优化的思路可以分几个维度来看。内存是最核心的资源。KVM节点启动时需要把整个qcow2镜像映射进内存如果你只有16G内存却同时开了十几台设备系统会频繁使用swap导致节点操作变得“卡一秒、动一下”。建议先在Web界面里检查当前每个节点的内存分配把不用的节点先关机再考虑增加内存或减少并发节点数。CPU方面EVE-NG默认会为每个节点分配1个vCPU但网络设备大多是单线程的增加vCPU不会明显提升单节点性能。如果跑的是多核网络设备镜像比如部分厂商的vSRX则可以在节点配置里把CPU核心数调整到2或4。另外使用场景上还可以做一个小优化把实验里不需长期运行的路由器关掉只在需要验证阶段才开启。拓扑里所有的设备都处于“开机”状态不仅占CPU还会拖慢整个Web界面响应。在EVE-NG里选中设备节点右键选择Stop就可以暂时停止该节点。这是个很实用的小习惯。6. 常见问题排查这些坑我已经替你踩过了6.1 节点启动后无法打开控制台这应该是EVE-NG使用频率最高的问题。原因通常是浏览器用了http而不是https访问导致WebSocket控制台无法建立连接。解决方法是改用https://EVE-NG的IP访问并允许浏览器加载自签名证书。还有一种是浏览器不兼容。EVE-NG的控制台依赖HTML5 WebSocket旧版本浏览器对WebSocket支持不太好建议使用Chrome或Firefox的最新版本。如果依然无法打开控制台可以在Web界面中右键节点选择“Console”里的VNC或Telnet方式连接看看能不能进去。6.2 设备一直处于“stuck in boot”节点一直提示“stuck in boot”说明KVM启动虚拟机失败或启动过程卡住了。先检查宿主机是否开启了嵌套虚拟化再用命令行手动启动节点查看报错信息/opt/unetlab/wrappers/unl_wrapper -a start -p 你的Pod编号启动报错里也经常会看到“qemu-system-x86_64: Permission denied”这种就是权限问题执行权限修复命令基本能解决。还有一种情况是镜像文件本身有问题换一个版本再试一次往往就好。6.3 Web界面能打开但登录后空白登录EVE-NG后页面空白一般是数据库或缓存出了问题和镜像本身关系不大。可以尝试清理浏览器缓存换一个隐私模式窗口重新登录。如果还是空白SSH到后台重启EVE服务systemctl restart unetlab服务重启后之前的运行节点可能会中断建议在重启服务前先保存实验拓扑避免不必要的损失。6.4 热点词汇EVE-NG模拟器怎么批量导入镜像很多刚开始用EVE-NG模拟器的人会一次性下载几十个镜像然后在Web界面挨个添加节点效率非常低。更高效的方式是直接在后台把镜像文件放到对应目录然后刷新Web界面就能在设备模板列表里看到新镜像。比如把从华为官网下载的AR1000v镜像按照/opt/unetlab/images/qemu/ar1000v-8.8.1/这种目录结构放好文件改名为hda.qcow2执行权限修复命令后在Web界面新建节点时设备列表里就会出现“AR1000v”的模板选项。熟练之后你会发现批量导入镜像的套路是一样的创建目录、改名、修权限、刷新页面。这个流程走顺了EVE-NG对你来说就不再是一个“装完即弃”的软件而是一个真正得心应手的实验平台。7. 配套PPT与课程资料如何用它们把知识串成体系7.1 以实验为主线学习而不是以视频为主线“EVE-NG从入门到精通实战视频课程含配套PPT”这一标题里最有价值的其实不是视频本身而是“实战”和“配套PPT”这两个词。很多人买视频课程的习惯是“我都要看一遍”但对于EVE-NG这类工具型软件正确的方式是“边看边做、做完了再复盘”。我建议的学习节奏是先看视频里关于部署与镜像导入的章节同步动手操作确保自己能把EVE-NG跑起来然后在PPT里找到关于实验拓扑设计、网络协议配置的部分带着问题构想自己的实验。最后再回到视频里看看讲师在讲解某个协议时是怎么在EVE-NG里验证的把你没注意到的细节补全。7.2 用PPT搭一个属于自己的速查手册配套PPT里一般会包含拓扑图、配置命令、设备清单这类内容这些东西拆散了看价值有限组合起来却是一个很好的速查手册。我拿到PPT后的第一件事是把里面所有的配置片段复制到一个单独的笔记文档中按场景分类VLAN、路由、OSPF、BGP、MPLS、QoS、安全策略。后续遇到真实项目问题时直接搜索笔记里的关键词往往三分钟内就能找到之前验证过的配置模板。这种做法比重新翻课程视频高效得多。因为视频的时间轴是线性的PPT和笔记则更容易形成知识索引。7.3 把课程里的实验变成你自己的“项目资产”视频课程里的实验是别人的你照着做十遍仍然不会变成自己的东西。但你如果主动把里面的实验改一改、扩一扩把IP地址段换掉、把协议版本换掉、把拓扑结构调整一下再想一想参数变了之后为什么行为也变了这个实验才算真正被你吸收了。比如课程里做了一个双交换机双链路冗余实验你可以把它扩展成四台交换机、两个核心节点、一个防火墙出口的完整三层架构再给防火墙加上NAT策略让内网用户可以访问外网模拟区。完成这一步后你不只是学会了EVE-NG还相当于拥有了一套可复用的项目预验证模板。8. 写在最后EVE-NG学习路径的几点个人体会如果让我给刚接触EVE-NG的人一个建议那就是“不要把时间花在折腾平台上要花在实验本身”。平台能用、镜像能跑、拓扑能通就足够了不要在美化界面上花太多精力。我见过一些学习者在初期为了把一个镜像的启动过程优化到极致花了整整一周最后核心的路由协议实验一个都没做这就是本末倒置了。另一点体会是EVE-NG的能力边界其实比很多人想象的大。它不仅可以跑路由交换设备还能跑防火墙、无线控制器、DNS服务器、Linux虚拟机。你完全可以把它当成一台小型的IT实验服务器来用。我自己就在上面同时跑过一套带DHCP、DNS、Web服务的模拟数据中心用来练业务排错效果非常好这比在真机环境里折腾要省太多时间和精力。最后尊重版权镜像文件尽量从厂商官方渠道或授权渠道获取不要因为方便而去传播一些来路不明的破解包。一个稳定的平台加一个干净的镜像来源才是你后续所有实验和项目验证顺利推进的底气。
返回列表