Extend lab with Core, Campus fabric, and clean device naming #41

Merged
Damien merged 16 commits from feat/extend-campus-core into main 2026-04-24 08:25:17 +00:00
35 changed files with 400 additions and 400 deletions
Showing only changes of commit ef4211afe5 - Show all commits

View File

@@ -22,19 +22,19 @@ This document provides a step-by-step guide to test the EVPN VXLAN fabric after
### 1. Check MLAG Status on All Leaf Pairs
```bash
# Leaf Pair 1 (leaf1 & leaf2)
# Leaf Pair 1 (dc-leaf1 & dc-leaf2)
ssh admin@clab-arista-evpn-fabric-leaf1 "show mlag detail"
ssh admin@clab-arista-evpn-fabric-leaf2 "show mlag detail"
# Leaf Pair 2 (leaf3 & leaf4)
# Leaf Pair 2 (dc-leaf3 & dc-leaf4)
ssh admin@clab-arista-evpn-fabric-leaf3 "show mlag detail"
ssh admin@clab-arista-evpn-fabric-leaf4 "show mlag detail"
# Leaf Pair 3 (leaf5 & leaf6)
# Leaf Pair 3 (dc-leaf5 & dc-leaf6)
ssh admin@clab-arista-evpn-fabric-leaf5 "show mlag detail"
ssh admin@clab-arista-evpn-fabric-leaf6 "show mlag detail"
# Leaf Pair 4 (leaf7 & leaf8)
# Leaf Pair 4 (dc-leaf7 & dc-leaf8)
ssh admin@clab-arista-evpn-fabric-leaf7 "show mlag detail"
ssh admin@clab-arista-evpn-fabric-leaf8 "show mlag detail"
```
@@ -69,11 +69,11 @@ ssh admin@clab-arista-evpn-fabric-leaf1 "show bgp evpn summary"
#### Step 1: Verify Host Network Interfaces
```bash
# Check host1 VLAN interface
# Check dc-server1 VLAN interface
docker exec clab-arista-evpn-fabric-host1 ip -d link show bond0.40
docker exec clab-arista-evpn-fabric-host1 ip addr show bond0.40
# Check host3 VLAN interface
# Check dc-server3 VLAN interface
docker exec clab-arista-evpn-fabric-host3 ip -d link show bond0.40
docker exec clab-arista-evpn-fabric-host3 ip addr show bond0.40
```
@@ -103,12 +103,12 @@ timeout 10 docker exec clab-arista-evpn-fabric-host1 ping -c 4 10.40.40.103
# On Leaf1 - check local MAC learning
ssh admin@clab-arista-evpn-fabric-leaf1 "show mac address-table vlan 40"
# Expected: MAC from host1 should appear on Port-Channel1
# Expected: MAC from dc-server1 should appear on Port-Channel1
# On Leaf5 - check MAC learning
ssh admin@clab-arista-evpn-fabric-leaf5 "show mac address-table vlan 40"
# Expected: MAC from host3 should appear on Port-Channel1
# Expected: MAC from dc-server3 should appear on Port-Channel1
```
#### Step 5: Verify VXLAN Learning
@@ -132,8 +132,8 @@ ssh admin@clab-arista-evpn-fabric-leaf1 "show vxlan address-table"
ssh admin@clab-arista-evpn-fabric-leaf1 "show bgp evpn route-type mac-ip"
# Expected:
# - Local MAC (host1) with RD 65001:110040
# - Remote MAC (host3) with RD 65003:110040 pointing to VTEP 10.0.255.13
# - Local MAC (dc-server1) with RD 65001:110040
# - Remote MAC (dc-server3) with RD 65003:110040 pointing to VTEP 10.0.255.13
```
## L3 VXLAN Testing (VRF gold)
@@ -147,11 +147,11 @@ ssh admin@clab-arista-evpn-fabric-leaf1 "show bgp evpn route-type mac-ip"
#### Step 1: Verify Host Network Interfaces
```bash
# Check host2 VLAN interface
# Check dc-server2 VLAN interface
docker exec clab-arista-evpn-fabric-host2 ip -d link show bond0.34
docker exec clab-arista-evpn-fabric-host2 ip addr show bond0.34
# Check host4 VLAN interface
# Check dc-server4 VLAN interface
docker exec clab-arista-evpn-fabric-host4 ip -d link show bond0.78
docker exec clab-arista-evpn-fabric-host4 ip addr show bond0.78
```

114
README.md
View File

@@ -57,7 +57,7 @@ ssh admin@clab-arista-evpn-fabric-core1
ssh admin@clab-arista-evpn-fabric-campus-leaf1
# Or via docker exec
docker exec -it clab-arista-evpn-fabric-border-leaf-dc1 Cli
docker exec -it clab-arista-evpn-fabric-dc-border-leaf1 Cli
```
## 📋 Architecture
@@ -66,19 +66,19 @@ docker exec -it clab-arista-evpn-fabric-border-leaf-dc1 Cli
| Zone | Role | Nodes | AS |
| ------ | ----------------------- | ------------------------------------------------------ | ------ |
| DC | Spine | `spine1`, `spine2` | 65000 |
| DC | Leaf VTEP1 (MLAG) | `leaf1`, `leaf2` | 65001 |
| DC | Leaf VTEP2 (MLAG) | `leaf3`, `leaf4` | 65002 |
| DC | Leaf VTEP3 (MLAG) | `leaf5`, `leaf6` | 65003 |
| DC | Leaf VTEP4 (MLAG) | `leaf7`, `leaf8` | 65004 |
| DC | Border Leaf (MLAG) | `border-leaf-dc1`, `border-leaf-dc2` | 65005 |
| DC | Access (L2-only) | `access1`-`access4` | — |
| DC | Host | `host1`-`host4` | — |
| DC | Spine | `dc-spine1`, `dc-spine2` | 65000 |
| DC | Leaf VTEP1 (MLAG) | `dc-leaf1`, `dc-leaf2` | 65001 |
| DC | Leaf VTEP2 (MLAG) | `dc-leaf3`, `dc-leaf4` | 65002 |
| DC | Leaf VTEP3 (MLAG) | `dc-leaf5`, `dc-leaf6` | 65003 |
| DC | Leaf VTEP4 (MLAG) | `dc-leaf7`, `dc-leaf8` | 65004 |
| DC | Border Leaf (MLAG) | `dc-border-leaf1`, `dc-border-leaf2` | 65005 |
| DC | Access (L2-only) | `dc-access1`-`dc-access4` | — |
| DC | Host | `dc-server1`-`dc-server4` | — |
| Core | Core router | `core1`, `core2` | 65500 |
| Campus | Spine | `campus-spine1`, `campus-spine2` | 66000 |
| Campus | Leaf VTEP1 (MLAG) | `campus-leaf1`, `campus-leaf2` | 66001 |
| Campus | Leaf VTEP2 (MLAG) | `campus-leaf3`, `campus-leaf4` | 66002 |
| Campus | Border Leaf (MLAG) | `border-leaf-campus1`, `border-leaf-campus2` | 66005 |
| Campus | Border Leaf (MLAG) | `campus-border-leaf1`, `campus-border-leaf2` | 66005 |
| Campus | Access (L2-only) | `campus-access1`, `campus-access2` | — |
| Campus | Host | `campus-host1`, `campus-host2` | — |
@@ -87,10 +87,10 @@ docker exec -it clab-arista-evpn-fabric-border-leaf-dc1 Cli
| AS | Role |
| ----- | ---------------------------------- |
| 65000 | DC Spine |
| 65001 | DC VTEP1 (leaf1/2) |
| 65002 | DC VTEP2 (leaf3/4) |
| 65003 | DC VTEP3 (leaf5/6) |
| 65004 | DC VTEP4 (leaf7/8) |
| 65001 | DC VTEP1 (dc-leaf1/2) |
| 65002 | DC VTEP2 (dc-leaf3/4) |
| 65003 | DC VTEP3 (dc-leaf5/6) |
| 65004 | DC VTEP4 (dc-leaf7/8) |
| 65005 | DC Border Leaf pair |
| 65500 | Core (iBGP between core1 & core2) |
| 66000 | Campus Spine |
@@ -102,10 +102,10 @@ docker exec -it clab-arista-evpn-fabric-border-leaf-dc1 Cli
| Access Switch | Uplink Pair | VLANs | Host | Host attachment |
| --------------- | ------------------------ | -------- | -------------- | ------------------------- |
| access1 | leaf1/2 (VTEP1) | 40 | host1 | LACP Po1 (dual-homed) |
| access2 | leaf3/4 (VTEP2) | 34 | host2 | LACP Po1 (dual-homed) |
| access3 | leaf5/6 (VTEP3) | 40 | host3 | LACP Po1 (dual-homed) |
| access4 | leaf7/8 (VTEP4) | 78 | host4 | LACP Po1 (dual-homed) |
| dc-access1 | dc-leaf1/2 (VTEP1) | 40 | dc-server1 | LACP Po1 (dual-homed) |
| dc-access2 | dc-leaf3/4 (VTEP2) | 34 | dc-server2 | LACP Po1 (dual-homed) |
| dc-access3 | dc-leaf5/6 (VTEP3) | 40 | dc-server3 | LACP Po1 (dual-homed) |
| dc-access4 | dc-leaf7/8 (VTEP4) | 78 | dc-server4 | LACP Po1 (dual-homed) |
| campus-access1 | campus-leaf1/2 (VTEP1) | 60 | campus-host1 | access port (single link) |
| campus-access2 | campus-leaf3/4 (VTEP2) | 70 | campus-host2 | access port (single link) |
@@ -124,16 +124,16 @@ Host-facing ports:
| Node | IP | Node | IP |
| ------------------------- | --------------- | ------------------------- | --------------- |
| spine1 | 172.16.0.1 | campus-spine1 | 172.16.0.20 |
| spine2 | 172.16.0.2 | campus-spine2 | 172.16.0.21 |
| border-leaf-dc1 | 172.16.0.3 | border-leaf-campus1 | 172.16.0.22 |
| border-leaf-dc2 | 172.16.0.4 | border-leaf-campus2 | 172.16.0.23 |
| dc-spine1 | 172.16.0.1 | campus-spine1 | 172.16.0.20 |
| dc-spine2 | 172.16.0.2 | campus-spine2 | 172.16.0.21 |
| dc-border-leaf1 | 172.16.0.3 | campus-border-leaf1 | 172.16.0.22 |
| dc-border-leaf2 | 172.16.0.4 | campus-border-leaf2 | 172.16.0.23 |
| core1 | 172.16.0.10 | campus-leaf1-4 | 172.16.0.51-54 |
| core2 | 172.16.0.11 | campus-access1 | 172.16.0.61 |
| leaf1 | 172.16.0.25 | campus-access2 | 172.16.0.62 |
| leaf2 | 172.16.0.50 | host1-4 | 172.16.0.101-104|
| leaf3-8 | 172.16.0.27-32 | campus-host1 | 172.16.0.105 |
| access1-4 | 172.16.0.41-44 | campus-host2 | 172.16.0.106 |
| dc-leaf1 | 172.16.0.25 | campus-access2 | 172.16.0.62 |
| dc-leaf2 | 172.16.0.50 | dc-server1-4 | 172.16.0.101-104|
| dc-leaf3-8 | 172.16.0.27-32 | campus-host1 | 172.16.0.105 |
| dc-access1-4 | 172.16.0.41-44 | campus-host2 | 172.16.0.106 |
Gateway: `172.16.0.254`.
@@ -141,7 +141,7 @@ Gateway: `172.16.0.254`.
| Zone | Range | Nodes |
| ------ | ------------------- | --------------------------------------------------------------------- |
| DC | `10.0.250.0/24` | spine1 .1, spine2 .2, leaf1-8 .11-.18, BL-dc1 .21, BL-dc2 .22 |
| DC | `10.0.250.0/24` | dc-spine1 .1, dc-spine2 .2, dc-leaf1-8 .11-.18, BL-dc1 .21, BL-dc2 .22 |
| Core | `10.0.200.0/24` | core1 `10.0.200.1`, core2 `10.0.200.2` |
| Campus | `10.1.250.0/24` | campus-spine1 .1, campus-spine2 .2, campus-leaf1-4 .11-.14, BL-campus1 .21, BL-campus2 .22 |
@@ -149,21 +149,21 @@ Gateway: `172.16.0.254`.
| Fabric | VTEP | Address | Leafs |
| ------ | ------ | --------------- | ---------------------- |
| DC | VTEP1 | `10.0.255.11` | leaf1, leaf2 |
| DC | VTEP2 | `10.0.255.12` | leaf3, leaf4 |
| DC | VTEP3 | `10.0.255.13` | leaf5, leaf6 |
| DC | VTEP4 | `10.0.255.14` | leaf7, leaf8 |
| DC | BL | `10.0.255.15` | border-leaf-dc1/2 |
| DC | VTEP1 | `10.0.255.11` | dc-leaf1, dc-leaf2 |
| DC | VTEP2 | `10.0.255.12` | dc-leaf3, dc-leaf4 |
| DC | VTEP3 | `10.0.255.13` | dc-leaf5, dc-leaf6 |
| DC | VTEP4 | `10.0.255.14` | dc-leaf7, dc-leaf8 |
| DC | BL | `10.0.255.15` | dc-border-leaf1/2 |
| Campus | VTEP1 | `10.1.255.11` | campus-leaf1/2 |
| Campus | VTEP2 | `10.1.255.12` | campus-leaf3/4 |
| Campus | BL | `10.1.255.21` | border-leaf-campus1/2 |
| Campus | BL | `10.1.255.21` | campus-border-leaf1/2 |
### Underlay P2P (`/31`)
| Segment | Subnets |
| -------------------------------- | --------------------------------------- |
| DC spine1 ↔ leaf/BL | `10.0.1.0/31``10.0.1.18/31` |
| DC spine2 ↔ leaf/BL | `10.0.2.0/31``10.0.2.18/31` |
| DC dc-spine1 ↔ leaf/BL | `10.0.1.0/31``10.0.1.18/31` |
| DC dc-spine2 ↔ leaf/BL | `10.0.2.0/31``10.0.2.18/31` |
| DC MLAG iBGP SVIs (per pair) | `10.0.3.0/31`, `.2/31`, `.4/31`, `.6/31`, `.8/31` (BL) |
| DC MLAG peer-link SVIs | `10.0.199.240/31``10.0.199.246/31` |
| DC-BL ↔ Core (default, `.100`) | `10.0.4.0/31` .. `10.0.4.6/31` |
@@ -172,8 +172,8 @@ Gateway: `172.16.0.254`.
| Campus-BL ↔ Core (VRF gold) | `10.0.15.0/31` .. `10.0.15.6/31` |
| Core1 ↔ Core2 (default) | `10.0.200.128/31` |
| Core1 ↔ Core2 (VRF gold) | `10.0.200.130/31` |
| Campus spine1 ↔ leaf/BL | `10.1.1.0/31``10.1.1.10/31` |
| Campus spine2 ↔ leaf/BL | `10.1.2.0/31``10.1.2.10/31` |
| Campus dc-spine1 ↔ leaf/BL | `10.1.1.0/31``10.1.1.10/31` |
| Campus dc-spine2 ↔ leaf/BL | `10.1.2.0/31``10.1.2.10/31` |
| Campus MLAG iBGP SVIs | `10.1.3.0/31`, `.2/31`, `.4/31` |
| Campus MLAG peer-link SVIs | `10.1.199.250/31``10.1.199.254/31` |
@@ -181,10 +181,10 @@ Gateway: `172.16.0.254`.
| Host | VLAN | VRF | IP / Mask | Gateway | Purpose |
| ------------- | ---- | -------- | ----------------- | ------------ | ------------------------------ |
| host1 | 40 | default | 10.40.40.101/24 | — | DC L2 stretched (VTEP1↔VTEP3) |
| host2 | 34 | gold | 10.34.34.102/24 | 10.34.34.1 | DC L3 VRF gold |
| host3 | 40 | default | 10.40.40.103/24 | — | DC L2 stretched |
| host4 | 78 | gold | 10.78.78.104/24 | 10.78.78.1 | DC L3 VRF gold |
| dc-server1 | 40 | default | 10.40.40.101/24 | — | DC L2 stretched (VTEP1↔VTEP3) |
| dc-server2 | 34 | gold | 10.34.34.102/24 | 10.34.34.1 | DC L3 VRF gold |
| dc-server3 | 40 | default | 10.40.40.103/24 | — | DC L2 stretched |
| dc-server4 | 78 | gold | 10.78.78.104/24 | 10.78.78.1 | DC L3 VRF gold |
| campus-host1 | 60 | gold | 10.60.60.101/24 | 10.60.60.1 | Campus L3 VRF gold |
| campus-host2 | 70 | gold | 10.60.70.102/24 | 10.60.70.1 | Campus L3 VRF gold |
@@ -197,7 +197,7 @@ Gateway: `172.16.0.254`.
| VLAN | Description | VNI | Scope | RT |
| ---- | ------------------------------ | ------ | ------------------------------------------------------ | ---------- |
| 40 | DC L2 VXLAN (stretched) | 110040 | DC VTEP1 (leaf1/2) + VTEP3 (leaf5/6) | 40:110040 |
| 40 | DC L2 VXLAN (stretched) | 110040 | DC VTEP1 (dc-leaf1/2) + VTEP3 (dc-leaf5/6) | 40:110040 |
| 50 | Campus L2 VXLAN (stretched) | 110050 | Campus VTEP1 (campus-leaf1/2) + VTEP2 (campus-leaf3/4) | 50:110050 |
| 34 | DC VRF gold subnet (local) | 110034 | DC VTEP2 only (anycast GW 10.34.34.1) | 34:110034 |
| 78 | DC VRF gold subnet (local) | 110078 | DC VTEP4 only (anycast GW 10.78.78.1) | 78:110078 |
@@ -241,7 +241,7 @@ VRF `gold` is announced over EVPN Type-5 (IP prefix) inside each fabric, and **s
# DC
ssh admin@clab-arista-evpn-fabric-spine1 "show bgp evpn summary"
ssh admin@clab-arista-evpn-fabric-leaf3 "show bgp evpn summary"
ssh admin@clab-arista-evpn-fabric-border-leaf-dc1 "show bgp evpn summary"
ssh admin@clab-arista-evpn-fabric-dc-border-leaf1 "show bgp evpn summary"
# Campus
ssh admin@clab-arista-evpn-fabric-campus-spine1 "show bgp evpn summary"
@@ -272,10 +272,10 @@ show mlag interfaces detail
### Intra-DC connectivity (existing tests)
```bash
# L2 VLAN 40: host1 ↔ host3
# L2 VLAN 40: dc-server1 ↔ dc-server3
docker exec -it clab-arista-evpn-fabric-host1 ping -c 3 10.40.40.103
# L3 VRF gold (DC only): host2 ↔ host4
# L3 VRF gold (DC only): dc-server2 ↔ dc-server4
docker exec -it clab-arista-evpn-fabric-host2 ping -c 3 10.78.78.104
```
@@ -295,10 +295,10 @@ docker exec -it clab-arista-evpn-fabric-campus-host2 ping -c 3 10.60.60.101
### End-to-end Campus ↔ DC (VRF gold via Core)
```bash
# campus-host1 (10.60.60.101, VRF gold Campus) → host2 (10.34.34.102, VRF gold DC)
# campus-host1 (10.60.60.101, VRF gold Campus) → dc-server2 (10.34.34.102, VRF gold DC)
docker exec -it clab-arista-evpn-fabric-campus-host1 ping -c 3 10.34.34.102
# campus-host2 (10.60.70.102) → host4 (10.78.78.104)
# campus-host2 (10.60.70.102) → dc-server4 (10.78.78.104)
docker exec -it clab-arista-evpn-fabric-campus-host2 ping -c 3 10.78.78.104
# Reverse direction
@@ -317,10 +317,10 @@ ssh admin@clab-arista-evpn-fabric-core1 "show ip route vrf gold"
ssh admin@clab-arista-evpn-fabric-core1 "show ip bgp vrf gold"
# EVPN Type-5 on DC-BL (imported from DC fabric, redistributed from Core into EVPN)
ssh admin@clab-arista-evpn-fabric-border-leaf-dc1 "show bgp evpn route-type ip-prefix ipv4"
ssh admin@clab-arista-evpn-fabric-dc-border-leaf1 "show bgp evpn route-type ip-prefix ipv4"
# EVPN Type-5 on Campus-BL
ssh admin@clab-arista-evpn-fabric-border-leaf-campus1 "show bgp evpn route-type ip-prefix ipv4"
ssh admin@clab-arista-evpn-fabric-campus-border-leaf1 "show bgp evpn route-type ip-prefix ipv4"
```
## 📁 Repository Structure
@@ -335,20 +335,20 @@ arista-evpn-vxlan-clab/
├── assets/
│ └── arista-evpn-fabric.svg
├── configs/
│ ├── spine1.cfg, spine2.cfg
│ ├── leaf1.cfg … leaf8.cfg
│ ├── border-leaf-dc1.cfg, border-leaf-dc2.cfg
│ ├── access1.cfg … access4.cfg
│ ├── dc-spine1.cfg, dc-spine2.cfg
│ ├── dc-leaf1.cfg … dc-leaf8.cfg
│ ├── dc-border-leaf1.cfg, dc-border-leaf2.cfg
│ ├── dc-access1.cfg … dc-access4.cfg
│ ├── core1.cfg, core2.cfg
│ ├── campus-spine1.cfg, campus-spine2.cfg
│ ├── campus-leaf1.cfg … campus-leaf4.cfg
│ ├── border-leaf-campus1.cfg, border-leaf-campus2.cfg
│ ├── campus-border-leaf1.cfg, campus-border-leaf2.cfg
│ └── campus-access1.cfg, campus-access2.cfg
└── hosts/
├── README.md
├── host1_interfaces … host4_interfaces
├── campus-host1_interfaces
└── campus-host2_interfaces
├── dc-server1_interfaces … dc-server4_interfaces
├── campus-dc-server1_interfaces
└── campus-dc-server2_interfaces
```
## 🗑️ Cleanup

View File

@@ -72,7 +72,7 @@ Ethernet11 is up, line protocol is up (connected)
### 2.1 Verify MLAG Peering
**On each MLAG leaf pair (e.g., leaf1/leaf2):**
**On each MLAG leaf pair (e.g., dc-leaf1/dc-leaf2):**
```bash
# MLAG global status
@@ -173,7 +173,7 @@ Active Ports: Ethernet1
local/remote
mlag desc state local remote status
------ -------------- ------------- ----------- ------------ ---------------
1 host1 active-full Po1 Po1 up/up
1 dc-server1 active-full Po1 Po1 up/up
```
**Troubleshooting:**
@@ -528,7 +528,7 @@ Shows which remote VTEP the MAC is behind!
## End-to-End Traffic Flow
### Scenario: host1 (VTEP1) pings host3 (VTEP3) - L2 VXLAN
### Scenario: dc-server1 (VTEP1) pings dc-server3 (VTEP3) - L2 VXLAN
Both hosts in VLAN 40 (10.40.40.0/24)
@@ -536,7 +536,7 @@ Both hosts in VLAN 40 (10.40.40.0/24)
#### Step 1: Host Sends Packet
**On host1:**
**On dc-server1:**
```bash
docker exec -it clab-arista-evpn-fabric-host1 sh
@@ -558,9 +558,9 @@ ping 10.40.40.103
---
#### Step 2: Packet Arrives at leaf1 (VTEP1)
#### Step 2: Packet Arrives at dc-leaf1 (VTEP1)
**On leaf1:**
**On dc-leaf1:**
```bash
# Check Port-Channel received the packet
@@ -569,13 +569,13 @@ show interfaces Port-Channel1 | include packets
# Check MAC learning
show mac address-table dynamic vlan 40
# Should see host1's MAC on Po1
# Should see dc-server1's MAC on Po1
```
**Traffic flow:**
```
host1:bond0.40 → [802.1Q VLAN 40] → leaf1:Eth1 → Po1
dc-server1:bond0.40 → [802.1Q VLAN 40] → dc-leaf1:Eth1 → Po1
```
---
@@ -603,12 +603,12 @@ show vxlan address-table address 00c1.ab00.0033
**Encapsulation:**
```
Original: [Eth: host1→host3][IP: 10.40.40.101→103][ICMP]
Original: [Eth: dc-server1→dc-server3][IP: 10.40.40.101→103][ICMP]
VXLAN: [Outer IP: 10.0.255.11→10.0.255.13]
[Outer UDP: src=random, dst=4789]
[VXLAN Header: VNI=110040]
[Inner Eth: host1→host3][IP: 10.40.40.101→103][ICMP]
[Inner Eth: dc-server1→dc-server3][IP: 10.40.40.101→103][ICMP]
```
---
@@ -622,27 +622,27 @@ VXLAN: [Outer IP: 10.0.255.11→10.0.255.13]
show ip route 10.0.255.13
# Output:
# via 10.0.1.0, Ethernet11 (spine1)
# via 10.0.2.0, Ethernet12 (spine2)
# via 10.0.1.0, Ethernet11 (dc-spine1)
# via 10.0.2.0, Ethernet12 (dc-spine2)
```
ECMP: Packet can go via spine1 OR spine2!
ECMP: Packet can go via dc-spine1 OR dc-spine2!
**Spine forwards based on outer IP:**
```bash
# On spine1
# On dc-spine1
show ip route 10.0.255.13
# Output:
# via 10.0.1.5, Ethernet3 (leaf5)
# via 10.0.1.5, Ethernet3 (dc-leaf5)
```
---
#### Step 5: Packet Arrives at leaf5 (VTEP3)
#### Step 5: Packet Arrives at dc-leaf5 (VTEP3)
**On leaf5:**
**On dc-leaf5:**
```bash
# Check VXLAN received the packet
@@ -655,7 +655,7 @@ show interfaces Vxlan1 | include packets
```
VXLAN packet → Strip outer IP/UDP/VXLAN headers
→ Original frame: [Eth: host1→host3][IP: 10.40.40.101→103][ICMP]
→ Original frame: [Eth: dc-server1→dc-server3][IP: 10.40.40.101→103][ICMP]
```
**Leaf5 checks MAC table:**
@@ -669,13 +669,13 @@ show mac address-table address 00c1.ab00.0033
---
#### Step 6: Packet Delivered to host3
#### Step 6: Packet Delivered to dc-server3
```
leaf5:Vxlan1 → VLAN 40 → Po1 → Eth1 → host3:bond0.40
dc-leaf5:Vxlan1 → VLAN 40 → Po1 → Eth1 → dc-server3:bond0.40
```
**On host3:**
**On dc-server3:**
```bash
docker exec -it clab-arista-evpn-fabric-host3 sh
@@ -693,19 +693,19 @@ ping 10.40.40.101 # Reply should work!
│ L2 VXLAN Traffic Flow │
└─────────────────────────────────────────────────────────────────┘
host1 (10.40.40.101) host3 (10.40.40.103)
dc-server1 (10.40.40.101) dc-server3 (10.40.40.103)
│ ▲
│ 1. Send ping to 10.40.40.103 │
│ [VLAN 40 tag] │ 6. Receive reply
│ │ [VLAN 40 tag]
▼ │
leaf1:Po1 leaf5:Po1
dc-leaf1:Po1 dc-leaf5:Po1
│ ▲
│ 2. MAC lookup: │ 5. MAC lookup:
│ 00c1.ab00.0033 → Vx1 → 10.0.255.13 │ 00c1.ab00.0011 → Vx1
│ │
▼ │
leaf1:Vxlan1 leaf5:Vxlan1
dc-leaf1:Vxlan1 dc-leaf5:Vxlan1
│ ▲
│ 3. VXLAN encap: │ 4. VXLAN decap:
│ Outer: 10.0.255.11 → 10.0.255.13 │ Strip outer headers
@@ -713,7 +713,7 @@ leaf1:Vxlan1 leaf5:Vxlan1
│ Inner: original frame │
│ │
▼ │
leaf1:Eth11 ──────► spine1 ──────► leaf5:Eth11 ──────────┘
dc-leaf1:Eth11 ──────► dc-spine1 ──────► dc-leaf5:Eth11 ──────────┘
(underlay BGP routing)
```
@@ -776,7 +776,7 @@ show vxlan address-table vlan 40
**Symptoms:**
- host2 (10.34.34.102) cannot ping host4 (10.78.78.104)
- dc-server2 (10.34.34.102) cannot ping dc-server4 (10.78.78.104)
- Both in VRF gold
**Troubleshooting Steps:**
@@ -956,14 +956,14 @@ show mac address-table count
**Test L2 VXLAN (VLAN 40):**
```bash
# On host1
# On dc-server1
ping 10.40.40.103 -c 3
# On leaf1 (VTEP1)
# On dc-leaf1 (VTEP1)
show mac address-table address 00c1.ab00.0033
show vxlan address-table address 00c1.ab00.0033
# On leaf5 (VTEP3)
# On dc-leaf5 (VTEP3)
show mac address-table address 00c1.ab00.0011
show vxlan address-table address 00c1.ab00.0011
```
@@ -971,14 +971,14 @@ show vxlan address-table address 00c1.ab00.0011
**Test L3 VXLAN (VRF gold):**
```bash
# On host2
# On dc-server2
ping 10.78.78.104 -c 3
# On leaf3 (VTEP2)
# On dc-leaf3 (VTEP2)
show ip route vrf gold 10.78.78.0/24
show bgp evpn route-type ip-prefix ipv4 10.78.78.0/24
# On leaf7 (VTEP4)
# On dc-leaf7 (VTEP4)
show ip route vrf gold 10.34.34.0/24
```

View File

@@ -58,9 +58,9 @@
<!-- Campus border leafs -->
<g class="node node-border">
<rect x="160" y="400" width="110" height="34" rx="4"/>
<text x="215" y="421" text-anchor="middle">border-leaf-campus1</text>
<text x="215" y="421" text-anchor="middle">campus-border-leaf1</text>
<rect x="330" y="400" width="110" height="34" rx="4"/>
<text x="385" y="421" text-anchor="middle">border-leaf-campus2</text>
<text x="385" y="421" text-anchor="middle">campus-border-leaf2</text>
</g>
<!-- Campus access row -->
@@ -99,7 +99,7 @@
<path class="link" d="M 405 174 L 300 260"/>
<path class="link" d="M 405 174 L 400 260"/>
<!-- Campus spines -> border-leaf-campus -->
<!-- Campus spines -> campus-border-leaf -->
<path class="link" d="M 195 174 L 215 400"/>
<path class="link" d="M 195 174 L 385 400"/>
<path class="link" d="M 405 174 L 215 400"/>
@@ -146,61 +146,61 @@
<!-- DC spines row -->
<g class="node node-spine">
<rect x="1160" y="140" width="60" height="34" rx="4"/>
<text x="1190" y="161" text-anchor="middle">spine1</text>
<text x="1190" y="161" text-anchor="middle">dc-spine1</text>
<rect x="1380" y="140" width="60" height="34" rx="4"/>
<text x="1410" y="161" text-anchor="middle">spine2</text>
<text x="1410" y="161" text-anchor="middle">dc-spine2</text>
</g>
<!-- DC leafs row (8) -->
<g class="node node-leaf">
<rect x="1060" y="260" width="60" height="34" rx="4"/>
<text x="1090" y="281" text-anchor="middle">leaf1</text>
<text x="1090" y="281" text-anchor="middle">dc-leaf1</text>
<rect x="1125" y="260" width="60" height="34" rx="4"/>
<text x="1155" y="281" text-anchor="middle">leaf2</text>
<text x="1155" y="281" text-anchor="middle">dc-leaf2</text>
<rect x="1190" y="260" width="60" height="34" rx="4"/>
<text x="1220" y="281" text-anchor="middle">leaf3</text>
<text x="1220" y="281" text-anchor="middle">dc-leaf3</text>
<rect x="1255" y="260" width="60" height="34" rx="4"/>
<text x="1285" y="281" text-anchor="middle">leaf4</text>
<text x="1285" y="281" text-anchor="middle">dc-leaf4</text>
<rect x="1320" y="260" width="60" height="34" rx="4"/>
<text x="1350" y="281" text-anchor="middle">leaf5</text>
<text x="1350" y="281" text-anchor="middle">dc-leaf5</text>
<rect x="1385" y="260" width="60" height="34" rx="4"/>
<text x="1415" y="281" text-anchor="middle">leaf6</text>
<text x="1415" y="281" text-anchor="middle">dc-leaf6</text>
<rect x="1450" y="260" width="60" height="34" rx="4"/>
<text x="1480" y="281" text-anchor="middle">leaf7</text>
<text x="1480" y="281" text-anchor="middle">dc-leaf7</text>
<rect x="1515" y="260" width="60" height="34" rx="4"/>
<text x="1545" y="281" text-anchor="middle">leaf8</text>
<text x="1545" y="281" text-anchor="middle">dc-leaf8</text>
</g>
<!-- DC border leafs -->
<g class="node node-border">
<rect x="1090" y="400" width="100" height="34" rx="4"/>
<text x="1140" y="421" text-anchor="middle">border-leaf-dc1</text>
<text x="1140" y="421" text-anchor="middle">dc-border-leaf1</text>
<rect x="1260" y="400" width="100" height="34" rx="4"/>
<text x="1310" y="421" text-anchor="middle">border-leaf-dc2</text>
<text x="1310" y="421" text-anchor="middle">dc-border-leaf2</text>
</g>
<!-- DC access -->
<g class="node node-access">
<rect x="1065" y="530" width="60" height="30" rx="4"/>
<text x="1095" y="550" text-anchor="middle">access1</text>
<text x="1095" y="550" text-anchor="middle">dc-access1</text>
<rect x="1195" y="530" width="60" height="30" rx="4"/>
<text x="1225" y="550" text-anchor="middle">access2</text>
<text x="1225" y="550" text-anchor="middle">dc-access2</text>
<rect x="1325" y="530" width="60" height="30" rx="4"/>
<text x="1355" y="550" text-anchor="middle">access3</text>
<text x="1355" y="550" text-anchor="middle">dc-access3</text>
<rect x="1455" y="530" width="60" height="30" rx="4"/>
<text x="1485" y="550" text-anchor="middle">access4</text>
<text x="1485" y="550" text-anchor="middle">dc-access4</text>
</g>
<!-- DC hosts -->
<g class="node node-host">
<rect x="1065" y="640" width="60" height="30" rx="4"/>
<text x="1095" y="660" text-anchor="middle">host1</text>
<text x="1095" y="660" text-anchor="middle">dc-server1</text>
<rect x="1195" y="640" width="60" height="30" rx="4"/>
<text x="1225" y="660" text-anchor="middle">host2</text>
<text x="1225" y="660" text-anchor="middle">dc-server2</text>
<rect x="1325" y="640" width="60" height="30" rx="4"/>
<text x="1355" y="660" text-anchor="middle">host3</text>
<text x="1355" y="660" text-anchor="middle">dc-server3</text>
<rect x="1455" y="640" width="60" height="30" rx="4"/>
<text x="1485" y="660" text-anchor="middle">host4</text>
<text x="1485" y="660" text-anchor="middle">dc-server4</text>
</g>
<!-- DC labels -->
@@ -233,7 +233,7 @@
<path class="link" d="M 1410 174 L 1415 260"/>
<path class="link" d="M 1410 174 L 1480 260"/>
<path class="link" d="M 1410 174 L 1545 260"/>
<!-- spine -> border-leaf-dc -->
<!-- dc-spine -> dc-border-leaf -->
<path class="link" d="M 1190 174 L 1140 400"/>
<path class="link" d="M 1190 174 L 1310 400"/>
<path class="link" d="M 1410 174 L 1140 400"/>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,5 +1,5 @@
! Campus-Access1 Configuration
! L2-only access switch for Campus VTEP1 (campus-leaf1/leaf2)
! L2-only access switch for Campus VTEP1 (campus-leaf1/dc-leaf2)
!
hostname campus-access1
!

View File

@@ -1,5 +1,5 @@
! Campus-Access2 Configuration
! L2-only access switch for Campus VTEP2 (campus-leaf3/leaf4)
! L2-only access switch for Campus VTEP2 (campus-leaf3/dc-leaf4)
!
hostname campus-access2
!

View File

@@ -1,8 +1,8 @@
! Border-Leaf-Campus1 Configuration
! Campus Border Leaf - AS 66005 (MLAG pair with border-leaf-campus2)
! Campus-Border-Leaf1 Configuration
! Campus Border Leaf - AS 66005 (MLAG pair with campus-border-leaf2)
! Provides egress from Campus EVPN-VXLAN fabric to Core L3 network
!
hostname border-leaf-campus1
hostname campus-border-leaf1
!
! LLDP Management0
lldp management-address Management0

View File

@@ -1,8 +1,8 @@
! Border-Leaf-Campus2 Configuration
! Campus Border Leaf - AS 66005 (MLAG pair with border-leaf-campus1)
! Campus-Border-Leaf2 Configuration
! Campus Border Leaf - AS 66005 (MLAG pair with campus-border-leaf1)
! Provides egress from Campus EVPN-VXLAN fabric to Core L3 network
!
hostname border-leaf-campus2
hostname campus-border-leaf2
!
! LLDP Management0
lldp management-address Management0

View File

@@ -56,13 +56,13 @@ interface Ethernet4
!
! Underlay P2P interfaces to Campus Border Leafs
interface Ethernet5
description border-leaf-campus1
description campus-border-leaf1
no switchport
ip address 10.1.1.8/31
mtu 9214
!
interface Ethernet6
description border-leaf-campus2
description campus-border-leaf2
no switchport
ip address 10.1.1.10/31
mtu 9214

View File

@@ -56,13 +56,13 @@ interface Ethernet4
!
! Underlay P2P interfaces to Campus Border Leafs
interface Ethernet5
description border-leaf-campus1
description campus-border-leaf1
no switchport
ip address 10.1.2.8/31
mtu 9214
!
interface Ethernet6
description border-leaf-campus2
description campus-border-leaf2
no switchport
ip address 10.1.2.10/31
mtu 9214

View File

@@ -41,18 +41,18 @@ interface Loopback1
!
! Link to DC Border Leaf 1 (subinterfaced: .100 default VRF, .200 VRF gold)
interface Ethernet1
description border-leaf-dc1
description dc-border-leaf1
no switchport
mtu 9214
!
interface Ethernet1.100
description border-leaf-dc1-underlay
description dc-border-leaf1-underlay
encapsulation dot1q vlan 100
ip address 10.0.4.0/31
mtu 9214
!
interface Ethernet1.200
description border-leaf-dc1-vrf-gold
description dc-border-leaf1-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.14.0/31
@@ -60,18 +60,18 @@ interface Ethernet1.200
!
! Link to DC Border Leaf 2
interface Ethernet2
description border-leaf-dc2
description dc-border-leaf2
no switchport
mtu 9214
!
interface Ethernet2.100
description border-leaf-dc2-underlay
description dc-border-leaf2-underlay
encapsulation dot1q vlan 100
ip address 10.0.4.2/31
mtu 9214
!
interface Ethernet2.200
description border-leaf-dc2-vrf-gold
description dc-border-leaf2-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.14.2/31
@@ -79,18 +79,18 @@ interface Ethernet2.200
!
! Link to Campus Border Leaf 1
interface Ethernet3
description border-leaf-campus1
description campus-border-leaf1
no switchport
mtu 9214
!
interface Ethernet3.100
description border-leaf-campus1-underlay
description campus-border-leaf1-underlay
encapsulation dot1q vlan 100
ip address 10.0.5.0/31
mtu 9214
!
interface Ethernet3.200
description border-leaf-campus1-vrf-gold
description campus-border-leaf1-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.15.0/31
@@ -98,18 +98,18 @@ interface Ethernet3.200
!
! Link to Campus Border Leaf 2
interface Ethernet4
description border-leaf-campus2
description campus-border-leaf2
no switchport
mtu 9214
!
interface Ethernet4.100
description border-leaf-campus2-underlay
description campus-border-leaf2-underlay
encapsulation dot1q vlan 100
ip address 10.0.5.2/31
mtu 9214
!
interface Ethernet4.200
description border-leaf-campus2-vrf-gold
description campus-border-leaf2-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.15.2/31

View File

@@ -41,18 +41,18 @@ interface Loopback1
!
! Link to DC Border Leaf 1
interface Ethernet1
description border-leaf-dc1
description dc-border-leaf1
no switchport
mtu 9214
!
interface Ethernet1.100
description border-leaf-dc1-underlay
description dc-border-leaf1-underlay
encapsulation dot1q vlan 100
ip address 10.0.4.4/31
mtu 9214
!
interface Ethernet1.200
description border-leaf-dc1-vrf-gold
description dc-border-leaf1-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.14.4/31
@@ -60,18 +60,18 @@ interface Ethernet1.200
!
! Link to DC Border Leaf 2
interface Ethernet2
description border-leaf-dc2
description dc-border-leaf2
no switchport
mtu 9214
!
interface Ethernet2.100
description border-leaf-dc2-underlay
description dc-border-leaf2-underlay
encapsulation dot1q vlan 100
ip address 10.0.4.6/31
mtu 9214
!
interface Ethernet2.200
description border-leaf-dc2-vrf-gold
description dc-border-leaf2-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.14.6/31
@@ -79,18 +79,18 @@ interface Ethernet2.200
!
! Link to Campus Border Leaf 1
interface Ethernet3
description border-leaf-campus1
description campus-border-leaf1
no switchport
mtu 9214
!
interface Ethernet3.100
description border-leaf-campus1-underlay
description campus-border-leaf1-underlay
encapsulation dot1q vlan 100
ip address 10.0.5.4/31
mtu 9214
!
interface Ethernet3.200
description border-leaf-campus1-vrf-gold
description campus-border-leaf1-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.15.4/31
@@ -98,18 +98,18 @@ interface Ethernet3.200
!
! Link to Campus Border Leaf 2
interface Ethernet4
description border-leaf-campus2
description campus-border-leaf2
no switchport
mtu 9214
!
interface Ethernet4.100
description border-leaf-campus2-underlay
description campus-border-leaf2-underlay
encapsulation dot1q vlan 100
ip address 10.0.5.6/31
mtu 9214
!
interface Ethernet4.200
description border-leaf-campus2-vrf-gold
description campus-border-leaf2-vrf-gold
encapsulation dot1q vlan 200
vrf gold
ip address 10.0.15.6/31

View File

@@ -1,7 +1,7 @@
! Access1 Configuration
! L2-only access switch for VTEP1 (leaf1/leaf2)
! DC-Access1 Configuration
! L2-only access switch for VTEP1 (dc-leaf1/dc-leaf2)
!
hostname access1
hostname dc-access1
!
! LLDP Management0
lldp management-address Management0
@@ -28,11 +28,11 @@ spanning-tree edge-port bpduguard default
!
! Uplink to leaf MLAG pair (Port-Channel 10)
interface Ethernet1
description leaf1-uplink
description dc-leaf1-uplink
channel-group 10 mode active
!
interface Ethernet2
description leaf2-uplink
description dc-leaf2-uplink
channel-group 10 mode active
!
interface Port-Channel10
@@ -43,15 +43,15 @@ interface Port-Channel10
!
! Host-facing downlink (Port-Channel 1)
interface Ethernet3
description host1
description dc-server1
channel-group 1 mode active
!
interface Ethernet4
description host1
description dc-server1
channel-group 1 mode active
!
interface Port-Channel1
description host1
description dc-server1
switchport mode trunk
switchport trunk allowed vlan 40
port-channel lacp fallback timeout 5

View File

@@ -1,7 +1,7 @@
! Access2 Configuration
! L2-only access switch for VTEP2 (leaf3/leaf4)
! DC-Access2 Configuration
! L2-only access switch for VTEP2 (dc-leaf3/dc-leaf4)
!
hostname access2
hostname dc-access2
!
! LLDP Management0
lldp management-address Management0
@@ -28,11 +28,11 @@ spanning-tree edge-port bpduguard default
!
! Uplink to leaf MLAG pair (Port-Channel 10)
interface Ethernet1
description leaf3-uplink
description dc-leaf3-uplink
channel-group 10 mode active
!
interface Ethernet2
description leaf4-uplink
description dc-leaf4-uplink
channel-group 10 mode active
!
interface Port-Channel10
@@ -43,15 +43,15 @@ interface Port-Channel10
!
! Host-facing downlink (Port-Channel 1)
interface Ethernet3
description host2
description dc-server2
channel-group 1 mode active
!
interface Ethernet4
description host2
description dc-server2
channel-group 1 mode active
!
interface Port-Channel1
description host2
description dc-server2
switchport mode trunk
switchport trunk allowed vlan 34
port-channel lacp fallback timeout 5

View File

@@ -1,7 +1,7 @@
! Access3 Configuration
! L2-only access switch for VTEP3 (leaf5/leaf6)
! DC-Access3 Configuration
! L2-only access switch for VTEP3 (dc-leaf5/dc-leaf6)
!
hostname access3
hostname dc-access3
!
! LLDP Management0
lldp management-address Management0
@@ -28,11 +28,11 @@ spanning-tree edge-port bpduguard default
!
! Uplink to leaf MLAG pair (Port-Channel 10)
interface Ethernet1
description leaf5-uplink
description dc-leaf5-uplink
channel-group 10 mode active
!
interface Ethernet2
description leaf6-uplink
description dc-leaf6-uplink
channel-group 10 mode active
!
interface Port-Channel10
@@ -43,15 +43,15 @@ interface Port-Channel10
!
! Host-facing downlink (Port-Channel 1)
interface Ethernet3
description host3
description dc-server3
channel-group 1 mode active
!
interface Ethernet4
description host3
description dc-server3
channel-group 1 mode active
!
interface Port-Channel1
description host3
description dc-server3
switchport mode trunk
switchport trunk allowed vlan 40
port-channel lacp fallback timeout 5

View File

@@ -1,7 +1,7 @@
! Access4 Configuration
! L2-only access switch for VTEP4 (leaf7/leaf8)
! DC-Access4 Configuration
! L2-only access switch for VTEP4 (dc-leaf7/dc-leaf8)
!
hostname access4
hostname dc-access4
!
! LLDP Management0
lldp management-address Management0
@@ -28,11 +28,11 @@ spanning-tree edge-port bpduguard default
!
! Uplink to leaf MLAG pair (Port-Channel 10)
interface Ethernet1
description leaf7-uplink
description dc-leaf7-uplink
channel-group 10 mode active
!
interface Ethernet2
description leaf8-uplink
description dc-leaf8-uplink
channel-group 10 mode active
!
interface Port-Channel10
@@ -43,15 +43,15 @@ interface Port-Channel10
!
! Host-facing downlink (Port-Channel 1)
interface Ethernet3
description host4
description dc-server4
channel-group 1 mode active
!
interface Ethernet4
description host4
description dc-server4
channel-group 1 mode active
!
interface Port-Channel1
description host4
description dc-server4
switchport mode trunk
switchport trunk allowed vlan 78
port-channel lacp fallback timeout 5

View File

@@ -1,8 +1,8 @@
! Border-Leaf-DC1 Configuration
! DC Border Leaf - AS 65005 (MLAG pair with border-leaf-dc2)
! DC-Border-Leaf1 Configuration
! DC Border Leaf - AS 65005 (MLAG pair with dc-border-leaf2)
! Provides egress from DC EVPN-VXLAN fabric to Core L3 network
!
hostname border-leaf-dc1
hostname dc-border-leaf1
!
! LLDP Management0
lldp management-address Management0
@@ -76,13 +76,13 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.17/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.17/31
mtu 9214

View File

@@ -1,8 +1,8 @@
! Border-Leaf-DC2 Configuration
! DC Border Leaf - AS 65005 (MLAG pair with border-leaf-dc1)
! DC-Border-Leaf2 Configuration
! DC Border Leaf - AS 65005 (MLAG pair with dc-border-leaf1)
! Provides egress from DC EVPN-VXLAN fabric to Core L3 network
!
hostname border-leaf-dc2
hostname dc-border-leaf2
!
! LLDP Management0
lldp management-address Management0
@@ -76,13 +76,13 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.19/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.19/31
mtu 9214

View File

@@ -1,7 +1,7 @@
! Leaf1 Configuration
! DC-Leaf1 Configuration
! VTEP1 - AS 65001
!
hostname leaf1
hostname dc-leaf1
!
! LLDP Management0
lldp management-address Management0
@@ -67,24 +67,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.1/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.1/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access1
description dc-access1
channel-group 1 mode active
!
interface Port-Channel1
description access1
description dc-access1
switchport mode trunk
switchport trunk allowed vlan 40
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf2 Configuration
! DC-Leaf2 Configuration
! VTEP1 - AS 65001
!
hostname leaf2
hostname dc-leaf2
!
! LLDP Management0
lldp management-address Management0
@@ -67,24 +67,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.3/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.3/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access1
description dc-access1
channel-group 1 mode active
!
interface Port-Channel1
description access1
description dc-access1
switchport mode trunk
switchport trunk allowed vlan 40
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf3 Configuration
! DC-Leaf3 Configuration
! VTEP2 - AS 65002
!
hostname leaf3
hostname dc-leaf3
!
! LLDP Management0
lldp management-address Management0
@@ -80,24 +80,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.5/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.5/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access2
description dc-access2
channel-group 1 mode active
!
interface Port-Channel1
description access2
description dc-access2
switchport mode trunk
switchport trunk allowed vlan 34
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf4 Configuration
! DC-Leaf4 Configuration
! VTEP2 - AS 65002
!
hostname leaf4
hostname dc-leaf4
!
! LLDP Management0
lldp management-address Management0
@@ -80,24 +80,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.7/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.7/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access2
description dc-access2
channel-group 1 mode active
!
interface Port-Channel1
description access2
description dc-access2
switchport mode trunk
switchport trunk allowed vlan 34
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf5 Configuration
! DC-Leaf5 Configuration
! VTEP3 - AS 65003
!
hostname leaf5
hostname dc-leaf5
!
! LLDP Management0
lldp management-address Management0
@@ -68,24 +68,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.9/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.9/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access3
description dc-access3
channel-group 1 mode active
!
interface Port-Channel1
description access3
description dc-access3
switchport mode trunk
switchport trunk allowed vlan 40
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf6 Configuration
! DC-Leaf6 Configuration
! VTEP3 - AS 65003
!
hostname leaf6
hostname dc-leaf6
!
! LLDP Management0
lldp management-address Management0
@@ -67,24 +67,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.11/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.11/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access3
description dc-access3
channel-group 1 mode active
!
interface Port-Channel1
description access3
description dc-access3
switchport mode trunk
switchport trunk allowed vlan 40
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf7 Configuration
! DC-Leaf7 Configuration
! VTEP4 - AS 65004
!
hostname leaf7
hostname dc-leaf7
!
! LLDP Management0
lldp management-address Management0
@@ -79,24 +79,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.13/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.13/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access4
description dc-access4
channel-group 1 mode active
!
interface Port-Channel1
description access4
description dc-access4
switchport mode trunk
switchport trunk allowed vlan 78
mlag 1

View File

@@ -1,7 +1,7 @@
! Leaf8 Configuration
! DC-Leaf8 Configuration
! VTEP4 - AS 65004
!
hostname leaf8
hostname dc-leaf8
!
! LLDP Management0
lldp management-address Management0
@@ -79,24 +79,24 @@ interface Port-Channel999
!
! Underlay P2P interfaces to Spines
interface Ethernet11
description spine1
description dc-spine1
no switchport
ip address 10.0.1.15/31
mtu 9214
!
interface Ethernet12
description spine2
description dc-spine2
no switchport
ip address 10.0.2.15/31
mtu 9214
!
! Access-facing interface (MLAG with LACP)
interface Ethernet1
description access4
description dc-access4
channel-group 1 mode active
!
interface Port-Channel1
description access4
description dc-access4
switchport mode trunk
switchport trunk allowed vlan 78
mlag 1

View File

@@ -1,7 +1,7 @@
! Spine1 Configuration
! DC-Spine1 Configuration
! BGP EVPN Spine - AS 65000
!
hostname spine1
hostname dc-spine1
!
! LLDP Management0
lldp management-address Management0
@@ -34,62 +34,62 @@ interface Loopback0
!
! Underlay P2P interfaces to Leafs
interface Ethernet1
description leaf1
description dc-leaf1
no switchport
ip address 10.0.1.0/31
mtu 9214
!
interface Ethernet2
description leaf2
description dc-leaf2
no switchport
ip address 10.0.1.2/31
mtu 9214
!
interface Ethernet3
description leaf3
description dc-leaf3
no switchport
ip address 10.0.1.4/31
mtu 9214
!
interface Ethernet4
description leaf4
description dc-leaf4
no switchport
ip address 10.0.1.6/31
mtu 9214
!
interface Ethernet5
description leaf5
description dc-leaf5
no switchport
ip address 10.0.1.8/31
mtu 9214
!
interface Ethernet6
description leaf6
description dc-leaf6
no switchport
ip address 10.0.1.10/31
mtu 9214
!
interface Ethernet7
description leaf7
description dc-leaf7
no switchport
ip address 10.0.1.12/31
mtu 9214
!
interface Ethernet8
description leaf8
description dc-leaf8
no switchport
ip address 10.0.1.14/31
mtu 9214
!
! Underlay P2P interfaces to DC Border Leafs
interface Ethernet9
description border-leaf-dc1
description dc-border-leaf1
no switchport
ip address 10.0.1.16/31
mtu 9214
!
interface Ethernet10
description border-leaf-dc2
description dc-border-leaf2
no switchport
ip address 10.0.1.18/31
mtu 9214

View File

@@ -1,7 +1,7 @@
! Spine2 Configuration
! DC-Spine2 Configuration
! BGP EVPN Spine - AS 65000
!
hostname spine2
hostname dc-spine2
!
! LLDP Management0
lldp management-address Management0
@@ -34,62 +34,62 @@ interface Loopback0
!
! Underlay P2P interfaces to Leafs
interface Ethernet1
description leaf1
description dc-leaf1
no switchport
ip address 10.0.2.0/31
mtu 9214
!
interface Ethernet2
description leaf2
description dc-leaf2
no switchport
ip address 10.0.2.2/31
mtu 9214
!
interface Ethernet3
description leaf3
description dc-leaf3
no switchport
ip address 10.0.2.4/31
mtu 9214
!
interface Ethernet4
description leaf4
description dc-leaf4
no switchport
ip address 10.0.2.6/31
mtu 9214
!
interface Ethernet5
description leaf5
description dc-leaf5
no switchport
ip address 10.0.2.8/31
mtu 9214
!
interface Ethernet6
description leaf6
description dc-leaf6
no switchport
ip address 10.0.2.10/31
mtu 9214
!
interface Ethernet7
description leaf7
description dc-leaf7
no switchport
ip address 10.0.2.12/31
mtu 9214
!
interface Ethernet8
description leaf8
description dc-leaf8
no switchport
ip address 10.0.2.14/31
mtu 9214
!
! Underlay P2P interfaces to DC Border Leafs
interface Ethernet9
description border-leaf-dc1
description dc-border-leaf1
no switchport
ip address 10.0.2.16/31
mtu 9214
!
interface Ethernet10
description border-leaf-dc2
description dc-border-leaf2
no switchport
ip address 10.0.2.18/31
mtu 9214

View File

@@ -16,94 +16,94 @@ topology:
# =====================================================
# DC Spine Switches (AS 65000)
spine1:
dc-spine1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.1
startup-config: configs/spine1.cfg
startup-config: configs/dc-spine1.cfg
spine2:
dc-spine2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.2
startup-config: configs/spine2.cfg
startup-config: configs/dc-spine2.cfg
# DC Leaf Switches - VTEP1 (AS 65001)
leaf1:
dc-leaf1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.25
startup-config: configs/leaf1.cfg
startup-config: configs/dc-leaf1.cfg
leaf2:
dc-leaf2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.50
startup-config: configs/leaf2.cfg
startup-config: configs/dc-leaf2.cfg
# DC Leaf Switches - VTEP2 (AS 65002)
leaf3:
dc-leaf3:
kind: arista_ceos
mgmt-ipv4: 172.16.0.27
startup-config: configs/leaf3.cfg
startup-config: configs/dc-leaf3.cfg
leaf4:
dc-leaf4:
kind: arista_ceos
mgmt-ipv4: 172.16.0.28
startup-config: configs/leaf4.cfg
startup-config: configs/dc-leaf4.cfg
# DC Leaf Switches - VTEP3 (AS 65003)
leaf5:
dc-leaf5:
kind: arista_ceos
mgmt-ipv4: 172.16.0.29
startup-config: configs/leaf5.cfg
startup-config: configs/dc-leaf5.cfg
leaf6:
dc-leaf6:
kind: arista_ceos
mgmt-ipv4: 172.16.0.30
startup-config: configs/leaf6.cfg
startup-config: configs/dc-leaf6.cfg
# DC Leaf Switches - VTEP4 (AS 65004)
leaf7:
dc-leaf7:
kind: arista_ceos
mgmt-ipv4: 172.16.0.31
startup-config: configs/leaf7.cfg
startup-config: configs/dc-leaf7.cfg
leaf8:
dc-leaf8:
kind: arista_ceos
mgmt-ipv4: 172.16.0.32
startup-config: configs/leaf8.cfg
startup-config: configs/dc-leaf8.cfg
# DC Border Leafs - MLAG pair (AS 65005)
border-leaf-dc1:
dc-border-leaf1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.3
startup-config: configs/border-leaf-dc1.cfg
startup-config: configs/dc-border-leaf1.cfg
border-leaf-dc2:
dc-border-leaf2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.4
startup-config: configs/border-leaf-dc2.cfg
startup-config: configs/dc-border-leaf2.cfg
# DC Access Switches - L2 only
access1:
dc-access1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.41
startup-config: configs/access1.cfg
startup-config: configs/dc-access1.cfg
access2:
dc-access2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.42
startup-config: configs/access2.cfg
startup-config: configs/dc-access2.cfg
access3:
dc-access3:
kind: arista_ceos
mgmt-ipv4: 172.16.0.43
startup-config: configs/access3.cfg
startup-config: configs/dc-access3.cfg
access4:
dc-access4:
kind: arista_ceos
mgmt-ipv4: 172.16.0.44
startup-config: configs/access4.cfg
startup-config: configs/dc-access4.cfg
# DC Host devices - dual-homed with LACP bonding
host1:
dc-server1:
kind: linux
mgmt-ipv4: 172.16.0.101
image: ghcr.io/hellt/network-multitool
@@ -124,7 +124,7 @@ topology:
- ip link set bond0.40 up
- ip addr add 10.40.40.101/24 dev bond0.40
host2:
dc-server2:
kind: linux
mgmt-ipv4: 172.16.0.102
image: ghcr.io/hellt/network-multitool
@@ -147,7 +147,7 @@ topology:
- 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:
dc-server3:
kind: linux
mgmt-ipv4: 172.16.0.103
image: ghcr.io/hellt/network-multitool
@@ -168,14 +168,14 @@ topology:
- ip link set bond0.40 up
- ip addr add 10.40.40.103/24 dev bond0.40
host4:
dc-server4:
kind: linux
mgmt-ipv4: 172.16.0.104
image: ghcr.io/hellt/network-multitool
cap-add:
- NET_ADMIN
binds:
- hosts/host4_interfaces:/etc/network/interfaces
- 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
@@ -224,15 +224,15 @@ topology:
startup-config: configs/campus-spine2.cfg
# Campus Border Leafs - MLAG pair (AS 66005)
border-leaf-campus1:
campus-border-leaf1:
kind: arista_ceos
mgmt-ipv4: 172.16.0.22
startup-config: configs/border-leaf-campus1.cfg
startup-config: configs/campus-border-leaf1.cfg
border-leaf-campus2:
campus-border-leaf2:
kind: arista_ceos
mgmt-ipv4: 172.16.0.23
startup-config: configs/border-leaf-campus2.cfg
startup-config: configs/campus-border-leaf2.cfg
# Campus Leafs - VTEP1 (AS 66001)
campus-leaf1:
@@ -296,71 +296,71 @@ topology:
# =====================================================
# Spine1 to Leaf/Border-Leaf connections (underlay)
- endpoints: ["spine1:eth1", "leaf1:eth11"]
- endpoints: ["spine1:eth2", "leaf2:eth11"]
- endpoints: ["spine1:eth3", "leaf3:eth11"]
- endpoints: ["spine1:eth4", "leaf4:eth11"]
- endpoints: ["spine1:eth5", "leaf5:eth11"]
- endpoints: ["spine1:eth6", "leaf6:eth11"]
- endpoints: ["spine1:eth7", "leaf7:eth11"]
- endpoints: ["spine1:eth8", "leaf8:eth11"]
- endpoints: ["spine1:eth9", "border-leaf-dc1:eth11"]
- endpoints: ["spine1:eth10", "border-leaf-dc2:eth11"]
- 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: ["spine2:eth1", "leaf1:eth12"]
- endpoints: ["spine2:eth2", "leaf2:eth12"]
- endpoints: ["spine2:eth3", "leaf3:eth12"]
- endpoints: ["spine2:eth4", "leaf4:eth12"]
- endpoints: ["spine2:eth5", "leaf5:eth12"]
- endpoints: ["spine2:eth6", "leaf6:eth12"]
- endpoints: ["spine2:eth7", "leaf7:eth12"]
- endpoints: ["spine2:eth8", "leaf8:eth12"]
- endpoints: ["spine2:eth9", "border-leaf-dc1:eth12"]
- endpoints: ["spine2:eth10", "border-leaf-dc2:eth12"]
- 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: ["leaf1:eth10", "leaf2:eth10"]
- endpoints: ["leaf3:eth10", "leaf4:eth10"]
- endpoints: ["leaf5:eth10", "leaf6:eth10"]
- endpoints: ["leaf7:eth10", "leaf8:eth10"]
- endpoints: ["border-leaf-dc1:eth10", "border-leaf-dc2:eth10"]
- 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: ["leaf1:eth1", "access1:eth1"]
- endpoints: ["leaf2:eth1", "access1:eth2"]
- endpoints: ["leaf3:eth1", "access2:eth1"]
- endpoints: ["leaf4:eth1", "access2:eth2"]
- endpoints: ["leaf5:eth1", "access3:eth1"]
- endpoints: ["leaf6:eth1", "access3:eth2"]
- endpoints: ["leaf7:eth1", "access4:eth1"]
- endpoints: ["leaf8:eth1", "access4:eth2"]
- 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: ["access1:eth3", "host1:eth1"]
- endpoints: ["access1:eth4", "host1:eth2"]
- endpoints: ["access2:eth3", "host2:eth1"]
- endpoints: ["access2:eth4", "host2:eth2"]
- endpoints: ["access3:eth3", "host3:eth1"]
- endpoints: ["access3:eth4", "host3:eth2"]
- endpoints: ["access4:eth3", "host4:eth1"]
- endpoints: ["access4:eth4", "host4:eth2"]
- 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: ["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"]
- 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: ["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"]
- 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"]
@@ -374,21 +374,21 @@ topology:
- 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"]
- 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", "border-leaf-campus1:eth12"]
- endpoints: ["campus-spine2:eth6", "border-leaf-campus2: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: ["border-leaf-campus1:eth10", "border-leaf-campus2: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"]

View File

@@ -36,8 +36,8 @@
{ "id": "campus-leaf3", "position": { "x": 240, "y": 400 } },
{ "id": "campus-leaf4", "position": { "x": 380, "y": 400 } },
{ "id": "border-leaf-campus1", "position": { "x": 540, "y": 400 } },
{ "id": "border-leaf-campus2", "position": { "x": 680, "y": 400 } },
{ "id": "campus-border-leaf1", "position": { "x": 540, "y": 400 } },
{ "id": "campus-border-leaf2", "position": { "x": 680, "y": 400 } },
{ "id": "campus-access1", "position": { "x": 40, "y": 540 } },
{ "id": "campus-access2", "position": { "x": 320, "y": 540 } },
@@ -48,30 +48,30 @@
{ "id": "core1", "position": { "x": 960, "y": 300 } },
{ "id": "core2", "position": { "x": 1180, "y": 300 } },
{ "id": "border-leaf-dc1", "position": { "x": 1380, "y": 400 } },
{ "id": "border-leaf-dc2", "position": { "x": 1520, "y": 400 } },
{ "id": "dc-border-leaf1", "position": { "x": 1380, "y": 400 } },
{ "id": "dc-border-leaf2", "position": { "x": 1520, "y": 400 } },
{ "id": "spine1", "position": { "x": 1800, "y": 160 } },
{ "id": "spine2", "position": { "x": 2280, "y": 160 } },
{ "id": "dc-spine1", "position": { "x": 1800, "y": 160 } },
{ "id": "dc-spine2", "position": { "x": 2280, "y": 160 } },
{ "id": "leaf1", "position": { "x": 1660, "y": 400 } },
{ "id": "leaf2", "position": { "x": 1800, "y": 400 } },
{ "id": "leaf3", "position": { "x": 1940, "y": 400 } },
{ "id": "leaf4", "position": { "x": 2080, "y": 400 } },
{ "id": "leaf5", "position": { "x": 2220, "y": 400 } },
{ "id": "leaf6", "position": { "x": 2360, "y": 400 } },
{ "id": "leaf7", "position": { "x": 2500, "y": 400 } },
{ "id": "leaf8", "position": { "x": 2640, "y": 400 } },
{ "id": "dc-leaf1", "position": { "x": 1660, "y": 400 } },
{ "id": "dc-leaf2", "position": { "x": 1800, "y": 400 } },
{ "id": "dc-leaf3", "position": { "x": 1940, "y": 400 } },
{ "id": "dc-leaf4", "position": { "x": 2080, "y": 400 } },
{ "id": "dc-leaf5", "position": { "x": 2220, "y": 400 } },
{ "id": "dc-leaf6", "position": { "x": 2360, "y": 400 } },
{ "id": "dc-leaf7", "position": { "x": 2500, "y": 400 } },
{ "id": "dc-leaf8", "position": { "x": 2640, "y": 400 } },
{ "id": "access1", "position": { "x": 1720, "y": 540 } },
{ "id": "access2", "position": { "x": 2000, "y": 540 } },
{ "id": "access3", "position": { "x": 2280, "y": 540 } },
{ "id": "access4", "position": { "x": 2560, "y": 540 } },
{ "id": "dc-access1", "position": { "x": 1720, "y": 540 } },
{ "id": "dc-access2", "position": { "x": 2000, "y": 540 } },
{ "id": "dc-access3", "position": { "x": 2280, "y": 540 } },
{ "id": "dc-access4", "position": { "x": 2560, "y": 540 } },
{ "id": "host1", "position": { "x": 1720, "y": 680 } },
{ "id": "host2", "position": { "x": 2000, "y": 680 } },
{ "id": "host3", "position": { "x": 2280, "y": 680 } },
{ "id": "host4", "position": { "x": 2560, "y": 680 } }
{ "id": "dc-server1", "position": { "x": 1720, "y": 680 } },
{ "id": "dc-server2", "position": { "x": 2000, "y": 680 } },
{ "id": "dc-server3", "position": { "x": 2280, "y": 680 } },
{ "id": "dc-server4", "position": { "x": 2560, "y": 680 } }
],
"edgeAnnotations": [],
"aliasEndpointAnnotations": [],

View File

@@ -6,10 +6,10 @@ This directory contains network interface configuration files for Alpine Linux h
### DC hosts
- `host1_interfaces` - Configuration for host1 (VLAN 40, IP 10.40.40.101)
- `host2_interfaces` - Configuration for host2 (VLAN 34, IP 10.34.34.102)
- `host3_interfaces` - Configuration for host3 (VLAN 40, IP 10.40.40.103)
- `host4_interfaces` - Configuration for host4 (VLAN 78, IP 10.78.78.104)
- `dc-server1_interfaces` - Configuration for dc-server1 (VLAN 40, IP 10.40.40.101)
- `dc-server2_interfaces` - Configuration for dc-server2 (VLAN 34, IP 10.34.34.102)
- `dc-server3_interfaces` - Configuration for dc-server3 (VLAN 40, IP 10.40.40.103)
- `dc-server4_interfaces` - Configuration for dc-server4 (VLAN 78, IP 10.78.78.104)
### Campus hosts
@@ -17,19 +17,19 @@ Campus hosts are **single-attached** to a Campus access switch (enterprise user
pattern — no LACP bond, no VLAN trunking on the host side). Each host sits in a single
access VLAN that maps to VRF `gold`.
- `campus-host1_interfaces` - Configuration for campus-host1 (VLAN 60 VRF gold 10.60.60.101/24, GW 10.60.60.1)
- `campus-host2_interfaces` - Configuration for campus-host2 (VLAN 70 VRF gold 10.60.70.102/24, GW 10.60.70.1)
- `campus-dc-server1_interfaces` - Configuration for campus-host1 (VLAN 60 VRF gold 10.60.60.101/24, GW 10.60.60.1)
- `campus-dc-server2_interfaces` - Configuration for campus-host2 (VLAN 70 VRF gold 10.60.70.102/24, GW 10.60.70.1)
## Usage
Each file is mounted to `/etc/network/interfaces` in its respective host container via ContainerLab's `binds` feature:
```yaml
host1:
dc-server1:
kind: linux
image: alpine:latest
binds:
- hosts/host1_interfaces:/etc/network/interfaces
- hosts/dc-server1_interfaces:/etc/network/interfaces
```
## Format