So konfigurieren Sie CoreDNS zum Auflösen von CNAME-Einträgen mithilfe eines ausländischen Resolvers

So konfigurieren Sie CoreDNS zum Auflösen von CNAME-Einträgen mithilfe eines ausländischen Resolvers

Ich suche nach einer Beispielkonfiguration, in der CoreDNS den CNAME-Eintrag aus der Datei (Datei-Plugin) liest und ihn dann mit einem benutzerdefinierten Resolver (Forward-Plugin?) auflöst. Ein Client sollte keinen CNAME-Eintrag, sondern nur A-Einträge erhalten.

Zum Beispiel:

  • wenn der Client den CoreDNS aufforderttest.r1.svc
  • dann erhält das CoreDNS den CNAMEDatensatztest IN CNAME test.r2.svc.
  • dann fragen Sie den ausländischen Resolver 10.11.12.13:53nachtest.r2.svc
  • und Antwort an den Kunden mit den AAufzeichnungen

Ist es möglich?

Diese Konfiguration funktioniert bei mir nicht:

Corefile
# root
. {
  log
  errors
}

r1.svc {
  file r1.svc
  forward r2.svc 10.11.12.13:53
  log
  errors
}
r1.svcDatei
$ORIGIN r1.svc.
@ 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. (
    202211241713 ; serial
    7200         ; refresh (2 hours)
    3600         ; retry (1 hour)
    1209600      ; expire (2 weeks)
    3600         ; minimum (1 hour)
)
3600 IN NS a.iana-servers.net.
3600 IN NS b.iana-servers.net.
test IN CNAME test.r2.svc.

Antwort1

Ich könnte mich irren, aber es forward r2.svc 10.11.12.13:53befindet sich im r1.svcBlock und wird daher nie aufgerufen.

Client asks for test.r1.svc
Server responds that it's a CNAME for test.r2.svc
Client asks for test.r2.svc
Server doesn't know how to process the answer

Durch das Verschieben der forward r2.svc 10.11.12.13:53Zeile in den .Block sollte die Verarbeitung der zweiten Anforderung möglich sein.

Antwort2

Ich habe dazu ein Plugin für CoreDNS geschrieben:https://github.com/kinjelom/coredns-recursor

Bildbeschreibung hier eingeben

verwandte Informationen