Setup
These labs utilize containerlab. You will need a Linux server that has containerlab installed, and the proper images loaded into your local docker repo. This page walks you through that process.
I found containerlab to be preferential over EVE-NG or CML for many reasons:
Support for containers such as XRd, 8000e, and Routinator.
Topology files and config files can be shared and version-controlled via github.
Native SSH access is used to access the nodes, instead of console connections. This allows for scripting via SSH, which I use to transfer all startup configs to the nodes.
Virtual hard drives of the nodes are not saved, so a single lab can take up literally KBs of storage.
Host Requirements
You can install containerlab on a VM or bare-metal server. I prefer to use Ubuntu as the OS, but any Linux distro should work.
I recommend to have 16+ vCPU, 128GB+ memory, and 50-100GB of storage. The storage is mostly for the node images, so storage requirements are quite low.
If you are using bare-metal, ensure that CPU virtualization is enabled in BIOS on your server.
If using a VM, ensure that Hardware virtualization is enabled.
Installing Containerlab
Once the OS is installed, containerlab installation is as simple as running this single command:
For XRd nodes, we must set the below setting on the containerlabs server. Reboot after running this command:
Clone the git repo for this workbook:
Install required python packages:
The managment network is 10.200.255.0/24 for these labs. All you need to do is create a route in your router pointing 10.200.255.0/24 via the IP address of your containerlab server. For example, if your containerlab server has an IP address of 192.168.1.253:
Images
Finally, you will need the correct images loaded into your docker container repo in order to run the topologies.
vrnetlab Images
The following images are needed, and were built with vrnetlab:
vrnetlab/cisco_csr1000v:16.09.08
vrnetlab/cisco_xrv:6.6.3
vrnetlab/cisco_xrv:6.3.1
vrnetlab/cisco_vios:15.9.3M3
vrnetlab/cisco_iol:17.15.01
If you use other versions besides these, you will need to manually edit the topology files before you run them (changing the version). Additionally, it's possible the default logins might be different with different versions, so watch out for that.
XRd
Once you download the tar file, you can transfer it to your containerlab server via SCP. Then you must untar the file and load the image into docker:
XRd Control Plane is extremely useful for running very large topologies, because it has a very light footprint. Even though it is so lightweight, it is on par with XRv9K in terms of functionality. I used XRd for running large 40-50 node topologies before sitting for the lab.
Arista switch
Transfer the cEOS64-*.tar.xz file to the server, and then import it into docker:
Other containers
Finally, there are linux containers for NSO, Ubuntu (used as an MDT collector), and Routinator. These can be pulled from public sources using:
If you need help with any of these images, just reach out to me and I will try to help.
Last updated