What Is an AAAA Record
Learn what an AAAA record is and how it connects your domain name to an IPv6 address. Includes examples for the DNScale dashboard and API.
What you'll learn
- Understand the purpose of AAAA records and how they differ from A records
- Configure dual-stack DNS with both A and AAAA records
- Explain how Happy Eyeballs (RFC 8305) selects between IPv4 and IPv6
- Verify AAAA record configuration using dig and troubleshoot common issues
An AAAA record (pronounced "quad-A") maps a domain name to an IPv6 address. It's the IPv6 equivalent of an A record and is essential for serving content to users on IPv6 networks. The name "AAAA" comes from the fact that an IPv6 address is four times the size of an IPv4 address (128 bits vs 32 bits).
How AAAA Records Work
AAAA records function identically to A records, but store 128-bit IPv6 addresses instead of 32-bit IPv4 addresses:
example.com. 3600 IN AAAA 2001:db8:85a3::8a2e:370:7334When a client with IPv6 connectivity queries your domain, DNS returns the AAAA record, allowing direct connection over IPv6. The resolution process follows the same hierarchy of root servers, TLD servers, and authoritative nameservers as any other DNS query.
Why IPv6 Matters
- Address exhaustion - IPv4 addresses are limited (~4.3 billion); IPv6 provides virtually unlimited addresses (340 undecillion). With IPv4 exhaustion already a reality in most regions, IPv6 adoption is no longer optional for forward-thinking infrastructure.
- Growing adoption - Major ISPs and mobile networks now default to IPv6. Google's statistics show over 45% of traffic reaching their services over IPv6, and that number continues to climb.
- Better performance - IPv6 can reduce latency by avoiding NAT translation layers. Packets travel more directly between source and destination.
- Future-proofing - Ensures your services remain accessible as IPv6 adoption grows. Many new networks are IPv6-only with NAT64 for legacy IPv4 access.
For a deeper comparison, see our guide on IPv6 vs IPv4.
IPv6 Address Format
Understanding IPv6 notation is essential for working with AAAA records. An IPv6 address consists of eight groups of four hexadecimal digits, separated by colons:
2001:0db8:85a3:0000:0000:8a2e:0370:7334Compression Rules
IPv6 addresses can be shortened using two rules:
- Leading zeros can be dropped from any group:
0db8becomesdb8,0370becomes370 - Consecutive groups of all zeros can be replaced with
::(but only once per address)
| Format | Example |
|---|---|
| Full | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
| Compressed | 2001:db8:85a3::8a2e:370:7334 |
| Loopback | ::1 (equivalent to 0000:0000:0000:0000:0000:0000:0000:0001) |
DNScale accepts both full and compressed formats and will normalize the address automatically.
Common Use Cases
Dual-Stack Configuration
The most common setup supports both IPv4 and IPv6 users by providing both A and AAAA records:
example.com. 3600 A 192.0.2.1
example.com. 3600 AAAA 2001:db8:85a3::1This is the recommended approach. Clients capable of IPv6 will use the AAAA record, while IPv4-only clients fall back to the A record.
IPv6-Only Services
For modern cloud infrastructure that's IPv6-native:
api.example.com. 3600 AAAA 2001:db8:85a3::10If you publish only AAAA records without corresponding A records, users on IPv4-only networks will be unable to reach your service. Always verify your audience's connectivity before going IPv6-only.
Load Balancing with Multiple AAAA Records
Just like A records, you can use multiple AAAA records for round-robin DNS load balancing:
example.com. 300 AAAA 2001:db8:85a3::1
example.com. 300 AAAA 2001:db8:85a3::2
example.com. 300 AAAA 2001:db8:85a3::3For geographic load balancing across IPv6 endpoints, see Global DNS Resolution Balancing.
Happy Eyeballs (RFC 8305)
Modern browsers and operating systems implement the Happy Eyeballs algorithm (RFC 8305) to handle dual-stack connections intelligently. Here is how it works:
- The client sends both A and AAAA queries simultaneously.
- It starts a connection attempt to the first IPv6 address that responds.
- After a short delay (typically 250ms), if IPv6 hasn't connected, it starts a parallel connection attempt over IPv4.
- Whichever connection succeeds first is used; the other is discarded.
This means having both A and AAAA records never hurts performance. If IPv6 is faster, it wins. If IPv6 is broken or slow, IPv4 takes over almost instantly. This is why dual-stack with both A and AAAA records is the recommended configuration.
Happy Eyeballs prevents the historically common problem of IPv6 being configured but broken, which previously caused long timeouts before falling back to IPv4.
Record Format
| Field | Description | Example |
|---|---|---|
| Name | Domain or subdomain | www, @ (apex), api |
| Type | Record type | AAAA |
| Content | IPv6 address | 2001:db8:85a3::8a2e:370:7334 |
| TTL | Time to live (seconds) | 3600 |
Querying AAAA Records with dig
Verify your AAAA record configuration using dig:
# Query AAAA records for a domain
dig AAAA example.com
# Query a specific nameserver
dig AAAA example.com @ns1.dnscale.eu
# Get just the IPv6 address
dig AAAA example.com +short
# Check both A and AAAA records side by side
dig A example.com +short && dig AAAA example.com +short
# Trace the full resolution path
dig AAAA example.com +traceExample output from a successful query:
;; ANSWER SECTION:
example.com. 3600 IN AAAA 2001:db8:85a3::8a2e:370:7334If you see no ANSWER SECTION, the AAAA record may not exist, or DNS propagation may still be in progress. Try querying the authoritative nameserver directly.
Adding an AAAA Record
Using the Dashboard
- Navigate to your zone in the DNScale dashboard
- Click Add Record
- Configure the record:
- Name: Enter subdomain (e.g.,
www) or@for apex - Type: Select
AAAA - Value: Enter the IPv6 address
- TTL: Set the cache duration (default: 3600)
- Name: Enter subdomain (e.g.,
- Click Create Record
Using the API
Create an AAAA record:
curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "www",
"type": "AAAA",
"content": "2001:db8:85a3::8a2e:370:7334",
"ttl": 3600
}'Create dual-stack configuration (A + AAAA):
# IPv4 record
curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "@",
"type": "A",
"content": "192.0.2.1",
"ttl": 3600
}'
# IPv6 record
curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "@",
"type": "AAAA",
"content": "2001:db8:85a3::1",
"ttl": 3600
}'API Response:
{
"status": "success",
"data": {
"message": "Record created successfully",
"record": {
"id": "encoded-record-id",
"name": "www.example.com.",
"type": "AAAA",
"content": "2001:db8:85a3::8a2e:370:7334",
"ttl": 3600,
"disabled": false
}
}
}Troubleshooting AAAA Records
IPv6 connectivity not working after adding AAAA record?
- Verify server IPv6: Make sure your server actually has IPv6 connectivity. Run
ping6 your-ipv6-addressorcurl -6 http://your-ipv6-addressfrom an IPv6-enabled host. - Check firewall rules: Many firewalls default to IPv4 rules only. Ensure your IPv6 firewall (e.g.,
ip6tables) allows inbound traffic on the necessary ports. - Confirm propagation: Query the authoritative server directly with
dig AAAA example.com @ns1.dnscale.eu. If it answers correctly, wait for propagation or flush your cache. - Reverse DNS: For mail servers, ensure you also configure a PTR record for your IPv6 address. Many mail providers reject connections without matching reverse DNS.
Best Practices
-
Always configure dual-stack - Add both A and AAAA records to support all users
-
Use consistent TTLs - Keep A and AAAA record TTLs the same to ensure consistent behavior during cache expiry
-
Test IPv6 connectivity - Verify your server is actually reachable via IPv6 before adding records
-
Consider Happy Eyeballs - Modern browsers use Happy Eyeballs (RFC 8305) to race IPv4 and IPv6 connections, so broken AAAA records cause only a 250ms delay, not a total failure
-
Monitor both protocols - Ensure your monitoring covers both IPv4 and IPv6 endpoints. A server can be reachable on IPv4 while IPv6 is down.
Related Record Types
- A - IPv4 address records
- CNAME - Alias to another domain name
- ALIAS - Root domain aliasing
- NS - Nameserver delegation
- PTR - Reverse DNS for IPv6 addresses
- TLSA - DANE certificate pinning over IPv6
Conclusion
AAAA records are essential for modern internet infrastructure. As IPv6 adoption continues to grow -- driven by mobile networks, cloud providers, and IPv4 address exhaustion -- ensuring your domains have proper AAAA records guarantees accessibility for all users. Combined with A records in a dual-stack configuration, AAAA records and Happy Eyeballs deliver the best possible experience across all network types. DNScale makes it easy to manage both IPv4 and IPv6 records from a single interface, with our anycast network serving responses quickly worldwide.
Ready to manage your DNS with confidence?
DNScale provides anycast DNS hosting with a global network, real-time analytics, and an easy-to-use API.
Start free