## 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
77 lines
2.1 KiB
Markdown
77 lines
2.1 KiB
Markdown
# 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:
|
|
|
|
```yaml
|
|
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:
|
|
|
|
1. Edit the appropriate `host*_interfaces` file
|
|
2. Commit changes to git
|
|
3. 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](../README.md) - Project overview and quick start
|
|
- [TROUBLESHOOTING.md](../TROUBLESHOOTING.md) - Troubleshooting guide
|
|
- [END_TO_END_TESTING.md](../END_TO_END_TESTING.md) - Testing procedures
|