forçar a ordem de pesquisa do DNS no dnsmasq gerenciada pelo network-manager?

0

Eu tenho um DN que não tem entrada no servidor DNS x.x.x.x só pode ser resolvido pelo servidor y.y.y.y e algum DN estará errado em y.y.y.y mas corrija em x.x.x.x. No linux tradicional eu acabei de colocar 2 linhas em /etc/resolv.conf .

x.x.x.x
y.y.y.y 

Desta forma, o programa primeiro enviará solicitação para x.x.x.x. Se não tiver essa entrada, ela retornará para y.y.y.y. Assim tudo ficará bem.

A distro linux moderna normalmente usa dnsmasq. Eu ainda posso dar vários servidores DNS pelo gerenciador de rede. nmcli dev list iface eth0 mostra isso:

IP4.DNS[1]:                             x.x.x.x
IP4.DNS[2]:                             y.y.y.y

No entanto, a pesquisa de DNS não segue a ordem que eu dou. Como o y.y.y.y é um servidor local, ele sempre responde mais rápido, o dnsmasq sempre usa a resposta de y.y.y.y e nunca usa a resposta de x.x.x.x. Existe alguma maneira que eu possa, antes da ordem de pesquisa no dnsmasq?

Estou ciente de que poderia fazer algo como strict-order no dnsmasq.conf. No entanto, no Ubuntu 14.04 não existe tal arquivo e o resolv.conf é gerado automaticamente.

[atualização]

Eu adiciono "ordem estrita" a /etc/NetworkManager/dnsmasq.d/dnsorder.conf . Reinicie a rede e o networkmanager, isso não tem efeito até agora. o comando dnsmasq executado pelo networkmnager é assim:

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq –conf-dir=/etc/NetworkManager/dnsmasq.d

/var/run/NetworkManager/dnsmasq.conf está vazio. Nenhum resolv.conf encontra em /etc/NetworkManager .

    
por Wang 08.05.2017 / 14:37

1 resposta

0

Na minha opinião, esta é a maneira errada de pensar. Embora a libc esteja limitada às tentativas sequenciais de usar servidores DNS, a lista de servidores DNS globais deve conter entradas que sejam todas iguais e o comportamento do dnsmasq esteja perfeitamente correto.

Se você quiser configurar determinadas subárvores DNS para serem manipuladas por servidores DNS diferentes como uma exceção à árvore raiz, faça exatamente isso.

Até onde eu sei, você pode configurar as instâncias dnsmasq fornecidas pelo NetworkManager em /etc/NetworkManager/dnsmasq.d/ , o que já é coberto por respostas a outras perguntas.

Além disso, o dnsmasq não é a única opção para uma distribuição moderna. Você ainda pode usar o bom e velho arquivo de configuração /etc/resolv.conf libc em todas as distribuições do NetworkManager incluindo o seu Ubuntu. Ou você pode usar Unbound em algumas distribuições. Existem todos os tipos de maneiras de abordar a configuração do DNS local em distribuições modernas.

    
por 08.05.2017 / 15:41