Como configurar o CoreDNS para resolver registros CNAME usando resolvedor estrangeiro

Como configurar o CoreDNS para resolver registros CNAME usando resolvedor estrangeiro

Estou procurando um exemplo de configuração em que o CoreDNS lerá o registro CNAME do arquivo (plugin de arquivo) e o resolverá usando um resolvedor personalizado (plugin de encaminhamento?). Um cliente não deve obter o registro CNAME, mas apenas os registros A.

Por exemplo:

  • se o cliente solicitar ao CoreDNStest.r1.svc
  • então o CoreDNS obtém o CNAMEregistrotest IN CNAME test.r2.svc.
  • então peça ao resolvedor 10.11.12.13:53estrangeirotest.r2.svc
  • e resposta ao cliente com os Aregistros

É possível?

Esta configuração não está funcionando para mim:

Corefile
# root
. {
  log
  errors
}

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

Responder1

Posso estar enganado, mas forward r2.svc 10.11.12.13:53está no r1.svcbloco, então nunca será chamado.

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 a forward r2.svc 10.11.12.13:53linha para o .bloco deve permitir processar a segunda solicitação.

Responder2

Eu escrevi um plugin para CoreDNS para fazer isso:https://github.com/kinjelom/coredns-recursor

insira a descrição da imagem aqui

informação relacionada