Skip to main content

Containerlab: A free and simple way to build your complex virtual test lab

Containerlab: A free and simple way to build your complex virtual test lab

What’s not to like about a virtual networking test lab? For any team tasked with making substantive changes to a network, the ability to quickly spin up a virtual test lab and learn as much as possible before launch holds incalculable advantages.

And yet, for many, the problem is having access to the hardware to create a physical lab to integrate, test and validate. Most are locked into their primary network services vendor and end up using a production network for testing – something that is not ideal. For others, especially cash-strapped or under-staffed research organizations, the time, cost and effort of building and testing network designs may be prohibitive.

This is the genesis of the Containerlab. Originally an emulation tool to create and test network topologies for Nokia’s use, it became so much more powerful once we open sourced the tool. Now, Containerlab can be used with any container-based Network Operating System (NOS) and accommodate VMs for NOSs not yet re-written to support a container-based packaging format.

There are other virtual lab orchestrators, EVE-NG and GNS3, for example. These require that you install a piece of hardware, on a bare metal server or a VM, and from there create a virtual replica of your lab for your specific environment. Where Containerlab is different is that users only need a Linux command line utility to download files and Docker. It can be done on a Linux instance, in Windows or on a Mac – even one you might have stuffed into a back storage unit years ago! A topology is a single YAML text file that can and should be checked into a Git repository.  

Containerlab is a free and lightweight CLI tool that allows the user to spin up an entire topology and manage its lifecycle, all super-fast and without installing any heavy tools. And then, when the exercise is done, essentially delete the test network.

One of Containerlab’s big differentiators is that it’s not locked into a UI-driven user workflow and caters more towards a lab-as-code approach. The GUI-based tools allow engineers to create a true visual topology of their network, adding routers, connecting links and shifting at will. But they seldom fit into the CI/CD paradigm. So, if the team wants to treat their lab as code and leverage a Git workflow, or if they want to create and control versions, do automated testing, or collaborate with their peers – it’s all easily managed with Containerlab.

Organizations as diverse as device manufacturers, Interexchange providers, media and networking equipment vendors are already tapping into the Containerlab sandbox to test scenarios.

Research Education Networks (RENs) are also working with Containerlab. ESnet, for example, tested multiple platforms, such as Eve-NG, before their Planning and Architecture Group (PAG) chose to work with Containerlab to develop a repeatable, supportable test environment for VRF migrations. The team started with a simple thought that, “Wow, it would be nice to do automated tests on our full orchestration stack!” says Chris Cummings, ESnet Network Automation Software Engineer, in his TNC22 presentation about the ROVER team’s experience. Check out the video to learn about the framework ESnet built with Containerlab to test their intent-based orchestrator.

Another benefit is the opportunity to quickly spin up an environment to test what-if scenarios. For research organizations, which may want to create really out-there scenarios, the app makes it easy to configure a test environment and then destroy or redeploy that configuration and begin anew with a clean slate. 

There’s also the option to create a virtual test lab and give individual teams their own slice of the network. That way, each team has its own replica of the network and isn’t forced to use a shared environment. Containerlab lets users create a personal lab environment that can be spun up as needed for iterations on workflows as frequently as needed.

For those attending Internet2 Tech Exchange, Nokia is offering a 4-hour workshop Dec 9th that will provide hands-on experience with Containerlab and demonstrate how it can be used by any network engineering department.

Workshop training will span all steps – from install and configuration to set-up and use. With virtual topologies focused on the containerized Network Operating Systems typically used to test network features and designs (Nokia and industry-wide) and applying REN-related use cases, users will be able to interact within the app and with each other. The goal is to help attendees understand how they can use this tool to solve any problems they currently have with their virtual lab infrastructure.

For network engineers seeking to unlock a different way to create virtual labs for their specific environments, Containerlab is a powerful alternative to orchestrate and manage container-based networking labs. Especially in a world where the networking environment evolves so rapidly, Containerlab is worth a second look.

[Click here to register for the Workshop]

Roman Dodin

About Roman Dodin

Roman Dodin is a product line manager within the Nokia SR Linux team. While being responsible for the SR Linux's NetOps development kit, Roman is also taking care of the external network automation community. He is a maintainer of the containerlab project and an avid open source contributor.
 

Connect with Roman on LinkedIn or follow him on Twitter

Article tags