We've just migrated to a new internal DNS resolver, and discovered a limitation that impacts our ability to lookup specific records.
Our internal (private) authoritative domain is example.net.. We have a CNAME record for service.example.net. that resolves to name-1234567890.region.elb.amazonaws.com.
name-1234567890.region.elb.amazonaws.com. resolves to various A records, who's values are managed by AWS. We do not manage the public amazonaws.com zone, nor the records within this zone.
Our previous DNS resolver would "chase" CNAME records, so a lookup of service.example.net. might return this:
$ dig service.example.net
...
;; ANSWER SECTION:
service.example.net. 300 IN CNAME name-1234567890.region.elb.amazonaws.com.
name-1234567890.region.elb.amazonaws.com. 26 IN A 10.1.2.3
name-1234567890.region.elb.amazonaws.com. 26 IN A 10.1.2.4
The answer includes the IPs of the A records that the CNAME points to. All good.
Our new DNS resolver does not "chase" CNAME records. The same lookup with the new resolver looks like this:
$ dig service.example.net
...
;; ANSWER SECTION:
service.example.net. 300 IN CNAME name-1234567890.region.elb.amazonaws.com.
... note the missing A records. Attempts to contact service.example.net via ping, curl, python requests, etc. all result in "Unknown host" failures.
We're not able to change the behavior of our new DNS resolver. Is there some option in the linux kernel or some local DNS resolver to "chase" CNAME records from the client, the same way our old DNS resolver did at the server side?
For context, our new DNS resolver is GCP's cloud-dns, which documents this behavior.
Some additional context / comment answers:
- example.net. is a private, internal managed zone in cloud-dns owned by us.
- amazonaws.com. is a public zone, managed by AWS.
- iirc, an outbound server policy with additional name servers will send all queries to those nameservers, overriding cloud-dns
- iirc, ALIAS records are only available in public zones, not private zones.
- service.exmaple.net. is a CNAME record in the private, managed cloud-dns zone example.net.
- we don't have a presence in AWS, so cannot use route53.