Como posso fazer com que DNS e VPN funcionem bem juntos?

Como posso fazer com que DNS e VPN funcionem bem juntos?

Quando estou no trabalho e conecto meu laptop com um cabo, entro imediatamente em nossa rede interna. Assim, posso me conectar diretamente a computadores internos sem nome de domínio como: ssh host1, com nome de domínio: ssh host1.example.comou diretamente via IP: ssh 192.168.100.101.

Mas quando estou em casa preciso primeiro fazer login em nossa VPN. Depois disso, posso
conectar-me com segurança com ssh host1.example.come ssh 192.168.100.101.Mas como posso começar ssh host1a trabalhar?

Estou no Ubuntu 18.04.3 LTS, conecto-me à VPN com OpenVPN 2.4.4.

Até recentemente eu estava funcionando, mas descobri quetodosmeu tráfego foi roteado pela VPN, o que obviamente fez com que parecesse que eu estava no escritório, mas também adicionou uma viagem extra de ida e volta para o tráfego que não era
destinado ao escritório. Portanto, em NetworkManager->editar conexão VPN->"
Configurações IPv4"->Rotas... há uma caixa de seleção "Usar esta conexão apenas para recursos em sua rede".

insira a descrição da imagem aqui

Se desmarcado, recebo uma rota padrão que direciona todo o tráfego para a interface VPN (tun0):

$ ip route
default via 172.30.0.25 dev tun0 proto static metric 50 
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100 
...

Se marcada, a primeira regra padrão desaparece:

$ ip route
default via 192.168.1.1 dev enxc8f750cc2555 proto dhcp metric 100
...

É claro que existem outras regras de roteamento que completam a configuração da VPN, mas acho que isso não é necessário aqui para a descrição do problema.

Então, depois de marcar essa caixa, tudo funciona (exceto a pesquisa de DNS) e uma experiência mais rápida para o resto da rede (eu acho).

Tenho mexido um pouco na resolução, mas não descobri como fazê-la
funcionar. Eu tentei apontar /etc/resolve.confpara ambos:

/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Mas parece não haver mudança de comportamento.

Acho que isso tem a ver com a searchconfiguração, resolve.confmas não consigo descobrir exatamente como.

Então o que eu gostaria (eu acho) é:

  • Obtenha configuração de rede com DHCP onde quer que eu me conecte (isso está funcionando)
  • Se eu fizer login na VPN, o DNS dentro da VPN deverá ser o padrão.

O que/como posso alterar, verificar e verificar as coisas? Sugestões? Questões?

Ou estou latindo para a árvore errada aqui?

Responder1

A interface VPN precisa ter o endereço DNS de trabalho local e o domínio de pesquisa adicionados a ela. Remoto para uma máquina via VPN para seu site principal e verifique o endereço DNS. Você também precisará do sufixo DNS, também conhecido como domínio de pesquisa. (por exemplo, se o seu nome de domínio totalmente qualificado for como computer1.xyz.com ou comp1.abc.local, o domínio/sufixo de pesquisa seria xyz.com ou abc.local)

Após ter essas informações, altere as configurações no netplan, adicionando o nameserver (servidor dns) e o sufixo de pesquisa do dns. Ficaria assim:

$ sudo vi /etc/netplan/50-cloud-init.yaml

ethernets:
        vpn0:
            addresses: [192.168.86.30/24]
            dhcp4: no
            dhcp6: no
            gateway4: 192.168.86.1
            nameservers:
                    addresses: [192.168.86.10] #dns server address goes here
                    search: [xyz.com] #end of FQDN goes here


$ sudo netplan apply

Adicione apenas servidores de nomes/endereços/valores de pesquisa. Ignore os outros. Pode ser necessário ativar e desativar a interface VPN depois disso.

informação relacionada