EVE-NG Network Emulator: Install and Lab Guide - 夜莺博客

EVE-NG Network Emulator: Install and Lab Guide

EVE-NG is a virtualisation front end that runs real vendor images — IOS, IOS-XE, Junos, vEOS, FortiOS, NX-OS — instead of simulators, which makes it the closest thing to a rack that fits on a single server. The Community edition is free and covers most lab needs; the commercial edition adds multi-user pods and scheduling. This guide covers a working install, the image types you will encounter, and the topology mistakes that waste the most lab time.

Hardware and host preparation

  • Bare metal preferred; nested virtualisation must be enabled (kvm_intel or kvm_amd) if installed as a VM.
  • 64 GB RAM and NVMe storage is a realistic floor for XE and NX-OS images.
  • Two NICs: one for management, one for the cloud/bridge uplink.
# verify hardware virtualisation support
egrep -c '(vmx|svm)' /proc/cpuinfo
lsmod | grep kvm
virsh nodeinfo | head

Installing the Community edition

# On Ubuntu/Debian hosts
wget https://www.eve-ng.net/repo/eve-ng_community_amd64.deb
sudo dpkg -i eve-ng_community_amd64.deb
sudo apt-get -f install
# then follow the interactive installer: set root password, hostname, management IP
sudo eve-setup

# verify
sudo systemctl status eve-ng
sudo systemctl status apache2
ip -br addr show pnet0

Log in at http://<server>/ with admin/eve (change immediately). The web UI is only the topology editor; images and permissions are managed on the filesystem.

Image types you will meet

Type Example Notes
QEMU vios, csr1000v, veos, junos Full emulation; most router/switch images
Dynamips c3725, c7200 Legacy IOS, needs the image plus the IOS config in /opt/unetlab/addons/dynamips/
IOL / IOU L2-ADVENTERPRISEK9 Very light Cisco images, ideal for large L2 labs
Docker linux, wireshark, vyos Useful for hosts, automation nodes and traffic generators
cd /opt/unetlab/addons/qemu/
mkdir vios-15.6 && cp ~/vios-adventerprisek9.bin vios-15.6/vios-adventerprisek9-m.vmdk
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

Folder naming and the virtioa.qcow2 filename convention matter: an image that does not appear in the node menu is almost always a naming or permission problem, not a size problem.

Building and documenting a lab

  1. Add nodes from the palette, then drag links between interface points.
  2. Use Network objects for L2 segments and Cloud objects (pnet1) when a lab device must reach the internet or the host.
  3. Start all nodes, then double-click for the console; SSH is available to hosts via telnet <node-name> from the EVE-NG CLI.
  4. Export the lab as a .unl file and keep it in Git — it is plain XML and diffs cleanly.
# useful host-side checks while a lab runs
ps -ef | grep qemu | wc -l
virsh list --all
cat /opt/unetlab/data/Logs/unl_wrapper.txt | tail

Common traps

  • Not running fixpermissions after copying images — nodes fail with a permission error on the console.
  • Adding hosts but not a Cloud/bridge uplink, then wondering why management access to devices is unreachable.
  • Over-allocating CPU: eight XE routers on four cores will boot but converge far slower than the protocols' timers assume.
  • Forgetting that EVE-NG's own filesystem fills fast when labs are snapshotted; monitor /opt/unetlab/tmp.

Related reading: containerlab multi-vendor network labs with Docker, SONiC network OS in GNS3, and Nornir network automation inventory and tasks.

原文链接:https://www.eve-ng.net/index.php/documentation/