VIRL and CML – Overview

CML(Cisco Modeling lab) and VIRL(Virtual Internet and Routing lab) are Network modeling platforms from Cisco. I have been trying this out for the last 2 weeks and I am very impressed by what it can do. I feel that the potential for this platform is so huge that it will create a fundamental impact in the Networking industry. Currently, the simulation is limited mainly to Cisco devices though I have seen Juniper and Vyatta images in the VM list. In the next series of blogs, I will walk through some of the following topics:

  • What is CML, VIRL? Architecture and Software components.
  • How to get started? Installation and Quickstart.
  • Examples/Use cases that I tried. L3, L2, management.

Difference between CML and VIRL:

CML is a code branch of VIRL that has been enhanced to provide more scale, VIRL has a 15 node limit. CML customers get Cisco TAC support. CML is focussed towards Enterprise customers, while VIRL is focussed on individuals and training institutions. Obviously, VIRL is much cheaper than CML. VIRL has different prices based on personal or academic use.

Since I work in Cisco, I didnt have to pay any money to try out CML and VIRL. Going forward, I will use the term VIRL to describe the Network Modeling platform. If there are any CML specifics, I will mention those.

VIRL/CML Overview:

Why we need Network Modeling with routers and switches? If you have faced any of these issues, you need VIRL:

  • Wanted to access router CLI to see the options and how it behaves with other feature configurations.
  • Need a multi-node topology, but dont have budget for the nodes or pluggables, cables are not available? This is in addition to endless hours spent in the lab.
  • Interop issues when IOS OSPF is working with IOS-XR and NXOS OSPF?
  • Need 50 node topology to reproduce a customer issue but dont have the time/money/space to do it.
  • Preparing for CCNA? want to try out some configurations?

Following are things VIRL can do:

  • Design a complex network topology with different routers, switches, servers, firewalls etc. As of now, the focus is on Cisco devices alone(I did see VMs of Juniper and Vyatta in the VIRL downloads page), this can be extended to products from other vendors.
  • Generate configurations automatically. For example, we can specify routing protocol properties for each node and the configurations gets generated automatically.
  • Visualize networks at different layers including physical, L2, L3.
  • Being able to change network configurations on the fly and see how the devices respond.
  • Connect virtual devices to physical devices and create a unified network. Physical devices wont know that its talking to virtual devices.
  • Packet forwarding at IP, L2, MPLS.

Following are things VIRL cannot do:

  • Emulating ASICs, FPGA and other physical devices of router/switches.
  • Since packet forwarding is done in software, VIRL cannot be used for performance and throughput tests.

Following 2 pictures shows the hardware and software architecture for VIRL:



The important components are:

  • Host – This can be a baremetal UCS server or a VM under UCS with ESXi or a VM in a Laptop under VMplayer/VMfusion/VMWorkstation.
  • Ubuntu OS – This is the base OS under which VIRL server runs.
  • Openstack – Openstack manages all aspects of the VM. In the released version, Icehouse distribution of Openstack is used.
  • KVM hypervisor – VMs run on top of the KVM hypervisor
  • VM Maestro, CML client – These are the client application software with a nice GUI that is used to design topology, visualize topology and run simulation. VM Maestro is the client software used with VIRL and CML client is the client software used with CML. Most of the user interactions are with the client software. The client server communicates with the VIRL server software running in the background. The heavy lifting is done by the VIRL server.
  • Autonetkit – This is used for generating configurations automatically and for viewing topologies at different layers(L1, L2, L3)
  • VIRL topology service director – creates VM and links between VMs talking to Openstack and other components.
  • VMs – Current supported VMs include ios, xr, nxos, csr, osa, ubuntu servers, iosl2.
  • UWM(User workspace management) – This is the web based management application to manage images, flavors, licenses, topologies, capturing packets etc.


Pictures used in this blog are from references.

7 thoughts on “VIRL and CML – Overview

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s