Files
infra-clab-pipeline/containerlab/arista-l5-topology.clab.yml
2025-11-08 18:52:44 +01:00

297 lines
9.3 KiB
YAML

name: arista-l5-dual-dc
mgmt:
network: arista-mgmt
ipv4-subnet: 192.168.0.0/24
topology:
kinds:
arista_ceos:
image: ceos:latest
nodes:
# ==========================================
# DC1 - SPINE LAYER
# ==========================================
spine1-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.11
# startup-config: configs/spine1-DC1.cfg
spine2-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.12
# startup-config: configs/spine2-DC1.cfg
spine3-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.13
# startup-config: configs/spine3-DC1.cfg
# ==========================================
# DC1 - LEAF LAYER
# ==========================================
leaf1-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.21
# startup-config: configs/leaf1-DC1.cfg
leaf2-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.22
# startup-config: configs/leaf2-DC1.cfg
leaf3-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.23
# startup-config: configs/leaf3-DC1.cfg
leaf4-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.24
# startup-config: configs/leaf4-DC1.cfg
# ==========================================
# DC1 - BORDER LEAF LAYER
# ==========================================
borderleaf1-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.31
# startup-config: configs/borderleaf1-DC1.cfg
borderleaf2-DC1:
kind: arista_ceos
mgmt-ipv4: 192.168.0.32
# startup-config: configs/borderleaf2-DC1.cfg
# ==========================================
# DC2 - SPINE LAYER
# ==========================================
spine1-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.111
# startup-config: configs/spine1-DC2.cfg
spine2-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.112
# startup-config: configs/spine2-DC2.cfg
spine3-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.113
# startup-config: configs/spine3-DC2.cfg
# ==========================================
# DC2 - LEAF LAYER
# ==========================================
leaf1-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.121
# startup-config: configs/leaf1-DC2.cfg
leaf2-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.122
# startup-config: configs/leaf2-DC2.cfg
leaf3-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.123
# startup-config: configs/leaf3-DC2.cfg
leaf4-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.124
# startup-config: configs/leaf4-DC2.cfg
# ==========================================
# DC2 - BORDER LEAF LAYER
# ==========================================
borderleaf1-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.131
# startup-config: configs/borderleaf1-DC2.cfg
borderleaf2-DC2:
kind: arista_ceos
mgmt-ipv4: 192.168.0.132
# startup-config: configs/borderleaf2-DC2.cfg
# ==========================================
# DCI SWITCH (Data Center Interconnect)
# ==========================================
DCI:
kind: arista_ceos
mgmt-ipv4: 192.168.0.50
# startup-config: configs/DCI.cfg
# ==========================================
# HOST DEVICES
# Using Linux containers as hosts
# ==========================================
host1-DC1:
kind: linux
mgmt-ipv4: 192.168.0.51
image: alpine:latest
exec:
- ip link add bond0 type bond mode 802.3ad
- ip link set eth1 down
- ip link set eth2 down
- ip link set eth1 master bond0
- ip link set eth2 master bond0
- ip link set bond0 up
- ip link set eth1 up
- ip link set eth2 up
host2-DC1:
kind: linux
mgmt-ipv4: 192.168.0.52
image: alpine:latest
exec:
- ip link add bond0 type bond mode 802.3ad
- ip link set eth1 down
- ip link set eth2 down
- ip link set eth1 master bond0
- ip link set eth2 master bond0
- ip link set bond0 up
- ip link set eth1 up
- ip link set eth2 up
host1-DC2:
kind: linux
mgmt-ipv4: 192.168.0.151
image: alpine:latest
exec:
- ip link add bond0 type bond mode 802.3ad
- ip link set eth1 down
- ip link set eth2 down
- ip link set eth1 master bond0
- ip link set eth2 master bond0
- ip link set bond0 up
- ip link set eth1 up
- ip link set eth2 up
host2-DC2:
kind: linux
mgmt-ipv4: 192.168.0.152
image: alpine:latest
exec:
- ip link add bond0 type bond mode 802.3ad
- ip link set eth1 down
- ip link set eth2 down
- ip link set eth1 master bond0
- ip link set eth2 master bond0
- ip link set bond0 up
- ip link set eth1 up
- ip link set eth2 up
links:
# ==========================================
# DC1 - SPINE to LEAF Connections
# ==========================================
# Spine1-DC1 to leafs
- endpoints: ["spine1-DC1:eth2", "leaf1-DC1:eth3"]
- endpoints: ["spine1-DC1:eth3", "leaf2-DC1:eth3"]
- endpoints: ["spine1-DC1:eth4", "leaf3-DC1:eth3"]
- endpoints: ["spine1-DC1:eth5", "leaf4-DC1:eth3"]
- endpoints: ["spine1-DC1:eth6", "borderleaf1-DC1:eth3"]
- endpoints: ["spine1-DC1:eth7", "borderleaf2-DC1:eth3"]
# Spine2-DC1 to leafs
- endpoints: ["spine2-DC1:eth2", "leaf1-DC1:eth4"]
- endpoints: ["spine2-DC1:eth3", "leaf2-DC1:eth4"]
- endpoints: ["spine2-DC1:eth4", "leaf3-DC1:eth4"]
- endpoints: ["spine2-DC1:eth5", "leaf4-DC1:eth4"]
- endpoints: ["spine2-DC1:eth6", "borderleaf1-DC1:eth4"]
- endpoints: ["spine2-DC1:eth7", "borderleaf2-DC1:eth4"]
# Spine3-DC1 to leafs
- endpoints: ["spine3-DC1:eth2", "leaf1-DC1:eth5"]
- endpoints: ["spine3-DC1:eth3", "leaf2-DC1:eth5"]
- endpoints: ["spine3-DC1:eth4", "leaf3-DC1:eth5"]
- endpoints: ["spine3-DC1:eth5", "leaf4-DC1:eth5"]
- endpoints: ["spine3-DC1:eth6", "borderleaf1-DC1:eth5"]
- endpoints: ["spine3-DC1:eth7", "borderleaf2-DC1:eth5"]
# ==========================================
# DC1 - MLAG Peer Links
# ==========================================
- endpoints: ["leaf1-DC1:eth1", "leaf2-DC1:eth1"]
- endpoints: ["leaf1-DC1:eth2", "leaf2-DC1:eth2"]
- endpoints: ["leaf3-DC1:eth1", "leaf4-DC1:eth1"]
- endpoints: ["leaf3-DC1:eth2", "leaf4-DC1:eth2"]
- endpoints: ["borderleaf1-DC1:eth1", "borderleaf2-DC1:eth1"]
- endpoints: ["borderleaf1-DC1:eth2", "borderleaf2-DC1:eth2"]
# ==========================================
# DC2 - SPINE to LEAF Connections
# ==========================================
# Spine1-DC2 to leafs
- endpoints: ["spine1-DC2:eth2", "leaf1-DC2:eth3"]
- endpoints: ["spine1-DC2:eth3", "leaf2-DC2:eth3"]
- endpoints: ["spine1-DC2:eth4", "leaf3-DC2:eth3"]
- endpoints: ["spine1-DC2:eth5", "leaf4-DC2:eth3"]
- endpoints: ["spine1-DC2:eth6", "borderleaf1-DC2:eth3"]
- endpoints: ["spine1-DC2:eth7", "borderleaf2-DC2:eth3"]
# Spine2-DC2 to leafs
- endpoints: ["spine2-DC2:eth2", "leaf1-DC2:eth4"]
- endpoints: ["spine2-DC2:eth3", "leaf2-DC2:eth4"]
- endpoints: ["spine2-DC2:eth4", "leaf3-DC2:eth4"]
- endpoints: ["spine2-DC2:eth5", "leaf4-DC2:eth4"]
- endpoints: ["spine2-DC2:eth6", "borderleaf1-DC2:eth4"]
- endpoints: ["spine2-DC2:eth7", "borderleaf2-DC2:eth4"]
# Spine3-DC2 to leafs
- endpoints: ["spine3-DC2:eth2", "leaf1-DC2:eth5"]
- endpoints: ["spine3-DC2:eth3", "leaf2-DC2:eth5"]
- endpoints: ["spine3-DC2:eth4", "leaf3-DC2:eth5"]
- endpoints: ["spine3-DC2:eth5", "leaf4-DC2:eth5"]
- endpoints: ["spine3-DC2:eth6", "borderleaf1-DC2:eth5"]
- endpoints: ["spine3-DC2:eth7", "borderleaf2-DC2:eth5"]
# ==========================================
# DC2 - MLAG Peer Links
# ==========================================
- endpoints: ["leaf1-DC2:eth1", "leaf2-DC2:eth1"]
- endpoints: ["leaf1-DC2:eth2", "leaf2-DC2:eth2"]
- endpoints: ["leaf3-DC2:eth1", "leaf4-DC2:eth1"]
- endpoints: ["leaf3-DC2:eth2", "leaf4-DC2:eth2"]
- endpoints: ["borderleaf1-DC2:eth1", "borderleaf2-DC2:eth1"]
- endpoints: ["borderleaf1-DC2:eth2", "borderleaf2-DC2:eth2"]
# ==========================================
# DCI Links (Border Leaf to DCI)
# ==========================================
- endpoints: ["borderleaf1-DC1:eth12", "DCI:eth1"]
- endpoints: ["borderleaf2-DC1:eth12", "DCI:eth2"]
- endpoints: ["borderleaf1-DC2:eth12", "DCI:eth3"]
- endpoints: ["borderleaf2-DC2:eth12", "DCI:eth4"]
# ==========================================
# Host Connections (MLAG dual-homed)
# ==========================================
# Host1-DC1 to leaf1-DC1 and leaf2-DC1
- endpoints: ["leaf1-DC1:eth7", "host1-DC1:eth1"]
- endpoints: ["leaf2-DC1:eth7", "host1-DC1:eth2"]
# Host2-DC1 to leaf3-DC1 and leaf4-DC1
- endpoints: ["leaf3-DC1:eth7", "host2-DC1:eth1"]
- endpoints: ["leaf4-DC1:eth7", "host2-DC1:eth2"]
# Host1-DC2 to leaf1-DC2 and leaf2-DC2
- endpoints: ["leaf1-DC2:eth7", "host1-DC2:eth1"]
- endpoints: ["leaf2-DC2:eth7", "host1-DC2:eth2"]
# Host2-DC2 to leaf3-DC2 and leaf4-DC2
- endpoints: ["leaf3-DC2:eth7", "host2-DC2:eth1"]
- endpoints: ["leaf4-DC2:eth7", "host2-DC2:eth2"]