resolv.conf & systemd-resolved: consulta o próximo servidor no domínio não encontrado respostas

resolv.conf & systemd-resolved: consulta o próximo servidor no domínio não encontrado respostas

Estou tentando criar um algoritmo simples de resolução de DNS em cascata para meu laptop:

  • Consulte os servidores fornecidos pelo DHCP
  • Não encontrado/falhou? Consulta 8.8.8.8 e seus amigos
  • Não encontrado/falhou? Consultar dnsmasq local em 127.ABC

Atualmente parece que o próximo servidor só é solicitado se o anterior falhar de uma forma ou de outra, mas se tiver respondido com uma resposta vazia, o processo de resolução será interrompido.

É possível forçar a máquina com Linux a fazer isso da maneira em cascata descrita acima, por meio de mecanismos de kernel ou resolvidos pelo systemd? Certamente é possível rotear solicitações por meio do dnsmasq (definindo systemd-resolved na primeira server=diretiva para encaminhar a consulta para servidores fornecidos por DHCP), mas eu prefiro seguir um caminho menos confuso que mantenha o máximo possível da minha distribuição intacta.

Responder1

Infelizmente não é assim que o DNS funciona. A única vez que outros servidores serão consultados é quando o servidor definido anteriormente não estiver respondendo. QUALQUER resposta, mesmo que seja NXDOMAIN, é uma resposta. Mesmo uma resposta de Query Denied é uma resposta...

Responder2

Acontece que algo bastante semelhante que satisfaça minhas necessidades pode ser feito ao contrário (só porque os domínios não se sobrepõem). A funcionalidade necessária está no próprio dnsmasq e posso conseguir o que desejo da seguinte forma:

  1. Inicie o systemd resolvido em 127.0.0.53

  2. Adicione as regras necessárias ao dnsmasq.conf

    address = /banana.services/127.0.0.1
    address = /mango.services/127.0.0.1
    
  3. Finalize dnsmasq.conf com servidores substitutos de DNS global e resolvido pelo systemd

    server = 127.0.0.53
    server = 8.8.8.8
    server = 8.8.4.4
    server = 1.1.1.1
    
  4. Voila - agora* o dnsmasq primeiro servirá substituições locais, depois examinará o DNS local e, finalmente, se também retornar de mãos vazias, consultará a lista de servidores DNS conhecidos

* nsswitch.conf também pode exigir a alteração da ordem de resolução.

informação relacionada