Por que o resolvido pelo sistema não usa meu servidor DNS local?

12

Estou usando um servidor BIND9 local para hospedar alguns registros DNS locais. Ao tentar procurar um nome de domínio local, não consigo encontrá-lo se não informar explicitamente ao dig para usar meu servidor BIND9 local.

user@heimdal:~$ dig +short heimdal.lan.se
user@heimdal:~$ dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2

Ubuntu 17.04 e systemd-resolved são usados. Este é o conteúdo do meu / etc / resolvido

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

E a saída do systemd-resolve --status

Global
         DNS Servers: 192.168.1.7
                      192.168.1.1
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

A seção Servidores DNS parece ter configurado corretamente 192.168.1.7 como o servidor DNS principal (minha instância BIND9 local). Não consigo entender por que não é usado ...?

Civing
fonte
Lembro-me de algo ao longo das linhas de como systemdusa o Google DNS como um retorno ...
William Edwards
O que está systemd-resolve heimdal.lan.sedizendo?
Bigon

Respostas:

7

Portanto, alterar minha interface com fio eth0 para ser gerenciado resolveu esse problema para mim.

Alterando ifupdown para managed = true no /etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=true

Em seguida, reinicie o NetworkManager

sudo systemctl restart NetworkManager

Depois disso, ele funciona perfeitamente ..

Isso não foi 100%. Também apliquei essas alterações para tentar matar o resolvedor

sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop

Muito obrigado a esta postagem do blog sobre o assunto: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/

Vamos rezar para que isso funcione .. Todo esse negócio de resolver sistemas é tão feio.

Civing
fonte
Comentário final, mas systemd-networkdrelacionados outra coisa seria a de verificar se o eth0ou enXdispositivo tem um *.networkarquivo no `/ lib / systemd / network /` ver info systemd-networkde info systemd.networkeinfo resolved.conf
jmunsch
5

Meu palpite é que seu systemd-resolvedserviço está configurado corretamente, mas nunca consegue ver a solicitação. O .localdomínio é tratado especialmente por sistemas executando mDNS . avahi-daemon, que fornece serviços mDNS / DNS-SD (também conhecido como "Bonjour" em produtos da Apple) pode ser configurado para ter precedência sobre o DNS durante a resolução de nomes; parece que o Ubuntu faz isso.

Existem algumas opções que você pode escolher:

  1. Renomeie seu .localdomínio para algo diferente (possivelmente .internalou .lan). Isso pode ser o mais fácil de fazer na prática, porque você só precisa alterar algumas coisas no servidor DNS e funciona melhor com o Avahi. Eu recomendaria este método.

  2. Altere seu /etc/nsswitch.confarquivo colocando a dnsentrada na frente das mdnsentradas.

  3. Altere a configuração do Avahi para alterar o domínio mDNS de .localpara outro, editando /etc/avahi/avahi-daemon.confe alterando (ou adicionando) domain-name=.something(localizado na [server]seção). Você precisará fazer isso em todos os computadores que usam mDNS para que eles ainda trabalhem juntos.

ErikF
fonte
Lamento dizer que ofusquei o domínio real aqui. Não é um domínio .local. O domínio principal é na verdade .se. No entanto, vou acompanhar sua liderança e verificar o conteúdo do nsswitch. Desculpe por qualquer confusão
Civing
0

Parece que isso seria melhor como comentário, mas não com reputação suficiente ....

A auto-resposta de Civing foi mais do que eu queria.

Eu também tive que adicionar dns=noneà [main]seção de /etc/NetworkManager/NetworkManager.conf, assim fica assim:

[main]
plugins=ifupdown,keyfile
dns=none

Acabei de atualizar para o xubuntu 18.04, a partir de 14.04, e tenho uma LAN mais antiga que isso, com muitos pequenos ajustes acumulados ao longo dos anos. Então, eu quero que meu DNS faça o que eu quero (sim, eu comprei muitas cópias do livro de Cricket Lius ao longo dos anos, começando na segunda edição).

Como um aparte, eu adicionava anteriormente as informações de resolução de DNS que desejo ver no arquivo /etc/resolvconf/resolv.conf.d/head.

Em poucas palavras, uma vez que eu tive um /etc/resolv.conf funcionando, como root:

cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head

Mas agora, eu apenas edito o arquivo /etc/resolv.conf diretamente, e ele permanece inalterado. Os visitantes da minha LAN, que estão usando systemd / resolvconf, são SOOL. Eles não existem.

A leitura man 8 resolvconfajudou. Muito. Eu fiz não siga as instruções para colocar as coisas em que o programa ifup poderia encontrá-los. Principalmente porque há toda uma superestrutura na GUI que já estava sendo ignorada pelo que foi feito durante a atualização. Esse parece ser um problema maior (WTF, Ubuntu?).

Portanto, isso é imprudente, e ainda há o problema de que o que eu tinha (há muito tempo) inserido na GUI do painel de controle da rede não estava sendo obedecido pelo sistema recém-atualizado, mas essa é uma pergunta totalmente diferente, depois que eu descobrir como pergunte isso.

BISI
fonte
0

Para mim, executando um 18.04 instalado recentemente, fiz a primeira alteração citada pelo @Civing:

[ifupdown]
managed=true

então, percebendo que o /etc/resolv.conf estava sempre apontando stub-resolv.conf e que um resolv.conf razoável com o servidor DNS da LAN adequado estava sendo gerado, alterou o link simbólico:

/etc/resolv.conf -> /run/systemd/resolve/resolv.conf

e local todos os nomes de host resolvidos via ping.

Resta ver quanto tempo isso continua funcionando.

Quando eu instalei inicialmente, a configuração da rede sem fio falhou e não posso deixar de me perguntar se a instalação deixou o /etc/resolv.conf nesse estado inicial.

Portanto, uma sugestão é observar o que está sendo resolvido gerando; você já pode ter uma base de trabalho.

rhaleblian
fonte