Eu tenho uma variedade de servidores VPN OpenVPN aos quais eu me conecto da minha máquina Ubuntu 17.04, todos os quais empurram servidores DNS usando o dhcp-option DNS A.B.C.D (que eu sei que é uma extensão do Windows, mas é assim que eles são empurrados). Os servidores DNS (para cada provedor) mudam raramente, então eu também posso inseri-los manualmente, se necessário.
Eu adiciono uma VPN usando seu arquivo de configuração .ovpn via Configurações de Rede do Gnome ("+" > "Importar do arquivo ..."), tornando-a disponível apenas para o usuário atual. Por outro lado, a conexão física é uma conexão Wi-Fi disponível para todos os usuários.
Os servidores DNS da VPN simplesmente não são usados pelo sistema. Se eu apenas aceitar a configuração conforme indicado no arquivo, a VPN se conecta, mas os servidores DNS nem aparecem na saída de systemd-resolve --status . Se eu adicioná-los manualmente às configurações do IPv4, eles serão usados, mas não serão usados.
Por exemplo, antes de se conectar, a saída de systemd-resolve --status mostra isso no final:
Link 3 (wlp3s0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.1
Link 2 (enp0s31f6)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
192.168.1.1 é meu roteador. Depois de se conectar à VPN, vejo esta entrada extra acima dos outros:
Link 9 (tun0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: A.B.C.D
E.F.G.G
A.B.C.D etc. representa o DNS do provedor de VPN. No entanto, confirmei através da inspeção de pacotes que, mesmo com essas novas entradas, as pesquisas de DNS são feitas via 192.168.1.1 , que usa apenas os servidores do meu provedor.
Para completar, ip route show dá:
$ ip route show
default via 10.7.7.1 dev tun0 proto static metric 50
default via 192.168.1.1 dev wlp3s0 proto static metric 600
10.7.7.0/24 dev tun0 proto kernel scope link src 10.7.7.182 metric 50
I.J.K.L via 192.168.1.1 dev wlp3s0 proto static metric 600
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.193 metric 600
192.168.1.1 dev wlp3s0 proto static scope link metric 600
( I.J.K.L é o endereço da VPN.) Parece estranho que existam rotas padrão muito diferentes, mas acho que a métrica serve para resolver isso?
Qualquer que seja a causa, quero usar o DNS do provedor de VPN quando estiver conectado à VPN e não usá-los quando não estiver. Considerei tentar criar um segundo perfil do Network Manager para o meu ponto de acesso Wi-Fi com as entradas DNS do provedor, mas não é possível criar um segundo perfil (ou específico do usuário) para um ponto de acesso que o Network Manager já conhece. / p>
Coisas que eu prefiro evitar:
.ovpn config. Eu tenho cerca de cem deles, e eles são atualizados regularmente pelos provedores de VPN.