I started with GNS3 and Cisco IOS as my lab virtualization tool nearly 10 years ago. And GNS3 w/ Olive before the days of vMX. These days there are many choices but I still I mainly use KVM/lib-virt for my lab and occasionally containers. Mostly due to my need to test dataplane with Juniper’s vMX. If I had no requirement to use Juniper or vMX then I would likely move to a native container solution.
However that may change soon as I start to explore (new to me) tools to take on the brunt of the work of setting up the lab. I already have my home grown scripts and tools to help me navigate my KVM labs but I’d like to explore these other tools more to see what they have to offer:
https://github.com/ipspace/netsim-examples
https://eve-ng.net (used this one a long time ago but so long ago I’ve forgotten most of it..)
As KVM has it’s draw backs with it’s large resource consumption and relatively static interfaces. In my next blog post I will show some techniques that I tried utilize to get around at least the interface creation. Which believe it or not when swapping between different lab topologies becomes an error prone time sink without home grown scripts to aid in the creation process.
My time is a resource I would like to protect. And therefore I want a simple, reliable and least-time-consuming method of standing up my labs. But I also do not want to ignore outside innovation or the fact that standing up a large KVM lab comes at a large cost as well (both in capital to procure cores/power and time writing scripts to maintain). I have to balance that with some vendors container version of their control/forwarding plane has many bugs and isn’t treated with a lot of priority to fix, or lacks certain features and functionality.
I’m probably going to come across as an advocate for Juniper but I haven’t found any features that I can recall weren’t present on vMX that aren’t also on the real world version of MX. Perhaps that’s why they charge for it and the server requirements consumption is so high. I’d be willing to pay for similar offerings from other vendors if there were able to offer the same 1:1 comparison to their physical counterparts (bonus if they can do it in a container..).
Hopefully one of the above (or other) tool exists to abstract the differences between KVM and containers enough so that it doesn’t matter and I worry less about the lab is virtualized and chasing vendor bugs in their containerized NOS.
More on this to follow in future posts.