Public Domain

[How-To] Access Google Sites and Services via IPv6

How-To Ubuntu

Google, the largest search engine today (and the “Microsoft” of the cyberworld), is slowly deploying IPv6 across their sites. But even if you are already connected to IPv6, you will still not get an IPv6 Google.

Why? Their current IPv6 implementation is currently in its testing phase. All IPv6 access must come from a reliable network that they have to pre-approve, this is the Google over IPv6 project.

How it works

Google over IPv6 uses the IPv4 address of your DNS resolver to determine whether a network is IPv6-capable. If you enable Google over IPv6 for your resolver, IPv6 users of that resolver will receive AAAA records for IPv6-enabled Google services.

Normally, if a DNS resolver requests an IPv6 address for a Google web site, it will not receive one…

…but a DNS resolver with Google over IPv6 will receive an IPv6 address, and its users will be able to connect to Google web sites using IPv6.

So unless you are using a DNS with Google over IPv6 enabled, the only IPv6 Google website you will be able to use is That’s sad! Especially if most of the sites you visit are still hosted on non-IPv6 enabled servers.

Fortunately, there are many good-hearted people and corporations in the world today offering free access to their IPv6 DNS. We have‘s Freenet6 DNS and Hurricane Electric’s DNS.

But how do we use these IPv6 DNS? Let me show you how.

Ubuntu Linux way

  1. Go to Synaptic (System -> Administration -> Synaptic Package Manager)
  2. Search for “dnsmasq” and install it
  3. Open a Terminal (Accessories -> Terminal)
  4. Type:
            gksu gedit /etc/dnsmasq.conf
  5. Look for:
  6. Change it to:
  7. Look for:
  8. Add the following after/below it:
  9. Save and close the file
  10. Still in the Terminal, type:
            gksu gedit /etc/dhcp3/dhclient.conf
  11. Look for:
    #prepend domain-name-servers;
  12. Uncomment that line by removing the sharp (‘#’) sign
  13. Save and close the file
  14. Still in the Terminal, type:
            gksu gedit /etc/resolv.conf
  15. Before any other nameserver entries, add this:
  16. Save and close the file
  17. Still in the Terminal, type:
            sudo /etc/init.d/dnsmasq restart

What happens is this: we are using dnsmasq to reroute all queries to to HE’s IPv6 DNS which has been confirmed to be Google over IPv6 enabled. Any Google services that are not yet using IPv6 or not yet part of the project will simply use IPv4, like the YouTube entry we added (read: YouTube is the IPv6 team’s number one priority right now).

But if you are not using DHCP, then the DHCP edits you did previously will not work. Or if you are using NetworkManager to manage your connection settings, then it will only overwrite your resolv.conf file. Here’s what you should do to solve this:

  1. Open your NetworkManager and go to your network/connection profile (example: eth0)
  2. Open/edit it and go to the “IPv4 Settings” tab
  3. In the “DNS servers:” field, simply add this before any other DNS entries you may have:
  4. Click “Apply”, then close it.

This way, every time the NetworkManager connects and overwrites the resolv.conf file, it will always add to the file. Just like in the DHCP edits you did above, it ensures that the listening IP being used by dnsmasq is the first DNS your system will check when you are browsing.

In your terminal type: ping6

You should see something like this:

  PING 56 data bytes
  64 bytes from icmp_seq=1 ttl=59 time=231 ms

These are the Google sites and services tested to be accessible via IPv6 (as of this article):

Leave a Reply