I noted last week that for some reason I couldn’t understand, for some website the access time was quite lower on IPv6 than it was on IPv4. This seems to be consistent within the network as well, even though I’m still not sure if it’s a matter of a smaller overhead incurred in IPv6 itself, or if it’s mostly because the router in that case doesn’t have to do the same level of connection tracking for NAT and PAT.
But it’s not all clear this way: while NetworkManager is pretty happy with finding out both the address and the DNS server advertised with radvd, neither Mac OS X (10.5, 10.6 and 10.8) nor Windows (7) could get the DNS server. This is known and the only solution for this is to use a hybrid network with the stateless autoconfiguration (
radvd) and DHCPv6 for extra information (NTP and DNS servers, among others).
So I first tried to set up ISC DHCP to serve out the v6 information, since that was the DHCP server I was using already. But this is extremely cumbersome. The first problem is that you can’t actually have one single dhcpd process running and serve both DHCP and DHCPv6, even though they use different ports, so you have to make use of dhcpd’s init script multiplexing support. Okay, not that big a deal is it? Strike two is that the configuration file can’t be shared either, even though the option names are different between the two implementations. What?
Okay so multiplexed init scripts, and separate configuration files. Is that all? It should, but honestly I’ve been unable to get it to work. I’m not sure if I just screwed up the configuration or what else, but it was trouble. Add to that that you have no way with the current init script to just reload the configuration, but you actually have to restart the service (and there is no configuration check on stop, which means you might take your DHCP down), and the fact that the man page for
dhcpd.conf does not list most of the IPv6 options and I got tired.
Luckily for me,
net-dns/dnsmasq (which we’re already using to serve as local DNS — I used unbound before, but in this case it seemed much easier as we need local hostnames, whereas at my house I simply used public IPv6 addresses) supports both DHCP and DHCPv6, responds to both with the same process, and supports a reload command. More interestingly, it seems like it could take over the job that right now is handled by
radvd for router advertisement, but I haven’t tried that yet.
With this change, finally, I was able to get Windows 7 and Mac OS X to make DNS requests to the router’s IPv6 address, in the hope that this improves the general network’s responsiveness (at a first glance it seems to be working). So I started checking over the various systems we have in the office what supports what, testing also with test-ipv6
- Windows 7 now gets both IPv6 addresses (temporary and mac-based) and DNS servers; test results 10⁄10;
- Mac OS X Mountain Lion gets the stateless IPv6 address as well as the DNS server; test results 10⁄10;
- Mac OS X Snow Leopard gets the IPv6 address but doesn’t see the DNS server, in either way; test results 10⁄10;
- Linux gets the IPv6 address and the DNS server; test results 10⁄10;
- Windows XP (after adding the protocol manually, of course) does not let you see which IP addresses it has, so I don’t know if it gets the DNS right, but it seems to work; test results 10⁄10;
- Kindle Fire (first generation) does not show you the addresses it got, but tests pass 10⁄10 so I assume it’s working;
- iPhone, running iOS 5 (colleague of mine) doesn’t show the addresses but tests also pass 10⁄10;
- iPad, running iOS 6 (mine) shows the IPv6 DNS address, but tests don’t pass, 0/10;
- Desire HD (CyanogenMod 7) doesn’t show any address, and tests don’t pass 0/10.
Something seems to be extremely wrong with these results honestly, but I’m not yet sure what.
Unfortunately, I haven’t had time to experiment with Flash and Red5 to see if there is any reason why we should work on supporting IPv6 in our products yet (if those two components don’t support it yet, there’s no real reason for us to look into it for now), but in the mean time, the advantages to start moving to IPv6 start to show themselves pretty clearly..