IPv6 Enabled Web Browsers

Know where you are going and with which IP version before you get there

One way to get your browser to navigate to an IPv6-capable web site is to simply enter the IPv6 address of the web server into the browser's address bar. IETF RFC 2732, Format for Literal IPv6 Addresses in URL's, which is updated by IETF RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, defines the syntax that should be used when entering an IPv6 address directly. The format typically looks something like http://[2001:db8:100:200::1234]/.

I have to admit that this is painful and I would much rather just type in a fully-qualified-domain-name (FQDN) and let the browser figure out the best way to display the page. When you type in the FQDN of a web site you may not be fully aware of which IP version is being used for the TCP port 80 HTTP connection. Operating systems should follow IETF RFC 4074, Common Misbehavior Against DNS Queries for IPv6 Addresses, and perform a DNS query for an AAAA record before performing a DNS query for an A record. Then if the web site can operate using either IP version and your computer has dual-protocol connectivity to the site the operating system should prefer the use of IPv6. However, there may be deficiencies in the manufacturer's implementation of IPv6 and this preference towards IPv6.

To help you troubleshoot dual-protocol connectivity it is important to have the necessary tools on your bat-belt. Nslookup and dig are indispensible resources for troubleshooting dual-protocol DNS issues. It is also nice when the browser can give us some clues as to which protocol version and address is being used. One such useful tool is the ShowIP add-on for Firefox. This add-on shows what IP address you are browsing. Following is a screen shot of a dual-protocol site being viewed with Firefox on a dual-protocol operating system with dual-protocol Internet connectivity. ShowIP nonintrusively displays the IPv6 address of the host in the lower corner of the browser toolbar.

Google

However, you may still have a problem getting Firefox to go to dual-protocol web sites when using the FQDN of the site. That is because Firefox does not prefer IPv6 connectivity over IPv4 connectivity if both exist. Therefore, we must change Firefox to prefer IPv6 sites when we have a choice. The way we can do this is to go the Firefox address entry field and type "about:config". You may get a warning that says "This might void your warranty! Changing these advanced settings can be harmful to the stability, security, and performance of this application. You should only continue if you are sure of what you are doing." Go ahead and click "I'll be careful, I promise!" indicating that you know what you are doing and know how to set it back if this causes a problem. Then look for the entries that are named "network.dns.ipv4OnlyDomains" and "network.dns.disableIPv6". These should be set so that Firefox allows for dual-protocol connectivity. network.dns.ipv4OnlyDomains - Should be and empty list network.dns.disableIPv6 - Should be set to false

Thankfully, Microsoft Internet Explorer 8 prefers IPv6 web sites if the DNS requests return both A and AAAA records. Just type in the FQDN and let the browser take care of the rest. I haven't been able to find a simple plug-in that allows the display of the IPv6 address within a status bar.

Google Chrome seems to operate like IE8 in that it prefers IPv6 connectivity if DNS returns both an A and AAAA record. For Chrome you can try to use the DNS.l4x.org Resolver extension to display the DNS resolved addresses for the page you are viewing. However, my testing didn't work with this chrome extension.

I don't know as much about how other browsers work with IPv6. From what I have read it seems that Opera is also already to use with both IP versions without any modification to settings. I have read that Safari prefers IPv4 even when a web site has IPv4 and IPv6 connectivity and DNS resource records. I have read that you can go open up a terminal on your Mac and navigate to "Applications -> Utilities -> Terminal" and enter the following command. defaults write com.apple.Safari IncludeDebugMenu 1 Then you can close that window and open up Safari with the Debuging Menu. Go down to "Supported Protocols" and uncheck http: (Simple Loader). This should enable Safari to operate well for dual-protocol web sites.

In the future, as there becomes more content that uses IPv6, it will be more critical to know whether you are viewing a page using IPv4 or IPv6. The real key is how the DNS resolution for the URL was performed. Most operating systems and most applications default to preferring IPv6 dual-protocol connectivity is available. However, we are learning about the few implementations that exist that do not prefer IPv6 connectivity if there is a choice.

Scott

Copyright © 2010 IDG Communications, Inc.

The 10 most powerful companies in enterprise networking 2022