From c0f680a0b65bfef2298034096490d7381b33509b Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sat, 29 Nov 2025 17:25:47 +0000 Subject: [PATCH] Add README for hosts directory explaining interface configuration files --- hosts/README.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 hosts/README.md diff --git a/hosts/README.md b/hosts/README.md new file mode 100644 index 0000000..5723687 --- /dev/null +++ b/hosts/README.md @@ -0,0 +1,75 @@ +# 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. +iface bond0. inet static + 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.` (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 + +- [HOST_INTERFACE_CONFIGURATION.md](../docs/HOST_INTERFACE_CONFIGURATION.md) - Detailed documentation +- [DEPLOYMENT_GUIDE.md](../DEPLOYMENT_GUIDE.md) - Lab deployment instructions