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 (Aggregation/Distribution) # ========================================== 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 (DCI Gateway) # ========================================== 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 # ========================================== # DC1 - ACCESS LAYER (Rack/Bay Switches) # Each bay/rack gets 1 access switch # ========================================== access1-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.71 # startup-config: configs/access1-DC1.cfg access2-DC1: kind: arista_ceos mgmt-ipv4: 10.255.0.72 # startup-config: configs/access2-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 (Aggregation/Distribution) # ========================================== 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 (DCI Gateway) # ========================================== 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 # ========================================== # DC2 - ACCESS LAYER (Rack/Bay Switches) # Each bay/rack gets 1 access switch # ========================================== access1-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.81 # startup-config: configs/access1-DC2.cfg access2-DC2: kind: arista_ceos mgmt-ipv4: 10.255.0.82 # startup-config: configs/access2-DC2.cfg # ========================================== # DCI SWITCH (Data Center Interconnect) # ========================================== DCI: kind: arista_ceos mgmt-ipv4: 10.255.0.100 # startup-config: configs/DCI.cfg # ========================================== # HOST DEVICES - DC1 # Connected to access switches (1 per rack/bay) # ========================================== host1-DC1: kind: linux mgmt-ipv4: 10.255.0.201 image: alpine:latest host2-DC1: kind: linux mgmt-ipv4: 10.255.0.202 image: alpine:latest # ========================================== # HOST DEVICES - DC2 # Connected to access switches (1 per rack/bay) # ========================================== host1-DC2: kind: linux mgmt-ipv4: 10.255.0.211 image: alpine:latest host2-DC2: kind: linux mgmt-ipv4: 10.255.0.212 image: alpine:latest links: # ========================================== # DC1 - SPINE to LEAF Connections (Underlay) # ========================================== # 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 (Leaf Layer) # ========================================== - 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"] # ========================================== # DC1 - LEAF to ACCESS Connections # Access switches dual-homed to MLAG leaf pairs # ========================================== # access1-DC1 connects to leaf1-DC1 and leaf2-DC1 (MLAG) - endpoints: ["leaf1-DC1:eth7", "access1-DC1:eth1"] - endpoints: ["leaf2-DC1:eth7", "access1-DC1:eth2"] # access2-DC1 connects to leaf3-DC1 and leaf4-DC1 (MLAG) - endpoints: ["leaf3-DC1:eth7", "access2-DC1:eth1"] - endpoints: ["leaf4-DC1:eth7", "access2-DC1:eth2"] # ========================================== # DC1 - ACCESS to HOST Connections # Hosts connect to their local access switch # ========================================== - endpoints: ["access1-DC1:eth10", "host1-DC1:eth1"] - endpoints: ["access2-DC1:eth10", "host2-DC1:eth1"] # ========================================== # DC2 - SPINE to LEAF Connections (Underlay) # ========================================== # 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 (Leaf Layer) # ========================================== - 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"] # ========================================== # DC2 - LEAF to ACCESS Connections # Access switches dual-homed to MLAG leaf pairs # ========================================== # access1-DC2 connects to leaf1-DC2 and leaf2-DC2 (MLAG) - endpoints: ["leaf1-DC2:eth7", "access1-DC2:eth1"] - endpoints: ["leaf2-DC2:eth7", "access1-DC2:eth2"] # access2-DC2 connects to leaf3-DC2 and leaf4-DC2 (MLAG) - endpoints: ["leaf3-DC2:eth7", "access2-DC2:eth1"] - endpoints: ["leaf4-DC2:eth7", "access2-DC2:eth2"] # ========================================== # DC2 - ACCESS to HOST Connections # Hosts connect to their local access switch # ========================================== - endpoints: ["access1-DC2:eth10", "host1-DC2:eth1"] - endpoints: ["access2-DC2:eth10", "host2-DC2:eth1"] # ========================================== # 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"]