Hi Viktor, > > How do we get the desired behaviour clarified so implementers of > > servers and clients have a reference when trying to resolve their > > disagreement? IMO, the CNAME should precede the A, but that still > > isn't precise enough. Some are asking if it's sufficient that all > > CNAME precede all A. > > Which clients that are not recursive resolvers talk directly to > authoritative nameservers (not counting "nslookup", "dig", ...)? Those, like ping, where a foo.local is provided by a local, authoritative, nameserver. DNS is increasing being used on a local level, e.g. as a distributed key/value lookup. That's one reason why new servers are coming along and meeting old clients. > If an order is to be specified, then it should not only order all > applicable CNAME RRs before any records that bear the final anwer, but > also order the CNAME records in a chain of CNAMEs, so that the source > CNAME precedes the target CNAME: I agree. That would seem to give the simplest client implementation, and probably matches early BIND. > However, it is not clear why the order of records in a non-recursive > response needs to be constrained in any way. Surely, recursive > resolvers can reorder the records as necessary? I have a lack of DNS Fu. If the recursive resolver looking up (A? foo.local) talked to the authoratitive server that answered (A bar.local=1, CNAME foo.local=bar.local) then, assuming it understood that completely answered the question, might it not simply copy the answer back to the client without re-ordering? Cheers, Ralph.