IPv6 Connectivity Test

From Exterior Memory
Jump to: navigation, search
This article was written in January 2009. This article is no longer updated, and may be outdated.

Ping

Use ping6 instead of ping

ping6 www.sixxs.net

IPv6 DNS Disablers

In order to prevent long time outs, some systems only return or store A (IPv4) records, not the AAAA (IPv6) records if there is no IPv6 connectivity.

  • Google does not return AAAA records unless you specifically registered your DNS query machine, and you can only register if you prove to have very good IPv6 support and have a significant user base.
  • Mac OS 10.5.5 and up does not cache AAAA records if you have no good IPv6 connectivity.

Mac OS X

Mac OS 10.4 and up does not cache AAAA records if you have no good IPv6 connectivity. For example, on my Mac:

% host www.sixxs.net
www.sixxs.net is an alias for nginx.sixxs.net.
nginx.sixxs.net has address 213.204.193.2
nginx.sixxs.net has IPv6 address 2001:960:800::2

% ping www.sixxs.net
PING nginx.sixxs.net (213.204.193.2): 56 data bytes
64 bytes from 213.204.193.2: icmp_seq=0 ttl=57 time=18.659 ms

% ping6 www.sixxs.net
ping6: nodename nor servname provided, or not known

On Mac OS 10.5 and up, you can verify this behaviour by querying dnscacheutil:

~% dscacheutil -configuration
DirectoryService Cache search
policy:                                                               
    /Local/Default
    /BSD/local

Settings:
    AAAA Queries  - Disabled (link-local IPv6 addresses)
    Cache Cap     - 512
    Default TTL   - 3600
    Hash Slots    - 2048

Flush DNS Cache

Main article: Flush DNS Cache

You can explicitly flush your DNS cache.

On Mac OS up to 10.5.1:

lookupd -flushcache

On Mac OS 10.5.2 to 10.9:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Om Mac OS 10.10 and up:

discoveryutil udnsflushcaches

Now it should work fine:

% ping6 www.sixxs.net
PING6(56=40+8+8 bytes) 2001:0DB8:767:fd:223:6cff:fe97:6ce6 --> 2001:960:800::2
16 bytes from 2001:960:800::2, icmp_seq=0 hlim=57 time=76.181 ms

An alternative is to configure lookupd to look for AAAA adresses in any case:

sudo mkdir /etc/lookupd
sudo echo 'AAAACutoff NO' >> /etc/lookupd/global