From 383a631d92a65ae5b2861db0597c99b276b52c62 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sat, 29 Nov 2025 17:24:54 +0000 Subject: [PATCH] Update topology to use binds for host interface configuration Replace exec commands with binds mounting /etc/network/interfaces files. This provides cleaner, more maintainable configuration that properly handles LACP bonding and VLAN tagging on Alpine Linux hosts. All hosts now: - Mount their interface config from hosts/ directory - Install required packages (ifupdown, bonding, vlan) - Load kernel modules (bonding, 8021q) - Bring up interfaces with ifup -a --- evpn-lab.clab.yml | 88 ++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 59 deletions(-) diff --git a/evpn-lab.clab.yml b/evpn-lab.clab.yml index 6ce7187..b79a338 100644 --- a/evpn-lab.clab.yml +++ b/evpn-lab.clab.yml @@ -67,88 +67,58 @@ topology: startup-config: configs/leaf8.cfg # Host devices - DUAL-HOMED with LACP bonding to MLAG pairs + # Using binds to mount interface configuration files host1: kind: linux mgmt-ipv4: 172.16.0.101 image: alpine:latest + binds: + - hosts/host1_interfaces:/etc/network/interfaces exec: - # Dual-homed LACP bond to leaf1 + leaf2 for L2 VXLAN test (VLAN 40) - # Using mode 4 (802.3ad) explicitly for Alpine Linux compatibility - - ip link add bond0 type bond mode 4 - - ip link set address 00:c1:ab:00:00:11 dev bond0 - - ip link set eth1 down - - ip link set eth2 down - - ip link set eth1 master bond0 - - ip link set eth2 master bond0 - - ip link set eth1 up - - ip link set eth2 up - - ip link set bond0 up - # VLAN interface on bond - - ip link add link bond0 name bond0.40 type vlan id 40 - - ip link set bond0.40 up - - ip addr add 10.40.40.101/24 dev bond0.40 + # Install required packages for bonding and VLAN support + - apk add --no-cache ifupdown bonding vlan + # Load bonding kernel module + - modprobe bonding + # Load 8021q module for VLAN support + - modprobe 8021q + # Bring up interfaces using the mounted configuration + - ifup -a host2: kind: linux mgmt-ipv4: 172.16.0.102 image: alpine:latest + binds: + - hosts/host2_interfaces:/etc/network/interfaces exec: - # Dual-homed LACP bond to leaf3 + leaf4 for L3 VXLAN test (VLAN 34, VRF gold) - - ip link add bond0 type bond mode 4 - - ip link set address 00:c1:ab:00:00:22 dev bond0 - - ip link set eth1 down - - ip link set eth2 down - - ip link set eth1 master bond0 - - ip link set eth2 master bond0 - - ip link set eth1 up - - ip link set eth2 up - - ip link set bond0 up - # VLAN interface on bond - - ip link add link bond0 name bond0.34 type vlan id 34 - - ip link set bond0.34 up - - ip addr add 10.34.34.102/24 dev bond0.34 - - ip route add default via 10.34.34.1 + - apk add --no-cache ifupdown bonding vlan + - modprobe bonding + - modprobe 8021q + - ifup -a host3: kind: linux mgmt-ipv4: 172.16.0.103 image: alpine:latest + binds: + - hosts/host3_interfaces:/etc/network/interfaces exec: - # Dual-homed LACP bond to leaf5 + leaf6 for L2 VXLAN test (VLAN 40) - - ip link add bond0 type bond mode 4 - - ip link set address 00:c1:ab:00:00:33 dev bond0 - - ip link set eth1 down - - ip link set eth2 down - - ip link set eth1 master bond0 - - ip link set eth2 master bond0 - - ip link set eth1 up - - ip link set eth2 up - - ip link set bond0 up - # VLAN interface on bond - - ip link add link bond0 name bond0.40 type vlan id 40 - - ip link set bond0.40 up - - ip addr add 10.40.40.103/24 dev bond0.40 + - apk add --no-cache ifupdown bonding vlan + - modprobe bonding + - modprobe 8021q + - ifup -a host4: kind: linux mgmt-ipv4: 172.16.0.104 image: alpine:latest + binds: + - hosts/host4_interfaces:/etc/network/interfaces exec: - # Dual-homed LACP bond to leaf7 + leaf8 for L3 VXLAN test (VLAN 78, VRF gold) - - ip link add bond0 type bond mode 4 - - ip link set address 00:c1:ab:00:00:44 dev bond0 - - ip link set eth1 down - - ip link set eth2 down - - ip link set eth1 master bond0 - - ip link set eth2 master bond0 - - ip link set eth1 up - - ip link set eth2 up - - ip link set bond0 up - # VLAN interface on bond - - ip link add link bond0 name bond0.78 type vlan id 78 - - ip link set bond0.78 up - - ip addr add 10.78.78.104/24 dev bond0.78 - - ip route add default via 10.78.78.1 + - apk add --no-cache ifupdown bonding vlan + - modprobe bonding + - modprobe 8021q + - ifup -a links: # Spine1 to Leaf connections (underlay fabric)