Tutorial — EVE-NG deployment on VMware (Linux)
What is Eve-NG?
From the Project page:
“EVE-NG PRO is the first clientless multivendor network emulation software that empowers network and security professionals with huge opportunities in the networking world. Clientless management options will allow EVE-NG PRO to be the best choice for Enterprise engineers without the influence of corporate security policies as it can be run in a completely isolated environment.”
From my point of view: it is a great way to do lab and staging configuration of network infrastructure… before damaging the production.
It supports many different OS from host, server, and network appliances vendor, the complete list is available here.
Requirements
- Intel CPU VT-x/EPT
- One of the following:
- Ubuntu Xenial Xerus 16.04.X LTS 64bit for EVE Community Only.
- Ubuntu Bionic Beaver 18.04.X LTS 64bit for EVE-PRO Only
- VMware ESXi 6.0 or later
- VMware Workstation 14.0 or later
- VMware Fusion 8 or later
- VMware Player 14.0 or later
- Google Cloud Platform VM
- AMD Ryzen 3900, Epyc or newer series. Older series AMD can have issues
- Note: EVE-NG can still work without Intel VT processors and can run installed within other hypervisors also but, 64 bits (x86_64) appliances won’t work, and you may experience poor performances with 32 bits (i386) appliances.
Required CPU and RAM depend on how many nodes are needed to run. 4 vCPU and 6GB of RAM can be enough for IOU/IOL and Dynamips only, but will be insufficient for topology with CSR1000V routers.
Procedure
The first thing to do is the .iso download, easily available on the EVE website. For this tutorial, I am going to use the Free Community Edition, but the procedure is the same for both versions. The only difference is an additional step for the PRO version (where you have to provide a valid license).
After that, start your VMware application (in my case VMware Pro 16) and set up a new machine. For the success of the procedure, you need to install the OS later (select the option) and define the new OS as — Linux, Ubuntu 64-bit.
After defining some name for the machine and the logical location on your system, define disk settings. In many production situations, it is recommended several hundred GigaBytes of storage, but for little labs on a laptop, I use just 40 GB. In the case of more expensive needs, you can easily upgrade later.
Before press the “Finish button”, it is better to review “Hardware settings”, and make some changes to avoid possible issues during installations. These hardware changes involve:
- Memory: Aka “Dedicated RAM”. I suggest putting as much RAM you can without affecting your system. In my case, I feel confident with a value between 16–24 GB, to have enough room for my system (depending on the specific day use, but generally between 2–8) + some spare GB for additional Virtual Machine and just safety gap.
- CPU number: Instead of RAM’s “More is better”, here is better don’t overeat. If the system will perform too much slow during simulation, you could increase. On my system, I will set 2 Cores with 2 threads. If it is possible, flag the option virtualize Intel VT-x/EPT or AMD-V/RVI . If your VMWare doesn’t allow that, move on for the moment, you will be able to set up after the VM creation via VM → settings. In case you don’t know how much your system can manage, use lscpu for example:
└──╼ $lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 8
On-line CPU(s) list: 0–7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i5–9300H CPU @ 2.40GHz
Stepping: 10
CPU MHz: 900.047
CPU max MHz: 4100.0000
CPU min MHz: 800.0000
BogoMIPS: 4800.00
Virtualization: VT-x
L1d cache: 128 KiB
L1i cache: 128 KiB
L2 cache: 1 MiB
L3 cache: 8 MiB
NUMA node0 CPU(s): 0–7
- CD\DVD: (IMPORTANT) Define the ISO Image and be sure the device will connect at power on
- Network: If you are on portable you can use nat or isolated local Vnet (you can easily use NAT, but I suggest to do manually, to have better control on IP addressing). In my example, I set up a custom Vmnet (#8) that is defined as NAT LAN via Virtual Network Editor
All these settings could seem quite greedy, but EVE runs virtualization on top of it (yes… that’s virtualization-inception) therefore keep it cool!
Now we can move on to the OS installation and after that, EVE deployment. Before moving, just recheck your settings (you should have something similar):
In this tutorial, I will skip some settings like installation language and typical Linux-based OS deployment, but I suggest to don’t overlook these things:
- Type of EVE installation: if you are using your laptop\just for a personal lab, chose EVE VM instead of Bare Metal
- Type of HTTP Proxy: leave empty in case you are on your system. In the case of the enterprise environment, you could need to set up it accordingly to the business proxy.
- Updates: choose to Install security updates automatically
Here, there is one of the trickiest parts of the EVE-NG deployment. Even if it says installation complete that’s not true. The installation of Ubuntu that will host EVE is finished, but EVE “itself” is deployed.
To manage this, you have to force the CD\DVD device connection (VM →settings → CD\DVD and flag both options below Device Status). Only after this change you can press continue on ubuntu prompt
After reboot you could have several minutes of messages on screen: that’s automatic eve installation (done via the cd forced before). When it is finished you have a login prompt, use the credentials root:eve (username:passphrase) as suggested, and during the first login, they will force you to choose a new root password. Don’t worry if it doesn’t prompt any * while typing the password, that’s OK.
Set up custom stuff like hostname as you prefer, and if you prefer static IP address (not necessary on a NAT Network with DHCP enabled) in case you do static address, be sure you are compliant with the VMnet selected as NAT LAN, and be careful that many times the gateway is not the IP on the virtual card (in my case it is .2 instead of .1). In case of mistakes, you have to modify /etc/network/interfaces.
Little note: be careful to move across options (like setup static IP) via arrows and select with space button, then press enter (otherwise, you should move forward with default option).
The machine will automatically reboot, and from that point it is usable… But I suggest doing a couple of tests\updates.
Suggested extra activities
First of all, login with the new root credentials, and:
- Check internet connection and DNS: ping www.google.com
- Update and upgrade system: apt-get update and apt-get upgrade -y
- Shout down and remove CD\DVD device: shutdown -h and from VM → Settings → CD\DVD unflag connect at power on
Now you can reboot your machine and try to reach it via browser (via HTTP, not via HTTPS) at the IP configured in the static way or the Dynamic IP found on the VM terminal. The default credentials are admin:eve