The Information Technology folks at the place I work enabled IPv6 a few months ago. Things worked great for a while but I recently noticed that I was not able to reach the IPv6 Internet. A quick investigation showed that IT disabled IPv6 Stateless Address Autoconfiguration (SLAAC) and enabled DHCPv6:
router>sh ipv6 interface vlan 320 Vlan320 is up, line protocol is up IPv6 is enabled, link-local address is FE80::208:E3FF:FEFF:FD90 No Virtual link-local address(es): Description: data320 Global unicast address(es): 20xx:xxx:xxx:xxx::1, subnet is 20xx:xxx:xxx:xxx::/64 Joined group address(es): FF02::1 FF02::2 FF02::A FF02::D FF02::16 FF02::FB FF02::1:2 FF02::1:FF00:1 FF02::1:FFFF:FD90 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are disabled ICMP unreachables are disabled Input features: Verify Unicast Reverse-Path Output features: MFIB Adjacency HW Shortcut Installation Post_Encap features: HW shortcut IPv6 verify source reachable-via any 0 verification drop(s) (process), 0 (CEF) 9 suppressed verification drop(s) (process), 9 (CEF) ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds (using 30000) ND advertised reachable time is 0 (unspecified) ND advertised retransmit interval is 0 (unspecified) ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use DHCP to obtain routable addresses. router>
Note the “Hosts use DHCP to obtain routable addresses” message — it used to be “Hosts use stateless autoconfig for addresses”.
I am using NetworkManager on Ubuntu 14.10 to manage my network configuration. The version of NetworkManager on Ubuntu 14.10 is 0.9.8.8-0ubuntu28. The IPv6 configuration methods available for NetworkManager can be seen in the following screenshot:
When SLAAC was enabled, I had my network interface configured using the “Automatic” IPv6 configuration method. After IT switched to DHCPv6 this setting prevented my computer from getting an IPv6 address.
After switching to the “Automatic, DHCP only” method I was able to obtain an IPv6 address.
Unfortunately, it seems like the version of NetworkManager in Ubuntu 14.10 has a bug that prevents the installation of a default route (which is not obtained via DHCPv6 but via Neighbor Discovery Router Advertisement messages). The root cause of the bug seems to be that NetworkManager instructs the kernel to ignore Router Advertisement messages. It looks like this bug is fixed in NetworkManager versions 0.9.10.0 and later, but I decided to just live in an IPv4 at work instead of trying to backport the fix to NetworkManager 0.9.8, or trying to build NetworkManager 0.9.10.0 or later for Ubuntu 14.10.
Note: This blog post was helpful for me to understand what was happening: http://mor-pah.net/2012/11/06/cisco-ios-disabling-ipv6-stateless-autoconfig/.