Cómo configurar CoreDNS para resolver registros CNAME utilizando un solucionador externo

Cómo configurar CoreDNS para resolver registros CNAME utilizando un solucionador externo

Estoy buscando una configuración de ejemplo en la que CoreDNS leerá el registro CNAME del archivo (complemento de archivo) y luego lo resolverá utilizando un solucionador personalizado (¿complemento de reenvío?). Un cliente no debe obtener el registro CNAME sino solo los registros A.

Por ejemplo:

  • si el cliente solicita al CoreDNStest.r1.svc
  • entonces el CoreDNS obtiene el CNAMEregistrotest IN CNAME test.r2.svc.
  • luego solicite al solucionador 10.11.12.13:53extranjerotest.r2.svc
  • y respuesta al cliente con los Aregistros

¿Es posible?

Esta configuración no me funciona:

Corefile
# root
. {
  log
  errors
}

r1.svc {
  file r1.svc
  forward r2.svc 10.11.12.13:53
  log
  errors
}
r1.svcarchivo
$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.

Respuesta1

Puede que me equivoque, pero forward r2.svc 10.11.12.13:53está en el r1.svcbloque, por lo que nunca lo llamarán.

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

Mover la forward r2.svc 10.11.12.13:53línea al .bloque debería permitirle procesar la segunda solicitud.

Respuesta2

Escribí un complemento para CoreDNS para hacerlo:https://github.com/kinjelom/coredns-recursor

ingrese la descripción de la imagen aquí

información relacionada