Live data from Hacker News

What came first: the CNAME or the A record?

blog.cloudflare.com

161–170 of 170 posts

Re: What came first: the CNAME or the A record?

#161

Earlier quoted context omitted.

I agree this doens't seem too ambiguous - it's "you may do this.." and they said "or we may do the reverse". If I say you're could prefix something.. the alternative isn't that you can suffix it. But also.. the programmers working on the software running one of the most important (end-user) DNS servers in the world: 1. Changes logic in how CNAME responses are formed 2. I assume some tests at least broke that meant th…

I was even more surprised to see that the RFC draft had original text from the author dating back to 2015. https://github.com/ableyjoe/draft-jabley-dnsop-ordered-answe... We used to say at work that the best way to get promoted was to be the programmer that introduced the bug into production and then fix it. Crazy if true here...

What you're suggesting seems like a spectacular leap. I do not think it is very likely that the unnamed employee at Cloudflare that was micro-optimising code in the DNS resolver is also the author of this RFC, Joe Abley (the current Director of Engineering at the company, and formerly Director of DNS Operations at ICANN).

Re: What came first: the CNAME or the A record?

#162
post #16

> While in our interpretation the RFCs do not require CNAMEs to appear in any particular order, it’s clear that at least some widely-deployed DNS clients rely on it. As some systems using these clients might be updated infrequently, or never updated at all, we believe it’s best to require CNAME records to appear in-order before any other records. That's the only reasonable conclusion, really.

And I'm glad they came to it. Even if everyone else is wrong (I'm not saying they are) sometimes you just have to play along.

Hopefully Cloudflare documenting the expected behavior and that possibly getting standards tracked will make things easier for the next RFC readers.

Re: What came first: the CNAME or the A record?

#163

> RFC 1034, published in 1987, defines much of the behavior of the DNS protocol, and should give us an answer on whether the order of CNAME records matters. Section 4.3.1 contains the following text: > If recursive service is requested and available, the recursive response to a query will be one of the following: > - The answer to the query, possibly preface by one or more CNAME RRs that specify aliases encountered o…

Some people (myself included) read that as "would ideally come first, but it is not neccessary that it comes first". The language is not clear IMHO and could be worded better.

The possibility is "preface by one or more CNAME RRs..."

I.e. the possibly logically applies to the entire phrase, not just a part of it.

- The answer - to the query - possibly - CNAME RRs - prefaced by - one or more - that specify aliases - encountered on the way to an answer

Re: What came first: the CNAME or the A record?

#164

"One such implementation that broke is the getaddrinfo function in glibc, which is commonly used on Linux for DNS resolution. When looking at its getanswer_r implementation, we can indeed see it expects to find the CNAME records before any answers:" Wherever possible I compile with gethostbyname instead of getaddrinfo. I use musl instead of glibc Nothing against IPv6 but I do not use it on the computers and networks…

It appears that some people prefer IPv4 and do not need IPv6 For example, from another story (about IP addresses) on today's HN front page: https://news.ycombinator.com/item?id=46693867 https://news.ycombinator.com/item?id=46695198

And not long ago:

https://news.ycombinator.com/item?id=46472163

Re: What came first: the CNAME or the A record?

#165
post #154
post #89

Cloudflare is well known for breaking DNS standards, and also then writing a new RFC to justify their broken behavior, and getting IETF to approve it. (The existence of RFC 8482 is a disgrace to everyone involved.) > To prevent any future incidents or confusion, we have written a proposal in the form of an Internet-Draft to be discussed at the IETF Of course.

This really depends on what side of the fence you are on. As a website host/maintainer, I am happy that the DNS 'ANY' query has been deprecated. I am sure if you are a network engineer or ISP, then it propbably annoys you no end.

> As a website host/maintainer, I am happy that the DNS 'ANY' query has been deprecated.

Why? What benefit does this bring you, or what negative consequence would otherwise have resulted for you?

Re: What came first: the CNAME or the A record?

#166

Now that I have seemingly taken on managing DNS at my current company I have seen several inadequacies of DNS that I was not aware of before. Main one being that if an upstream DNS server returns SERVFAIL, there is no distinction really between if the server you are querying is failed, or the actual authoritative server upstream is broken (I am aware of EDEs but doesn't really solve this). So clients querying a broke…

DNS search is stupid by itself and shall be avoided everywhere

For you sanity, only deal with FQDNs;

Re: What came first: the CNAME or the A record?

#167
post #60

Earlier quoted context omitted.

> Ends up in test environment for, what, a month.. nothing using getaddrinfo from glibc is being used to test this environment or anyone noticed that it was broken This is the part that is shocking to me. How is getaddrinfo not called in any unit or system tests?

As black3r mentioned ( https://news.ycombinator.com/item?id=46686096 ), it is likely rearranged by systemd, therefore only non-systemd glibc distributions are affected. I would hazard a guess that their test environment have both the systemd variant and the Unbound variants (Unbound technically does not arrange them, but instead reconstructs it according to RFC "CNAME restart" logic because it is a recursive resolver…

> it is likely rearranged by systemd, therefore only non-systemd glibc distributions are affected.

systemd doesn't imply installed and running systemd-resolved though. I believe it's usually not enabled by default.

Re: What came first: the CNAME or the A record?

#168
post #165
post #154

Earlier quoted context omitted.

This really depends on what side of the fence you are on. As a website host/maintainer, I am happy that the DNS 'ANY' query has been deprecated. I am sure if you are a network engineer or ISP, then it propbably annoys you no end.

> As a website host/maintainer, I am happy that the DNS 'ANY' query has been deprecated. Why? What benefit does this bring you, or what negative consequence would otherwise have resulted for you?

Because without the ANY query it is much more difficult for people to immediately enumerate a full list of all subdomains and IPs for a given domain name. They need to be queried individually.

Re: What came first: the CNAME or the A record?

#169
post #168
post #165

Earlier quoted context omitted.

> As a website host/maintainer, I am happy that the DNS 'ANY' query has been deprecated. Why? What benefit does this bring you, or what negative consequence would otherwise have resulted for you?

Because without the ANY query it is much more difficult for people to immediately enumerate a full list of all subdomains and IPs for a given domain name. They need to be queried individually.

That is false. If all you want is all subdomains and IP addresses, you can query each enumerated name for A records; you get any NS records (or CNAME records) on that name for free in the answer, and can follow those. ANY queries are not needed, and their removal does not help you in the slightest.

Is that your only argument?

Re: What came first: the CNAME or the A record?

#170
post #167

Earlier quoted context omitted.

As black3r mentioned ( https://news.ycombinator.com/item?id=46686096 ), it is likely rearranged by systemd, therefore only non-systemd glibc distributions are affected. I would hazard a guess that their test environment have both the systemd variant and the Unbound variants (Unbound technically does not arrange them, but instead reconstructs it according to RFC "CNAME restart" logic because it is a recursive resolver…

> it is likely rearranged by systemd, therefore only non-systemd glibc distributions are affected. systemd doesn't imply installed and running systemd-resolved though. I believe it's usually not enabled by default.

> I believe it's usually not enabled by default.

Just verify modern OSes now, they definitely do mediate via systemd-resolver (including in server OSes).

Post reply on HN