cb74dd118f
Fix VRF gold BGP IPv4 activation on cores and border leafs
...
With 'no bgp default ipv4-unicast' set at the router level, VRF gold
eBGP/iBGP neighbors were establishing but not exchanging any IPv4
prefixes, breaking inter-fabric transit between DC and Campus. Add an
explicit 'address-family ipv4' block with 'neighbor X activate' under
'vrf gold' on both cores and all four border leafs.
Also drop 'redistribute learned' from the border leaf VRF gold stanza:
it is not a valid command in that context and was silently stripped by
EOS.
2026-04-23 10:26:41 +00:00
2da238e3ae
Update campus host attachment pattern to single-attached access
2026-04-18 18:44:34 +00:00
6e0dcce746
Add Campus EVPN-VXLAN fabric configs and host interfaces
...
- campus-spine1/2 (AS 66000): eBGP underlay + EVPN RR toward leafs
and border leafs, addressing plan 10.1.x.x.
- campus-leaf1/2 (VTEP1, AS 66001, VTEP 10.1.255.11): VLAN 50
(stretched L2 VXLAN, VNI 110050) and VLAN 60 (VRF gold anycast
10.60.60.1, L3 VNI 100001).
- campus-leaf3/4 (VTEP2, AS 66002, VTEP 10.1.255.12): VLAN 50 and
VLAN 70 (VRF gold anycast 10.60.70.1).
- border-leaf-campus1/2 (AS 66005, VTEP 10.1.255.21): MLAG pair,
OSPF + eBGP to cores, VRF gold stitched via vxlan vrf gold
vni 100001 with RT 1:100001.
- campus-access1/2: L2-only uplinks to campus leaf MLAG pairs,
trunks VLAN 50+60 / 50+70.
- campus-host1/2 interface files: bond0 + VLAN sub-interfaces for
the stretched L2 VLAN 50 and the VRF gold subnets.
2026-04-18 08:38:35 +00:00
4b4c1852c4
Add Core router configs (AS 65500, iBGP + VRF gold transit)
...
core1/core2 provide L3 transit between DC and Campus fabrics. Each
physical link toward a Border Leaf is subinterfaced (.100 default,
.200 VRF gold). OSPF area 0 in default VRF, eBGP to DC BLs (65005)
and Campus BLs (66005), iBGP between core1 and core2 via Loopback0.
VRF gold uses redistribute connected and VRF-aware eBGP sessions on
.200 subinterfaces to stitch VRF gold end-to-end across fabrics.
2026-04-18 08:38:21 +00:00
d3b3c38ead
Add DC Border Leaf configs (AS 65005, MLAG pair)
...
Both border leafs share VTEP Loopback1 10.0.255.15 and peer with DC
spines in eBGP IPv4 + EVPN. Uplinks to core1/core2 use dot1q
subinterfaces (.100 default underlay, .200 VRF gold) with OSPF area 0
and eBGP to AS 65500. VRF gold extended via vxlan vrf gold vni 100001
with RD <Lo0>:1 and RT 1:100001.
2026-04-18 08:38:12 +00:00
5e4b39d05d
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)
2026-04-18 08:38:00 +00:00
12ad491bf9
Remove VLAN900 and BGP border configuration from leaf devices
2026-04-08 13:09:22 +00:00
3515bdadc2
Add access layer
2026-03-30 13:03:25 +00:00
3a9c7cd790
feat(configs): add static route for 100.64.0.0/10 subnet for Tailnet Access
...
Update configuration files for all leaf and spine switches to include a
new static route for the 100.64.0.0/10 prefix.
The route points to the next-hop gateway 172.16.0.254, ensuring proper
reachability for the Tailnet range across the network fabric.
2025-12-22 18:06:08 +00:00
913135d966
refactor(configs): migrate management interface to Management0
...
This commit updates the management interface configuration across all leaf and spine switches to align with the target environment requirements.
Changes include:
- Changing the primary management interface from `Management1` to `Management0`.
- Removing the `vrf mgmt` assignment, moving the interface to the default global routing table.
- Explicitly configuring `lldp management-address Management0` to ensure the correct management IP is advertised to neighbors.
2025-12-17 20:10:12 +00:00
d9327ed95f
feat(configs): enable gNMI API on all network devices
...
Enables the gNMI (gRPC Network Management Interface) API across all leaf
and spine switches to allow for telemetry streaming and programmatic
device management.
Configuration details:
- Transport: grpc default
- Provider: eos-native
2025-12-16 12:00:20 +00:00
bbcf2c9cb9
chore(configs): update admin password for spine switches
2025-12-14 19:26:39 +00:00
1080bf07bb
Complete Lab Fixes - L2 and L3 VXLAN Fully Operational ( #14 )
...
## Summary
This PR merges all fixes and improvements from the troubleshooting journey to make the Arista EVPN-VXLAN lab fully operational with both L2 and L3 VXLAN connectivity.
## What's Changed
### 🎯 Major Achievements
- ✅ **L2 VXLAN fully operational** - host1 ↔ host3 connectivity verified
- ✅ **L3 VXLAN fully operational** - host2 ↔ host4 connectivity verified (VRF gold)
- ✅ **LACP bonding working** - dual-homed hosts with proper Port-Channel negotiation
- ✅ **All BGP/EVPN sessions established** - complete underlay and overlay working
### 🔧 Infrastructure Fixes
#### BGP & Routing
- Added `ip routing` command to all spine and leaf switches
- Fixed duplicate BGP network statements on leaf3, leaf4, leaf7, leaf8
- Activated EVPN neighbors on spine switches
- Added loopback network advertisements to BGP
#### MLAG Configuration
- Configured MLAG peer-link in trunk mode (not access) for VLAN 4090/4091
- Added dual-active detection via management interface
- Configured virtual router MAC for MLAG pairs
#### Switch Port Configuration
- Port-Channel1 configured in **trunk mode** on all leaf switches
- Added `switchport trunk allowed vlan` for host VLANs (34, 40, 78)
- Removed `no shutdown` from Port-Channel interfaces
### 🖥️ Host Networking - Complete Redesign
#### Image Change
- **Old:** `alpine:latest` (had bonding syntax issues)
- **New:** `ghcr.io/hellt/network-multitool` (networking tools pre-installed)
#### LACP Bonding Configuration
Proper LACP setup following network-multitool best practices:
```yaml
- 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
```
#### VLAN Configuration
- **L2 VXLAN hosts (host1, host3):** VLAN 40 tagged on bond0
- **L3 VXLAN hosts (host2, host4):** VLANs 34 and 78 tagged on bond0
#### Routing Strategy
- Kept management default route (172.16.0.254 via eth0)
- Added **specific routes** for L3 VXLAN networks instead of default routes:
- host2: `ip route add 10.78.78.0/24 via 10.34.34.1`
- host4: `ip route add 10.34.34.0/24 via 10.78.78.1`
### 📁 Files Changed
#### Switch Configurations (Updated)
- `configs/spine1.cfg` - Added ip routing, EVPN activation
- `configs/spine2.cfg` - Added ip routing, EVPN activation
- `configs/leaf1.cfg` - Port-Channel trunk mode, VLAN config
- `configs/leaf2.cfg` - Port-Channel trunk mode, VLAN config
- `configs/leaf3.cfg` - Added ip routing, loopback ads, Port-Channel config
- `configs/leaf4.cfg` - Added ip routing, loopback ads, Port-Channel config
- `configs/leaf5.cfg` - Port-Channel trunk mode, VLAN config
- `configs/leaf6.cfg` - Port-Channel trunk mode, VLAN config
- `configs/leaf7.cfg` - Added ip routing, loopback ads, Port-Channel config
- `configs/leaf8.cfg` - Added ip routing, loopback ads, Port-Channel config
#### Topology (Updated)
- `evpn-lab.clab.yml` - Updated all host configurations with network-multitool image and proper LACP/VLAN setup
#### Documentation (New)
- `hosts/README.md` - Host interface configuration guide
- `hosts/host1_interfaces` - Interface file for host1 (not currently used, kept for reference)
- `hosts/host2_interfaces` - Interface file for host2 (not currently used, kept for reference)
- `hosts/host3_interfaces` - Interface file for host3 (not currently used, kept for reference)
- `hosts/host4_interfaces` - Interface file for host4 (not currently used, kept for reference)
## Testing & Verification
### ✅ L2 VXLAN (VLAN 40)
```
host1 (10.40.40.101) → host3 (10.40.40.103)
- Connectivity: VERIFIED ✓
- VXLAN tunnel: VTEP1 ↔ VTEP3
- MAC learning: Working via EVPN Type-2
```
### ✅ L3 VXLAN (VRF gold)
```
host2 (10.34.34.102) → host4 (10.78.78.104)
- Connectivity: VERIFIED ✓
- Ping results: 0% packet loss, TTL=62
- Routing: Via EVPN Type-5 through fabric
```
### ✅ Infrastructure Status
- BGP Underlay: All sessions ESTAB
- EVPN Overlay: All neighbors ESTAB
- MLAG: All 4 pairs operational
- Port-Channels: LACP negotiated on all hosts
## Related Issues
Fixes #1 - Lab deployment and configuration fixes
Fixes #2 - BGP EVPN neighbors stuck in Connect state
Fixes #3 - Ready for deployment with EVPN activation
Fixes #4 - Lab convergence in progress
Fixes #5 - BGP EVPN neighbors stuck in Active state
Fixes #11 - Host LACP bonding configuration
Fixes #13 - L3 VXLAN default route issue
## Key Technical Learnings
1. **Arista EOS requires explicit `ip routing`** before BGP can function
2. **MLAG peer-link must be trunk mode** to allow VLAN 4090/4091 traversal
3. **VLAN tagging location matters** - hosts tag, switches use trunk mode
4. **network-multitool image** superior to Alpine for LACP bonding
5. **Specific routes better than default routes** when management network present
6. **LACP rate fast** ensures quick negotiation with Arista switches
## Deployment
After merging, deploy with:
```bash
cd ~/arista-evpn-vxlan-clab
sudo containerlab destroy -t evpn-lab.clab.yml --cleanup
sudo containerlab deploy -t evpn-lab.clab.yml
```
No manual post-deployment configuration needed - everything works from initial deployment!
## Breaking Changes
⚠️ **Host image changed** from `alpine:latest` to `ghcr.io/hellt/network-multitool`
⚠️ **Host configuration completely redesigned** - old exec commands replaced
## Reviewers
@Damien - Please review and merge when ready
---
**This PR represents the complete troubleshooting journey and brings the lab to production-ready status with full L2 and L3 VXLAN functionality.** 🚀
Reviewed-on: #14
Co-authored-by: Damien <damien@arnodo.fr >
Co-committed-by: Damien <damien@arnodo.fr >
2025-11-30 10:24:29 +00:00
e6210267a6
Revert accidental commit to main - remove host4-interfaces
2025-11-30 08:53:44 +00:00
67816b84a1
Revert accidental commit to main - remove host3-interfaces
2025-11-30 08:53:32 +00:00
aef0890f34
Revert accidental commit to main - remove host2-interfaces
2025-11-30 08:53:21 +00:00
0baec91037
Revert accidental commit to main - remove host interface files
2025-11-30 08:53:11 +00:00
926ab47337
Add host4 interface configuration for LACP bonding with VLAN 78
2025-11-30 08:20:31 +00:00
ce76b0c342
Add host3 interface configuration for LACP bonding with VLAN 40
2025-11-30 08:20:26 +00:00
31e1e345cd
Add host2 interface configuration for LACP bonding with VLAN 34
2025-11-30 08:20:21 +00:00
050a529c68
Add host1 interface configuration for LACP bonding with VLAN 40
2025-11-30 08:20:16 +00:00
62efe9fc93
Apply critical fix: Add ip routing command to spine2
...
This enables BGP and IP forwarding on spine switches. Without this command,
BGP sessions cannot be established and routing is disabled. This is essential
for the underlay fabric to function properly.
2025-11-28 09:27:19 +00:00
41a7e5e9e3
Apply critical fix: Add ip routing command to spine1
...
This enables BGP and IP forwarding on spine switches. Without this command,
BGP sessions cannot be established and routing is disabled. This is essential
for the underlay fabric to function properly.
2025-11-28 09:27:03 +00:00
8c3eb7f2d2
Fix MLAG and host interface configuration
...
Changed the channel-group mode to "on" on the host-facing interfaces.
Changed the bonding mode to balance-rr in the clab file.
2025-11-28 09:15:36 +00:00
8a291426f9
Add admin user configuration to all devices
2025-11-21 12:09:23 +00:00
944977510c
Add leaf8 configuration with VRF gold and BGP border
2025-11-16 15:37:07 +00:00
61824f2ddf
Add leaf7 configuration with VRF gold and BGP border
2025-11-16 15:36:49 +00:00
a1b87aabeb
Add leaf6 configuration
2025-11-16 15:36:31 +00:00
c90a104528
Add leaf5 configuration
2025-11-16 15:36:16 +00:00
18f2f88440
Add leaf4 configuration with VRF gold
2025-11-16 15:36:02 +00:00
2e025f7116
Add leaf3 configuration with VRF gold
2025-11-16 15:35:47 +00:00
15d5d4017c
Add leaf2 configuration
2025-11-16 15:35:29 +00:00
471722f0b5
Add leaf1 configuration
2025-11-16 15:35:13 +00:00
f7dc787960
Add spine2 configuration
2025-11-16 15:34:50 +00:00
1d2b843d45
Add spine1 configuration
2025-11-16 15:34:37 +00:00