VIRL and CML – Installation

This blog is part of my VIRL and CML series. VIRL/CML overview is covered here. In this blog, I will cover the installation steps and how to get started with the first simulation.

I have tried 2 approaches to install CML and 1 approach to install VIRL. Since I work at Cisco, I did not have to buy VIRL and CML software, the methods of obtaining License and installing them would be different for me compared to users purchasing this from outside. Otherwise, the steps below should be the same.

Prerequisite for installing in Laptop:

  • Use VMPlayer version 6.0.5. I had problems with other versions. I have installed VMPlayer in Windows 7.
  • It is needed to create custom networks to be able to share the VM network with the host machine. “vmnetcfg” utility is provided by default with VMWorkstation and VMfusion. To use it with VMPlayer, please refer to my other blog on VMPlayer networking. We need to create 4 custom networks. The first 2 custom network are used for Flat networks, third one is used for SNAT network, fourth one is for future use. Following image shows my networks in VMPlayer.


Installing CML in laptop:

Cisco folks can refer here for installation steps and here for finding the images. External folks can find the procedure here.

I installed CML on top of VMPlayer. This is not officially supported by Cisco since CML has a higher memory and CPU requirement. Also, CML is targeted more for Enterprise customers. I was able to get this working and be able to run IOS simulations. With NXOS and XR simulations, I could not spawn the VMs sometimes because I was running out of memory. Following are the steps:

  • Download OVA.
  • Create a VM under VMplayer with around 30GB hard disk, 2 CPUs, atleast 12GB memory, 1 NAT interface and 4 custom host-only interfaces. Enable VT-x.
  • Get license. Cisco folks can get it from here.
  • Install CML client by connecting to the server IP from localhost.
  • Upload the license.

Create account with username and password as “guest”. To verify that the connectivity between client and server is fine, goto File->Preferences from CML client and you should see something like this:


Installing CML in UCS:

I took some help from my colleague to get CML installed on top of a UCS Rack server running VMWare ESXi. The procedure is pretty similar to installation on VMPlayer. The procedure described here works fine for OVA installation under VMWare ESXi.

Installing VIRL in Laptop:

I installed VIRL on top of VMPlayer. Cisco folks can refer here for installation steps and here for finding the images. External folks can find the procedure here.

  • Download OVA.
  • Create a VM under VMplayer with around 30GB hard disk, 2 CPUs, atleast 12GB memory, 1 NAT interface and 4 custom host-only interfaces. Enable VT-x.
  • Activate license by connecting to cisco servers, there is no need to get license seperately
  • Install VM maestro client
  • IOS VM image is present by default. To add other images, we can download the image from here and upload to workspace management area.

To verify successful connection between VM Maestro and VIRL server, click on File->Preferences from VM Maestro and you should see something like this:


“User workspace management” is the place where we manage licenses, images, flavors, sessions etc. To access “User workspace management”, point the browser to VIRL server address and login either as “uwmadmin”, “password” for admin access or “guest”, “guest” for guest access.

Lets check the VIRL version in virl server:

$ virl_health_status | grep version
 {erlang_version,"Erlang R16B03 (erts-5.10.4)
[64-bit] [smp:2:2] [async-threads:30] [kernel-poll:true]\n"}, STD server on url http://localhost:19399 is listening, server version UWM server on url http://localhost:19400 is listening, server version STD server version: "distro-version": "Ubuntu 14.04.2 LTS", "virl-version": "", "kernel-version": "3.13.0-45-generic x86_64", "openstack-version": "2014.1.3", "version": "1.2", "kvm-version": "QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.10), Copyright (c) 2003-2008 Fabrice Bellard", "autonetkit-cisco-version": "VIRL Configuration Engine 0.13.7", "virl-version": "", "version": "1.0", "autonetkit-version": "autonetkit 0.13.3"

Getting started with first simulation with VIRL:

  • Goto Design view, click and drop “IOSv” node.
  • Do configurations->Build initial configurations to generate the IOS node configuration. By clicking on the node, we can see the running configuration. This step will prompt for seeing the topology visualization. If we select that, we can view the topology at different layers.
  • Start simulation. This will take us to the simulation view, we should see the IOS node turning from build to active. If the node does not turn active, then something went wrong. I had issues when memory/cpu requirement was not met.
  • After this, we can rightclick on the node and go to the IOS console.
  • If we make change to the node configuration in simulation view, we can export that back to Design view by doing topology->Extract configurations. After this, we cannot use the auto configuration option in Autonetkit.

Now, that the IOS node is running, lets look at few things from VIRL server:

Lets check the running VMs. We see the IOSv VM running.

virl@virl:~$ nova list --all-tenants
| ID                                   | Name                                                  | Status | Task State | Power State | Networks          |
| cbb198b0-57bc-4a01-a29e-96e70ed3ff7e | -<My_Topologies@ios-YTS5lT>- | ACTIVE | -          | Running     | flat= |

Lets look at the images that are uploaded in VIRL.IOSv comes by default. I have uploaded the other images manually.

virl@virl:~$ nova image-list
| ID                                   | Name              | Status | Server |
| 81019ec3-1429-4421-859e-887a80d9c942 | CSR1000v          | ACTIVE |        |
| a1354887-18da-412d-b8c8-ce509a6e8743 | IOS XRv           | ACTIVE |        |
| 468d8f82-06a9-4b74-ba42-839b9a4d87e5 | IOSv              | ACTIVE |        |
| c03bea6e-bf90-4392-83c1-78d70985b5ea | IOSvL2-viosl2     | ACTIVE |        |
| 80fa1a52-b7cd-45a3-812c-86b71dd4efe9 | NX-OSv            | ACTIVE |        |
| eb234dc4-87ad-4fd1-8b4e-a077d9f489fd | Vyatta-vyatta/6.6 | ACTIVE |        |
| c9f167f8-b577-47ed-b8b8-d2790e0b9de9 | generic-pageant   | ACTIVE |        |
| 88c09581-7b53-4ca0-a5bf-e704cba91f97 | server            | ACTIVE |        |

Lets look at the networks created.

neutron net-list
| id                                   | name       | subnets                                            |
| 387c8817-a69a-45c7-8147-ec21fa28d147 | flat       | 18e10d1d-db13-408b-848f-15045b4f8ceb |
| 59458323-0d09-41d8-a62f-9897a7475b1b | guest      | fce1da95-e7ae-4c9f-ad57-f9c9de9a27d3 |
| 9908fd76-e92f-426f-b965-2831a370ea07 | guest_snat | b500338c-0cd8-415d-882a-04d27ef38b0b |
| e946792d-46e0-461b-8a20-278c8d3044cc | flat1      | 70c9b311-95f4-4e16-81c5-d3340fc70d94 |
| f4042c44-b3dd-4016-9fac-78f0e512d82e | ext-net    | c963c99d-816d-4e28-b27d-161e229833b6 |

As we can see from above, Openstack commands works since VIRL uses Openstack for VM Orchestration.


10 thoughts on “VIRL and CML – Installation

  1. How can you install CML on a laptop with, say, 8 GB RAM? My networking team has CML on UCS, and I tried installing the OVA on my laptop but nova-compute service remains down. Unfortunately I have not direct access to TAC, but that’s internal policy of my company :(. Could you please post how you made it work?

    1. hi David
      I have 24GB RAM in my laptop. For both VIRL and CML, I had my VM having 12 GB RAM. How much RAM did you select in your hypervisor for your CML VM? VIRL is a little lightweight when compared to CML, it might need little less. Even with 12GB of RAM, I can run multiple IOS instances, but cannot run multiple XR or NXOS instances since that hogs a lot more memory.


      1. I set the CML VM with 4 processors, 7596 MB RAM (the most Fusion allowed me). So for you it worked right away without further tweaking?

      2. Yes, I didnt have to tweak anything. By any chance, will you be able to try VIRL?
        How do you know that memory is the issue?
        Can you try looking at /var/local/virl/logs and execute “virl_health_status” to see if you can get any clue on what went wrong. I am assuming licensing stuff is taken care of.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s