como configurar o split-dns para vpn com o network-manager

2

Eu quero criar uma configuração de DNS dividido em uma máquina desktop 14.04 com uma rede eth local e uma conexão VPN. Ou seja, eu deveria enviar pesquisas de DNS para intervalos de endereços que são acessados via vpn para os servidores DNS (particulares) que estão configurados para essa conexão vpn específica. Outros endereços que são servidos através da rede local devem usar diferentes servidores de DNS (públicos).

link sugere que isso é fácil de fazer agora que tem um resolvedor dnsmasq local. Citação:

  

A grande vantagem é que, se você se conectar a uma VPN, em vez de ter todo o tráfego DNS roteado pela VPN como no passado, você só enviará consultas DNS relacionadas à sub-rede e aos domínios anunciados pela VPN. . Isso é especialmente interessante para links VPN de alta latência, onde tudo seria retardado no passado.

Mas eu não consigo descobrir como fazer isso funcionar! Com o gerenciador de rede inativo da VPN, o dnsmasq usa os servidores DNS públicos locais como seus servidores upstream (isso é bom). Se eu ativar agora uma conexão VPN, o network-manager informa ao dnsmasq para alterar os servidores dns upstream para os privados configurados para a conexão vpn. E agora todo o meu tráfego local vai para vpn para suas pesquisas de DNS (isso é ruim!).

Se eu tivesse uma configuração "real" do dnsmasq, eu poderia dizer no dnsmasq.conf para rotear pesquisas específicas para servidores dns específicos. Mas como isso funciona com a configuração de dnsmasq / network-manager cortada fornecida com o desktop Ubuntu?

Eu acho que uma opção é apenas instalar o dnsmasq completo, mas isso significa que eu preciso manter os detalhes da configuração em 2 locais separados, que é o tipo de coisa que o network-manager mais supera. Alguma sugestão?

    
por geo 04.09.2014 / 09:39

3 respostas

1

Para obter o dnsmasq controlado pelo D-Bus que o NetworkManager executa para usar diferentes servidores DNS, existem as seguintes opções (obviamente, ajuste domínios e endereços IP nos exemplos):

  • Adicione um arquivo ao /etc/NetworkManager/dnsmasq.d que define o servidor DNS para a sub-rede desejada: myvpn-server.conf pode conter server=/myvpn.domain.com/10.8.4.9 . Isso sempre será respeitado pelo dnsmasq mesmo quando não estiver conectado à VPN, nesse caso as consultas para esses domínios devem expirar. Desvantagem é que você precisa especificar o endereço IP estaticamente, a vantagem é a simplicidade
  • Use o D-Bus para falar diretamente com o dnsmasq e avisar para atualizar os servidores usando algo como sudo dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager.dnsmasq /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetDomainServers "array:string:192.168.0.1,/myvpn.domain.com/10.8.4.9" . Isso pode ser roteirizado quando a VPN se conecta. Você precisaria pesquisar os servidores DNS existentes (o 192.168.0.1 no meu exemplo) pelo D-Bus ou usando nm-cli
  • Use o D-Bus para falar com o próprio Network Manager e diga para atualizar os servidores. Aqui está um exemplo de fazer isso usando o Python, que exigiria algum trabalho para incluir os servidores atuais.

Estou usando a primeira opção e apenas tentei versões preliminares dos outros dois

    
por David Fraser 04.03.2016 / 10:35
0

Este é provavelmente um problema de configuração no lado do servidor. O servidor vpn deve enviar apenas domínios que ele possa resolver.

Por exemplo, se você usar um servidor openvpn, uma configuração de usuário pode ter esta aparência:

ifconfig-push 172.16.0.51 255.255.255.0
push "route 172.16.1.0 255.255.255.0 172.16.0.1"
push "route 192.168.2.0 255.255.255.0 172.16.0.6"
push "dhcp-option DNS 172.16.0.1"
push "dhcp-option DOMAIN some.of.your.domains"
push "dhcp-option DOMAIN another.domain"

Dessa forma, seu cliente sabe que seu servidor só pode resolver domínios especificados aqui.

A configuração do dnsmasq pode ser mínima no caso de você usar o Networkmanager:

domain-needed
interface=lo
bind-interfaces

Mais uma armadilha comum: Você tem que configurar as configurações ip da conexão vpn no networkmanager para "usar a conexão apenas para recursos em sua rede" (como aqui: link )

Caso contrário, o roteamento sempre usará sua conexão vpn sobre a interface "real". As métricas normalmente são configuradas corretamente pelo networkmanager (maior métrica para vpn do que a rede subjacente)

    
por Till Schäfer 21.05.2015 / 20:14
0

Você provavelmente está procurando os campos Domínio de pesquisa DNS e Servidor DNS adicional nas guias IPv4 e IPv6 no aplicativo nm-connection-editor .

Basta inserir o domínio das empresas e os IPs do servidor DNS lá.

    
por nextloop 09.08.2017 / 18:18