Link /etc/resolv.conf

1

Nota: Minha pergunta é não como parar o nm atualizando o /etc/resolv.conf. Não como fazer o openconnect funcionar. Em vez disso, eu só quero entender alguns detalhes sobre o resolv.conf configurando no Ubuntu. Por que existem duas maneiras de configurá-lo (/etc/resolv.conf é symlink para /run/resolvconf/resolv.conf ou /var/run/NetworkManager/resolv.conf), por que eu recebo diferentes configurações e por que às vezes tenho execução Servidor DNS em 127.0.1.1 e às vezes eu não.

Estou usando a versão 17.04 do xubuntu. E eu preciso conectar ao pulso seguro (5.3r1 agora) VPN. Anteriormente, esse produto VPN era chamado de Junos Pulse pela Juniper Networks . Agora eu tenho várias opções para se conectar a esta VPN:

  1. Pulse Secure 5.3r1 - fornecido pelo nosso provedor de serviços. E contém 32bit GUI que requer muitas bibliotecas de 32 bits.
  2. Use o openconnect --juniper
  3. Crie uma conexão VPN por meio do Network Manager (tipo Juniper / Pulse Network Connect). O suporte Juniper foi adicionado ao Network Manager recentemente e é fornecido pelo pacote network-manager-openconnect-gnome.

Mas tenho alguns problemas com a configuração do DNS durante a conexão à VPN. Eu não mudei nada e parece que agora systemd-resolve é usado. De acordo com a documentação do systemd-resolve, ele gerencia o /etc/resolv.conf como um link para o arquivo /run/resolvconf/resolv.conf e esse arquivo deve conter "nameserver 127.0.0.53". Novos nameservers e nomes de domínio padrão podem ser adicionados a esse arquivo e, nesse caso, todos os servidores de nomes são usados. Nesse caso, tudo funciona.

Mas depois da reinicialização, às vezes, vejo que /etc/resolv.conf aponta para /var/run/NetworkManager/resolv.conf e contém as linhas "# Generated by NetworkManager" e "nameserver 127.0.1.1". Nesse caso, a resolução de nomes para minha VPN não funciona.

Então a questão é o que é o servidor DNS 127.0.1.1, porque eu tenho dois servidores DNS em vez de um. Na verdade, não preciso de nenhum servidor DNS local, mas de qualquer maneira. Por que o link /etc/resolv.conf está configurado para /var/run/NetworkManager/resolv.conf pelo Network Manager.

Acabei de verificar netstat -utlp :

Proto Local Address           Program name
tcp   0.0.0.0:5355 (hostmon)  systemd-resolved
udp   127.0.0.53:53(domain)   systemd-resolved
udp   0.0.0.0:5353 (mdns)     chrome
udp   0.0.0.0:5353 (mdns)     avahi-daemon
udp   0.0.0.0:5355 (hostmon)  systemd-resolved

Eu verifiquei systemd-resolve --status :

Global
     DNS Servers: 127.0.1.1
...

Eu verifiquei a configuração de rede /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

E eu não tenho o dnsmasq instalado.

PS: parece que o Network Manager instala esse link em nome do resolvconf. Precisa verificar. Mas ainda não entendi porque é assim se o systemd-resolve estiver instalado. Por que o systemd-resolve não é usado para isso.

PSS: Acabei de encontrar existem dois serviços separados no Ubuntu: resolvconf.service (do pacote resolvconf) descrito em /lib/systemd/system/resolvconf.service. E systemd-resolved.service (do pacote systemd) descrito em /lib/systemd/system/systemd-resolved.service. O googling rápido não me deu uma resposta porque existem dois serviços que fazem o mesmo trabalho e fazem parte do Ubuntu e não podem ser desinstalados.

    
por Pavel Moukhataev 26.05.2017 / 01:28

0 respostas