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.
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 #
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.
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 ~ #
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 ~ #
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.
So, if it is slaac hwaddr versus slaac private, is it a bug after all or just a bad configuration thing for me?
(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.
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.
Some references: http://tools.ietf.org/html/rfc7217 http://tools.ietf.org/html/draft-ietf-6man-default-iids-00
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
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.
I put a newsitem in the tree with regard to this issue.
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
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.
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!
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.
Dear Roy! Great, thanks! Now it works! :-)
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.
Sounds like a bug. Can you attach your non working dhcpcd.conf here please?
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>
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.