IPv6 in operating systems since my book was published (posted 2012-02-20)
I sometimes get the question whether my book "Running IPv6" is still current. Since publication in 2005, not much has changed with regard to the core IPv6 protocols. I may go over what's new in this regard at some point in the future. However, what has changed significantly are the operating systems and other software mentioned in the book. The main things to be aware of are:
In Windows XP, IPv6 is a protocol separate from IPv4 that must be installed explicitly. In Windows Vista and Windows 7, IPv6 support is integrated with IPv4 and enabled by default. Vista/7 use something other than the system's MAC address as the interface identifier in link local addresses and stateless autoconfiguration. Unlike XP, Windows Vista and Windows 7 support DHCPv6 for both address configuration and to learn DNS resolver addresses.
In MacOS 10.7 Apple enabled privacy addresses with stateless autoconfig by default and added DHCPv6 support for address configuration and to learn DNS resolver addresses. Also, the system tries looks at the round trip time towards a destination over IPv6 and IPv4, and will use the protocol that has the lowest RTT. So MacOS 10.7 will often connect over IPv4 to destinations that have both IPv4 and IPv6 in the DNS. This makes things harder to debug, but the upside is that it avoids timeouts with broken IPv6 setups. As of 10.6.5 MacOS will prefer IPv4 over IPv6 if it has 6to4 connectivity.
The iPhone, iPod touch and iPad didn't exist yet in 2005. IPv6 support was added for these devices in iOS 4 and is relatively mature in iOS 5, with stateless autoconfig and privacy addresses as well as DHCPv6 support. It looks like iOS 5 also uses the RTT-based IPv4/IPv6 selection mechanism present in MacOS 10.7.
The DHCP software mentioned in the book is quite bad. A much better option is the ISC dhcpd, which now also supports IPv6.