Add comprehensive host interface configuration documentation

This commit is contained in:
2025-11-30 08:21:24 +00:00
parent e04a531a86
commit 7c08125826

135
docs/HOST_CONFIGURATION.md Normal file
View File

@@ -0,0 +1,135 @@
# Host Interface Configuration Summary
## Overview
This document describes the persistent interface configuration approach for hosts in the Arista EVPN-VXLAN lab.
## Configuration Method
Hosts use persistent `/etc/network/interfaces` files mounted via ContainerLab's `binds` feature. This ensures:
- Configuration persists across container restarts
- Clean deployments without manual post-configuration
- Proper LACP bonding with VLAN tagging on Alpine Linux hosts
## Host Configurations
### Host1 (VTEP1 - L2 VXLAN on VLAN 40)
- **Location**: configs/host1-interfaces
- **IP Address**: 10.40.40.101/24
- **VLAN**: 40 (tagged)
- **Bonding**: LACP (802.3ad) using eth1 and eth2
- **Connected to**: leaf1 (eth1) and leaf2 (eth1)
### Host2 (VTEP2 - L3 VXLAN in VRF gold on VLAN 34)
- **Location**: configs/host2-interfaces
- **IP Address**: 10.34.34.102/24
- **VLAN**: 34 (tagged)
- **Gateway**: 10.34.34.1
- **Bonding**: LACP (802.3ad) using eth1 and eth2
- **Connected to**: leaf3 (eth1) and leaf4 (eth1)
### Host3 (VTEP3 - L2 VXLAN on VLAN 40)
- **Location**: configs/host3-interfaces
- **IP Address**: 10.40.40.103/24
- **VLAN**: 40 (tagged)
- **Bonding**: LACP (802.3ad) using eth1 and eth2
- **Connected to**: leaf5 (eth1) and leaf6 (eth1)
### Host4 (VTEP4 - L3 VXLAN in VRF gold on VLAN 78)
- **Location**: configs/host4-interfaces
- **IP Address**: 10.78.78.104/24
- **VLAN**: 78 (tagged)
- **Gateway**: 10.78.78.1
- **Bonding**: LACP (802.3ad) using eth1 and eth2
- **Connected to**: leaf7 (eth1) and leaf8 (eth1)
## Interface File Structure
All host interface files follow this pattern:
```
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet manual
use bond
bond-slaves eth1 eth2
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
up ip link set $IFACE up
auto bond0.<vlan>
iface bond0.<vlan> inet static
address <ip_address>
netmask 255.255.255.0
[gateway <gateway_ip>] # Only for L3 VXLAN hosts
vlan-raw-device bond0
up ip link set $IFACE up
```
## Key Configuration Points
### Alpine Linux Bonding Syntax
- Uses `use bond` directive (specific to ifupdown-ng in Alpine Linux)
- LACP mode configured via `bond-mode 802.3ad`
- Fast LACP rate for quicker failover detection
### VLAN Tagging
- VLANs are tagged by the hosts using subinterfaces (bond0.40, bond0.34, bond0.78)
- Switch ports are configured in trunk mode, NOT access mode
- This prevents layer 2/3 mismatches that would break VXLAN connectivity
### Topology Integration
The topology file (evpn-lab.clab.yml) mounts these files using binds:
```yaml
host1:
kind: linux
image: alpine:latest
binds:
- configs/host1-interfaces:/etc/network/interfaces
```
## Testing Connectivity
### L2 VXLAN (VLAN 40)
Host1 and Host3 should be able to ping each other:
```bash
# From host1
ping 10.40.40.103
# From host3
ping 10.40.40.101
```
### L3 VXLAN (VRF gold)
Host2 and Host4 should be able to ping each other:
```bash
# From host2
ping 10.78.78.104
# From host4
ping 10.34.34.102
```
## Verification Commands
### On hosts - Check bonding status:
```bash
cat /proc/net/bonding/bond0
ip link show bond0
ip addr show bond0.<vlan>
```
### On leaf switches - Check MLAG port-channels:
```bash
show mlag interfaces
show port-channel summary
show interfaces status
```
### On leaf switches - Check VXLAN:
```bash
show vxlan vtep
show vxlan address-table
show bgp evpn route-type mac-ip
show bgp evpn route-type ip-prefix ipv4
```