diff --git a/README.md b/README.md index cdcd2c7..57b107e 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,18 @@ A production-ready Arista BGP EVPN-VXLAN data center fabric topology using Conta ## 🎯 Overview -This lab demonstrates a complete EVPN-VXLAN data center fabric with: +This lab demonstrates a complete 3-tier EVPN-VXLAN data center fabric with: - **2 Spine switches** (BGP Route Reflectors) - **8 Leaf switches** forming 4 VTEPs (MLAG pairs) +- **4 Access switches** (L2-only, dual-homed to leaf MLAG pairs) - **BGP EVPN overlay** with L2/L3 VXLAN - **MLAG configuration** for high availability - **Test hosts** for validation ## 📐 Topology -![Topology](assets/topology.svg) +![Topology](assets/arista-evpn-fabric.svg) ## 🚀 Quick Start @@ -58,6 +59,19 @@ docker exec -it clab-arista-evpn-fabric-leaf1 Cli - **VTEP3 (Leaf5/6)**: AS 65003 - **VTEP4 (Leaf7/8)**: AS 65004 +### Access Switches + +| Access Switch | Uplink Leaf Pair | VLAN(s) | Connected Host | +| ------------- | ---------------- | ------- | -------------- | +| access1 | Leaf1/2 (VTEP1) | 40 | host1 | +| access2 | Leaf3/4 (VTEP2) | 34 | host2 | +| access3 | Leaf5/6 (VTEP3) | 40 | host3 | +| access4 | Leaf7/8 (VTEP4) | 78 | host4 | + +- L2-only switches with LACP uplinks (Port-Channel 10) to leaf MLAG pairs +- Host-facing downlinks via LACP (Port-Channel 1) +- STP mode MSTP with edge-port BPDU guard + ### IP Addressing #### Management Network @@ -65,7 +79,8 @@ docker exec -it clab-arista-evpn-fabric-leaf1 Cli - Subnet: `172.16.0.0/24` - Spine1: `172.16.0.1` - Spine2: `172.16.0.2` -- Leaf1-8: `172.16.0.25-32` +- Leaf1: `172.16.0.25`, Leaf2: `172.16.0.50`, Leaf3-8: `172.16.0.27-32` +- Access1-4: `172.16.0.41-44` #### Loopback Interfaces @@ -99,7 +114,8 @@ docker exec -it clab-arista-evpn-fabric-leaf1 Cli - Host1 and Host3 are in VLAN 40 (L2 VXLAN only) and can communicate at Layer 2 - Host2 and Host4 are in VRF "gold" with different subnets, communicating via EVPN Type-5 routes (L3 VXLAN) -- All hosts use LACP bonding (802.3ad) with dual-homing to MLAG leaf pairs +- All hosts use LACP bonding (802.3ad) with dual-homing to access switches +- Each access switch is dual-homed via LACP (Port-Channel) to a leaf MLAG pair ### VXLAN Network Identifiers (VNI) @@ -251,17 +267,16 @@ arista-evpn-vxlan-clab/ ├── TROUBLESHOOTING.md # Troubleshooting guide ├── END_TO_END_TESTING.md # Testing procedures ├── evpn-lab.clab.yml # ContainerLab topology +├── assets/ +│ └── arista-evpn-fabric.svg # Topology diagram ├── configs/ # Device configurations │ ├── spine1.cfg │ ├── spine2.cfg -│ ├── leaf1.cfg -│ ├── leaf2.cfg -│ ├── leaf3.cfg -│ ├── leaf4.cfg -│ ├── leaf5.cfg -│ ├── leaf6.cfg -│ ├── leaf7.cfg -│ └── leaf8.cfg +│ ├── leaf1.cfg through leaf8.cfg +│ ├── access1.cfg +│ ├── access2.cfg +│ ├── access3.cfg +│ └── access4.cfg └── hosts/ # Host interface configurations ├── README.md ├── host1_interfaces diff --git a/assets/arista-evpn-fabric.svg b/assets/arista-evpn-fabric.svg new file mode 100644 index 0000000..bf68ced --- /dev/null +++ b/assets/arista-evpn-fabric.svg @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + spine1 + + + + + + + + + + + + + + + + + + + + + spine2 + + + + + + + + + + + + + + + + + + + + + leaf1 + + + + + + + + + + + + + + + + + + + + + leaf2 + + + + + + + + + + + + + + + + + + + + + leaf3 + + + + + + + + + + + + + + + + + + + + + leaf4 + + + + + + + + + + + + + + + + + + + + + leaf5 + + + + + + + + + + + + + + + + + + + + + leaf6 + + + + + + + + + + + + + + + + + + + + + leaf7 + + + + + + + + + + + + + + + + + + + + + leaf8 + + + + + + + + + + + + + + + + + + + + + access1 + + + + + + + + + + + + + + + + + + + + + access2 + + + + + + + + + + + + + + + + + + + + + access3 + + + + + + + + + + + + + + + + + + + + + access4 + + + + + + + + + + + + + + + + + + + + + host1 + + + + + + + + + + + + + + + + + + + + + host2 + + + + + + + + + + + + + + + + + + + + + host3 + + + + + + + + + + + + + + + + + + + + + host4 \ No newline at end of file diff --git a/assets/topology.svg b/assets/topology.svg deleted file mode 100644 index d9c1455..0000000 --- a/assets/topology.svg +++ /dev/null @@ -1,491 +0,0 @@ -eth1eth1eth11eth11eth2eth2eth11eth11eth3eth3eth11eth11eth4eth4eth11eth11eth5eth5eth11eth11eth6eth6eth11eth11eth7eth7eth11eth11eth8eth8eth11eth11eth1eth1eth12eth12eth2eth2eth12eth12eth3eth3eth12eth12eth4eth4eth12eth12eth5eth5eth12eth12eth6eth6eth12eth12eth7eth7eth12eth12eth8eth8eth12eth12eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth10eth1eth1eth1eth1eth1eth1eth2eth2eth1eth1eth1eth1eth1eth1eth2eth2eth1eth1eth1eth1eth1eth1eth2eth2eth1eth1eth1eth1eth1eth1eth2eth2 - - - - - - - - - - - - - - - - - - - - - - spine1spine1 - - - - - - - - - - - - - - - - - - - - - - spine2spine2 - - - - - - - - - - - - - - - - - - - - - - leaf1leaf1 - - - - - - - - - - - - - - - - - - - - - - leaf2leaf2 - - - - - - - - - - - - - - - - - - - - - - leaf3leaf3 - - - - - - - - - - - - - - - - - - - - - - leaf4leaf4 - - - - - - - - - - - - - - - - - - - - - - leaf5leaf5 - - - - - - - - - - - - - - - - - - - - - - leaf6leaf6 - - - - - - - - - - - - - - - - - - - - - - leaf7leaf7 - - - - - - - - - - - - - - - - - - - - - - leaf8leaf8 - - - - - - - - - - - - - - - - - - - - - - host1host1 - - - - - - - - - - - - - - - - - - - - - - host2host2 - - - - - - - - - - - - - - - - - - - - - - host3host3 - - - - - - - - - - - - - - - - - - - - - - host4host4 \ No newline at end of file