DNS forwarder sempre resolve [fechado]

2

Gostaria de configurar um encaminhador de DNS básico que faça duas coisas.

Primeiro, ele simplesmente encaminha as consultas DNS para o fluxo ascendente. Segundo, se os servidores DNS upstream não puderem resolver um nome de host, esse encaminhador de DNS deverá retornar um endereço IP de lixo, como 127.255.255.255 ou 100:: .

O resultado disso pode ser que todos os nomes de host sempre devam ser resolvidos, mas os nomes de host que normalmente não seriam resolvidos são resolvidos em um endereço IP de lixo.

Por exemplo, se eu tivesse dois nomes de host: resolvable , que o servidor DNS upstream sabe, está em 1.2.3.4 ; e notresolvable para o qual o servidor DNS upstream não conhece o endereço IP. Se eu, então, consultar o DNS encaminhado com esses dois nomes de host, resolvable retornaria 1.2.3.4 e notresolvable retornaria 127.255.255.255 (em vez de não ser encontrado).

Hostname:            resolvable              notresolvable
                    |         / \            |          / \
                    |          |             |           |_________
                   \ /         |            \ /                    |
DNS Forwarder:   forward      found       forward      not  __\  use garbage ip
                 upstream   ip=1.2.3.4    upstream    found   /  ip=127.255.255.255
                    |        / \               |      / \
                    |         |                |       |
                   \ /        |               \ /      |
Upstream DNS     found ip=1.2.3.4              not found
server:

O mais próximo que eu tenho de fazer esse sistema acontecer é com o dnsmasq. O dnsmasq, por padrão, envia as consultas do DNS para o upstream, de forma que funcione como meu primeiro requisito.

Eu também posso adicionar address=/#/127.255.255.255 ao final de /etc/dnsmasq.conf , que então resolve todos os nomes de host para o endereço IP de lixo. No entanto, isso também resolve nomes de host que o servidor DNS upstream pode resolver, que não é o que eu quero.

Depois de ler a página man dnsmasq , encontrei isso na seção de endereços:

Queries in the domains are never forwarded

que sugere para mim que o que eu preciso não é possível com o dnsmasq.

Então, minha pergunta é: qual programa é mais adequado para tornar essa configuração possível e como eu faria isso?

Editar: Contexto

Eu tenho um aplicativo em execução em um contêiner do Docker que usa a rede do docker para se conectar a outros contêineres do Docker usando nomes de host.

O problema que estou tentando resolver é que o aplicativo não inicia ou continua em execução se um nome de host não resolver (o que ocorre se o contêiner ao qual ele está fazendo referência não estiver sendo executado).

Assim, o servidor dns que eu referenciei acima seria um servidor que corre ao lado do aplicativo dentro do contêiner docker.

Também removi a referência a resolv.conf , pois não parece necessário fazer isso funcionar. O servidor dns só precisa encaminhar para o servidor de dns interno do docker, que por acaso está listado em resolv.conf .

    
por JamesStewy 15.05.2016 / 05:41

0 respostas