Extend topology with Core, Campus fabric and DC Border Leafs

Add node declarations and links for:
- DC Border Leaf MLAG pair (border-leaf-dc1/2)
- Core routers (core1, core2) interconnected via eth5
- Campus spines, leafs, border leafs, access switches and two hosts
- DC spine eth9/eth10 uplinks toward DC Border Leafs (underlay + EVPN)
This commit is contained in:
2026-04-18 08:38:00 +00:00
parent 12ad491bf9
commit 5e4b39d05d
3 changed files with 269 additions and 26 deletions

View File

@@ -81,6 +81,19 @@ interface Ethernet8
ip address 10.0.1.14/31 ip address 10.0.1.14/31
mtu 9214 mtu 9214
! !
! Underlay P2P interfaces to DC Border Leafs
interface Ethernet9
description border-leaf-dc1
no switchport
ip address 10.0.1.16/31
mtu 9214
!
interface Ethernet10
description border-leaf-dc2
no switchport
ip address 10.0.1.18/31
mtu 9214
!
! BGP Configuration ! BGP Configuration
router bgp 65000 router bgp 65000
router-id 10.0.250.1 router-id 10.0.250.1
@@ -98,6 +111,8 @@ router bgp 65000
neighbor 10.0.1.11 remote-as 65003 neighbor 10.0.1.11 remote-as 65003
neighbor 10.0.1.13 remote-as 65004 neighbor 10.0.1.13 remote-as 65004
neighbor 10.0.1.15 remote-as 65004 neighbor 10.0.1.15 remote-as 65004
neighbor 10.0.1.17 remote-as 65005
neighbor 10.0.1.19 remote-as 65005
! !
! EVPN peer-group configuration ! EVPN peer-group configuration
neighbor evpn peer group neighbor evpn peer group
@@ -125,6 +140,12 @@ router bgp 65000
neighbor 10.0.250.18 peer group evpn neighbor 10.0.250.18 peer group evpn
neighbor 10.0.250.18 remote-as 65004 neighbor 10.0.250.18 remote-as 65004
! !
! EVPN neighbors (to DC border-leaf loopbacks)
neighbor 10.0.250.21 peer group evpn
neighbor 10.0.250.21 remote-as 65005
neighbor 10.0.250.22 peer group evpn
neighbor 10.0.250.22 remote-as 65005
!
! IPv4 address family ! IPv4 address family
address-family ipv4 address-family ipv4
neighbor 10.0.1.1 activate neighbor 10.0.1.1 activate
@@ -135,6 +156,8 @@ router bgp 65000
neighbor 10.0.1.11 activate neighbor 10.0.1.11 activate
neighbor 10.0.1.13 activate neighbor 10.0.1.13 activate
neighbor 10.0.1.15 activate neighbor 10.0.1.15 activate
neighbor 10.0.1.17 activate
neighbor 10.0.1.19 activate
network 10.0.250.1/32 network 10.0.250.1/32
! !
! EVPN address family ! EVPN address family

View File

@@ -81,6 +81,19 @@ interface Ethernet8
ip address 10.0.2.14/31 ip address 10.0.2.14/31
mtu 9214 mtu 9214
! !
! Underlay P2P interfaces to DC Border Leafs
interface Ethernet9
description border-leaf-dc1
no switchport
ip address 10.0.2.16/31
mtu 9214
!
interface Ethernet10
description border-leaf-dc2
no switchport
ip address 10.0.2.18/31
mtu 9214
!
! BGP Configuration ! BGP Configuration
router bgp 65000 router bgp 65000
router-id 10.0.250.2 router-id 10.0.250.2
@@ -98,6 +111,8 @@ router bgp 65000
neighbor 10.0.2.11 remote-as 65003 neighbor 10.0.2.11 remote-as 65003
neighbor 10.0.2.13 remote-as 65004 neighbor 10.0.2.13 remote-as 65004
neighbor 10.0.2.15 remote-as 65004 neighbor 10.0.2.15 remote-as 65004
neighbor 10.0.2.17 remote-as 65005
neighbor 10.0.2.19 remote-as 65005
! !
! EVPN peer-group configuration ! EVPN peer-group configuration
neighbor evpn peer group neighbor evpn peer group
@@ -125,6 +140,12 @@ router bgp 65000
neighbor 10.0.250.18 peer group evpn neighbor 10.0.250.18 peer group evpn
neighbor 10.0.250.18 remote-as 65004 neighbor 10.0.250.18 remote-as 65004
! !
! EVPN neighbors (to DC border-leaf loopbacks)
neighbor 10.0.250.21 peer group evpn
neighbor 10.0.250.21 remote-as 65005
neighbor 10.0.250.22 peer group evpn
neighbor 10.0.250.22 remote-as 65005
!
! IPv4 address family ! IPv4 address family
address-family ipv4 address-family ipv4
neighbor 10.0.2.1 activate neighbor 10.0.2.1 activate
@@ -135,6 +156,8 @@ router bgp 65000
neighbor 10.0.2.11 activate neighbor 10.0.2.11 activate
neighbor 10.0.2.13 activate neighbor 10.0.2.13 activate
neighbor 10.0.2.15 activate neighbor 10.0.2.15 activate
neighbor 10.0.2.17 activate
neighbor 10.0.2.19 activate
network 10.0.250.2/32 network 10.0.250.2/32
! !
! EVPN address family ! EVPN address family

View File

@@ -11,7 +11,11 @@ topology:
image: ceos:4.35.0F image: ceos:4.35.0F
nodes: nodes:
# Spine Switches # =====================================================
# DATACENTER FABRIC
# =====================================================
# DC Spine Switches (AS 65000)
spine1: spine1:
kind: arista_ceos kind: arista_ceos
mgmt-ipv4: 172.16.0.1 mgmt-ipv4: 172.16.0.1
@@ -22,7 +26,7 @@ topology:
mgmt-ipv4: 172.16.0.2 mgmt-ipv4: 172.16.0.2
startup-config: configs/spine2.cfg startup-config: configs/spine2.cfg
# Leaf Switches - VTEP1 (AS 65001) # DC Leaf Switches - VTEP1 (AS 65001)
leaf1: leaf1:
kind: arista_ceos kind: arista_ceos
mgmt-ipv4: 172.16.0.25 mgmt-ipv4: 172.16.0.25
@@ -33,7 +37,7 @@ topology:
mgmt-ipv4: 172.16.0.50 mgmt-ipv4: 172.16.0.50
startup-config: configs/leaf2.cfg startup-config: configs/leaf2.cfg
# Leaf Switches - VTEP2 (AS 65002) # DC Leaf Switches - VTEP2 (AS 65002)
leaf3: leaf3:
kind: arista_ceos kind: arista_ceos
mgmt-ipv4: 172.16.0.27 mgmt-ipv4: 172.16.0.27
@@ -44,7 +48,7 @@ topology:
mgmt-ipv4: 172.16.0.28 mgmt-ipv4: 172.16.0.28
startup-config: configs/leaf4.cfg startup-config: configs/leaf4.cfg
# Leaf Switches - VTEP3 (AS 65003) # DC Leaf Switches - VTEP3 (AS 65003)
leaf5: leaf5:
kind: arista_ceos kind: arista_ceos
mgmt-ipv4: 172.16.0.29 mgmt-ipv4: 172.16.0.29
@@ -55,7 +59,7 @@ topology:
mgmt-ipv4: 172.16.0.30 mgmt-ipv4: 172.16.0.30
startup-config: configs/leaf6.cfg startup-config: configs/leaf6.cfg
# Leaf Switches - VTEP4 (AS 65004) # DC Leaf Switches - VTEP4 (AS 65004)
leaf7: leaf7:
kind: arista_ceos kind: arista_ceos
mgmt-ipv4: 172.16.0.31 mgmt-ipv4: 172.16.0.31
@@ -66,7 +70,18 @@ topology:
mgmt-ipv4: 172.16.0.32 mgmt-ipv4: 172.16.0.32
startup-config: configs/leaf8.cfg startup-config: configs/leaf8.cfg
# Access Switches - L2 only # DC Border Leafs - MLAG pair (AS 65005)
border-leaf-dc1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.3
startup-config: configs/border-leaf-dc1.cfg
border-leaf-dc2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.4
startup-config: configs/border-leaf-dc2.cfg
# DC Access Switches - L2 only
access1: access1:
kind: arista_ceos kind: arista_ceos
mgmt-ipv4: 172.16.0.41 mgmt-ipv4: 172.16.0.41
@@ -87,7 +102,7 @@ topology:
mgmt-ipv4: 172.16.0.44 mgmt-ipv4: 172.16.0.44
startup-config: configs/access4.cfg startup-config: configs/access4.cfg
# Host devices - DUAL-HOMED with LACP bonding to access switches # DC Host devices - dual-homed with LACP bonding
host1: host1:
kind: linux kind: linux
mgmt-ipv4: 172.16.0.101 mgmt-ipv4: 172.16.0.101
@@ -130,6 +145,7 @@ topology:
- ip link set bond0.34 up - ip link set bond0.34 up
- ip addr add 10.34.34.102/24 dev bond0.34 - 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.78.78.0/24 via 10.34.34.1
- ip route add 10.60.0.0/16 via 10.34.34.1
host3: host3:
kind: linux kind: linux
@@ -175,9 +191,143 @@ topology:
- ip link set bond0.78 up - ip link set bond0.78 up
- ip addr add 10.78.78.104/24 dev bond0.78 - 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.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)
border-leaf-campus1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.22
startup-config: configs/border-leaf-campus1.cfg
border-leaf-campus2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.23
startup-config: configs/border-leaf-campus2.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 - dual-homed with LACP bonding
campus-host1:
kind: linux
mgmt-ipv4: 172.16.0.105
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.50 type vlan id 50
- ip link set bond0.50 up
- ip addr add 10.50.50.101/24 dev bond0.50
- ip link add link bond0 name bond0.60 type vlan id 60
- ip link set bond0.60 up
- ip addr add 10.60.60.101/24 dev bond0.60
- ip route add 10.60.70.0/24 via 10.60.60.1
- ip route add 10.34.34.0/24 via 10.60.60.1
- ip route add 10.78.78.0/24 via 10.60.60.1
campus-host2:
kind: linux
mgmt-ipv4: 172.16.0.106
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.50 type vlan id 50
- ip link set bond0.50 up
- ip addr add 10.50.50.102/24 dev bond0.50
- ip link add link bond0 name bond0.70 type vlan id 70
- ip link set bond0.70 up
- ip addr add 10.60.70.102/24 dev bond0.70
- ip route add 10.60.60.0/24 via 10.60.70.1
- ip route add 10.34.34.0/24 via 10.60.70.1
- ip route add 10.78.78.0/24 via 10.60.70.1
links: links:
# Spine1 to Leaf connections (underlay fabric) # =====================================================
# DATACENTER FABRIC LINKS
# =====================================================
# Spine1 to Leaf/Border-Leaf connections (underlay)
- endpoints: ["spine1:eth1", "leaf1:eth11"] - endpoints: ["spine1:eth1", "leaf1:eth11"]
- endpoints: ["spine1:eth2", "leaf2:eth11"] - endpoints: ["spine1:eth2", "leaf2:eth11"]
- endpoints: ["spine1:eth3", "leaf3:eth11"] - endpoints: ["spine1:eth3", "leaf3:eth11"]
@@ -186,8 +336,10 @@ topology:
- endpoints: ["spine1:eth6", "leaf6:eth11"] - endpoints: ["spine1:eth6", "leaf6:eth11"]
- endpoints: ["spine1:eth7", "leaf7:eth11"] - endpoints: ["spine1:eth7", "leaf7:eth11"]
- endpoints: ["spine1:eth8", "leaf8:eth11"] - endpoints: ["spine1:eth8", "leaf8:eth11"]
- endpoints: ["spine1:eth9", "border-leaf-dc1:eth11"]
- endpoints: ["spine1:eth10", "border-leaf-dc2:eth11"]
# Spine2 to Leaf connections (underlay fabric) # Spine2 to Leaf/Border-Leaf connections (underlay)
- endpoints: ["spine2:eth1", "leaf1:eth12"] - endpoints: ["spine2:eth1", "leaf1:eth12"]
- endpoints: ["spine2:eth2", "leaf2:eth12"] - endpoints: ["spine2:eth2", "leaf2:eth12"]
- endpoints: ["spine2:eth3", "leaf3:eth12"] - endpoints: ["spine2:eth3", "leaf3:eth12"]
@@ -196,43 +348,88 @@ topology:
- endpoints: ["spine2:eth6", "leaf6:eth12"] - endpoints: ["spine2:eth6", "leaf6:eth12"]
- endpoints: ["spine2:eth7", "leaf7:eth12"] - endpoints: ["spine2:eth7", "leaf7:eth12"]
- endpoints: ["spine2:eth8", "leaf8:eth12"] - endpoints: ["spine2:eth8", "leaf8:eth12"]
- endpoints: ["spine2:eth9", "border-leaf-dc1:eth12"]
- endpoints: ["spine2:eth10", "border-leaf-dc2:eth12"]
# MLAG Peer Links (leaf pairs) # DC MLAG Peer Links (leaf pairs + border-leaf pair)
- endpoints: ["leaf1:eth10", "leaf2:eth10"] - endpoints: ["leaf1:eth10", "leaf2:eth10"]
- endpoints: ["leaf3:eth10", "leaf4:eth10"] - endpoints: ["leaf3:eth10", "leaf4:eth10"]
- endpoints: ["leaf5:eth10", "leaf6:eth10"] - endpoints: ["leaf5:eth10", "leaf6:eth10"]
- endpoints: ["leaf7:eth10", "leaf8:eth10"] - endpoints: ["leaf7:eth10", "leaf8:eth10"]
- endpoints: ["border-leaf-dc1:eth10", "border-leaf-dc2:eth10"]
# Access switch uplinks to leaf MLAG pairs (dual-homed via LACP) # DC Access switch uplinks to leaf MLAG pairs (dual-homed via LACP)
# access1 dual-homed to leaf1 + leaf2
- endpoints: ["leaf1:eth1", "access1:eth1"] - endpoints: ["leaf1:eth1", "access1:eth1"]
- endpoints: ["leaf2:eth1", "access1:eth2"] - endpoints: ["leaf2:eth1", "access1:eth2"]
# access2 dual-homed to leaf3 + leaf4
- endpoints: ["leaf3:eth1", "access2:eth1"] - endpoints: ["leaf3:eth1", "access2:eth1"]
- endpoints: ["leaf4:eth1", "access2:eth2"] - endpoints: ["leaf4:eth1", "access2:eth2"]
# access3 dual-homed to leaf5 + leaf6
- endpoints: ["leaf5:eth1", "access3:eth1"] - endpoints: ["leaf5:eth1", "access3:eth1"]
- endpoints: ["leaf6:eth1", "access3:eth2"] - endpoints: ["leaf6:eth1", "access3:eth2"]
# access4 dual-homed to leaf7 + leaf8
- endpoints: ["leaf7:eth1", "access4:eth1"] - endpoints: ["leaf7:eth1", "access4:eth1"]
- endpoints: ["leaf8:eth1", "access4:eth2"] - endpoints: ["leaf8:eth1", "access4:eth2"]
# Host connections to access switches (dual-homed via LACP) # DC Host connections to access switches (dual-homed via LACP)
# host1 dual-homed to access1
- endpoints: ["access1:eth3", "host1:eth1"] - endpoints: ["access1:eth3", "host1:eth1"]
- endpoints: ["access1:eth4", "host1:eth2"] - endpoints: ["access1:eth4", "host1:eth2"]
# host2 dual-homed to access2
- endpoints: ["access2:eth3", "host2:eth1"] - endpoints: ["access2:eth3", "host2:eth1"]
- endpoints: ["access2:eth4", "host2:eth2"] - endpoints: ["access2:eth4", "host2:eth2"]
# host3 dual-homed to access3
- endpoints: ["access3:eth3", "host3:eth1"] - endpoints: ["access3:eth3", "host3:eth1"]
- endpoints: ["access3:eth4", "host3:eth2"] - endpoints: ["access3:eth4", "host3:eth2"]
# host4 dual-homed to access4
- endpoints: ["access4:eth3", "host4:eth1"] - endpoints: ["access4:eth3", "host4:eth1"]
- endpoints: ["access4:eth4", "host4:eth2"] - endpoints: ["access4:eth4", "host4:eth2"]
# =====================================================
# CORE INTERCONNECT (DC Border Leafs <-> Core <-> Campus Border Leafs)
# =====================================================
# DC Border Leafs to Core routers (4 links)
- endpoints: ["border-leaf-dc1:eth13", "core1:eth1"]
- endpoints: ["border-leaf-dc1:eth14", "core2:eth1"]
- endpoints: ["border-leaf-dc2:eth13", "core1:eth2"]
- endpoints: ["border-leaf-dc2:eth14", "core2:eth2"]
# Campus Border Leafs to Core routers (4 links)
- endpoints: ["border-leaf-campus1:eth13", "core1:eth3"]
- endpoints: ["border-leaf-campus1:eth14", "core2:eth3"]
- endpoints: ["border-leaf-campus2:eth13", "core1:eth4"]
- endpoints: ["border-leaf-campus2: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", "border-leaf-campus1:eth11"]
- endpoints: ["campus-spine1:eth6", "border-leaf-campus2: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", "border-leaf-campus1:eth12"]
- endpoints: ["campus-spine2:eth6", "border-leaf-campus2: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: ["border-leaf-campus1:eth10", "border-leaf-campus2: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 (dual-homed via LACP)
- endpoints: ["campus-access1:eth3", "campus-host1:eth1"]
- endpoints: ["campus-access1:eth4", "campus-host1:eth2"]
- endpoints: ["campus-access2:eth3", "campus-host2:eth1"]
- endpoints: ["campus-access2:eth4", "campus-host2:eth2"]