This article provides an in-depth look into the network architecture I built using Containerlabs. Below, I explain the architecture and how I set it up in detail.
The architecture makes use of Arista cEOS images, with the following components:
R1 & R2: These routers run VARP (Virtual ARP), enabling an active-active setup for redundancy and load balancing.
S1, S2, S3 & S4: These are Layer 2 switches, facilitating communication between various connected devices.
R3, R4 & R5: These are Layer 3 switches, handling routing between networks.
NMAS: This represents my laptop, which serves as the management and automation station.
H1, H2 & H3: Dual-stack hosts with both IPv4 and IPv6 enabled, ensuring smooth communication across both IP versions.
H4: An IPv6-only host, showcasing IPv6 integration and communication.
Web Server: R5 is connected to a web server to emulate external service interaction.
This setup demonstrates a hybrid network with redundancy, dual-stack support, and IPv6-only scenarios, highlighting the adaptability of the design to modern networking requirements.
The setup began with installing Containerlabs. This tool allows for defining complex topologies using YAML configuration files. Here is the step-by-step process I followed:
Installation: I installed Containerlabs on my system. This required setting up Docker as a prerequisite, ensuring all dependencies were resolved.
YAML Topology File: The network topology was described using YAML. I specified nodes, links, and their configurations. For example, interfaces for each node and the connections between them were defined here.
Bootstrapping: Using the containerlab deploy
command, I deployed the entire topology. The nodes came up with minimal manual intervention, thanks to pre-defined configurations.
The YAML file was central to this process, as it defined the entire network structure. Automation scripts streamlined the process further, ensuring that all nodes were configured consistently and quickly.
Simulates real-world scenarios effectively using lightweight containers.
Scalable and modular for easy adjustments and enhancements.
Streamlined deployment with minimal manual overhead.
Setting up this architecture taught me the importance of planning and modularity in network design. Containerlabs proved to be an efficient tool for simulating large-scale networks, and automation scripts significantly reduced setup time. This experience has enhanced my understanding of how to bridge the gap between manual network configurations and full-scale automation.
In the next article, I will explore how to set up streaming telemetry and monitoring on this architecture. Stay tuned!