Prefer A (IPv4) DNS lookups before AAAA(IPv6) lookups

In notice my newly installed Ubuntu 10.10 always does an AAAA DNS lookup before A record lookups. Is there any way I can configure the system to do A lookups first ?

(While various browsers and other applications might contain their own resolvers, i'm talking about the ones in glibc)


It's the standard to prioritize IPv6 over IPv4 to allow next-generation IP take over :)

You can change this by editing the precedence blocks in /etc/gai.conf (gai stands for getaddrinfo, the standard system call for resolving host names). Just comment out the line as described in the file:

# For sites which prefer IPv4 connections change the last line to

#precedence ::ffff:0:0/96 100

A detailed explanation on gai.conf can be found in the man gai.conf(5).


My problem was the same, i had IPv6 queries made before IPv4 and they where wasting resources, so I did changed my /etc/gai.conf file as freddyb posted, but my scenario is a little bit different, my server is Natted, so IPv4 will not have precedence over IPv6 with only that line. The solution is also commenting out others lines at /etc/gai.conf so it will look like this

# For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100
...
#    For sites which use site-local IPv4 addresses behind NAT there is
#    the problem that even if IPv4 addresses are preferred they do not
#    have the same scope and are therefore not sorted first.  To change
#    this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112  2
scopev4 ::ffff:127.0.0.0/104    2
scopev4 ::ffff:0.0.0.0/96       14

So your server will try first ipv4 even if you are Natted!


If you don't want IPv6 enabled at all, you can disable IPv6 to accomplish this. http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html

if not, you can try addding

options single-request

To your /etc/resolv.conf file. (see http://udrepper.livejournal.com/20948.html for gory details)