Well for the longest time there was no generally available way to emulate a cisco L2 switch. right before Dynamips was abandoned, in 0.28RC1, there was actually some work on the the Catalyst 6000 Supervisor 1 line card, although no interfaces are supported, and it was largely seen as impossible at the time.
Documentation Mar 29, 2020 Cisco vIOS L2 and L3 Images vios-adventerprisek9-m-15. In this post, I will explain in detail how you can run Cisco IOS XRv in GNS3. Jan 15, 2020 How to Use Layer 3 Switch on GNS3. 2 (csr1000v-universalk9. How do I install the qcow2 image provided in the qcow2 format? The Leanides V2R Lab Station started out as a way to transfer Virtual GNS3 lab configs to Real Cisco devices. We have achieved that goal and it has developed into a complete Lab system that can now store all the Cisco lab configs that you do for easy retrieval and deployment. Not only that, it.
Unfortunately I can't afford $200 at the moment for a VIRL licence so after some more searching I found this great blog by Nathan Ash, which provides a demo version of the vIOS-L2 image and a walk through of installing it in GNS3. 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.
While there may have been leaks of the internal IOU or IOS on UNIX, these are even more dubious than buying your own cisco 7200 and running that IOS on Dynamips. Indeed in the old days you’d no doubt find people with home labs that look something like this:
So yeah, I know it’s not new but it was new to me. But yes, VIRL is something us mere mortals can buy without a CCIE on hand, or a multi-million dollar contract on hand. Although it isn’t free, but compared to everything else cisco sells it’s cheap…
So VIRL comes in a few different flavors. They do have an ISO to run on bare metal x86 machines, OVAs for deployment on VMWare Workstation, and ESXi (Although for player you’ll have to get VIX and the vmnet config util from workstation, as I went through here & here).
Although that’s not so much what I’m interested in. As always I’m more interested in something that lets me run it on my own.
Downloading the l2 image
So as of today, the latest file is vios_l2-adventerprisek9-m.vmdk.SSA.152-4.0.55.E, with the MD5 checksum of 1a3a21f5697cae64bb930895b986d71e.
So as a first test, you can run the L2 image with Qemu/KVM! I found it works better renaming vios_l2-adventerprisek9-m.vmdk.SSA.152-4.0.55.E to vios_l2-adventerprisek9-m.vmdk.SSA.152-4.0.55.E.vmdk otherwise there was some issues with Qemu picking up the image.
The command line for a switch can be a little crazy so it’ll break some of it up onto separate lines. This way you can see that I bound a few interfaces to listen on UDP, while most of them are unbound, but you get the idea. Naturally it being a cisco product, it drives with a serial console.
-net none -device e1000,mac=00:2e:3c:92:26:00
-device e1000,mac=00:2e:3c:92:26:06 -device e1000,mac=00:2e:3c:92:26:07
-device e1000,mac=00:2e:3c:92:26:08 -device e1000,mac=00:2e:3c:92:26:09
-device e1000,mac=00:2e:3c:92:26:0a -device e1000,mac=00:2e:3c:92:26:0b
In some ways, this is very much like running Solaris on QEMU via a serial console. Once booted up, if you grab the console you’ll see:
Now, while I think it’s interesting to play with, but I know many people don’t like to setup and run a dozen programs manually, so how do we get this to run under GNS3!
As of right now the current version is 1.5.3, so let’s step through this real quick
First when you fire it up (by default) you’ll get the option to specify using a local server
Next you will want to check the box to add a Qemu VM
Add a Qemu VM
give it a name like adventerprisek9-m.vmdk.SSA.152-4.0.55.E… Or anything else you wish to call it.
Next I set the emulator to qemu-system-i386.exe and give it 768MB of RAM.
set the Qemu emulator & RAM
hit next, and then it’ll prompt to select a disk image. In this example, remember I had renamed the downloaded VIRL image to have a VMDK extension.
Then GNS3 will prompt to add it to the default images directory
add it to the images directory
After that the wizard is complete.
However there is still a bunch of settings that still need to change. If you don’t make these changes you’ll have a switch with a single Ethernet port, and you will only be able to deploy a single switch, so that won’t be any fun!.
Once the wizard has finished you’ll be in the Preferences. Just hit edit, on the template we just added, or otherwise it’s under Edit->Preferences.
First thing is kind of cosmetic, but go ahead and set the Category to Switches, so that way it ‘flows’ nice in the UI.
Next hit the Network tab, and then add some adapters.
set the adapters to something more usable like 12
I’ve set the switch to 12 adapters. The default of 1 isn’t too useful. Next up hit the Advanced settings tab. Be sure to un-check the ‘Use as a linked base VM’ . This will let you deploy multiple copies. On Windows there is some weird issue where changes are seemingly not saved, so be sure to have a config backup strategy beyond saving the config locally.
Great, hit OK, and now we’ve got our L2 template for GNS3!
As a bonus, I put it on Linux, and it’ll run under KVM, however if you use the cisco downloaded files, you’ll see this error while booting:
-Traceback= 1DBB7C8z 8DBFE5z 90522Ez 904F50z 904D5Dz 900F45z 901B7Bz 901B0Fz 8D7C0Dz 8D7B0Dz 887061z 8BAE73z 8B9FD7z 8B7827z 8BCCC4z 8C0587z – Process “Async write process”, CPU hog, PC 0x008D7D62
Over and over, and it’ll be generally slow. For some reason KVM/Qemu on Linux is struggling with the VMDK. So the solution is to simply convert it from a VMWare VMDK into a Qcow2 image with:
qemu-img convert -f vmdk -O qcow2 vios_l2-adventerprisek9-m.vmdk.SSA.152-4.0.55.E.vmdkvios_l2-adventerprisek9-m.vmdk.SSA.152-4.0.55.E.qcow2
Now using the qcow2 file, the switch will boot up just fine!
For any reference I’m running Ubuntu 16.10
and the KVM version is:
# kvm –version
QEMU emulator version 2.6.1 (Debian 1:2.6.1+dfsg-0ubuntu5.3), Copyright (c) 2003-2008 Fabrice Bellard
|EVE Image Name||Downloaded Original Filename||Version||vCPUs||vRAM|
Vios-l2.vmdk Gns3 Download
|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.