vyos 1.5.0 dhcp-server config:
set interfaces bonding bond0 address '172.16.1.1/24' set interfaces bonding bond0 member interface 'eth1' set interfaces bonding bond0 member interface 'eth2' set interfaces bonding bond0 mode '802.3ad' set interfaces bonding bond0 vif 3 address '172.16.3.1/24' set interfaces bonding bond0 vif 4 address '172.16.4.1/24' set interfaces bonding bond0 vif 7 address '172.16.7.1/24' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 option default-router '172.16.4.1' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 option name-server '1.1.1.1' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 range SERVERS start '172.16.4.20' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 range SERVERS stop '172.16.4.100' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 static-mapping Generator ip-address '172.16.4.28' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 static-mapping Generator mac 'dc:a6:32:11:95:d1' set service dhcp-server shared-network-name ServerNet subnet 172.16.4.0/24 subnet-id '1' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 option default-router '172.16.3.1' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 option name-server '172.16.3.1' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 option name-server '1.1.1.1' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 range WIFI start '172.16.3.10' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 range WIFI stop '172.16.3.254' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 static-mapping printer ip-address '172.16.3.241' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 static-mapping printer mac 'C0:74:AD:F7:99:D8' set service dhcp-server shared-network-name WIFI subnet 172.16.3.0/24 subnet-id '2' set service dhcp-server shared-network-name Wired subnet 172.16.7.0/24 option default-router '172.16.7.1' set service dhcp-server shared-network-name Wired subnet 172.16.7.0/24 option name-server '1.1.1.1' set service dhcp-server shared-network-name Wired subnet 172.16.7.0/24 range Home start '172.16.7.10' set service dhcp-server shared-network-name Wired subnet 172.16.7.0/24 range Home stop '172.16.7.200' set service dhcp-server shared-network-name Wired subnet 172.16.7.0/24 subnet-id '3' set service dhcp-server shared-network-name mgt subnet 172.16.1.0/24 option default-router '172.16.1.1' set service dhcp-server shared-network-name mgt subnet 172.16.1.0/24 option name-server '1.1.1.1' set service dhcp-server shared-network-name mgt subnet 172.16.1.0/24 range mgt start '172.16.1.50' set service dhcp-server shared-network-name mgt subnet 172.16.1.0/24 range mgt stop '172.16.1.200' set service dhcp-server shared-network-name mgt subnet 172.16.1.0/24 subnet-id '4'
switch:
set interfaces bonding bond0 mode '802.3ad' set interfaces bonding bond0 member interface 'eth1' set interfaces bonding bond0 member interface 'eth2' set interfaces bridge br0 member interface 'bond0' set interfaces bridge br0 member interface 'eth0' set interfaces bridge br0 enable-vlan set interfaces bridge br0 member interface bond0 allowed-vlan '1-7' set interfaces bridge br0 member interface bond0 native-vlan '1' set interfaces bridge br0 member interface eth0 allowed-vlan '3' set interfaces bridge br0 member interface eth0 native-vlan '3'
client:
set interfaces ethernet eth0 address 'dhcp'
KEA sends two offers:
06:15:53.188005 IP 172.16.3.1.bootps > 172.16.3.10.bootpc ← correct (VLAN 3) 06:15:53.189202 IP 172.16.1.1.bootps > 172.16.1.52.bootpc ← wrong (mgt subnet)
One from the correct VLAN subnet and one from 172.16.1.0/24(bond0). Both are sent within 1ms
dhcp-server listening sockets:
vyos@vyos:~$ ss -f link -p Netid Recv-Q Send-Q Local Address:Port Peer Address:Port Process p_dgr 0 0 [8193]:* * p_raw 0 0 *:bond0 * p_raw 0 0 *:bond0.3 * p_raw 0 0 *:bond0.4 * p_raw 0 0 *:bond0.7 *
- Kea with “interfaces”: [“*”] opens raw sockets on bond0 and bond0.X
- DHCP DISCOVER arrives on both (kernel delivers to parent first, then VLAN)
- Multi-threading processes both copies independently
- Two offers sent: one from 172.16.1.0/24 (bond0), one from correct VLAN subnet