Resolved: Did v23.05+ break IPv6?
-
The interface data from the the dhcpv6 section in the config should show it all. I'm using managed mode RA here which is probably why I'm not seeing it:
<opt1> <range> <from>::1000</from> <to>::2000</to> </range> <prefixrange> <from></from> <to></to> <prefixlength>64</prefixlength> </prefixrange> <defaultleasetime></defaultleasetime> <maxleasetime></maxleasetime> <netmask></netmask> <domain></domain> <domainsearchlist></domainsearchlist> <enable></enable> <ddnsdomain></ddnsdomain> <ddnsdomainprimary></ddnsdomainprimary> <ddnsdomainkeyname></ddnsdomainkeyname> <ddnsdomainkeyalgorithm>hmac-md5</ddnsdomainkeyalgorithm> <ddnsdomainkey></ddnsdomainkey> <ddnsclientupdates>allow</ddnsclientupdates> <tftp></tftp> <ldap></ldap> <bootfile_url></bootfile_url> <dhcpv6leaseinlocaltime></dhcpv6leaseinlocaltime> <numberoptions></numberoptions> <ramode>managed</ramode> <rapriority>medium</rapriority> <rainterface></rainterface> <ravalidlifetime></ravalidlifetime> <rapreferredlifetime></rapreferredlifetime> <raminrtradvinterval></raminrtradvinterval> <ramaxrtradvinterval></ramaxrtradvinterval> <raadvdefaultlifetime></raadvdefaultlifetime> <radomainsearchlist></radomainsearchlist> </opt1>
Let me see if I can replicate it in SLAAC...
-
</dhcpd> <dhcpdv6> <lan> <range> <from>::1000</from> <to>::2000</to> </range> <ramode>stateless_dhcp</ramode> <rapriority>medium</rapriority> <prefixrange> <from></from> <to></to> <prefixlength>64</prefixlength> </prefixrange> <defaultleasetime></defaultleasetime> <maxleasetime></maxleasetime> <netmask></netmask> <dhcp6c-dns>enabled</dhcp6c-dns> <domain></domain> <domainsearchlist></domainsearchlist> <ddnsdomain></ddnsdomain> <ddnsdomainprimary></ddnsdomainprimary> <ddnsdomainsecondary></ddnsdomainsecondary> <ddnsdomainkeyname></ddnsdomainkeyname> <ddnsdomainkeyalgorithm>hmac-md5</ddnsdomainkeyalgorithm> <ddnsdomainkey></ddnsdomainkey> <ddnsclientupdates>allow</ddnsclientupdates> <tftp></tftp> <ldap></ldap> <bootfile_url></bootfile_url> <dhcpv6leaseinlocaltime></dhcpv6leaseinlocaltime> <numberoptions></numberoptions> <rainterface></rainterface> <ravalidlifetime></ravalidlifetime> <rapreferredlifetime></rapreferredlifetime> <raminrtradvinterval></raminrtradvinterval> <ramaxrtradvinterval></ramaxrtradvinterval> <raadvdefaultlifetime></raadvdefaultlifetime> <radomainsearchlist></radomainsearchlist> <radvd-dns>enabled</radvd-dns> <enable></enable> </lan> <opt3> <ramode>stateless_dhcp</ramode> <rapriority>medium</rapriority> <rainterface></rainterface> <ravalidlifetime></ravalidlifetime> <rapreferredlifetime></rapreferredlifetime> <raminrtradvinterval></raminrtradvinterval> <ramaxrtradvinterval></ramaxrtradvinterval> <raadvdefaultlifetime></raadvdefaultlifetime> <radomainsearchlist></radomainsearchlist> <radvd-dns>enabled</radvd-dns> <range> <from>::1000</from> <to>::2000</to> </range> <prefixrange> <from></from> <to></to> <prefixlength>64</prefixlength> </prefixrange> <defaultleasetime></defaultleasetime> <maxleasetime></maxleasetime> <netmask></netmask> <dhcp6c-dns>enabled</dhcp6c-dns> <domain></domain> <domainsearchlist></domainsearchlist> <ddnsdomain></ddnsdomain> <ddnsdomainprimary></ddnsdomainprimary> <ddnsdomainsecondary></ddnsdomainsecondary> <ddnsdomainkeyname></ddnsdomainkeyname> <ddnsdomainkeyalgorithm>hmac-md5</ddnsdomainkeyalgorithm> <ddnsdomainkey></ddnsdomainkey> <ddnsclientupdates>allow</ddnsclientupdates> <tftp></tftp> <ldap></ldap> <bootfile_url></bootfile_url> <dhcpv6leaseinlocaltime></dhcpv6leaseinlocaltime> <numberoptions></numberoptions> <enable></enable> </opt3> <opt1> <ramode>stateless_dhcp</ramode> <rapriority>medium</rapriority> <rainterface></rainterface> <ravalidlifetime></ravalidlifetime> <rapreferredlifetime></rapreferredlifetime> <raminrtradvinterval></raminrtradvinterval> <ramaxrtradvinterval></ramaxrtradvinterval> <raadvdefaultlifetime></raadvdefaultlifetime> <radomainsearchlist></radomainsearchlist> <radvd-dns>enabled</radvd-dns> <range> <from>::1000</from> <to>::2000</to> </range> <prefixrange> <from></from> <to></to> <prefixlength>64</prefixlength> </prefixrange> <defaultleasetime></defaultleasetime> <maxleasetime></maxleasetime> <netmask></netmask> <dhcp6c-dns>enabled</dhcp6c-dns> <domain></domain> <domainsearchlist></domainsearchlist> <enable></enable> <ddnsdomain></ddnsdomain> <ddnsdomainprimary></ddnsdomainprimary> <ddnsdomainsecondary></ddnsdomainsecondary> <ddnsdomainkeyname></ddnsdomainkeyname> <ddnsdomainkeyalgorithm>hmac-md5</ddnsdomainkeyalgorithm> <ddnsdomainkey></ddnsdomainkey> <ddnsclientupdates>allow</ddnsclientupdates> <tftp></tftp> <ldap></ldap> <bootfile_url></bootfile_url> <dhcpv6leaseinlocaltime></dhcpv6leaseinlocaltime> <numberoptions></numberoptions> </opt1> </dhcpdv6>
Maybe I should be using a managed mode?
From my notes I did have it on 'Assisted' on my initial config. Cannot remember what prompted the change.
️
-
You would only change it from Assisted to disable DHCPv6. I set it to Managed to disable SLAAC because I had a badly behaved client on there.
-
@stephenw10 said in Did v23.05+ break IPv6?:
You would only change it from Assisted to disable DHCPv6. I set it to Managed to disable SLAAC because I had a badly behaved client on there.
Ok, I guess I was hoping for a self-inflicted config snafu rather than a potential bug.
️
-
Are those clients actually failing to get IPv6 addresses in addition to the errors? I assume they are...
-
They seem to be. If I take this one as an example, which is a HomePod mini:
Jul 13 16:16:50 Router-8 dhcpd[88832]: Solicit message from fe80::c77:d61c:dead:e7f1 port 546, transaction ID 0x1E58F500 Jul 13 16:16:50 Router-8 dhcpd[88832]: Unable to pick client prefix: no IPv6 pools on this shared network Jul 13 16:16:50 Router-8 dhcpd[88832]: Sending Advertise to fe80::c77:d61c:dead:e7f1 port 546
I find the 3 addresses I would expect in ndp:
2a02:reda:cted:1:44:85da:d2b:4e22 e0:2b:96:de:ad:e7 ix1 23h54m3s S R fe80::c77:d61c:dead:e7f1%ix1 e0:2b:96:de:ad:e7 ix1 23h59m49s S R 2a02:reda:cted:1:f838:ff81:92cb:b1f4 e0:2b:96:de:ad:e7 ix1 23h12m47s S R
Looking at the HomePod mini itself it only shows 2 IPv6 addresses:
fe80::c77:d61c:dead:e7f1 2a02:reda:cted:1:82:e074:5611:8f57
So they don't tie together neatly.
️
-
Hmm, not seeing that here after setting RA mode to Assisted:
(logs reveresed)Jul 13 17:48:58 dhcpd 90545 Sending Reply to fe80::d088:d265:1c85:243e port 546 Jul 13 17:48:58 dhcpd 90545 Reply NA: address 2a00:reda:cted:6a02::1982 to client with duid 00:04:68:c4:1c:60:11:aa:96:67:78:74:1c:e1:f7:d0:35:e8 iaid = 227970921 valid for 7200 seconds Jul 13 17:48:58 dhcpd 90545 Request message from fe80::d088:d265:1c85:243e port 546, transaction ID 0x11886700 Jul 13 17:48:57 dhcpd 90545 Sending Advertise to fe80::d088:d265:1c85:243e port 546 Jul 13 17:48:57 dhcpd 90545 Advertise NA: address 2a00:reda:cted:6a02::1982 to client with duid 00:04:68:c4:1c:60:11:aa:96:67:78:74:1c:e1:f7:d0:35:e8 iaid = 227970921 valid for 7200 seconds Jul 13 17:48:57 dhcpd 90545 Picking pool address 2a00:reda:cted:6a02::1982 Jul 13 17:48:57 dhcpd 90545 Solicit message from fe80::d088:d265:1c85:243e port 546, transaction ID 0x9163A000
Note that's inside the DHCPv6 pool I have defined. It's a DHCPv6 lease. You have a range defined but with RA mode set to stateless it may not actually be available.
It looks like your logs show DHCPv6 failure which might be expected with RA set to SLAAC only.
Steve
-
@stephenw10
Thanks Steve, is there a suggested best-practice with this? -
I would say use Assisted mode RA unless you have a good reason not to.
-
@stephenw10
Thanks Steve, I'll give it a go.Found my previous notes and apparently it all fell apart last time I tried Assisted Mode. Thinking back, I probably didn't leave enough time for all the revised IPv6 addresses to propagate.
Is there anything else to change in my config with Assisted Mode, or is as simple as changing the drop-down option?
️
-
I don't think anything else is needed but I will say it's not something I'm spent much time looking into.
I'm also not aware of anything that changed there since 23.01 so it's surprising you saw a change in behaviour.
-
@stephenw10
Yep, it is all a bit odd - especially with the errors in the logs. It may be linked to the issue on Redmine but I am still not certain of it. I guess I will find out when that issue is closed.Thanks for the help, again.
️
-
The Assisted Mode has IPv6 fully working again with no errors in the log.
As a 'promising' side-effect, my HomePods have suddenly remembered how to play an Apple Music playlist again; something that stopped a few Apple updates ago.
If I select SLAAC again, Apple Music becomes stupid again. I didn't think this issue would be IPv6 related, especially with IPv6 apparently working (at least for the most part).
I still have no idea what is up with SLAAC though, so this issue may still impact others, but Assisted Mode works for me.
Anyway, thanks Steve, 2 issues resolved for the price of 1.
️
-
R RobbieTT referenced this topic on