Resolução de problemas dnsmasq

2

Estou com problemas de DNS em uma nova instalação do Ubuntu 16.04:

kqs@mycomputer:~$ nslookup localserver
Server:     127.0.0.1
Address:    127.0.0.1#53

** server can't find localserver: NXDOMAIN

Mas se eu especificar o servidor DNS (ou às vezes, se eu esperar um pouco), funciona:

kqs@mycomputer:~$ nslookup localserver 192.168.0.1
Server:     192.168.0.1
Address:    192.168.0.1#53

Name:   localserver.localdomain
Address: 192.168.0.24

E este é o mesmo servidor DNS que aparece primeiro no Network Manager:

kqs@mycomputer:~$ nmcli device show
IP4.ADDRESS[1]:     192.168.0.152/24
IP4.GATEWAY:        192.168.0.1
IP4.ROUTE[1]:       dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]:         192.168.0.1
IP4.DNS[2]:         131.215.254.100
IP4.DNS[3]:         131.215.139.100

Parece ser o mesmo problema que "às vezes resolve coisas, às vezes não "e" Resolução de endereços de intranet e dnsmasq ", mas nessa solução eles desabilitam dnsmasq comentando a linha dns=dnsmasq em /etc/NetworkManager/NetworkManager.conf .

No entanto, eu gostaria de solucionar problemas do dnsmasq em vez de ignorá-lo completamente.

Então, minhas perguntas são:

  1. Meu entendimento é que dnsmasq é um servidor DNS leve em execução no meu computador. Presumivelmente, as configurações de DNS do Network Manager são usadas para configurar dnsmasq , mas no final é dnsmasq que é o único responsável por lidar com pesquisas de DNS (com a ajuda de servidores DNS upstream conforme julgar necessário). Isso está correto?
  2. Posso ver como dnsmasq está lidando com uma determinada pesquisa de DNS? ou seja, está respondendo a partir do seu cache? Para qual servidor DNS upstream ele está encaminhando?
  3. Posso instruir dnsmasq a usar um servidor DNS específico para o domínio local?
por KQS 14.04.2017 / 00:18

1 resposta

3

1. dnsmasq e o Network Manager

Como você mesmo, a partir de alguns dias no futuro: sua compreensão está correta.

Observe, no entanto, que o Network Manager inicia uma instância de dnsmasq como um processo filho (não um daemon separado) e mantém seu próprio conjunto de configurações do dnsmasq.

2. Posso ver como dnsmasq está lidando com uma determinada pesquisa de DNS?

Desculpe, ainda não sei.

3. Posso instruir dnsmasq a usar um servidor DNS específico para o domínio local?

Sim, a opção --server em dnsmasq ( manpage aqui ) permite que você especifique servidores DNS upstream para domínios específicos.

Você pode passar essa opção para a invocação do dnsmasq pelo Network Manager. Eu fiz isso criando um arquivo no diretório /etc/NetworkManager/dnsmasq.d/ com o conteúdo:

server=//192.168.0.1

Normalmente, esta linha seria server=/domain/<ipaddr> ; Nesse caso, a especificação de domínio vazia significa "somente nomes não qualificados", como localserver em seu exemplo (em oposição a localserver.domain ).

Como consertei seu problema imediato

A alteração acima ainda não corrigiu as coisas. Eu verifiquei que isso foi carregado ( service NetworkManager status mostra uma entrada de log dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names ), mas ainda retorna NXDOMAIN em pesquisas. Então resolvi o seguinte hack:

As máquinas locais às quais estou me conectando têm IPs estáticos, então eu as especifiquei manualmente em um arquivo em /etc/NetworkManager/dnsmasq.d com o conteúdo:

address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
    
por KQS 14.04.2017 / 23:23