Eve Ng Qemu



It’s been a number of months now since Cisco first announced their new wireless LAN controller platform, the Catalyst 9800. This new product indicated the companies change in direction, away from AireOS and toward IOS-XE. There’s been a few posts I’ve seen, detailing how to get the new WLC platform working on ESXi and other VMware platforms, but none on the process for installation on the KVM platform that EVE-NG uses. This blog post will provide a step by step document on installing the Cisco 9800-CL on EVE-NG.

Prerequisites

No problem at all. 15mins seems a bit long. If I recall correctly, when I ran this, it took around 5mins, but I guess it depends on all kinds of variables, such as image in use, version of EVE-NG, resources provisioned on the EVE-NG VM, physical resources on your hardware etc. Download Cisco ASA image using the following link, this image contains a pre-activated VPN plus license. Mar 08, 2017 You can check the disk image on the EVE-NG virtual machine by booting a QEMU virtual machine from it on the EVE-NG virtual machine. Then you can access it via VNC and see what the problem is. From the EVE CLI, locate the installed image and commit your changes to be used as default for further use in EVE-NG: cd /opt/unetlab/tmp/ 0 /3491e0a7-25f8-46e1-b697-ccb4fc4088a2/ 8 / /opt/qemu/bin/qemu-img commit virtioa.qcow2.

  • Might seem obvious, but worth mentioning – we will absolutely need a working installation of EVE-NG. I’ve got you covered, with with my install guide though!
  • Also might seem obvious, but we’ll need the installation media from Cisco. For this guide, I found their pre-built qcow2 image didn’t work, so I’ve used the iso file – specifically ‘C9800-CL-universalk9.16.11.01c.iso’.
  • For the purposes of this install guide, my EVE-NG environment is running on VMware Workstation on my laptop, as such, this will be guided to that end. You should make appropriate changes to this process, if your EVE-NG environment is based on a remote ESXi server.

Step 1

Assuming, you have all the prerequisites checked, the first thing we’re going to need to do is create a custom template. Since IOS-XE does not run natively on EVE-NG’s KVM environment, we need to identify the closest node-type that does! Luckily for you, the budding 9800-CL deployer though, I’ve already identified this! Use a FTP client such as FileZilla or WinSCP to connect to your EVE-NG server. Create a copy of the following file locally on your desktop;

Amend this file to the following:

Once changed, save the file as ‘9800CL.yml’ and upload to the same ‘templates’ folder we took it from.

Step 2

With our node template now in place, we now need to make a small change to the config.php. By default, it does not exist, but there’s a template file there that we can use. Using the same means, as earlier, download a copy of the following file to your desktop;

Edit the file to match the following contents:

Save the file as ‘config.php’ and as before, upload to the ‘includes’ folder we took the template from.

Step 3

With the template and config files in place, now we need to upload our iso image and prepare for our first run. Either on the VMware console of the server, or via SSH, create the folder for our image with the following command:

Through our FTP client, we will upload our iso image to our newly created folder. Back on our console/SSH session, rename the image uploaded, as follows:

Now we must create the virtual hard disk that our newly named cdrom.iso will install to. Run the following command:

The eagle-eyed among you who are familiar with EVE-NG and running AireOS, might notice that this does not follow the usual naming convention for previous WLC’s. Since this image is IOS-XE based and not AireOS, we must name the HD as ‘virtioa’ instead of ‘megasasa’ or the disk will not boot.

Step 4

With everything in place now, access the web GUI of your EVE-NG environment, open a new lab. Right click anywhere on your blank lab and select ‘Network’. On the dropdown field, select ‘Management(Cloud0)’, name as you see fit, in my environment, I’ve named this “VMnet8” since this is the virtual network adaptor my laptop maps to. Obviously this will be different for everyones unique VMware environments, especially if you’re running this on ESXi.
Then, right click again on an empty space on your lab, this time select ‘Node’ and from the menu, you should see our newly created “Cisco 9800 CL WLC”, select this and review the virtual hardware configuration for the node.
Hover your mouse over the 9800 node and you’ll see an orange connector icon appear, click on this and drag it over to the network cloud we created, choose interface ‘e0’ and you should end up with a lab looking like this:

Step 5

Right click on the 9800, and select start. When the icon turns blue, you can click on it, and use Putty or a similar telnet client to connect to the console session of the node. The first run will boot from the cdrom.iso file, but will install to the virtioa.qcow2 HD we created.
Once on the console session, you will be prompted 3 or 4 times to press any key to continue, if you miss these prompts, you’ll need to reboot and ensure you press a key on the prompt.
You’ll be presented with a GRUB boot menu, select ‘C9800-CL Serial Console’, though I’ve not tested it, I imagine the ‘Virtual VGA Console’ option wont run very well on a telnet client!
Let the installer do its thing, it’ll take a few minutes and you’ll see a few different messages as it progresses.
After install, the node will reboot and you’ll see a potentially worrying message that will repeat 5 or 6 times;

Sep 30 11:23:12.198: %PMAN-3-PROC_EMPTY_EXEC_FILE: R0/0: pvp: Empty executable used for process bt_logger

EVE-NG

“Good things come to those who wait” as Guinness once told us, and the good thing in this case, are the lines;

Step 6

More patience is required just now, before we rush in and configure our new WLC. Now we must set our node as a template to use for all future instances of running a 9800 node on EVE-NG. Right click on the node and select ‘Stop’. Now, we must gather some details. Over to the left hand side of the lab, there’s a menu – click on ‘Lab Details’ and copy the Lab ID code. In my case, my lab ID is ‘e34c6f2c-f62b-4557-af95-de948223e0c6‘ yours will definitely be different and it’s important that this is accurate. Assuming you’ve logged in as ‘admin’ on the GUI, the user ID will be ‘ 0’ but if you’re using a custom username, from the main splash page as you login, choose ‘User Management’ from the top menu and check the POD number for your user. The final piece of info we need is the Node ID from our lab, to get this, simply right click on the node. Where it says ‘9800CL (1)’ the number in the brackets is the Node ID we need. Next, we need to use this information to commit this image for future use, using the following commands;

Replace the variables above, marked by ‘<>’ with your information. As an example, the command I have run is this:

Then;

This will take a couple of minutes, but once you have the command prompt back, run the following command:

Step 7

Ok, so the node has booted, installed, and we’ve committed the image for future use. Now we’ll go through the basic first configuration of the WLC and connect to the web GUI of the node.

  • Configure interface Gi1 as a trunk
  • Configure interface Vlan1 with an IP address from the range of VMnet8, remember to ‘no shut’ the interface!
  • Disable radios with ‘ap dot11 5ghz shutdown’ and ‘ap dot11 24ghz shutdown’
  • ‘ap country <country code>’ – in my case, being from Scotland, this is GB
  • Set interface Vlan1 as management with ‘wireless management interface vlan1’
  • Set username and password with ‘username <username> privilege 15 secret <password>’
  • Configure the enable password with ‘enable secret <password>’
  • Finally, enter ‘ip http authentication local’

Attempt to ping the 9800 from your laptop, and if successful, you should be able to browse to https://<ip address of 9800>

EVE-NG: Committing / Saving Qemu Virtual Machine Settings ...

Et voila!

EVE Image NameDownloaded Original FilenameVersionvCPUsvRAM
1.vios-adventerprisek9-m.SPA.156-1.Tvios-adventerprisek9-m.vmdk.SPA.156-1.T15.6.1T1512
2.viosl2-adventerprisek9-m.03.2017vios_l2-adventerprisek9-m.03.2017.qcow215.211024

Eve-ng Qemu Images List

Instructions
Other versions should also be supported following bellow’s procedure.

David Bombal Video:


VIRL account holders can download images from their VIRL download location, you must have valid cisco.com CCO account associated with VIRL.

VIRL has two image formats vmdk and qcow2. qcow2 are almost ready to use, just need create proper image folder and load image. vmdk file need covert to qcow2 format before load it in EVE. In the table above you can see that vios advanced enterprise 156-1.T contains vmdk in the filename. This means will need convert it to qcow2 file.

Images two and three in the table filename contains qcow2. This means those images are almost ready to load and no need extra conversation.

Image naming table:

1. Prepare and load vmdk images from VIRL

1.1. Using our image table, create correct image folder, this example is for image 1. in the table above. It is vios L3 router image. Per our image naming table we have to create image folder starting with vios-, lets do it.

1.2. Upload the downloaded image to the EVE /opt/unetlab/addons/qemu/vios-adventerprisek9-m.SPA.156-1.T/ folder using for example FileZilla or WinSCP.
1.3. From the EVE cli, go to newly created image folder.

1.4. Rename original image filename to have .vmdk extension at the end

1.5. Covert vmdk file to qcow format. Please follow how to table which qcow2 output fileneame must be. This example per our table is virtioa.qcow2

OPTION: Sometimes command above won’t work, try another way below:

1.6. Delete raw vmdk image file from image folder

1.7. Fix permissions:

2. Prepare and load qcow2 images from VIRL
2.1. Using our image table, create correct image folder, this example is for second image in the table above. It is vios L2 switch image. Per our image naming table we have to create image folder starting with viosl2-, lets do it.
2.2. Upload the downloaded image to the EVE /opt/unetlab/addons/qemu/viosl2-adventerprisek9-m.03.2017/ folder using for example FileZilla or WinSCP.
2.3. From the EVE cli, go to newly created image folder.
2.4. Rename original filename to virtioa.qcow2
2.5. Fix permissions:
Same processes are used for any VIRL image, just follow right foldernames and image naming inside folders per our naming table.