20

I've been to chrome://net-internals/#dns and enabled IPV6 but there does not seem to be an option to have the browser try the IPV6 address first, it's defaulting to IPV4.

Before enabling IPV6 the default address family was: Default adress family: ADDRESS_FAMILY_IPV4 (IPv6 disabled) After enabling IPV6 it shows as: Default adress family: ADDRESS_FAMILY_UNSPECIFIED

This looked promising for a sec until it grabbed the IPV4 address first. Any help would be appreciated or even confirmation that it isn't possible.

flxa
  • 431
  • 1
  • 5
  • 11

3 Answers3

43

IPv6 automatically gets a higher priority by default. RFC3484 describes the mechanism used for this. If you use 6to4 (2002::/16) then those IPv6 addresses will get a lower priority than IPv4. This is done because if your IPv6 connection depends on your IPv4 connection + the correct availability and working of several relays then you will probably have a better connection directly over IPv4. The same goes for Teredo (2001::/32).

If your system still connects over IPv4 even when you have native IPv6 connectivity then your IPv6 connectivity to that website is probably slow. There is a fail-safe built in in recent Chrome versions that tries IPv6 first, but when the connection hasn't been established within 300ms it tries to connect over IPv4 in parallel. This is done so that users with broken IPv6 connectivity are still able to reach dual stacked websites.

I hope this explains what you are seeing :)

Sander

Sander Steffann
  • 9,509
  • 35
  • 40
  • Great explanation, I don't have the privileges to up-vote your answer but I would if I could. – flxa Jul 14 '11 at 05:48
7

If you have IPv6 enabled and working properly, chrome, and all other modern browsers, will prefer it. However, if you just switched on IPv6, you'll need to restart chrome for this to take effect. This part took me about an hour of searching around to figure out, which is how I ended up here.

You can check which protocol is enable by default for your browser at http://ipv6-test.com/.

If it says your connection is IPv6 capable, but also says "When both protocols are available, your browser uses IPv4", just restart your browser. When you revisit the site it should say IPv6.

Note: I've seen other answers mention going to about:net-internals in the url bar, and the dns tab to enable IPv6, but this appears to be outdated info as there's no enable IPv6 button there in current versions of chrome (I'm using version 22.0.1229.94 right now).

mmrobins
  • 12,809
  • 7
  • 41
  • 42
  • I upvoted you, as the comment to restart Chrome was appreciated :), but noting, I certainly see the 'Enable IPv6' button, and I'm with Version 27.0.1453.65 beta-m (though noting...windows, not mac, if that's what the problem is/was), see here my screenshot: http://cl.ly/image/3F132G1n1o13/Image%202013-04-27%20at%204.07.32%20AM.png –  Apr 27 '13 at 03:09
  • Glad that simple fix helped someone else. Windows vs Mac may be a difference as I still dont see the 'Enable IPv6' button on version Version 26.0.1410.65 http://grab.by/m1Wc. – mmrobins Apr 27 '13 at 05:41
  • Yes, unfortunately, Mac users still have to enable it (every time Chrome is started) using `chrome://net-internals` and selecting it on the DNS panel. – Chris Krycho Apr 29 '13 at 17:27
2

The IPv6 normally has a higher priority, yet under some circumstances, the system uses IPv4 first. In some operating systems, you can change /etc/gai.conf to change the precedence. However it's use usable in some operating systems including Mac OS. You can try set up an IPv6-prioritized DNS server. Check this out: https://github.com/adamyi/v6dns

adamyi
  • 547
  • 2
  • 15