[arch-general] dhcpcd-7.0.1-1 seems to break SLAAC
Hello Since upgrading dhcpcd from 6.11.5-1 to 7.0.1-1 my (VLAN) interface doesn't get an IPv6 address (via SLAAC) anymore. The netctl profile in question: Interface=enp0s25.100 Connection=vlan BindsToInterfaces=enp0s25 VLANID=100 IP=dhcp IP6=stateless With dhcpcd-6.11.5-1 starting this netctl profile results in an IPv4 address being configured via DHCP and an IPv6 address being configured via SLAAC as expected. With dhcpcd-7.0.1-1 starting this netctl profile results in an IPv4 address being configured via DHCP, but no IPv6 address is configured. In both cases, netctl passes dhcpcd the same arguments: dhcpcd -4 -q -t 30 -L enp0s25.100 so that's probably not the source of the problem. If I disable IPv4 DHCP (by setting `IP=no' in the above netctl profile), SLAAC works fine again (but of course then I don't get an IPv4 address via DHCP anymore...). Is anybody seeing the same issue? Is really dhcpcd to blame? TIA & cheers, Jukka -- This email fills a much-needed gap in the archives.
Am 23.02.2018 um 01:45 schrieb Jukka Salmi:
With dhcpcd-6.11.5-1 starting this netctl profile results in an IPv4 address being configured via DHCP and an IPv6 address being configured via SLAAC as expected.
With dhcpcd-7.0.1-1 starting this netctl profile results in an IPv4 address being configured via DHCP, but no IPv6 address is configured.
...
Is anybody seeing the same issue? Is really dhcpcd to blame?
TIA & cheers,
Jukka
Hello, that was a deliberate design decision, it is assumed that you will either want dhcpcd to handle ipv4 as well as ipv6 or you want to disable ipv6. https://roy.marples.name/archives/dhcpcd-discuss/0001903.html
* ipv6: disable kernel RA if interface is active
dhcpcd supports DHCPCv6 as well as SLAAC, but the "private" IPv6 is generated according to RFC 7217 instead of RFC 4941. That means you get a unique ipv6 for each network prefix that never changes. This article may explain it a bit better https://www.internetsociety.org/blog/2015/02/ipv6-security-myth-5-privacy-ad... More information about the reasons for the change here: https://roy.marples.name/archives/dhcpcd-discuss/0001907.html https://roy.marples.name/archives/dhcpcd-discuss/0001880.html It seems that there were too many complaints, so in git the behaviour has been changed again. (After the 7.0.1 release) https://roy.marples.name/archives/dhcpcd-discuss/0001942.html https://github.com/rsmarples/dhcpcd/commit/8f483d192082a953dd035f38ee4555735...
/* * If dhcpcd is doing RS, disable RA support * in the kernel. Otherwise, leave it alone. * Logically it should be disabled regardless as dhcpcd can * do it better and the user saying no RS means no RS even the kernel, * but some crazy people want the kernel to do it still. */
Maybe in the future dhcpcd will have options for both ignoring ipv6 (letting the kernel handle it) and disabling ipv6. -- Andy
Hello Andy ProgAndy --> arch-general (2018-02-23 23:09:07 +0100):
Am 23.02.2018 um 01:45 schrieb Jukka Salmi:
With dhcpcd-6.11.5-1 starting this netctl profile results in an IPv4 address being configured via DHCP and an IPv6 address being configured via SLAAC as expected.
With dhcpcd-7.0.1-1 starting this netctl profile results in an IPv4 address being configured via DHCP, but no IPv6 address is configured.
...
Is anybody seeing the same issue? Is really dhcpcd to blame?
TIA & cheers,
Jukka
Hello, that was a deliberate design decision, it is assumed that you will either want dhcpcd to handle ipv4 as well as ipv6 or you want to disable ipv6.
https://roy.marples.name/archives/dhcpcd-discuss/0001903.html
* ipv6: disable kernel RA if interface is active [...] More information about the reasons for the change here: https://roy.marples.name/archives/dhcpcd-discuss/0001907.html https://roy.marples.name/archives/dhcpcd-discuss/0001880.html
Thanks for the hints. So it seems that currently a netctl profile with IP=dhcp IP6=stateless is just not working as expected, at least not when using the default setting of DHCPClient=dhcpcd.
It seems that there were too many complaints, so in git the behaviour has been changed again. (After the 7.0.1 release) https://roy.marples.name/archives/dhcpcd-discuss/0001942.html https://github.com/rsmarples/dhcpcd/commit/8f483d192082a953dd035f38ee4555735...
/* * If dhcpcd is doing RS, disable RA support * in the kernel. Otherwise, leave it alone. * Logically it should be disabled regardless as dhcpcd can * do it better and the user saying no RS means no RS even the kernel, * but some crazy people want the kernel to do it still. */
Maybe in the future dhcpcd will have options for both ignoring ipv6 (letting the kernel handle it) and disabling ipv6.
I wouldn't complain about such options ;) Cheers, Jukka -- This email fills a much-needed gap in the archives.
participants (2)
-
Jukka Salmi
-
ProgAndy