DNS AAAA Record Explained: IPv6 Addresses
What DNS AAAA records are, how they differ from A records, when you need them, how to create and verify AAAA records, and how dual-stack DNS works.
An AAAA record (pronounced "quad-A") maps a domain name to an IPv6 address. It does the same job as an A record, but for the newer, longer IP address format. If your server has an IPv6 address and you want users on IPv6 networks to reach it, you need an AAAA record.
IPv6 adoption has been growing steadily. Google reports that over 45% of users accessing their services do so over IPv6. Major mobile carriers route most traffic over IPv6 by default. If your domain only has A records pointing to IPv4 addresses, a significant chunk of your users may be going through translation layers that add latency. For a broader overview of all DNS record types, see DNS Record Types Explained.
What an AAAA Record Looks Like
An AAAA record contains the domain name, a TTL value, the record class, the record type, and an IPv6 address.
example.com. 3600 IN AAAA 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Breaking this down:
example.com.is the domain name (with trailing dot indicating the root)3600is the TTL in seconds (1 hour)INis the class (Internet)AAAAis the record type2001:0db8:85a3:0000:0000:8a2e:0370:7334is the IPv6 address
IPv6 addresses are 128-bit numbers written as eight groups of four hexadecimal digits, separated by colons. They are much longer than IPv4 addresses, which is why they get their own record type rather than sharing the A record.
IPv6 addresses can be shortened by dropping leading zeros and collapsing consecutive groups of all-zeros with :::
# Full form
2001:0db8:85a3:0000:0000:8a2e:0370:7334
# Shortened form
2001:db8:85a3::8a2e:370:7334
Both represent the same address. DNS providers typically accept either format when you create the record.
IPv4 vs IPv6: Why Two Record Types
IPv4 uses 32-bit addresses (like 93.184.216.34), giving roughly 4.3 billion unique addresses. That sounded like plenty in the 1980s, but the internet outgrew it. IPv4 address exhaustion has been a real problem since the early 2010s, with regional internet registries running out of fresh blocks to allocate.
IPv6 uses 128-bit addresses, providing 340 undecillion unique addresses. That is 340 followed by 36 zeros. Enough for every device on the planet to have billions of addresses each.
| Feature | IPv4 (A Record) | IPv6 (AAAA Record) |
|---|---|---|
| Address length | 32 bits | 128 bits |
| Format | Dotted decimal (192.0.2.1) | Hexadecimal groups (2001:db8::1) |
| DNS record type | A | AAAA |
| Available addresses | ~4.3 billion | ~340 undecillion |
| NAT required | Usually yes | No |
| Current adoption | ~55% of traffic | ~45% of traffic |
The A record was defined in RFC 1035 back in 1987. The AAAA record was defined later in RFC 3596 (2003), specifically to handle the longer IPv6 address format [1]. The name "AAAA" comes from the fact that an IPv6 address is four times the length of an IPv4 address (128 bits vs 32 bits), so it takes four "A"s.
When You Need AAAA Records
Not every domain needs AAAA records today, but the reasons to add them keep growing.
Your Hosting Provider Supports IPv6
If your web server, CDN, or cloud provider has assigned an IPv6 address to your service, create an AAAA record pointing to it. Most major providers now support IPv6: AWS, Google Cloud, Azure, Cloudflare, DigitalOcean, and others all offer IPv6 addresses.
You Want Better Mobile Performance
Mobile carriers have been aggressive about IPv6 adoption because they face the most acute IPv4 address shortage. T-Mobile in the US routes over 90% of its traffic over IPv6. Verizon and AT&T are similar. When a mobile user on an IPv6-only network tries to reach your IPv4-only site, their carrier has to translate the traffic through NAT64 or similar mechanisms. That translation adds latency and introduces a potential point of failure.
With an AAAA record, IPv6 users connect directly. No translation needed.
You Are Running a Dual-Stack Network
Dual-stack means your server has both an IPv4 and an IPv6 address. In this configuration, you publish both an A record and an AAAA record. Clients that support IPv6 use the AAAA record; clients on IPv4 use the A record. Everyone gets a direct connection.
Future-Proofing
IPv4 addresses are a finite, increasingly expensive resource. IPv6 is the long-term direction of the internet. Adding AAAA records now ensures your domain works well as IPv6 adoption continues to grow.
How to Check AAAA Records
You can query AAAA records using standard DNS tools.
Using dig
dig example.com AAAA
The output shows the AAAA record in the answer section:
;; ANSWER SECTION:
example.com. 3600 IN AAAA 2606:2800:21f:cb07:6820:80da:af6b:8b2c
If no AAAA record exists, the answer section will be empty.
To check both A and AAAA records together:
dig example.com A
dig example.com AAAA
Or query for ANY records (though some resolvers no longer support ANY queries fully):
dig example.com ANY
Using nslookup
nslookup -type=AAAA example.com
Using Online Tools
If you do not have command-line access, online DNS lookup tools like the one on How to Check DNS Records let you query any record type from a browser.
Monitor your AAAA records automatically
DNS Monitor tracks changes to all your DNS records, including AAAA, and alerts you when anything changes unexpectedly.
How to Create an AAAA Record
The process depends on your DNS provider, but the general steps are the same.
Get your IPv6 address
Find the IPv6 address assigned to your server. On Linux, run ip -6 addr show or check your hosting provider's dashboard. The address will look something like 2001:db8:85a3::8a2e:370:7334.
Log into your DNS provider
Go to your DNS management panel. This might be your domain registrar, your hosting provider, or a dedicated DNS service like Cloudflare or Route 53.
Add a new AAAA record
Select AAAA as the record type. Enter the hostname (use @ for the root domain, or a subdomain like www). Paste the IPv6 address as the value. Set an appropriate TTL (3600 seconds is a sensible default).
Save and verify
After saving, wait a few minutes for the record to become available, then verify with dig:
dig yourdomain.com AAAA
Example: Root Domain and WWW Subdomain
A typical dual-stack setup for a website includes both A and AAAA records for the root domain and the www subdomain:
example.com. 3600 IN A 93.184.216.34
example.com. 3600 IN AAAA 2606:2800:21f:cb07:6820:80da:af6b:8b2c
www.example.com. 3600 IN A 93.184.216.34
www.example.com. 3600 IN AAAA 2606:2800:21f:cb07:6820:80da:af6b:8b2c
Both versions of the domain resolve over both IPv4 and IPv6. Users get routed to whichever protocol their network supports.
How Dual-Stack DNS Resolution Works
When a client needs to resolve a domain, it typically sends two queries: one for the A record and one for the AAAA record. The client's operating system then decides which address to use based on a set of rules defined in RFC 6724 (address selection) and the "Happy Eyeballs" algorithm defined in RFC 8305.
Happy Eyeballs works like this: the client starts both an IPv6 and an IPv4 connection attempt simultaneously (or with IPv6 getting a small head start, usually 250ms). Whichever connection completes first wins. This prevents slow IPv6 connections from degrading the user experience, since the client can fall back to IPv4 quickly.
In practice, this means:
- If your server has both A and AAAA records and the user's network supports both protocols, the client will use whichever path is faster.
- If the user's network only supports IPv4, the AAAA record is ignored and the A record is used.
- If the user's network only supports IPv6, the A record is ignored and the AAAA record is used.
Publishing both record types is safe. There is no downside to having an AAAA record alongside your A record. Clients that cannot use IPv6 simply ignore it.
CNAME records apply to both A and AAAA
If you use a CNAME record (e.g., www.example.com CNAME example.com), the CNAME applies to all record types. The resolver follows the CNAME to the target domain, then queries for whatever record type was originally requested (A or AAAA). You do not need separate CNAMEs for IPv4 and IPv6.
Common AAAA Record Mistakes
Adding an AAAA Record Without Actually Having IPv6
If you create an AAAA record pointing to an IPv6 address that your server does not actually listen on, IPv6 users will get connection timeouts. The DNS resolution succeeds, but the TCP connection fails. Happy Eyeballs will eventually fall back to IPv4, but that adds latency.
Only create AAAA records for addresses where your server is actively accepting connections.
Using IPv4-Mapped IPv6 Addresses
An IPv4-mapped IPv6 address looks like ::ffff:93.184.216.34. These are used internally by dual-stack software, not in DNS records. Your AAAA record should contain a real, routable IPv6 address.
Forgetting to Update AAAA Records During Migrations
When you migrate to a new server, you might remember to update the A record but forget the AAAA record. IPv6 users then get routed to the old server while IPv4 users reach the new one. This is especially tricky to debug because the problem is invisible if you are testing from an IPv4-only network.
Always update both A and AAAA records together during migrations. For a complete approach to managing DNS changes, see the DNS Record Types Reference.
Not Monitoring AAAA Records
If you are only monitoring your A records, you will miss problems that affect IPv6 users. AAAA records can be changed, deleted, or misconfigured just like any other record type. An attacker who modifies your AAAA record without touching the A record could redirect a large portion of your traffic without you noticing (if your monitoring only checks A records).
AAAA Records and CDNs
Most CDN providers handle AAAA records automatically. When you point your domain to a CDN using a CNAME or their specific DNS integration, the CDN's infrastructure provides both A and AAAA records at the edge. You do not need to manage IPv6 addresses manually.
For example, if you CNAME www.example.com to example.com.cdn.cloudflare.net, Cloudflare automatically serves both A and AAAA records for that hostname. The CDN handles IPv6 on your behalf, even if your origin server only supports IPv4.
This is one of the easiest ways to add IPv6 support: put a CDN in front of your site and let them handle the AAAA records.
AAAA Records and Email
AAAA records are not directly involved in email routing (that is handled by MX records and the A/AAAA records of the mail server hostnames). However, if your MX record points to mail.example.com, and mail.example.com has both A and AAAA records, email servers that support IPv6 will connect over IPv6.
This is generally fine. Most major email providers (Gmail, Outlook, Yahoo) support IPv6 for inbound and outbound mail. Just make sure the IPv6 address on your mail server has proper reverse DNS (PTR record) configured, as some mail servers reject connections from IPs without reverse DNS.
References
[1] S. Thomson, C. Huitema, V. Ksinant, M. Souissi. "DNS Extensions to Support IP Version 6." RFC 3596, October 2003. https://datatracker.ietf.org/doc/html/rfc3596
[2] R. Droms, Ed. "DNS Extensions to Support IPv6 Address Aggregation and Renumbering." RFC 2874. https://datatracker.ietf.org/doc/html/rfc2874
[3] D. Schinazi, T. Pauly. "Happy Eyeballs Version 2: Better Connectivity Using Concurrency." RFC 8305, December 2017. https://datatracker.ietf.org/doc/html/rfc8305
AAAA records are the IPv6 counterpart to A records. As IPv6 adoption crosses the 45% mark, they have gone from optional to increasingly important for performance and reliability.
Monitor all your DNS records in one place
DNS Monitor tracks A, AAAA, CNAME, MX, and every other record type. Get alerted when any record changes so your IPv4 and IPv6 configurations stay in sync.
Try DNS Monitor