What it is
An AAAA record ("quad A") maps a name to an IPv6 address, exactly as an A record does for IPv4. It is defined in RFC 3596; the name comes from the address being four times as long as an IPv4 one (128 bits instead of 32).
example.com. 3600 IN AAAA 2001:db8::10
www.example.com. 3600 IN AAAA 2001:db8::10
A name usually has both A and AAAA records ("dual stack"). Clients on an IPv6 network ask for both and generally prefer IPv6, falling back to IPv4 quickly if the IPv6 connection doesn't come up (the "Happy Eyeballs" algorithm, RFC 8305).
The fields
| Field | Example | Meaning |
|---|---|---|
| Name | example.com. |
The host the record is for (@ = the apex) |
| TTL | 3600 |
Seconds a resolver may cache the answer |
| Class | IN |
Internet |
| Type | AAAA |
IPv6 address record |
| Data | 2001:db8::1 |
One IPv6 address, in standard colon notation |
Runs of zero groups can be shortened once with ::, and leading zeros in a group can be dropped, so 2001:0db8:0000:0000:0000:0000:0000:0001 and 2001:db8::1 are the same address. The data must be an address, never a hostname.
Common setups
- GitHub Pages: the apex gets four AAAA records,
2606:50c0:8000::153,2606:50c0:8001::153,2606:50c0:8002::153and2606:50c0:8003::153, alongside its four A records. - Cloudflare: proxied records answer with Cloudflare's IPv6 addresses even when your origin only has IPv4, so visitors get IPv6 for free.
- Your own server: add an AAAA only once the web server actually listens on IPv6 (
listen [::]:443in nginx) and the firewall allows it. - IPv4-only on purpose: simply publish no AAAA record. Clients then use IPv4.
How to check it
Look up the AAAA records with our DNS Lookup, or see whether every resolver already has the new value with the DNS Propagation Checker. In a terminal:
dig example.com AAAA +short
dig @2606:4700:4700::1111 example.com AAAA
nslookup -type=AAAA example.com
curl -6 -I https://example.com
curl -6 forces IPv6, which tells you whether the address in DNS actually serves the site.
Common mistakes
- An AAAA record for a server that doesn't answer on IPv6. IPv6 users see slow loads or failures while everyone testing from IPv4 sees nothing wrong. Remove the record or fix the listener.
- TLS certificate or virtual host bound only to the IPv4 address. The IPv6 path then serves the wrong site or certificate; check it with the SSL Checker from an IPv6 vantage point, or with
curl -6. - Stale AAAA after a move. Migrations often update the A record and forget the AAAA, so IPv6 visitors keep reaching the old host.
- Mail servers: if your mail host has an AAAA record, its IPv6 address needs a matching PTR record too, or receivers such as Gmail may reject mail sent over IPv6.
Related record types
- A record: the IPv4 equivalent.
- CNAME record: point a name at another name, which then supplies both A and AAAA.
- PTR record: reverse DNS, under
ip6.arpafor IPv6. - DNS propagation: why a change takes time to show up.