Re: DHCPv6 IA_PD - how-to

From: Roy Marples <roy_at_marples.name>
Date: Fri, 02 Aug 2024 22:37:40 UTC
 ---- On Fri, 02 Aug 2024 23:05:33 +0100  Karl Denninger  wrote --- 
 > This is what is typically in /etc/rc.conf:

I don't see anything wrong there.

 >       And in /usr/local/etc/dhcpcd.conf I have changed "duid" to        "clientid" which appears to get a repeatable IPv4 IF the host        will give me one (duid ALWAYS results in a different pool        address on each boot/run):
 >       
 >       # Generate SLAAC address using the Hardware Address of the      interface
 >       #slaac hwaddr
 >       # OR generate Stable Private IPv6 Addresses based from the DUID
 >       #slaac private
 >             
 >         allowinterfaces igb0
 >         
 >         #ipv6only
 >         #ipv4only
 >         
 >         #
 >         # Do not run these hooks; DO run the DDNS one in exit-hooks
 >         #
 >         nohook resolv.conf hostname ntp.conf
 >         
 >         # Do not allow router solicits on anywhere EXCEPT the external
 >         #
 >         noipv6rs
 >         
 >         interface igb0
 >                 ipv6rs
 >                 ia_na 1
 >                 ia_pd 1/::/56 igb1/0/64 igb1.4/1/64

This looks fine.
I'm on holiday now so can't look at it more (back in a week), but if it's not working on a cold start but is working on a reboot of "something" then the chances are dhcpcd got stuck waiting for the LL address to become ready.
FreeBSD doesn't announce the state of it, which is a shame, so dhcpcd polls it instead.
You can check this by adding "debug" to dhcpcd.conf and you should get a message like "waiting for LL address".
If DHCPv6 or RS stalls at that point then we know the cause.
You could also put "logfile /var/log/dhcpcd.log" to get a clean dhcpcd only log file.
Email to me off list if you like.

Roy