Page MenuHomeVyOS Platform

dhcpv6-server: config allows overlapping subnets
Closed, ResolvedPublicBUG

Description

In service_dhcpv6-server verify(), the is_subnet_connected() and overlap checks run outside the subnet loop and check only the last subnet.

set interfaces ethernet eth0 address 2001:db8:f::1/64
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 subnet-id 1
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 interface eth0
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 range 0 start 2001:db8:a::100
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 range 0 stop 2001:db8:a:1::ffff
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a:1::/64 subnet-id 2
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a:1::/64 range 0 start 2001:db8:a:1::100
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a:1::/64 range 0 stop 2001:db8:a:1::200
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:f::/64 subnet-id 3
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:f::/64 range 0 start 2001:db8:f::100
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:f::/64 range 0 stop 2001:db8:f::200
commit

config validation passes and commit applied:

vyos@vyos# run sh conf comm|grep dhcp
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a:1::/64 range 0 start '2001:db8:a:1::100'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a:1::/64 range 0 stop '2001:db8:a:1::200'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a:1::/64 subnet-id '2'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 interface 'eth0'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 range 0 start '2001:db8:a::100'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 range 0 stop '2001:db8:a:1::ffff'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:a::/48 subnet-id '1'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:f::/64 range 0 start '2001:db8:f::100'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:f::/64 range 0 stop '2001:db8:f::200'
set service dhcpv6-server shared-network-name LAN subnet 2001:db8:f::/64 subnet-id '3'

Details

Version
2026.03.17-0024-rolling
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)