Por que o systemd-resolved não usa meu servidor DNS local?

8

Estou usando um servidor BIND9 local para hospedar alguns registros de DNS locais. Ao tentar cavar um nome de domínio local, não consigo encontrá-lo se não disser explicitamente 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 / resolved

# 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 de 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 corretamente configurado 192.168.1.7 como o servidor DNS principal (minha instância BIND9 local). Eu não consigo entender porque não é usado ...?

    
por Civing 17.02.2018 / 14:24

3 respostas

4

Então, mudar minha interface eth0 com fio para ser gerenciada resolveu esse problema para mim.

Alterando o ifupdown para managed = true em /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%. Eu também apliquei estas alterações para tentar resolver o resolvedor

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

Um grande obrigado a este post sobre o assunto: link

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

    
por 19.02.2018 / 21:25
4

Meu palpite é que seu serviço systemd-resolved está configurado corretamente, mas nunca consegue ver a solicitação. O domínio .local é tratado especialmente por sistemas que executam o mDNS . avahi-daemon , que fornece serviços mDNS / DNS-SD (também conhecidos como "Bonjour" nos 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 o domínio .local para algo diferente (possivelmente .internal ou .lan ). Isso pode ser o mais fácil de fazer na prática, porque você só precisa alterar algumas coisas no seu servidor DNS, e funciona melhor com o Avahi. Eu recomendaria este método.

  2. Altere seu arquivo /etc/nsswitch.conf colocando a entrada dns na frente das entradas mdns .

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

por 17.02.2018 / 20:42
0

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

A auto-resposta do Civing foi mais parecida com a que eu queria.

Também precisei adicionar dns=none à seção [main] de /etc/NetworkManager/NetworkManager.conf , por isso parece:

[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, 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 com a segunda edição).

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

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

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

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

A leitura de man 8 resolvconf ajudou. Muito. Eu fiz não seguir as instruções para colocar as coisas onde o programa ifup poderia encontrá-las. 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?).

Então isso é fugaz, e ainda há a questão de que o que eu tinha (há muito tempo) inserido na GUI do painel de controle de rede não estava sendo obedecido pelo sistema recém-atualizado, mas é uma questão totalmente diferente, uma vez que eu acho como perguntar.

    
por 31.08.2018 / 05:51