The history of CML is that Cisco Innovation team created VIRL and started to demo it at the CiscoLive events. Learning@Cisco were asked to produce a commercial version (make it a product) and this has been called Cisco Modeling Labs.


Is VIRL/CML the same as IOU or IOL?

IOU (IOS on Unix) emulates Cisco IOS, executable files that run under Sparc/Solaris platform, but for IOL (IOS on Linux), it runs on x86/Linux platform, and there is should another version which runs on Mac OS platform. IOU supports both serial and Ethernet interfaces. There are also IOU/IOL images which supports a limited subset of Layer 2 features.


Cisco VIRL/CML is a graphical interface to create and manage labs based on virtual/cloud devices. Technically VIRL/CML is based on OpenStack and KVM, Eclips and Autonetkit. CML has two components: network topology and protocol design engine (and UI), and the execution environment. They are totally independent and exchange information in text files in XML format (ideal for automation or versioning). You can thus easily design the network topology on your laptop and execute the model on a high-end server waiting for you in your office.

The difference between VIRL and CML  is the CML has been tested, documented, stabilized, and so on, as you would expect from a Cisco product, whereas VIRL is still a development tool that changes on a ‘daily’ basis as the innovation team create new ideas.


CML runs all networking software natively, with each device being in a separate VM. IOS XE is already available in that format (CSR 1000V), as is NX-OS (Titanium), classic Cisco IOS (virtual IOS used for onePK development) and IOS XR.


CML was going to provide a Personal version, but the Innovate team and the onePK wanted to give away a free version to help promote the idea of onePK development. The only downside of the ‘free’ version of VIRL  is that you get what you pay for so there is no official support, no documentation, no training video, no patching, no request for features.


Cisco VIRL (Virtual Internet Routing Lab) is the old name of Cisco Modelling Lab  (CML). VIRL Currently supports Cisco CSR1000v, vIOS, Cisco IOS XRv and Ubuntu Linux. The main differences between VIRL and IOU are:


  • VIRL is not based on IOU, VIRL needs Virtual Machines.
  • VIRL doesn't support serial interfaces,  but Serial interface is an option for future releases.
  • L2 images are under development now and can be demonstrated but it is not available for the first release because it has not competed development, testing, etc.


I would like you to watch this overview video



VIRL/CML is more flexible than IOU/IOL and the good news is, L2 is in development now. CML runs all networking software natively, with each device being in a separate VM. IOS XE is already available in that format (CSR 1000V), as is NX-OS (Titanium), classic Cisco IOS (virtual IOS used for onePK development) and IOS XR.


If you want to run numerous virtual machines (networking devices) on the same physical hardware, you obviously need a hypervisor and an orchestration system. Networking software used by CML does not emulate ASICs. Control and management planes are obviously unmodified, data plane is completely rewritten to perform forwarding in software using E1000 or VXNET3 device drivers. CML uses KVM memory caching/ sharing tricks to reduce the memory consumption of individual VMs, allowing you to run 6-7 IOS images (or 4-5 IOS XR images) in a CML VM with 8GB of RAM. Obviously the memory consumption increases if you mix software images.


You will get CML in OVA format that you can easily install and run in VMware Player, VMware Fusion or any other desktop virtualization product of your choice. The OVA has an install script that will create OpenStack environment within the virtual machine and use nested hypervisor approach to run network device VMs within the CML VM.


A good news is that VIRL/CML could support all cloud devices Cisco will make available:


  • Cisco Virtual Wide Area Application Services (vWAAS)
  • Cisco Virtual Wireless Controller
  • Cisco ASA 1000V Cloud Firewall


But VIRL/CML could also support different type of Linux appliances (Ubuntu is already supported), and other’s vendor appliances like NetScaler, Imperva, SourceFire.


For more information about VIRL/CML, please visit 1