name: arista-l5-dual-dc mgmt: network: arista-mgmt ipv4-subnet: 10.255.0.0/24 topology: kinds: arista_ceos: image: ceos:latest nodes: # ========================================== # DC1 - SPINE LAYER # ========================================== spine1-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.11 # startup-config: configs/spine1-DC1.cfg spine2-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.12 # startup-config: configs/spine2-DC1.cfg spine3-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.13 # startup-config: configs/spine3-DC1.cfg # ========================================== # DC1 - LEAF LAYER # ========================================== leaf1-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.21 # startup-config: configs/leaf1-DC1.cfg leaf2-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.22 # startup-config: configs/leaf2-DC1.cfg leaf3-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.23 # startup-config: configs/leaf3-DC1.cfg leaf4-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.24 # startup-config: configs/leaf4-DC1.cfg # ========================================== # DC1 - BORDER LEAF LAYER # ========================================== borderleaf1-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.31 # startup-config: configs/borderleaf1-DC1.cfg borderleaf2-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.32 # startup-config: configs/borderleaf2-DC1.cfg # ========================================== # DC2 - SPINE LAYER # ========================================== spine1-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.41 # startup-config: configs/spine1-DC2.cfg spine2-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.42 # startup-config: configs/spine2-DC2.cfg spine3-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.43 # startup-config: configs/spine3-DC2.cfg # ========================================== # DC2 - LEAF LAYER # ========================================== leaf1-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.51 # startup-config: configs/leaf1-DC2.cfg leaf2-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.52 # startup-config: configs/leaf2-DC2.cfg leaf3-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.53 # startup-config: configs/leaf3-DC2.cfg leaf4-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.54 # startup-config: configs/leaf4-DC2.cfg # ========================================== # DC2 - BORDER LEAF LAYER # ========================================== borderleaf1-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.61 # startup-config: configs/borderleaf1-DC2.cfg borderleaf2-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.62 # startup-config: configs/borderleaf2-DC2.cfg # ========================================== # DCI SWITCH (Data Center Interconnect) # ========================================== DCI: kind: arista_ceos mgmt-ipv4: 10.255.0.100 # startup-config: configs/DCI.cfg # ========================================== # HOST DEVICES # Using Linux containers as hosts # ========================================== host1-DC1: kind: linux mgmt-ipv4: 10.255.0.201 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: 10.255.0.202 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: 10.255.0.211 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: 10.255.0.212 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"]