Host configuration migrated to persistent interface files #12

Closed
opened 2025-11-30 08:21:38 +00:00 by Damien · 1 comment
Owner

Summary

Updated host network configuration from runtime exec commands to persistent interface files mounted via ContainerLab binds feature.

Changes Made

  1. Created persistent interface configuration files for all four hosts:

    • configs/host1-interfaces - VLAN 40 (10.40.40.101/24)
    • configs/host2-interfaces - VLAN 34 (10.34.34.102/24) with gateway
    • configs/host3-interfaces - VLAN 40 (10.40.40.103/24)
    • configs/host4-interfaces - VLAN 78 (10.78.78.104/24) with gateway
  2. Updated evpn-lab.clab.yml topology:

    • Removed all exec commands from host definitions
    • Added binds to mount interface files into /etc/network/interfaces
  3. Created documentation:

    • Added docs/HOST_CONFIGURATION.md with complete reference

Configuration Details

Each host uses:

  • LACP bonding (802.3ad) with eth1 and eth2
  • VLAN tagging on bond0 subinterfaces
  • ifupdown-ng syntax specific to Alpine Linux
  • Automatic interface bring-up on container start

Benefits

  • Clean deployments without manual post-configuration
  • Configuration persists across container restarts
  • Proper LACP negotiation with switches
  • VLAN tagging handled by hosts (switch ports in trunk mode)
  • All configuration tracked in git

Testing Required

After redeployment:

  1. L2 VXLAN: Verify host1 ↔ host3 connectivity (VLAN 40)
  2. L3 VXLAN: Verify host2 ↔ host4 connectivity (VRF gold)
  3. Check bonding status on all hosts
  4. Verify MLAG port-channels on leaf switches
  • configs/host1-interfaces
  • configs/host2-interfaces
  • configs/host3-interfaces
  • configs/host4-interfaces
  • evpn-lab.clab.yml
  • docs/HOST_CONFIGURATION.md
## Summary Updated host network configuration from runtime exec commands to persistent interface files mounted via ContainerLab binds feature. ## Changes Made 1. Created persistent interface configuration files for all four hosts: - `configs/host1-interfaces` - VLAN 40 (10.40.40.101/24) - `configs/host2-interfaces` - VLAN 34 (10.34.34.102/24) with gateway - `configs/host3-interfaces` - VLAN 40 (10.40.40.103/24) - `configs/host4-interfaces` - VLAN 78 (10.78.78.104/24) with gateway 2. Updated `evpn-lab.clab.yml` topology: - Removed all exec commands from host definitions - Added binds to mount interface files into `/etc/network/interfaces` 3. Created documentation: - Added `docs/HOST_CONFIGURATION.md` with complete reference ## Configuration Details Each host uses: - LACP bonding (802.3ad) with eth1 and eth2 - VLAN tagging on bond0 subinterfaces - ifupdown-ng syntax specific to Alpine Linux - Automatic interface bring-up on container start ## Benefits - ✅ Clean deployments without manual post-configuration - ✅ Configuration persists across container restarts - ✅ Proper LACP negotiation with switches - ✅ VLAN tagging handled by hosts (switch ports in trunk mode) - ✅ All configuration tracked in git ## Testing Required After redeployment: 1. L2 VXLAN: Verify host1 ↔ host3 connectivity (VLAN 40) 2. L3 VXLAN: Verify host2 ↔ host4 connectivity (VRF gold) 3. Check bonding status on all hosts 4. Verify MLAG port-channels on leaf switches ## Related Files - configs/host1-interfaces - configs/host2-interfaces - configs/host3-interfaces - configs/host4-interfaces - evpn-lab.clab.yml - docs/HOST_CONFIGURATION.md
Author
Owner

Context & Background

This issue tracks the final implementation of persistent host interface configuration. This is the culmination of extensive troubleshooting documented in issue #11.

The Journey to This Solution

Issue #11 documents the complete troubleshooting process that led to this solution:

  • Initial LACP bonding failures with Alpine Linux
  • Discovery that VLAN tagging must be handled by hosts (not switches)
  • Multiple attempts with exec commands
  • Final realization that persistent configs are needed

Why This Matters

The binds approach solves multiple problems:

  1. Eliminates timing issues - exec commands run after container start
  2. Provides persistence - configuration survives restarts
  3. Enables reproducibility - clean deployments every time
  4. Follows IaC principles - all configuration in git

Files Changed

New files:

  • configs/host1-interfaces
  • configs/host2-interfaces
  • configs/host3-interfaces
  • configs/host4-interfaces
  • docs/HOST_CONFIGURATION.md

Modified:

  • evpn-lab.clab.yml (removed exec, added binds)

Cross-References

This represents the production-ready approach for dual-homed host connectivity in the Arista EVPN-VXLAN lab.

## Context & Background This issue tracks the final implementation of persistent host interface configuration. This is the culmination of extensive troubleshooting documented in issue #11. ### The Journey to This Solution **Issue #11** documents the complete troubleshooting process that led to this solution: - Initial LACP bonding failures with Alpine Linux - Discovery that VLAN tagging must be handled by hosts (not switches) - Multiple attempts with exec commands - Final realization that persistent configs are needed ### Why This Matters The binds approach solves multiple problems: 1. **Eliminates timing issues** - exec commands run after container start 2. **Provides persistence** - configuration survives restarts 3. **Enables reproducibility** - clean deployments every time 4. **Follows IaC principles** - all configuration in git ### Files Changed **New files:** - configs/host1-interfaces - configs/host2-interfaces - configs/host3-interfaces - configs/host4-interfaces - docs/HOST_CONFIGURATION.md **Modified:** - evpn-lab.clab.yml (removed exec, added binds) ### Cross-References - **Detailed troubleshooting**: Issue #11 - **Overall lab fixes**: Issue #1 - **Configuration docs**: docs/HOST_CONFIGURATION.md This represents the **production-ready** approach for dual-homed host connectivity in the Arista EVPN-VXLAN lab.
Damien added reference fix-bgp-and-mlag 2025-11-30 10:04:44 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Damien/arista-evpn-vxlan-clab#12