Summary
Welcome to the Routing Configuration Lab of Spring 2025.
As you have learned routing protocols (BGP, OSPF, RIP, etc.) in the Computer Network course, we want to give you a chance to practice what you have learned and get some feeling about how to operate a real network.
You have to complete three labs in this course. We provide guidelines and solutions for the first two labs, so they are not mandatory and not graded, but you are expected to finish them to get some familiarity with the lab environment, learn how to configure routers, and review knowledge of routing protocols (BGP and OSPF) in case you have unluckily forgotten them. The third lab is mandatory and graded (10% of the course grade).
In each lab, you are given a network topology consisting of several switches with empty routing configurations. They are disconnected from each other at the beginning. You need to configure them to distribute routing messages, populate routing tables and finally get connected. You have to handle different network topologies and routing protocols in three labs.
- In lab 1, you need to connect routers within different ASs (Autonomous Systems) using the BGP protocol.
- In lab 2, you need to connect routers within the same AS using OSPF protocols and tune the routing decisions with custom path costs.
- In lab 3, you will combine what you have learned in the previous two labs and configure routers in a larger network topology with both inter- and intra-AS links.
ContainerLab
ContainerLab is a useful networking learning and experiment tool. It builds on the mature ecosystem of containers and the growing popularity of containerized Networking Operating Systems. Instead of operating switches and routers connected by physical links, we now operate virtual switches and routers, each of which is encapsulated in a container image, and connected by virtual links emulated by the operating systems.
ContainerLab helps us freely learn and explore network design and administration without the need of buying expensive hardware and cables. Meanwhile, we can easily build any possible topology and configure devices in any way we may imagine and restore the whole system with single one command even if we mess everything up.
Installation
To complete the labs, you need to obtain the following materials:
- Docker and ContainerLab.
- Docker image of cEOS, Astria's containered Network Operating System.
ContainerLab
Native Installation
-
Linux distributions: You could install Docker and ContainerLab following their official guidelines.
-
Windows Subsystem for Linux (WSL): Despite ContainerLab is claimed to support WSL by its document, students encountered many issues in past years on WSL, so we recommend using virtual machines on Windows.
Virtual Machines
-
Windows or macOS on Intel chips: Use VirtualBox / VMWare / Hyper-V or any virtualization software to create a Linux virtual machine supported by ContainerLab. We prepare a pre-configured Ubuntu 22.04 Virtual Box image which you can download from Tsinghua Cloud.
-
macOS on Apple Silicon: Due to the lack of ARM image for containered Network Operating Systems, ContainerLab doesn't provide a native arm version, making an x86 to arm translator (that is, QEMU) essential. You may have a try on UTM. However, due to the performance penalty of emulation, it is not recommended.
-
You may also use the vagrant file to build a virtual machine if you are familiar with vagrant.
Note
Username and password of the pre-configured images are both vagrant
.
Note
You need to assign 4 cores and 8 GB of memory to the virtual machine to work smoothly with ContainerLab. You can add more cores and memory if you have to increase the launch speed of labs.
cEOS image
-
Register a free Arista account and download the cEOS container image. Remember to select the 4.29.2F 32-bit version, which may not be the latest version when you view the page.
-
Download the archived version from Tsinghua Cloud.
You need to import the image into docker before using it.
Bash Session | |
---|---|
Check that the image is successfully imported.
Warning
Students reported that cEOS 4.29.2F doesn't work on WSL. You may use 4.28.6 (you may download it from Tsinghua Cloud) instead and update the cEOS version specified in the start.clab.yaml
file in each lab.
Validation
You can download the lab materials from GitHub and try to launch the first lab to validate the environment.
Bash | |
---|---|
Note
If you are using pre-configured images, you will find the router-lab-public
directory on the home directory of the vagrant user. Remember to run git pull origin main
to update the repo before you start the lab.
Note
You can monitor the start progress using docker stats
.
Please contact TA(s) as soon as possible if you encounter any problems during the installation.
Authors
Contact TA(s) if you have any questions.
- Minhu Wang (wangmh19@mails.tsinghua.edu.cn)