Skip to content

srl-labs/containerlab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a0c9417 · Jan 28, 2021
Jan 25, 2021
Jan 28, 2021
Jan 23, 2021
Jan 28, 2021
Jan 24, 2021
Jan 24, 2021
Sep 3, 2020
Nov 17, 2020
Jan 25, 2021
Aug 28, 2020
Jan 25, 2021
Nov 19, 2020
Jan 5, 2021
Jan 5, 2021
Sep 3, 2020
Jan 23, 2021

Repository files navigation

github release Github all releases Go Report Doc build


Description

With the growing number of containerized Network Operating Systems grows the demand to easily run them in the user-defined, versatile lab topologies.

Unfortunately, container orchestration tools like docker/podman/etc are not a good fit for that purpose, as they do not allow a user to easily create p2p connections between the containers.

Containerlab provides a framework for orchestrating networking labs with containers. It starts the containers, builds a virtual wiring between them to create lab topologies of users choice and manages labs lifecycle.

pic Containerlab focuses on containerized Network Operating Systems which are typically used to test network features and designs, such as:

In addition to native containerized NOSes, containerlab can launch traditional virtual-machine based routers using vrnetlab integration:

  • Nokia virtual SR OS (vSim/VSR)
  • Juniper vMX
  • Cisco IOS XRv

And, of course, containerlab is perfectly capable of wiring up arbitrary linux containers which can host your network applications, virtual functions or simply be a test client. With all that, containerlab provides a single IaaC interface to manage labs which can span contain all the needed variants of nodes:

Features

  • IaaC approach
    Declarative way of defining the labs by means of the topology definition files.
  • Network Operating Systems centric
    Focus on containerized Network Operating Systems. The sophisticated startup requirements of various NOS containers are abstracted with kinds which allows the user to focus on the use cases, rather than infrastructure.
  • Multi-vendor, multi-platform
    With the vrnetlab integration it is possible to get the best of two worlds - running virtualized and containerized nodes alike with the same IaaC approach and workflows.
  • Lab orchestration
    Starting the containers and interconnecting them alone is already good, but containerlab packages even more features like managing lab lifecycle: deploy, destroy, save, inspect, graph operations.
  • Scaled labs generator
    With generate command containerlab makes it possible to define/launch CLOS-based topologies of arbitrary scale. Just say how many tiers you need and how big each tier is, the rest will be done in a split second.
  • Simplicity and convenience are keys
    Starting from frictionless installation and upgrade capabilities and ranging to the behind-the-scenes link wiring machinery, containerlab does its best for you to focus on the use cases, rather than infrastructure setup.
  • Fast
    Blazing fast way to create container based labs on any Debian or RHEL system.
  • Automated TLS certificates provisioning
    The nodes which require TLS certs will get them automatically on start.
  • Documentation is a first-class citizen
    We do not let our users guess by making a complete, concise and clean documentation.
  • Lab catalog
    The "most-wanted" lab topologies are documented and included with containerlab installation. Based on this cherry-picked selection you can start crafting the labs answering your needs.

Use cases

  • Labs and Demos
    Containerlab was meant to be a tool for provisioning networking labs built with containers. It is free, open and ubiquitous. No software apart from Docker is required!
    As with any lab environment it allows the users to validate features, topologies, perform interop testing, datapath testing, etc.
    It is also a perfect companion for your next demo. Deploy the lab fast, with all its configuration stored as a code -> destroy when done. If needed, repeat.
  • Testing and CI
    Because of the containerlab's single-binary packaging and code-based lab definition files, it was never that easy to spin up a test bed for CI.
  • Telemetry validation By coupling with modern telemetry stacks containerlab labs make a perfect fit for Telemetry use cases validation. Spin up a lab with containerized network functions with a telemetry on the side, and validate/demonstrate comprehensive telemetry use cases.

Containerlab documentation is provided at https://containerlab.srlinux.dev.