Re: ipv6ra_noautoconf on OpenBSD deconfigures AUTOCONF6 flag
Roy Marples
Mon Sep 24 13:19:09 2018
Hi Klemens
On 23/09/2018 15:50, Klemens Nanni wrote:
Since SLAAC is handled by slaacd(8)[0], dhcpcd is only used for configuring DNS.
Specifically:
$ sysctl -n kern.version
OpenBSD 6.4-beta (GENERIC.MP) #300: Tue Sep 18 02:27:17 MDT 2018
deraadt@xxxxxxxxxxxxxxxxx:/usr/src/sys/arch/amd64/compile/GENERIC.MP
$ dhcpcd --version
dhcpcd 7.0.8
Copyright (c) 2006-2018 Roy Marples
Compiled in features: INET ARP ARPing IPv4LL INET6 DHCPv6 AUTH
$ rcctl get dhcpcd flags
trunk0
$ cat /etc/dhcpcd.conf
background
persistent
ipv6only
ipv6ra_noautoconf
option domain_name domain_name_servers domain_search
require domain_name_servers
slaacd configures IPs and dhcpcd successfully fills /etc/resolv.conf, but as a
negative side effect of `ipv6ra_noautoconf' the interface's AUTOCONF6 flag is
deconfigured as well:
$ ifconfig trunk0 inet6
trunk0: flags=208943<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500
lladdr 68:f7:28:89:4d:4d
index 6 priority 0 llprio 3
trunk: trunkproto failover
trunkport iwm0 active
trunkport em0 master
groups: trunk egress
media: Ethernet autoselect
status: active
inet6 fe80::d812:af1f:3f16:35aa%trunk0 prefixlen 64 scopeid 0x6
inet6 fd00::73a9:9368:877:4da8 prefixlen 64 autoconf pltime 604100 vltime 2591300
inet6 fd00::6e0e:2840:1717:1f8f prefixlen 64 autoconf autoconfprivacy pltime 71800 vltime 590451
inet6 2001:xxxx:xxxx:1efd:c364:df18:f3b4:29b9 prefixlen 64 autoconf pltime 604100 vltime 2591300
inet6 2001:xxxx:xxxx:1efd:f1d2:36ae:1034:f8d9 prefixlen 64 autoconf autoconfprivacy pltime 71661 vltime 590451
# rcctl restart dhcpcd
dhcpcd(ok)
dhcpcd(ok)
$ ifconfig trunk0 | head -n1
trunk0: flags=8943<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
As lifetimes run out and AUTOCONF6 is not set again unless manually with
`ifconfig trunk0 inet6 autoconf', slaacd stops configuring new addresses and I
eventually end up with all addresses being deprecated, hence no working uplink.
Is there some way to tell dhcpcd to handle only DNS and *not* touch the interface flag?
0: http://man.openbsd.org/slaacd
It's not currently that granular.
See a recent discussion on this here:
https://roy.marples.name/archives/dhcpcd-discuss/0001932.html
I also find it rather odd that you even need to run dhcpcd for DNS as
the slaacd man page states it supports RFC 8106 which is all about DNS
in the RA and nothing else.
Is there a compelling reason why you need to run both? Either dhcpcd or
slaacd should be fine.
Roy
Archive administrator: postmaster@marples.name