When I add an ELB as Alias Target in AWS Route 53, it automatically adds the dualstack
prefix to my ELB DNS. What does this represent?
When I try dig
, both returns the same endpoints.
Note: This is an internal load balancer.
The dualstack
DNS name returns both IPv6 and IPv4 records for an EC2-Classic (Internet-facing, non-VPC) Elastic Load Balancer.
See the ELB documentation on Internet-Facing Load Balancers:
EC2-VPC
Load balancers in a VPC support IPv4 addresses only. [...]
EC2-Classic
Load balancers in EC2-Classic support both IPv4 and IPv6 addresses. [...]
The base public DNS name returns only IPv4 records. The public DNS name with the
ipv6
prefix returns only IPv6 records. The public DNS name with thedualstack
prefix returns both IPv4 and IPv6 records. We recommend that you enable IPv6 support by using the DNS name with thedualstack
prefix to ensure that clients can access the load balancer using either IPv4 or IPv6.
Although the Route53 console always prepends dualstack.
to the DNS name when choosing an Alias Target for an A
(IPv4) or AAAA
(IPv6) Resource Record Set (as noted in the documentation), and additionally the dualstack.*
endpoint always correctly returns an IPv4 A
record, only the DNS names for an EC2-Classic ELB (either the dualstack.*
or ipv6.*
endpoint) currently return IPv6 AAAA
records, or serve as a valid alias target for an AAAA
record.
You can confirm using dig
:
dig dualstack.[endpoint] A dualstack.[endpoint] AAAA +short
Only an EC2-Classic ELB will return both IPv4 and IPv6 addresses for this command, the others will only return an IPv4 address.