Cisco Modeling Lab (VIRL) behind the scenes
The first hints of VIRL started appearing around Cisco Live US 2013 where the product development team demonstrated Cisco’s take on 21st century network modeling tool. A few days ago, Omar Sultan, Joel Obstfeld and Ed Kern gave us a brief peek behind the scenes of this totally awesome tool (note to Cisco haters: I haven’t been drinking the teal Kool-Aid for a long time – this is my honest impression).
Name change first: the marketing department obviously couldn’t cope with Cisco having a viral product, so they diluted the message with corporate marketese, inadvertently creating an acronym that can be easily pronounced (hint).
Disclaimer: The information in this blog post comes from a WebEx-based briefing I got from Joel Obstfeld and Ed Kern. I haven’t tested the product yet nor have I seen any documentation.
Behind the Scenes
Here’s a brief overview of what’s going on behind the fancy UI (more about that one in a follow-up blog post).
No CPU emulation. 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.
The CML developers claim that the IOS software bundled with CML comes from the same source code as the software available for different hardware platforms on CCO (including the same control/management plane bugs).
No ASIC emulation. Networking software used by CML does not emulate ASICs. Control and management planes are obviously unmodified (because they’ve been forever decoupled from hardware – CoPP might be an exception), data plane is completely rewritten to perform forwarding in software using E1000 or VXNET3 device drivers.
Data plane rewrite will obviously result in temporary gaps in forwarding feature coverage. IP and MPLS forwarding works today, and there are still some layer-2 gaps.
No forwarding plane degradation. Data plane rewrite implements CEF forwarding in software – they haven’t cheated by punting everything to process switching.
Obviously the VM forwarding performance is capped (so you won’t be able to use CML in a live network).
OpenStack/KVM based. If you want to run numerous virtual machines (networking devices) on the same physical hardware, you obviously need a hypervisor and an orchestration system. CML developers chose OpenStack with KVM (but you wouldn’t know it).
Reasonably low footprint. 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 (because fewer VMs use the same memory pages).
OVA or bare-metal install. 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.
For large-scale deployments you’d want to install CML on a powerful bare-metal server with plenty of RAM and CPU cores. They’ve shown us a topology with 50+ routers happily running on a UCS C-series server.
Design on laptop, launch somewhere else. 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 (even while being offline sitting at the airport like I’m at the moment) and execute the model on a high-end server waiting for you in your office.
First impressions
The skeptics will say “Yeah, the same thing as ****, only a year later” … and they might be partially right. However, it seems (so far) the VIRL/CML team made all the right choices and generated a fantastic product (I have barely started … wait till I start drooling over the network design/UI features). The last product from Cisco that got me so excited was UCS.
Now let’s just hope that someone doesn’t decide to cripple the product between now and FCS (which should be in Winter 2014), and you’ll definitely hear more about it when I manage to get my hands on an actual demo.
Say you have a lab with 10 real routers. Running IS-IS. Now you attach your PC, which has a 100 virtual (virl) routers. Suddenly your IS-IS network has 110 routers, consisting of a combination of real and virtual routers. This could be a nice way to check interoperability.
Keep in mind that CML is nothing else than a single-host OpenStack deployment - anything you could do in OpenStack you could (theoretically) do with CML.
http://en.wikipedia.org/wiki/Infinite_monkey_theorem
Sweet dreams!
If you think VIRL will give you design expertise, then my original comment still applies ;) See also RFC 1925 section 2.4
Networking is through virtual switches, tap / tunnels,so no reason you cannot connect them to a physical box .