dhcpcd-7.0.1-1 seems to break SLAAC

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

dhcpcd-7.0.1-1 seems to break SLAAC

Jukka Salmi
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.
Reply | Threaded
Open this post in threaded view
|

Re: dhcpcd-7.0.1-1 seems to break SLAAC

ProgAndy
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-addresses-fix-everything/

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/8f483d192082a953dd035f38ee4555735106f1fc
> /*
> * 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

Reply | Threaded
Open this post in threaded view
|

Re: dhcpcd-7.0.1-1 seems to break SLAAC

Jukka Salmi
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/8f483d192082a953dd035f38ee4555735106f1fc
> > /*
> > * 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.