## Summary Repository cleanup to remove unnecessary files and streamline documentation after the successful EVPN-VXLAN lab implementation. Closes #15 --- ## Changes ### Files Removed (13 files total) **Scripts folder:** - `scripts/deploy.sh` - `scripts/test-connectivity.sh` - `scripts/cleanup.sh` **Root-level markdown files:** - `BRANCH_SUMMARY.md` - `BUGFIX_EVPN_ACTIVATION.md` - `DEPLOYMENT_GUIDE.md` - `FIXES_APPLIED.md` - `TESTING_CHECKLIST.md` - `VLAN_TAGGING_FIX_EXPLANATION.md` **docs/ folder (entire folder removed):** - `docs/HOST_INTERFACE_CONFIGURATION.md` - `docs/configuration-guide.md` - `docs/quick-reference.md` - `docs/validation-commands.md` ### Files Updated - `hosts/README.md` - Fixed broken links - `README.md` - Updated repository structure section --- ## Final Repository Structure ``` ├── .gitignore ├── README.md # Main documentation ├── TROUBLESHOOTING.md # Troubleshooting guide ├── END_TO_END_TESTING.md # Testing procedures ├── evpn-lab.clab.yml # ContainerLab topology ├── configs/ # Switch configurations (10 files) └── hosts/ # Host interface configs (5 files) ``` --- ## Testing - [x] Lab redeployed successfully with `containerlab deploy -t evpn-lab.clab.yml` - [x] L2 VXLAN connectivity verified (host1 ↔ host3) - [x] L3 VXLAN connectivity verified (host2 ↔ host4) - [x] All BGP EVPN sessions established - [x] MLAG pairs operational Reviewed-on: #16
Host Interface Configuration Files
This directory contains network interface configuration files for Alpine Linux hosts in the ContainerLab topology.
Files
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)
Usage
Each file is mounted to /etc/network/interfaces in its respective host container via ContainerLab's binds feature:
host1:
kind: linux
image: alpine:latest
binds:
- hosts/host1_interfaces:/etc/network/interfaces
Format
Files use Debian/Alpine ifupdown format with bonding and VLAN extensions:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet manual
bond-mode 4 # LACP (802.3ad)
bond-miimon 100
bond-lacp-rate 1
bond-slaves eth1 eth2
auto bond0.<vlan>
iface bond0.<vlan> inet static
address <ip-address>
netmask 255.255.255.0
vlan-raw-device bond0
Key Concepts
LACP Bonding
- All hosts use mode 4 (802.3ad LACP) bonding
- Dual-homed to MLAG leaf pairs for redundancy
- Requires matching LACP configuration on switches
VLAN Tagging
- Hosts handle VLAN tagging via sub-interfaces
- Format:
bond0.<vlan_id>(e.g., bond0.40, bond0.34, bond0.78) - Switch ports are configured as trunks allowing specific VLANs
IP Addressing
- Static IP configuration on VLAN sub-interfaces
- Subnet assignment based on VLAN ID pattern (e.g., VLAN 40 = 10.40.40.0/24)
Modification
To change host configuration:
- Edit the appropriate
host*_interfacesfile - Commit changes to git
- Redeploy the lab:
sudo containerlab deploy -t evpn-lab.clab.yml --reconfigure
No need to manually configure hosts after deployment - these files ensure clean, repeatable deployments.
See Also
- Main README - Project overview and quick start
- TROUBLESHOOTING.md - Troubleshooting guide
- END_TO_END_TESTING.md - Testing procedures