Wenn ein Resolver einen CNAME nachschlägt, sendet der Resolver anscheinend zuerst eine A-Eintragsanforderung an den DNS-Server. Soll der DNS-Server herausfinden, dass es sich bei der Anforderung tatsächlich um einen CNAME handelt, oder soll der Resolver die Anforderung erneut versuchen, jedoch für einen CNAME-Typ? Ich frage, weil - und hier ist die Wendung - wir eine "interne" Top-Level-Domain haben, die wir in unserem internen LAN verwenden. Nennen wir sie "Domain1", und der DNS-Server, den ich abfrage, ist der autorisierende Server für "Domain1" (und ist für alles andere rekursiv.) Was mein Host (Centos 6.8) tatsächlich sendet, ist eine Anfrage nach einem A-Datensatz:
16:15:45.837525 IP (tos 0x0, ttl 64, id 36911, offset 0, flags [none], proto UDP (17), length 62)
myhost.domain1.40684 > dnsserver.domain1.domain: 15355+ A? cfengine.domain1. (34)
Reply - a servfail:
16:15:45.837762 IP (tos 0x0, ttl 64, id 49982, offset 0, flags [DF], proto UDP (17), length 62)
dnsserver.domain1.domain > myhost.domain1.40684: 15355 ServFail 0/0/0 (34)
Wenn ich nach einem CNAME-Typ suche, erhalte ich den richtigen CNAME-Datensatz (obwohl A rec nicht als ZUSÄTZLICHE Daten zurückgegeben wird):
cfengine.domain1. 3600 IN CNAME helm02.domain2.
Ja, ich weiß, dass es keine gute Praxis ist, autorisierende und rekursive Funktionen in einem einzigen DNS-Server zu kombinieren, aber ich habe keine Kontrolle über dieses DNS-Setup.
Wenn autorisierende und rekursive Funktionen zu einem einzigen Server kombiniert werden und Sie eine gewünschte Rekursionsabfrage für einen CNAME an den Server senden, für den der Server autorisierend ist - soll er überhaupt funktionieren?
Angenommen, es soll funktionieren. Wer ist dafür verantwortlich, dass meine Anfrage tatsächlich für einen CNAME-Datensatz und nicht für einen A-Datensatz gilt? Der DNS-Server oder mein Resolver?