netplan: nameservers no netplan yaml. Que efeito?

2

Qual é o efeito do campo nameservers / addresses no arquivo de configuração yaml?

Qualquer aplicativo que eu tentei usa os servidores de nomes /etc/resolv.conf. Isso acontece mesmo com o resolvconf parado.

Isso está usando o systemd como resolvedor. Nenhum erro em gerar ou aplicar.

RESOLUÇÃO

Obrigado a todos que responderam. O netplan config yaml configura os servidores de nomes depois que eu fizer isso:

  1. Limpe o resolvconf;
  2. Coloque meu DNS da LAN como encaminhador em /etc/bind/named.conf.options;
  3. Substitua o link /etc/resolv.conf por um arquivo estático como

    pesquisa servidor de nomes 127.0.0.53

E isso funciona. Acho que tenho que incluir a pesquisa no resolv.conf mesmo que eu tenha um campo de pesquisa no meu yaml de configuração do netplan. Quebra-cabeça para outro dia.

    
por Stephen Boston 11.05.2018 / 15:03

2 respostas

3

NOTE: This may duplicate information from chili555, however in discussion with them, the aforementioned individual suggested posting an 'authoritative' answer as I have worked with this exact issue/question before.

O comportamento observado em seu ambiente é o systemd-resolved equivalente do que o dnsmasq de antes de 18.04 estava fazendo. As atualizações de netplan afetam os servidores de nomes que systemd-resolved usam em suas pesquisas. Isso está detalhado na última seção da resposta.

Mas primeiro, para os curiosos, um pouco da história sobre esse comportamento e como ele difere das versões mais antigas do Ubuntu que usam o Network Manager e dnsmasq . (Sinta-se livre para pular para a próxima seção desta resposta se você quer apenas o material relacionado ao 18.04)

Antes de 18.04: dnsmasq como um resolvedor de cache local

Antes de 18.04, sempre que você usasse o GUI Ubuntu, ele instalaria dnsmasq ao lado do Network Manager. A integração do Network Manager com dnsmasq atualizaria a lista dnsmasq dos servidores de 'próximo salto' (servidores DNS upstream) para onde enviar uma consulta.

Portanto, uma consulta de DNS para google.com passaria de qualquer aplicativo que estivesse solicitando a resolução para dnsmasq e, se dnsmasq não souber o endereço IP ou tiver uma entrada em cache expirada, passará a solicitação de DNS para qualquer servidor DNS upstream (para este exemplo, 8.8.8.8 ou 8.8.4.4 ). Você teria que verificar o Network Manager ou o dnsmasq config para ver onde estavam os servidores DNS 'upstream'.

Este é um comportamento típico em um Ubuntu gráfico instalado a partir dos ISOs de Desktop.

A instalação padrão dos ISOs dos servidores, por outro lado, seguiu o método tradicional "update /etc/resolv.conf " através do pacote resolvconf e utilizou /etc/resolv.conf diretamente ao invés de se comunicar via dnsmasq .

18.04: netplan e systemd-resolved

Com o 18.04, o sistema DNS padrão é systemd-resolved . Isso funciona como o dnsmasq de idade, exceto que ele faz isso para as instalações de Desktop e Servidor ISO atualmente. Também pode integrar-se com o Network Manager (usado nos ambientes GUI para gerenciar wi-fi e outros) e com a Netplan (que lida melhor com ethernets)

systemd-resolved é fornecido a partir de netplan da lista de servidores DNS para os quais enviar consultas. Portanto, usando o mesmo exemplo acima, uma consulta DNS para google.com passaria pelo resolvedor stub de systemd-resolved , que retornaria o valor da consulta armazenada em cache ou passaria para os servidores DNS superiores.

Isso emula o comportamento padrão de dnsmasq , mas também adiciona algumas manipulações de pesquisa adicionais sobre como o 'localhost' e outros endereços relacionados ao local podem ser consultados.

Com o NetPlan, ou Network Manager, você pode obter a lista de servidores DNS upstream através de systemd-resolved com o seguinte comando:

systemd-resolve --status

que lhe dará um monte de saída. A seção relevante ficaria assim (tirada da resposta de chili555 para conveniência):

DNS Servers: 8.8.8.8
             8.8.4.4
             2600:1700:5aa0:830::1
    
por Thomas Ward 11.05.2018 / 18:27
2

Aviso: Este é um palpite bem fundamentado e não uma resposta canônica documentada.

Any application I've tried uses the /etc/resolv.conf nameservers.

No meu sistema 18.04, a seção não comentada, isto é, realmente operacional, do /etc/resolv.conf diz:

nameserver 127.0.0.53

Isto é, creio eu, um sintoma do uso do dnsmasq, o sistema que armazena em cache as informações do DNS. Isso significa, acredito, procurar primeiro no cache local, antes de pedir nomes de nomes externos.

No entanto, o cache local não contém nenhuma informação de servidor de nomes sobre um site que nunca tenha sido visitado antes. Nesse caso, o sistema usa servidores de nomes DNS declarados externos. Estes podem ser declarados em / etc / network / interfaces em sistemas mais antigos; em /etc/netplan/*.yaml em sistemas mais recentes ou, em quase todas as instalações de desktop, no Network Manager.

Na verdade, o /etc/resolv.conf nos informa como os servidores de nomes externos podem ser encontrados.

Run "systemd-resolve --status" to see details about the uplink DNS servers currently in use.

No meu sistema, o relatório diz, em parte:

DNS Servers: 8.8.8.8
             8.8.4.4
             2600:1700:5aa0:830::1
Em suma, acredito que os servidores de nomes DNS sejam declarados no netplan para informar ao sistema onde procurar se as informações do DNS não forem encontradas no cache local.

    
por chili555 11.05.2018 / 16:33