Depois de atualizar minha instalação 16.04 para 16.10, tenho problemas com o DNS.
Primeiro, tive problemas algumas vezes quando conectado ao WiFi, enquanto ele trabalhava na Ethernet. Agora parece que também funciona com WiFi. Não sei por que e se está relacionado ao problema que enfrento agora:
Ao conectar-se a um host VPN com o Cisco Anyconnect VPN , ele adiciona uma linha em '/etc/resolv.conf' . Eu entendo que o Ubuntu agora está usando systemd-resolve , e a página de manual diz que existem três modos diferentes para lidar com o /etc/resolv.conf. Meu /etc/resolv.conf não é um link simbólico e não lista 127.0.0.53 como um servidor DNS, pelo que entendi que systemd-resolved deveria "lê-lo para obter dados de configuração de DNS". No entanto, parece não se importar com isso.
escavação
O estranho (para mim) é que dig host.customer.tld
, retorna uma boa resposta com uma seção de resposta mostrando o ip do host solicitado e refere-se ao servidor DNS adicionado ao /etc/resolv.conf pelo cliente vpn como servidor. Quando a conexão VPN está desativada, não recebo resposta. Ou seja, dig lê /etc/resolv.conf .
ping
O navegador, por outro lado, não acessa o /etc/resolv.conf e não consegue resolver o nome do host. Nem é ping / curl, a propósito.
nmcli
Encontrei uma postagem relacionada e tentei executar
nmcli device show <interfacename> | grep IP4.DNS
mas não lista nenhum DNS para o dispositivo cscotun0. (Também não está no 16.04.) Além disso, o nmcli lista meu servidor dhcp (meu roteador) como host IP4.DNS para minhas conexões eth / wlan. Usar dig @192.168.0.1 xxx
para qualquer domínio público funciona bem.
configuração
Existem alguns outros servidores DNS listados em meu /run/systemd/resolve/resolv.conf:
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844
Estes não são servidos pelo meu servidor DHCP. o arquivo /etc/systemd/resolved.conf contém apenas linhas comentadas, exceto o cabeçalho da seção:
[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
A página de manual do resolved.conf diz que
DNS = Uma lista separada por espaços de endereços IPv4 e IPv6 para usar como servidores DNS do sistema. ... Por motivos de compatibilidade, se essa configuração não for especificada, os servidores DNS listados em /etc/resolv.conf serão utilizados, se esse arquivo existir e se houver algum servidor nele configurado. Essa configuração é padronizada para a lista vazia.
FallbackDNS = Uma lista separada por espaços de endereços IPv4 e IPv6 a serem usados como servidores DNS de fallback. Qualquer servidor DNS por link obtido no systemd-networkd.service (8) tem precedência sobre essa configuração, assim como qualquer servidor configurado via DNS = acima ou /etc/resolv.conf. Essa configuração é usada apenas se nenhuma outra informação do servidor DNS for conhecida. Se essa opção não for fornecida, uma lista compilada de servidores DNS será usada.
Parece que o fallback acaba em /run/systemd/resolve/resolv.conf no meu caso.
EDIT: Eu não tinha certeza de qual era o problema e, para ser sincero, ainda não sei exatamente como isso funciona, mas pelo menos aconteceu que a solução no meu caso era desativar o systemd-resolved
serviço. Eu pensei que esse serviço era necessário, que era o componente que fornecia o serviço DNS para todos os aplicativos locais, mas aparentemente há algo mais lá fazendo esse trabalho.