Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 514198 - net-misc/dhcpcd-6.4.0: IPv6 issues (slaac defaults to private now)
Summary: net-misc/dhcpcd-6.4.0: IPv6 issues (slaac defaults to private now)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] baselayout (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: William Hubbs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-21 21:20 UTC by Panagiotis Christopoulos (RETIRED)
Modified: 2014-08-26 13:19 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-21 21:20:55 UTC
Hi guys,

after upgrading dhcpcd from 6.3.2 to 6.4.0 on a linode box (XEN), I lost IPv6 connectivity. I found that with the default dhcpcd.conf I had gotten wrong IPv6 address, when changed slaac from private to hwaddr I was getting the correct IPv6 address but still couldn't connect to any host (no telnet, no ping6). Downgrading to 6.3.2 solved everything. Not easy to debug this for long cause this is a production server. I CC Roy in case you need me to do any quick testing. If this is a false alarm (something having to do with my environment) I'm sorry for bothering you but thought I should report it anyway.
Comment 1 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-21 21:28:32 UTC
emerge --info output:

Portage 2.2.10 (default/linux/amd64/13.0/no-multilib, gcc-4.8.3, glibc-2.19-r1, 3.14.5-x86_64-linode42 x86_64)
=================================================================
System uname: Linux-3.14.5-x86_64-linode42-x86_64-Intel-R-_Xeon-R-_CPU_E5-2650L_0_@_1.80GHz-with-gentoo-2.2
KiB Mem:     1526216 total,   1298500 free
KiB Swap:    3145724 total,   3145724 free
Timestamp of tree: Sat, 21 Jun 2014 16:15:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p47
dev-lang/python:          2.7.6-r1, 3.3.5, 3.4.0
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.8.3
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.15 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo pchrist_exp
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-mno-tls-direct-seg-refs -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-mno-tls-direct-seg-refs -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms sign strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirror.leaseweb.com/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror"
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlays/pchrist_exp"
SYNC="rsync://rsync.uk.gentoo.org/gentoo-portage"
USE="acl amd64 apache2 bzip2 cli cracklib crypt iconv ipv6 mmx mudflap mysql ncurses nptl nptlonly openrc pam pcre perl posix python readline reflection session snmp sockets spl sse sse2 ssl sysfs tcpd threads truetype unicode xml zlib" ABI_X86="64" APACHE2_MODULES="*" CURL_SSL="gnutls" ELIBC="glibc" KERNEL="linux" PYTHON_SINGLE_TARGET="python3_3" PYTHON_TARGETS="python2_7 python3_3" USERLAND="GNU"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

and emerge dhcpcd output:

earth dhcpcd # emerge -pv dhcpcd

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U  ] net-misc/dhcpcd-6.4.0 [6.3.2] USE="ipv6 -udev" 0 kB

Total: 1 package (1 upgrade), Size of downloads: 0 kB
earth dhcpcd #
Comment 2 Roy Marples 2014-06-21 23:03:10 UTC
Sounds serious. Is this connectivity to the host, from the host or both?

Can you post a working routing table and address output (dhcpcd-6.3.2) and a non working one please (dhcpcd-6.4.0)? full dhcpcd output of both would be good as well. Before making logs you should clear ALL ipv6 addresses including the local link address so we can see how dhcpcd reacts from a cold start.

That should provide enough information to provide a resolution.
Comment 3 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-21 23:32:59 UTC
earth ~ # ping6 ipv6.google.com
PING ipv6.google.com(lhr08s04-in-x0e.1e100.net) 56 data bytes
^C
--- ipv6.google.com ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5007ms

earth ~ # ip -6 addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2a01:7e00::bd6:eaea:8300:486c/64 scope global noprefixroute dynamic 
       valid_lft 2591971sec preferred_lft 604771sec
    inet6 fe80::f03c:91ff:fedf:bae1/64 scope link 
       valid_lft forever preferred_lft forever
earth ~ # route -6 -n
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2a01:7e00::/64                 ::                         U    3   0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth0
::/0                           fe80::1                    UG   3   2     0 eth0
::/0                           ::                         !n   -1  1    55 lo
::1/128                        ::                         Un   0   1     4 lo
2a01:7e00::bd6:eaea:8300:486c/128 ::                         Un   0   1     0 lo
fe80::f03c:91ff:fedf:bae1/128  ::                         Un   0   1     4 lo
ff00::/8                       ::                         U    256 1     0 eth0
::/0                           ::                         !n   -1  1    55 lo
earth ~ # dhcpcd --version
dhcpcd 6.4.0
Copyright (c) 2006-2014 Roy Marples
earth ~ # grep -v '^$\|^#' /etc/dhcpcd.conf 
hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option ntp_servers
require dhcp_server_identifier
slaac private
nohook lookup-hostname
debug
earth ~ # grep -a dhcpcd /tmp/messages
Jun 22 02:27:45 earth dhcpcd[2246]: eth0: sending ARP announce (2 of 2)
Jun 22 02:27:45 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:27:45 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:27:45 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:27:45 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:27:45 earth dhcpcd[2246]: eth0: No DHCPv6 instruction in RA
Jun 22 02:25:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:25:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:25:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:25:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:25:58 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:25:58 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:25:58 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:25:58 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:26:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:26:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:26:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:26:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:26:58 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:26:58 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:26:58 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:26:58 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:27:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:27:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:27:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:27:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:27:58 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:27:58 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:27:58 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:27:58 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:28:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:28:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:28:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:28:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:28:58 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:28:58 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:28:58 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:28:58 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:29:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:29:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::bd6:eaea:8300:486c/64
Jun 22 02:29:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:29:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
earth ~ #
Comment 4 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-21 23:44:17 UTC
earth ~ # ping6 ipv6.google.com
PING ipv6.google.com(lhr08s04-in-x00.1e100.net) 56 data bytes
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=1 ttl=59 time=1.09 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=2 ttl=59 time=1.12 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=3 ttl=59 time=1.20 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=4 ttl=59 time=1.13 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=5 ttl=59 time=1.10 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=6 ttl=59 time=1.11 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=7 ttl=59 time=1.23 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=8 ttl=59 time=1.33 ms
64 bytes from lhr08s04-in-x00.1e100.net: icmp_seq=9 ttl=59 time=1.13 ms
^C
--- ipv6.google.com ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8015ms
rtt min/avg/max/mdev = 1.091/1.163/1.331/0.085 ms

earth ~ # ip -6 addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2a01:7e00::f03c:91ff:fedf:bae1/64 scope global noprefixroute dynamic 
       valid_lft 2591985sec preferred_lft 604785sec
    inet6 fe80::f03c:91ff:fedf:bae1/64 scope link 
       valid_lft forever preferred_lft forever
earth ~ # route -6 -n
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2a01:7e00::/64                 ::                         UAe  256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth0
::/0                           fe80::1                    UGDAe 1024 0     0 eth0
::/0                           ::                         !n   -1  1    61 lo
::1/128                        ::                         Un   0   1     4 lo
2a01:7e00::f03c:91ff:fedf:bae1/128 ::                         Un   0   1   126 lo
fe80::f03c:91ff:fedf:bae1/128  ::                         Un   0   1     6 lo
ff00::/8                       ::                         U    256 1     0 eth0
::/0                           ::                         !n   -1  1    61 lo
earth ~ # dhcpcd --version
dhcpcd 6.4.0
Copyright (c) 2006-2014 Roy Marples
earth ~ #
earth ~ # grep -v '^$\|^#' /etc/dhcpcd.conf 
hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option ntp_servers
require dhcp_server_identifier
slaac hwaddr
nohook lookup-hostname
debug
earth ~ 
earth ~ # grep -a dhcpcd /tmp/messages 
Jun 22 02:41:45 earth dhcpcd[2246]: eth0: sending ARP announce (2 of 2)
Jun 22 02:41:46 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:41:46 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::f03c:91ff:fedf:bae1/64
Jun 22 02:41:46 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:41:46 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:41:46 earth dhcpcd[2246]: eth0: No DHCPv6 instruction in RA
Jun 22 02:39:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:39:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::f03c:91ff:fedf:bae1/64
Jun 22 02:39:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:39:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:39:58 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:39:58 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::f03c:91ff:fedf:bae1/64
Jun 22 02:39:58 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:39:58 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
Jun 22 02:40:28 earth dhcpcd[2246]: eth0: Router Advertisement from fe80::1
Jun 22 02:40:28 earth dhcpcd[2246]: eth0: adding address 2a01:7e00::f03c:91ff:fedf:bae1/64
Jun 22 02:40:28 earth dhcpcd[2246]: eth0: vltime 2592000 seconds, pltime 604800 seconds
Jun 22 02:40:28 earth dhcpcd[2246]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
earth ~ #
Comment 5 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-21 23:51:18 UTC
Sorry for the verbose output but don't have a simple way to make and upload logs. The last output show that 6.4.0 seems to work with "slaac hwaddr". So it seems to be a slaac private/slaac hwaddr issue. I'm pretty sure I rebooted the box with hwaddr and failed to connect to freenode  or ping6  my other boxes, just can't reproduce it now.
Comment 6 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-22 00:12:29 UTC
So, if it is slaac hwaddr versus slaac private, is it a bug after all or just a bad configuration thing for me?
Comment 7 Roy Marples 2014-06-22 00:30:16 UTC
(In reply to Panagiotis Christopoulos from comment #6)
> So, if it is slaac hwaddr versus slaac private, is it a bug after all or
> just a bad configuration thing for me?

Bad config maybe?
I'm using slaac private addresses fine on Debian and the BSD's.
Comment 8 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-22 06:56:06 UTC
Alright then. What I originally meant by "bad configuration" is that the default dhcpcd.conf we ship to people, maybe it would be better to have "slaac hwaddr" instead of private. As far as I understand it, stateless autoconfiguration algorithm uses the MAC address of the ethX interface of a host to create link-local and global IPv6 addresses correct? What does "slaac private" do? I can't find enough information on the web about this (yes I know, maybe I'm not searching correctly), diffing the sources (6.3.2 , 6.4.0) doesn't help at first glance but will look more deeply into it. I just need to know if what happens (different IPv6 address in global scope when slaac private) is normal because of some different algorithm in assigning addresses or it is some weird issue happening on XEN based virtual machines or the dhcpd that serves this network is buggy.
Comment 10 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-06-23 12:32:50 UTC
I read the doc and also read [1]. It is clear now that this is not a bug. My personal opinion is that dhcpcd should default to "slaac hwaddr" until people become more familiar with the existence of the second, more secure algorithm, but I can understand your point of view as upstream. 

We should communicate this to users however, with a NEWS item or elog inside the ebuild. 

@Williamh: what do you think?

btw, I'm leaving this open for now, just in case this hit others, to be able to search it as OPEN, but you can close it if it bothers you or changes your workflow.

[1] http://mail-index.netbsd.org/tech-net/2014/06/04/msg004572.html
Comment 11 Roy Marples 2014-06-23 13:59:57 UTC
Glad you read that NetBSD thread :)

Anyway, the default in the dhcpcd binary is slaac hwaddr, the default in dhcpcd.conf is slaac private. This allows upgraders to work as before.

In the case of Gentoo, you have etc-update to clearly show the new config option at upgrade time. A NEWS item may of course help the blind.

Great it's not a bug so I can carry on with the next release when I get some free time.
Comment 12 William Hubbs gentoo-dev 2014-07-17 23:17:02 UTC
I put a newsitem in the tree with regard to this issue.
Comment 13 gentoo 2014-08-01 15:51:00 UTC
Hi! Thank you for the news item and this thread, it helped me identify a connectivity issue.
With the "slaac private", my wireless network fails to connect. (Using wicd network manager on KDE.)
When i comment out the "slaac private" line, it works as before.

The error about the connection (with slaac private) appears in the dmesg output, I'm posting it here if it helps anyone... I have no idea what "deauthenticating by local choice (reason=3)" means, but if this is a configuration issue, I'd be glad to know how to fix it. Thank you!


[ 4738.527003] wlan0: authenticate with 00:1e:ab:xx:xx:xx
[ 4738.537156] wlan0: send auth to 00:1e:ab:xx:xx:xx (try 1/3)
[ 4738.538875] wlan0: authenticated
[ 4738.539778] wlan0: associate with 00:1e:ab:xx:xx:xx (try 1/3)
[ 4738.543630] wlan0: RX AssocResp from 00:1e:ab:xx:xx:xx (capab=0x411 status=0 aid=1)
[ 4738.543705] wlan0: associated
[ 4738.543782] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 4738.543869] cfg80211: Calling CRDA for country: TW
[ 4738.547851] cfg80211: Regulatory domain changed to country: TW
[ 4738.547854] cfg80211:  DFS Master region: unset
[ 4738.547855] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 4738.547857] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
[ 4738.547859] cfg80211:   (5270000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
[ 4738.547861] cfg80211:   (5735000 KHz - 5815000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
[ 4742.382978] wlan0: deauthenticating from 00:1e:ab:xx:xx:xx by local choice (reason=3)
[ 4742.405548] cfg80211: Calling CRDA to update world regulatory domain
[ 4742.407702] cfg80211: World regulatory domain updated:
[ 4742.407705] cfg80211:  DFS Master region: unset
[ 4742.407706] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 4742.407707] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 4742.407708] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 4742.407709] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 4742.407710] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 4742.407711] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 4742.430947] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Comment 14 Roy Marples 2014-08-01 16:58:10 UTC
I don't understand how that happens for you. Can we rule out dhcpcd here please?
Kill all wpa_supplicant / dhcpcd / wicd proceses

If you configure /etc/wpa_supplicant.conf for your access point and start it by hand like so:
wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0

Now, ensure wpa_supplicant connects:
wpa_cli status

It should eventually report wpa_state=COMPLETED

Ensure slaac private is commented out in /etc/dhcpcd.conf
Then start dhcpcd like so
dhcpcd -dB

Ensure it works, as well as network connectivity.
Now, kill dhcpcd and enable private addressing in /etc/dhcpcd.conf again.
dhcpcd -dB

dhcpcd should still be working and so should your network connectivity.

For reference I use wpa_supplicant with dhcpcd just fine on Linux. I don't use wicd though.
Comment 15 gentoo 2014-08-02 16:52:09 UTC
Thanks for the instructions, Roy.

I tried to start the wpa_supplicant manually as you suggested. I eselect rc stop the wicd, then checked that there are no running processes with wicd, wpa or dhcp (using sudo ps aux | grep ...). Connectivity was lost.

Then I started wpa_supplicant manually. (With slaac private still commented out.) This restores connection, I did not have to start dhcpcd. When I start dhcpcd with the command line as instructed, there are no error messages, and connectivity remains.

Then I made the slaac private line be not commented out. This did not affect connectivity, connectivity was still there. When I start dhcpcd with the command line as instructed, there are again no error messages, and connectivity remains.

Now I stopped the dhcpcd and the wpa_supplicant and restarted wicd. (slaac private is still active.) The network connects and immediately disconnects. (A)

I commented out the "slaac private" once more, and now wicd connects and connectivity is restored. (B)

I looked into the /var/log/wicd/wicd.log for more clues. There is a lot of text in that file. I tried to find how the two connection attempts (A) and (B) differed. See below. Does this give you a clue as to what is going on?

Log for (A) with slaac private:
iwconfig wlan0 ap 00:1E:AB:xx:xx:xx
WPA_CLI RESULT IS DISCONNECTED
WPA_CLI RESULT IS COMPLETED
Running DHCP with hostname xxx
/sbin/dhcpcd -h xxx --noipv4ll wlan0 
dhcpcd[8621]: version 6.4.3 starting
dhcpcd[8621]: DUID 00:01:00:01:1a:79:73:2d:xx:xx:xx:xx:xx:xx
dhcpcd[8621]: wlan0: IAID xx:xx:xx:xx
dhcpcd[8621]: wlan0: soliciting a DHCP lease
dhcpcd[8621]: wlan0: offered 192.168.0.xxx from 192.168.0.xxx
dhcpcd[8621]: wlan0: soliciting an IPv6 router
dhcpcd[8621]: wlan0: Router Advertisement from fe80::21e:xxxx:xxxx:xxxx
dhcpcd[8621]: wlan0: adding address fde0:7913:48a9:b33:88e8:xxxx:xxxx:xxxx/48
dhcpcd[8621]: wlan0: adding route to fde0:7913:48a9::/48
dhcpcd[8621]: wlan0: adding default route via fe80::21e:xxxx:xxxx:xxxx
dhcpcd[8621]: wlan0: requesting DHCPv6 information
dhcpcd[8621]: forked to background, child pid 8663
DHCP connection successful
not verifying
Connecting thread exiting.
ifconfig wlan0
IP Address is: None

Now the log for (B) with commented out slaac private
iwconfig wlan0 ap 00:1E:AB:xx:xx:xx
WPA_CLI RESULT IS DISCONNECTED
WPA_CLI RESULT IS COMPLETED
Running DHCP with hostname xxx
/sbin/dhcpcd -h xxx --noipv4ll wlan0 
dhcpcd[9141]: version 6.4.3 starting
dhcpcd[9141]: wlan0: IPv6 kernel autoconf disabled
dhcpcd[9141]: DUID 00:01:00:01:1a:79:73:2d:xx:xx:xx:xx:xx:xx
dhcpcd[9141]: wlan0: IAID xx:xx:xx:xx
dhcpcd[9141]: wlan0: soliciting a DHCP lease
dhcpcd[9141]: wlan0: offered 192.168.0.xxx from 192.168.0.xxx
dhcpcd[9141]: wlan0: leased 192.168.0.xxx for 43200 seconds
dhcpcd[9141]: wlan0: adding route to 192.168.0.0/24
dhcpcd[9141]: wlan0: adding default route via 192.168.0.xxx
dhcpcd[9141]: forked to background, child pid 9208
DHCP connection successful
not verifying
Connecting thread exiting.
ifconfig wlan0
IP Address is: 192.168.0.xxx

Thank you for your help!
Comment 16 Roy Marples 2014-08-03 14:35:44 UTC
OK, this is a wicd issue.
I'm guessing that because dhcpcd forked before it got an IPv4 address, wicd thinks it need to restart the connection.

Try adding this to dhcpcd.conf:
waitip 4

Then everything should work, provided you get a working IPv4 address along with your working IPv6 address.
Comment 17 gentoo 2014-08-03 15:28:50 UTC
Dear Roy! Great, thanks! Now it works! :-)
Comment 18 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-08-25 16:42:23 UTC
Roy,

any clue why after upgrading a stable similar box (vps) to dhcpcd 6.4.3, together with disabling slaac private, I also had to add ipv6ra_own to get IPv6 address again? Without it I was getting "dhcpcd[3450]: eth0: IPv6 kernel autoconf disabled". I found the option and fixed this pretty easily, just wanted to let you know, because previously everything seemed to be working out of the box.

Thanks.
Comment 19 Roy Marples 2014-08-26 10:54:11 UTC
Sounds like a bug. Can you attach your non working dhcpcd.conf here please?
Comment 20 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-08-26 13:04:27 UTC
The one that fails: 

<snip>
Argo ~ # grep -v '^$\|^#' /etc/dhcpcd.conf
hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option ntp_servers
require dhcp_server_identifier
slaac hwaddr
nohook lookup-hostname
Argo ~ # dhcpcd -Bd eth0 2>&1 | tee /tmp/dhcpcd_debug.log
dhcpcd[4569]: version 6.4.3 starting
dhcpcd[4569]: all: IPv6 kernel autoconf disabled
dhcpcd[4569]: eth0: IPv6 kernel autoconf disabled
dhcpcd[4569]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' PREINIT
dhcpcd[4569]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' CARRIER
dhcpcd[4569]: DUID 00:01:00:01:1a:89:xx:xx:f2:3c:91:69:xx:xx
dhcpcd[4569]: eth0: IAID 91:69:xx:xx
dhcpcd[4569]: eth0: delaying DHCP for 0.1 seconds
dhcpcd[4569]: eth0: reading lease `/var/lib/dhcpcd/dhcpcd-eth0.lease'
dhcpcd[4569]: eth0: rebinding lease of xxx.58.xxx.92
dhcpcd[4569]: eth0: sending REQUEST (xid 0x6803cab8), next in 3.5 seconds
dhcpcd[4569]: eth0: acknowledged xxx.58.xxx.92 from xxx.58.111.6
dhcpcd[4569]: eth0: leased xxx.58.xxx.92 for 86400 seconds
dhcpcd[4569]: eth0: renew in 43200 seconds, rebind in 75600 seconds
dhcpcd[4569]: eth0: IP address xxx.58.xxx.92/24 already exists
dhcpcd[4569]: eth0: adding route to xxx.58.xxx.0/24
dhcpcd[4569]: eth0: adding default route via xxx.58.xxx.1
dhcpcd[4569]: eth0: writing lease `/var/lib/dhcpcd/dhcpcd-eth0.lease'
dhcpcd[4569]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' REBOOT
dhcpcd[4569]: eth0: sending ARP announce (1 of 2), next in 2.0 seconds
dhcpcd[4569]: eth0: sending ARP announce (2 of 2)
</snip>

The one which includes ipv6ra_own and does not fail:

<snip>
Argo ~ # grep -v '^$\|^#' /etc/dhcpcd.conf
hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option ntp_servers
require dhcp_server_identifier
slaac hwaddr
ipv6ra_own
nohook lookup-hostname
Argo ~ # dhcpcd -Bd eth0 2>&1 | tee /tmp/dhcpcd_debug.log
dhcpcd[4619]: version 6.4.3 starting
dhcpcd[4619]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' PREINIT
dhcpcd[4619]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' CARRIER
dhcpcd[4619]: DUID 00:01:00:01:1a:89:xx:xx:f2:3c:91:69:xx:xx
dhcpcd[4619]: eth0: IAID 91:69:xx:xx
dhcpcd[4619]: eth0: delaying IPv6 router solictation for 0.4 seconds
dhcpcd[4619]: eth0: delaying DHCP for 0.4 seconds
dhcpcd[4619]: eth0: reading lease `/var/lib/dhcpcd/dhcpcd-eth0.lease'
dhcpcd[4619]: eth0: rebinding lease of xxx.58.xxx.92
dhcpcd[4619]: eth0: sending REQUEST (xid 0x441f10a1), next in 4.4 seconds
dhcpcd[4619]: eth0: acknowledged xxx.58.xxx.92 from 151.236.218.42
dhcpcd[4619]: eth0: leased xxx.58.xxx.92 for 86400 seconds
dhcpcd[4619]: eth0: renew in 43200 seconds, rebind in 75600 seconds
dhcpcd[4619]: eth0: IP address xxx.58.xxx.92/24 already exists
dhcpcd[4619]: eth0: adding route to xxx.58.xxx.0/24
dhcpcd[4619]: eth0: adding default route via xxx.58.xxx.1
dhcpcd[4619]: eth0: writing lease `/var/lib/dhcpcd/dhcpcd-eth0.lease'
dhcpcd[4619]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' REBOOT
dhcpcd[4619]: eth0: sending ARP announce (1 of 2), next in 2.0 seconds
dhcpcd[4619]: eth0: soliciting an IPv6 router
dhcpcd[4619]: eth0: sending Router Solicitation
dhcpcd[4619]: eth0: Router Advertisement from fe80::1
dhcpcd[4619]: eth0: adding address 2a01:7e00::f03c:xxxx:xxxx:xxxx/64
dhcpcd[4619]: eth0: vltime 2592000 seconds, pltime 604800 seconds
dhcpcd[4619]: eth0: adding route to 2a01:7e00::/64
dhcpcd[4619]: eth0: adding default route via fe80::1
dhcpcd[4619]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
dhcpcd[4619]: eth0: No DHCPv6 instruction in RA
dhcpcd[4619]: eth0: sending ARP announce (2 of 2)
dhcpcd[4619]: eth0: Router Advertisement from fe80::1
dhcpcd[4619]: eth0: adding address 2a01:7e00::f03c:xxxx:xxxx:xxxx/64
dhcpcd[4619]: eth0: vltime 2592000 seconds, pltime 604800 seconds
dhcpcd[4619]: eth0: executing `/lib/dhcpcd/dhcpcd-run-hooks' ROUTERADVERT
dhcpcd[4619]: eth0: No DHCPv6 instruction in RA
</snip>
Comment 21 Panagiotis Christopoulos (RETIRED) gentoo-dev 2014-08-26 13:19:17 UTC
By the way, I just rebooted the box and now it works without having to add ipv6ra_own (only slaac hwaddr needed). The previous behaviour was after upgrading dhcpcd. I have the feeling that when someone after the upgrade has in his dhcpcd.conf slaac private and has run dhcpcd with that configuration and then he changes the line from private to hwaddr and tries again, he gets that error, but no issues on fresh reboot.