This project implements a high-fidelity Datacenter Fabric simulation using Containerlab. It demonstrates a hybrid Spine-Leaf architecture integrating Arista EOS and Nokia SR Linux network operating systems, showcasing two distinct approaches to Layer 2 redundancy and multi-homing: MLAG and EVPN All-Active Multihoming (ESI).
The fabric follows a standard 2-tier Clos architecture:
- Spine Layer: 2x Arista cEOS (DCS-7050CX3-32S) acting as the IP fabric backbone.
- Leaf Layer: 4x VTEPs split into two distinct redundancy domains:
- Pod A (Leaf1/Leaf2): Arista cEOS (DCS-7050SX3-48YC8) configured in an MLAG pair.
- Pod B (Leaf3/Leaf4): Nokia SR Linux (IXR-D2L) configured for EVPN ESI Multihoming.
- Compute: 4x Linux Hosts (dual-homed) simulating bare-metal servers via LACP bonds.
A key objective of this lab is to contrast legacy MC-LAG implementations with modern EVPN standards.
Hosts connected to leaf1 and leaf2 utilize Arista MLAG (Multi-Chassis Link Aggregation).
- Control Plane: The switches synchronize LACP state and MAC tables via a dedicated Peer-Link (Port-Channel 551) and an out-of-band Keepalive.
- Data Plane: To the downstream host, the two switches appear as a single LACP system (same System ID). Traffic is load-balanced across both links.
- Forwarding: Traffic received on the peer-link is subject to MLAG forwarding rules to prevent loops.
Hosts connected to leaf3 and leaf4 utilize EVPN All-Active Multihoming (RFC 7432).
- Control Plane: There is no proprietary peer-link or state synchronization protocol between the leafs. Instead, both leafs are configured with the same Ethernet Segment Identifier (ESI) (e.g.,
01:11:11:11:11:11:11:00:00:01) on their access interfaces. - BGP EVPN: Both leafs advertise Type-4 (Ethernet Segment) and Type-1 (Auto-Discovery) routes. Remote VTEPs (Spines/other Leafs) learn that the segment is reachable via both VTEPs (Aliasing), enabling ECMP toward the segment.
- LACP: Both leafs are manually configured with the same LACP System ID and Priority to satisfy the host's bonding requirements, but operate independently.
- Underlay: eBGP (IP Fabric).
- Overlay: iBGP EVPN-VXLAN.
- Encapsulation: VXLAN (VNI 10xxx mapped to VLANs).
- Linux Environment with KVM support.
- Containerlab (latest stable).
- Docker runtime.
- Required Container Images:
arista/ceos:4.31.4M(or compatible)ghcr.io/nokia/srlinux:25.10git.as73.inetsix.net/docker/multitool:latest
-
Instantiate the Fabric:
sudo containerlab deploy --topo clab-atd-datacenter.clab.yml
-
Hot Reconfiguration (Apply changes without destroy):
sudo containerlab deploy --topo clab-atd-datacenter.clab.yml --reconfigure
-
Teardown:
sudo containerlab destroy --topo clab-atd-datacenter.clab.yml --cleanup
- Username: admin (password: none)
- Username: arista (password:
arista)
- Username: admin (password:
NokiaSrl1!)
- Username: root (password:
password123)
| Hostname | Management Interface | IP Address |
|---|---|---|
| Spine1 | Management0 | 192.168.72.11/24 |
| Spine2 | Management0 | 192.168.72.12/24 |
| Leaf1 | Management0 | 192.168.72.13/24 |
| Leaf2 | Management0 | 192.168.72.14/24 |
| Leaf3 | Management0 | 192.168.72.15/24 |
| Leaf4 | Management0 | 192.168.72.16/24 |
| Hostname | Managemnt Interface | IP Address |
|---|---|---|
| Host1 | Eth0 | 192.168.72.17/24 |
| Host2 | Eth0 | 192.168.72.18/24 |
| Host3 | Eth0 | 192.168.72.19/24 |
| Host4 | Eth0 | 192.168.72.20/24 |
