DC fabric: spine/leaf/border-leaf/access/host -> dc-spine, dc-leaf, dc-border-leaf, dc-access, dc-server. Campus border leafs flipped from border-leaf-campus to campus-border-leaf for consistency. Core, campus spines/leafs/access/hosts unchanged. Updates topology, annotations, all configs (hostnames + peer descriptions), host interface files, README, TROUBLESHOOTING, END_TO_END_TESTING, and the SVG diagram.
402 lines
15 KiB
YAML
402 lines
15 KiB
YAML
name: arista-evpn-fabric
|
|
|
|
mgmt:
|
|
network: evpn-mgmt
|
|
ipv4-subnet: 172.16.0.0/24
|
|
ipv4-gw: 172.16.0.254
|
|
|
|
topology:
|
|
kinds:
|
|
arista_ceos:
|
|
image: gitea.arnodo.fr/damien/ceos:4.36.0F
|
|
|
|
nodes:
|
|
# =====================================================
|
|
# DATACENTER FABRIC
|
|
# =====================================================
|
|
|
|
# DC Spine Switches (AS 65000)
|
|
dc-spine1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.1
|
|
startup-config: configs/dc-spine1.cfg
|
|
|
|
dc-spine2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.2
|
|
startup-config: configs/dc-spine2.cfg
|
|
|
|
# DC Leaf Switches - VTEP1 (AS 65001)
|
|
dc-leaf1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.25
|
|
startup-config: configs/dc-leaf1.cfg
|
|
|
|
dc-leaf2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.50
|
|
startup-config: configs/dc-leaf2.cfg
|
|
|
|
# DC Leaf Switches - VTEP2 (AS 65002)
|
|
dc-leaf3:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.27
|
|
startup-config: configs/dc-leaf3.cfg
|
|
|
|
dc-leaf4:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.28
|
|
startup-config: configs/dc-leaf4.cfg
|
|
|
|
# DC Leaf Switches - VTEP3 (AS 65003)
|
|
dc-leaf5:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.29
|
|
startup-config: configs/dc-leaf5.cfg
|
|
|
|
dc-leaf6:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.30
|
|
startup-config: configs/dc-leaf6.cfg
|
|
|
|
# DC Leaf Switches - VTEP4 (AS 65004)
|
|
dc-leaf7:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.31
|
|
startup-config: configs/dc-leaf7.cfg
|
|
|
|
dc-leaf8:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.32
|
|
startup-config: configs/dc-leaf8.cfg
|
|
|
|
# DC Border Leafs - MLAG pair (AS 65005)
|
|
dc-border-leaf1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.3
|
|
startup-config: configs/dc-border-leaf1.cfg
|
|
|
|
dc-border-leaf2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.4
|
|
startup-config: configs/dc-border-leaf2.cfg
|
|
|
|
# DC Access Switches - L2 only
|
|
dc-access1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.41
|
|
startup-config: configs/dc-access1.cfg
|
|
|
|
dc-access2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.42
|
|
startup-config: configs/dc-access2.cfg
|
|
|
|
dc-access3:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.43
|
|
startup-config: configs/dc-access3.cfg
|
|
|
|
dc-access4:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.44
|
|
startup-config: configs/dc-access4.cfg
|
|
|
|
# DC Host devices - dual-homed with LACP bonding
|
|
dc-server1:
|
|
kind: linux
|
|
mgmt-ipv4: 172.16.0.101
|
|
image: ghcr.io/hellt/network-multitool
|
|
cap-add:
|
|
- NET_ADMIN
|
|
exec:
|
|
- ip link add bond0 type bond mode 802.3ad
|
|
- ip link set dev bond0 type bond xmit_hash_policy layer3+4
|
|
- ip link set dev eth1 down
|
|
- ip link set dev eth2 down
|
|
- ip link set eth1 master bond0
|
|
- ip link set eth2 master bond0
|
|
- ip link set dev eth1 up
|
|
- ip link set dev eth2 up
|
|
- ip link set dev bond0 type bond lacp_rate fast
|
|
- ip link set dev bond0 up
|
|
- ip link add link bond0 name bond0.40 type vlan id 40
|
|
- ip link set bond0.40 up
|
|
- ip addr add 10.40.40.101/24 dev bond0.40
|
|
|
|
dc-server2:
|
|
kind: linux
|
|
mgmt-ipv4: 172.16.0.102
|
|
image: ghcr.io/hellt/network-multitool
|
|
cap-add:
|
|
- NET_ADMIN
|
|
exec:
|
|
- ip link add bond0 type bond mode 802.3ad
|
|
- ip link set dev bond0 type bond xmit_hash_policy layer3+4
|
|
- ip link set dev eth1 down
|
|
- ip link set dev eth2 down
|
|
- ip link set eth1 master bond0
|
|
- ip link set eth2 master bond0
|
|
- ip link set dev eth1 up
|
|
- ip link set dev eth2 up
|
|
- ip link set dev bond0 type bond lacp_rate fast
|
|
- ip link set dev bond0 up
|
|
- ip link add link bond0 name bond0.34 type vlan id 34
|
|
- ip link set bond0.34 up
|
|
- ip addr add 10.34.34.102/24 dev bond0.34
|
|
- ip route add 10.78.78.0/24 via 10.34.34.1
|
|
- ip route add 10.60.0.0/16 via 10.34.34.1
|
|
|
|
dc-server3:
|
|
kind: linux
|
|
mgmt-ipv4: 172.16.0.103
|
|
image: ghcr.io/hellt/network-multitool
|
|
cap-add:
|
|
- NET_ADMIN
|
|
exec:
|
|
- ip link add bond0 type bond mode 802.3ad
|
|
- ip link set dev bond0 type bond xmit_hash_policy layer3+4
|
|
- ip link set dev eth1 down
|
|
- ip link set dev eth2 down
|
|
- ip link set eth1 master bond0
|
|
- ip link set eth2 master bond0
|
|
- ip link set dev eth1 up
|
|
- ip link set dev eth2 up
|
|
- ip link set dev bond0 type bond lacp_rate fast
|
|
- ip link set dev bond0 up
|
|
- ip link add link bond0 name bond0.40 type vlan id 40
|
|
- ip link set bond0.40 up
|
|
- ip addr add 10.40.40.103/24 dev bond0.40
|
|
|
|
dc-server4:
|
|
kind: linux
|
|
mgmt-ipv4: 172.16.0.104
|
|
image: ghcr.io/hellt/network-multitool
|
|
cap-add:
|
|
- NET_ADMIN
|
|
binds:
|
|
- hosts/dc-server4_interfaces:/etc/network/interfaces
|
|
exec:
|
|
- ip link add bond0 type bond mode 802.3ad
|
|
- ip link set dev bond0 type bond xmit_hash_policy layer3+4
|
|
- ip link set dev eth1 down
|
|
- ip link set dev eth2 down
|
|
- ip link set eth1 master bond0
|
|
- ip link set eth2 master bond0
|
|
- ip link set dev eth1 up
|
|
- ip link set dev eth2 up
|
|
- ip link set dev bond0 type bond lacp_rate fast
|
|
- ip link set dev bond0 up
|
|
- ip link add link bond0 name bond0.78 type vlan id 78
|
|
- ip link set bond0.78 up
|
|
- ip addr add 10.78.78.104/24 dev bond0.78
|
|
- ip route add 10.34.34.0/24 via 10.78.78.1
|
|
- ip route add 10.60.0.0/16 via 10.78.78.1
|
|
|
|
# =====================================================
|
|
# CORE L3 (inter-fabric transit)
|
|
# =====================================================
|
|
|
|
# Core routers (AS 65500, iBGP between them)
|
|
core1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.10
|
|
startup-config: configs/core1.cfg
|
|
|
|
core2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.11
|
|
startup-config: configs/core2.cfg
|
|
|
|
# =====================================================
|
|
# CAMPUS FABRIC
|
|
# =====================================================
|
|
|
|
# Campus Spines (AS 66000)
|
|
campus-spine1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.20
|
|
startup-config: configs/campus-spine1.cfg
|
|
|
|
campus-spine2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.21
|
|
startup-config: configs/campus-spine2.cfg
|
|
|
|
# Campus Border Leafs - MLAG pair (AS 66005)
|
|
campus-border-leaf1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.22
|
|
startup-config: configs/campus-border-leaf1.cfg
|
|
|
|
campus-border-leaf2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.23
|
|
startup-config: configs/campus-border-leaf2.cfg
|
|
|
|
# Campus Leafs - VTEP1 (AS 66001)
|
|
campus-leaf1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.51
|
|
startup-config: configs/campus-leaf1.cfg
|
|
|
|
campus-leaf2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.52
|
|
startup-config: configs/campus-leaf2.cfg
|
|
|
|
# Campus Leafs - VTEP2 (AS 66002)
|
|
campus-leaf3:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.53
|
|
startup-config: configs/campus-leaf3.cfg
|
|
|
|
campus-leaf4:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.54
|
|
startup-config: configs/campus-leaf4.cfg
|
|
|
|
# Campus Access switches - L2 only
|
|
campus-access1:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.61
|
|
startup-config: configs/campus-access1.cfg
|
|
|
|
campus-access2:
|
|
kind: arista_ceos
|
|
mgmt-ipv4: 172.16.0.62
|
|
startup-config: configs/campus-access2.cfg
|
|
|
|
# Campus Hosts - single-attached to access switch (enterprise user endpoint pattern)
|
|
campus-host1:
|
|
kind: linux
|
|
mgmt-ipv4: 172.16.0.105
|
|
image: ghcr.io/hellt/network-multitool
|
|
cap-add:
|
|
- NET_ADMIN
|
|
binds:
|
|
- hosts/campus-host1_interfaces:/etc/network/interfaces
|
|
exec:
|
|
- ifup eth1
|
|
|
|
campus-host2:
|
|
kind: linux
|
|
mgmt-ipv4: 172.16.0.106
|
|
image: ghcr.io/hellt/network-multitool
|
|
cap-add:
|
|
- NET_ADMIN
|
|
binds:
|
|
- hosts/campus-host2_interfaces:/etc/network/interfaces
|
|
exec:
|
|
- ifup eth1
|
|
|
|
links:
|
|
# =====================================================
|
|
# DATACENTER FABRIC LINKS
|
|
# =====================================================
|
|
|
|
# Spine1 to Leaf/Border-Leaf connections (underlay)
|
|
- endpoints: ["dc-spine1:eth1", "dc-leaf1:eth11"]
|
|
- endpoints: ["dc-spine1:eth2", "dc-leaf2:eth11"]
|
|
- endpoints: ["dc-spine1:eth3", "dc-leaf3:eth11"]
|
|
- endpoints: ["dc-spine1:eth4", "dc-leaf4:eth11"]
|
|
- endpoints: ["dc-spine1:eth5", "dc-leaf5:eth11"]
|
|
- endpoints: ["dc-spine1:eth6", "dc-leaf6:eth11"]
|
|
- endpoints: ["dc-spine1:eth7", "dc-leaf7:eth11"]
|
|
- endpoints: ["dc-spine1:eth8", "dc-leaf8:eth11"]
|
|
- endpoints: ["dc-spine1:eth9", "dc-border-leaf1:eth11"]
|
|
- endpoints: ["dc-spine1:eth10", "dc-border-leaf2:eth11"]
|
|
|
|
# Spine2 to Leaf/Border-Leaf connections (underlay)
|
|
- endpoints: ["dc-spine2:eth1", "dc-leaf1:eth12"]
|
|
- endpoints: ["dc-spine2:eth2", "dc-leaf2:eth12"]
|
|
- endpoints: ["dc-spine2:eth3", "dc-leaf3:eth12"]
|
|
- endpoints: ["dc-spine2:eth4", "dc-leaf4:eth12"]
|
|
- endpoints: ["dc-spine2:eth5", "dc-leaf5:eth12"]
|
|
- endpoints: ["dc-spine2:eth6", "dc-leaf6:eth12"]
|
|
- endpoints: ["dc-spine2:eth7", "dc-leaf7:eth12"]
|
|
- endpoints: ["dc-spine2:eth8", "dc-leaf8:eth12"]
|
|
- endpoints: ["dc-spine2:eth9", "dc-border-leaf1:eth12"]
|
|
- endpoints: ["dc-spine2:eth10", "dc-border-leaf2:eth12"]
|
|
|
|
# DC MLAG Peer Links (leaf pairs + border-leaf pair)
|
|
- endpoints: ["dc-leaf1:eth10", "dc-leaf2:eth10"]
|
|
- endpoints: ["dc-leaf3:eth10", "dc-leaf4:eth10"]
|
|
- endpoints: ["dc-leaf5:eth10", "dc-leaf6:eth10"]
|
|
- endpoints: ["dc-leaf7:eth10", "dc-leaf8:eth10"]
|
|
- endpoints: ["dc-border-leaf1:eth10", "dc-border-leaf2:eth10"]
|
|
|
|
# DC Access switch uplinks to leaf MLAG pairs (dual-homed via LACP)
|
|
- endpoints: ["dc-leaf1:eth1", "dc-access1:eth1"]
|
|
- endpoints: ["dc-leaf2:eth1", "dc-access1:eth2"]
|
|
- endpoints: ["dc-leaf3:eth1", "dc-access2:eth1"]
|
|
- endpoints: ["dc-leaf4:eth1", "dc-access2:eth2"]
|
|
- endpoints: ["dc-leaf5:eth1", "dc-access3:eth1"]
|
|
- endpoints: ["dc-leaf6:eth1", "dc-access3:eth2"]
|
|
- endpoints: ["dc-leaf7:eth1", "dc-access4:eth1"]
|
|
- endpoints: ["dc-leaf8:eth1", "dc-access4:eth2"]
|
|
|
|
# DC Host connections to access switches (dual-homed via LACP)
|
|
- endpoints: ["dc-access1:eth3", "dc-server1:eth1"]
|
|
- endpoints: ["dc-access1:eth4", "dc-server1:eth2"]
|
|
- endpoints: ["dc-access2:eth3", "dc-server2:eth1"]
|
|
- endpoints: ["dc-access2:eth4", "dc-server2:eth2"]
|
|
- endpoints: ["dc-access3:eth3", "dc-server3:eth1"]
|
|
- endpoints: ["dc-access3:eth4", "dc-server3:eth2"]
|
|
- endpoints: ["dc-access4:eth3", "dc-server4:eth1"]
|
|
- endpoints: ["dc-access4:eth4", "dc-server4:eth2"]
|
|
|
|
# =====================================================
|
|
# CORE INTERCONNECT (DC Border Leafs <-> Core <-> Campus Border Leafs)
|
|
# =====================================================
|
|
|
|
# DC Border Leafs to Core routers (4 links)
|
|
- endpoints: ["dc-border-leaf1:eth13", "core1:eth1"]
|
|
- endpoints: ["dc-border-leaf1:eth14", "core2:eth1"]
|
|
- endpoints: ["dc-border-leaf2:eth13", "core1:eth2"]
|
|
- endpoints: ["dc-border-leaf2:eth14", "core2:eth2"]
|
|
|
|
# Campus Border Leafs to Core routers (4 links)
|
|
- endpoints: ["campus-border-leaf1:eth13", "core1:eth3"]
|
|
- endpoints: ["campus-border-leaf1:eth14", "core2:eth3"]
|
|
- endpoints: ["campus-border-leaf2:eth13", "core1:eth4"]
|
|
- endpoints: ["campus-border-leaf2:eth14", "core2:eth4"]
|
|
|
|
# Core routers interconnect
|
|
- endpoints: ["core1:eth5", "core2:eth5"]
|
|
|
|
# =====================================================
|
|
# CAMPUS FABRIC LINKS
|
|
# =====================================================
|
|
|
|
# Campus Spine1 to Leafs/Border-Leafs (underlay)
|
|
- endpoints: ["campus-spine1:eth1", "campus-leaf1:eth11"]
|
|
- endpoints: ["campus-spine1:eth2", "campus-leaf2:eth11"]
|
|
- endpoints: ["campus-spine1:eth3", "campus-leaf3:eth11"]
|
|
- endpoints: ["campus-spine1:eth4", "campus-leaf4:eth11"]
|
|
- endpoints: ["campus-spine1:eth5", "campus-border-leaf1:eth11"]
|
|
- endpoints: ["campus-spine1:eth6", "campus-border-leaf2:eth11"]
|
|
|
|
# Campus Spine2 to Leafs/Border-Leafs (underlay)
|
|
- endpoints: ["campus-spine2:eth1", "campus-leaf1:eth12"]
|
|
- endpoints: ["campus-spine2:eth2", "campus-leaf2:eth12"]
|
|
- endpoints: ["campus-spine2:eth3", "campus-leaf3:eth12"]
|
|
- endpoints: ["campus-spine2:eth4", "campus-leaf4:eth12"]
|
|
- endpoints: ["campus-spine2:eth5", "campus-border-leaf1:eth12"]
|
|
- endpoints: ["campus-spine2:eth6", "campus-border-leaf2:eth12"]
|
|
|
|
# Campus MLAG Peer Links (leaf pairs + border-leaf pair)
|
|
- endpoints: ["campus-leaf1:eth10", "campus-leaf2:eth10"]
|
|
- endpoints: ["campus-leaf3:eth10", "campus-leaf4:eth10"]
|
|
- endpoints: ["campus-border-leaf1:eth10", "campus-border-leaf2:eth10"]
|
|
|
|
# Campus Access switch uplinks to leaf MLAG pairs (dual-homed via LACP)
|
|
- endpoints: ["campus-leaf1:eth1", "campus-access1:eth1"]
|
|
- endpoints: ["campus-leaf2:eth1", "campus-access1:eth2"]
|
|
- endpoints: ["campus-leaf3:eth1", "campus-access2:eth1"]
|
|
- endpoints: ["campus-leaf4:eth1", "campus-access2:eth2"]
|
|
|
|
# Campus Host connections to access switches (single link, enterprise user endpoint)
|
|
- endpoints: ["campus-access1:eth3", "campus-host1:eth1"]
|
|
- endpoints: ["campus-access2:eth3", "campus-host2:eth1"]
|