Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Page MenuHomeVyOS Platform

Regression of T3240 in WIDE dhcp6c - Missing patch to support configuration of custom DUID
Closed, ResolvedPublicBUG

Description

Summary:

DHCPv6 client fails to start in 1.4.1 for users making use of DHCPv6 client configuration with a custom DUID specified.

Workaround:

  1. Delete the DUID configuration (note this may not be an option if your service requires a specific DUID)
  2. Downgrade to 1.4.0

Detail:

Example Interface Configuration:

set interfaces ethernet eth0 dhcpv6-options duid '00:04:ce:af:52:cf:6b:c7:48:e4:9d:ee:3e:77:3d:69:bf:56'

Generates /var/run/dhcp6c/dhcp6c.eth0.conf with:

send client-id 00:04:ce:af:52:cf:6b:c7:48:e4:9d:ee:3e:77:3d:69:bf:56;

Which is the configuration line producing a syntax error on service startup:

Jan/17/2025 20:30:24: cfdebug_print: <3>comment [### Autogenerated by interface.py ###] (37)
Jan/17/2025 20:30:24: cfdebug_print: <3>comment [# man https://www.unix.com/man-page/debian/5/dhcp6c.conf/] (57)
Jan/17/2025 20:30:24: cfdebug_print: <3>[interface] (9)
Jan/17/2025 20:30:24: cfdebug_print: <5>[eth0] (4)
Jan/17/2025 20:30:24: cfdebug_print: <3>begin of closure [{] (1)
Jan/17/2025 20:30:24: cfdebug_print: <3>[send] (4)
Jan/17/2025 20:30:24: cfdebug_print: <3>[client-id] (9)
Jan/17/2025 20:30:24: yyerror0: /run/dhcp6c/dhcp6c.eth0.conf 5: syntax error
Jan/17/2025 20:30:24: yyerror0: /run/dhcp6c/dhcp6c.eth0.conf 5: fatal parse failure: exiting (1 errors)
Jan/17/2025 20:30:24: main: failed to parse configuration file

Applying Workaround:

Delete DUID configuration:

delete interfaces ethernet eth0 dhcpv6-options duid '00:04:ce:af:52:cf:6b:c7:48:e4:9d:ee:3e:77:3d:69:bf:56'

If you service requires a specific DUID this will likely not work, you can attempt to also set the DUID used by dhcp6c by updating /var/lib/dhcpv6/dhcp6c_duid but this will be a binary file and you would need to research the format to do so.

Alternatively, if you require a custom DUID a downgrade to an earlier working release is recommended until this bug is resolved.

Details

Version
1.4.1
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

Viacheslav triaged this task as Normal priority.Jan 20 2025, 5:20 PM

Bug confirmed in 1.4.1

Unable to reproduce on "1.4-smoketest-202501211750"

Most likely a transitional package build error not picking up our version of wide-dhcpv6. Upgrading to latest version of wide-dhcpv6-client_20080615-23_amd64.deb from our repos solved the issue.

c-po changed Is it a breaking change? from Behavior change to Perfectly compatible.

For anyone else who finds this in their travels, trying to figure out why 1.4.1 broke their DHCPv6 with custom DUID: the workaround steps detailed are not sufficient to restore DHCPv6 functionality. Removing the custom DUID from the VyOS configuration leaves invalid data in /var/lib/dhcpv6/dhcp6c_duid, causing DHCPv6 solicits to be ignored by the server as they don't contain a valid DUID.

Part of the fix:

  • sudo rm /var/lib/dhcpv6/dhcp6c_duid
  • renew dhcpv6 interface <interface>

The above steps result in the server responding to solicits again, but the DHCPv6 client remains in a broken state, as it doesn't appear to recognise the responses from the DHCPv6 server and the IA_ADDR in the server response isn't assigned to the interface. I'm still trying to figure out why this is.