Sunday, March 1, 2015

Going #VIRL

I've been playing with a new tool in my networking toolkit lately: Cisco VIRL. It stands for Virtual Internet Routing Lab, and it's network simulation software that runs Cisco VM's of several networking platforms. There are plenty of other simulation (often emulation) solutions that exist for modeling up networks and are quite helpful for studying, but VIRL brings some key differences to the table.

First, it's designed and published by Cisco, for Cisco. It was formerly an internal testing tool, and it is now available to the public at http://virl.cisco.com. This means that it is running true, current Cisco operating systems through virtualization, as opposed to emulating older versions of routing hardware. While the VIRL Personal Edition software is community-supported, there is an enterprise branch called Cisco Modeling Labs that is fully TAC supported. How does this impact VIRL? We'll have to see, but the fact that a similar software suite is targeted for enterprise customers may mean that VIRL could benefit from the work being done for the enterprise.

Second, it's able to virtualize images from multiple Cisco operating systems. Most popular of images, of course, is the virtual IOS. This is a current version of IOS (at time of posting, in 15.4 train) so testing relatively new software features should not be an issue. However, what if there is a need to simulate an IOS-XE router like the ASR 1000? That's included in VIRL as well. Beyond that, even virtualizing IOS-XR is supported for the routers that are a bit more carrier focused. I'd be doing a disservice if I did not mention VIRL can run virtualized NX-OS nodes too. I'm quite excited about the ability to fire up labs simulating Nexus 7000's running along-side IOS routers.

Third, there are some pretty fantastic features in the VIRL software that make it really nice to use. First, it's very easy to start creating a topology by dropping routers into a visual network map and then drawing connections between them. After quickly connecting some boxes together though, there are a lot of additional baseline configurations that need to be done when bringing up a simulation network. This requires some thinking about and then implementing IP addressing, enabling services, even complex steps like setting up a routing protocol like EIGRP or even BGP.



This is where a feature set called AutoNetkit comes into play. VIRL has AutoNetkit support, meaning that through a slick menu system of variable inputs, it is fairly elementary to set up a network with appropriate IP schemas, loopbacks, point-to-point routed connections, and even have it start up already configured to run a dynamic routing protocol. This translates to consistent configuration deployment in the lab and into time savings to lab up the important stuff. VIRL will also provide multi-layer visualization of the network based on the AutoNetkit configurations. It gives the ability to change the network topology views from physical topology all the way to show OSPF area configurations or BGP peering relationships. 

Performance-wise, I have VIRL running on my Macbook Pro, and I've been running test simulations with five or so routers and it's been working fine. I'll continue to mock up some scenarios and try to find the limits that I can do running this on my laptop.

I've just started playing with this tool set, so I know that I have a lot more to learn. I'm very excited to have another tool set available with which to learn and practice.