Rede usando apenas um DNS quando conectado à VPN


9

Minha empresa possui uma VPN à qual preciso me conectar. No OSX, faço isso usando openvpna seguinte configuração:

client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid

No Ubuntu, instalei network-manager-openvpne adicionei uma nova conexão VPN (tentar importar o arquivo de configuração causou um acidente) com as mesmas opções de configuração definidas: Capturas de tela das minhas configurações

Depois de me conectar à VPN, não consigo resolver nenhum domínio.

Se eu editar /etc/NetworkManager/NetworkManager.conf, comentar a linha dns=dnsmasqe reiniciar network-manager, posso resolver domínios internos da minha empresa, mas outros domínios, como google.com, não serão resolvidos. Certifique-se de definir meu "Método" como "Somente endereços automáticos (VPN)" nas guias IPv4 e IPv6 do gerenciador de rede da minha conexão VPN, mas isso não parece fazer nenhuma diferença.

Também tentei reativar dnsmasqe modificar /etc/resolvconf/resolv.conf.d/base para conter e nameserver 127.0.1.1, em seguida sudo resolveconf -u, executar , mas nenhum domínio será resolvido novamente.

O que eu gostaria é poder conectar-me à minha VPN para que os domínios enviados pelo servidor DNS da minha empresa sejam resolvidos dessa maneira e todos os outros domínios sejam resolvidos normalmente.

Edição: Acontece que dnsmasq não estava realmente instalado, o que eu pensei que seria por padrão. No entanto, se eu instalá-lo, reativá-lo /etc/NetworkManager/NetworkManager.conf, adicionar o endereço do servidor de nomes local /etc/resolvconf/resolv.conf.d/base, reiniciar todos os serviços e conectar-me à VPN, posso resolver domínios do DNS da empresa, mas não consigo resolver outros domínios. Então, basicamente, a mesma situação de quando eu desabilitei o dnsmasq completamente.

EDIT: Conteúdo de /etc/dnsmasq.conf: http://paste.ubuntu.com/7297231/


Você pode nos mostrar suas configurações de dnsmasq? O Dnsmasq geralmente obtém seus servidores DNS upstream no /etc/resolv.conf, portanto, se você não tiver alterado, provavelmente está apenas puxando o DNS pela VPN.
precisa saber é o seguinte

Certo. Eu adicionei um link para meu/etc/dnsmasq.conf
Tommy Brunn

Respostas:


4

Na sua configuração, a instalação do dnsmasq está recebendo a lista de servidores DNS para usar /etc/resolv.conf. Por padrão, o dnsmasq tenta favorecer o uso de servidores DNS ativos, mas envia apenas uma solicitação específica para um único servidor DNS. Isso pode causar problemas se você tiver vários servidores DNS que podem / servirão apenas determinadas consultas.

Acredito que você possa resolver esse problema, certificando-se de que tenha um servidor DNS na sua LAN (aquele que você usa quando não está conectado à VPN) /etc/resolv.conf, além do servidor DNS na rede corporativa que deseja use sobre a VPN.

Em seguida, você precisará editar /etc/default/dnsmasqe adicionar ou editar a DNSMASQ_OPTS=linha a incluir --all-servers.

Se você ainda não conseguir obter consultas DNS com essa configuração, copie o arquivo resolv.conf criado durante as etapas acima para outro local, como ~/resolv.conf, /etc/resolv.confpor exemplo , configure nameserver 127.0.0.1e defina a seguinte opção em /etc/dnsmasq.conf:

resolv-file=/home/your_username/resolv.conf

Isso deve configurar seu sistema para consultar a instalação do dnsmasq quanto ao DNS e, por sua vez, usará o servidor DNS local e o servidor DNS da VPN para todas as consultas.

Editar : você pode encontrar os servidores DNS que você está usando no momento para uma conexão específica usando a nmcliferramenta. Para encontrar os servidores DNS usados ​​pela minha conexão sem fio, usei a seguinte sintaxe:

nmcli dev list iface wlan0 | grep IP4.DNS

Se você executar este comando enquanto não estiver conectado à sua VPN e, novamente, quando estiver conectado e puder resolver seus endereços corporativos, deverá ativar e desativar sua lista de servidores DNS na VPN. Eu espero que isso ajude.

Editar 2 : olhando para suas tabelas de roteamento, parece que o administrador da VPN o configurou para rotear todo o seu tráfego através da VPN enquanto você estiver conectado (o gateway padrão muda para um endereço VPN). Como os dois servidores DNS são endereços públicos e não possuem uma rota específica configurada enquanto você está na VPN, você está tentando fazer pesquisas de DNS normais por meio da VPN e é isso que está falhando.

Você pode ter algumas maneiras de fazer isso funcionar, dependendo da configuração da sua VPN:

  • Se a VPN permitir que você acesse a Internet através da rede corporativa, mas não execute consultas DNS aos servidores na Internet, adicione rotas aos servidores DNS da seguinte forma: sudo route add -host 83.255.245.11 gw 192.168.0.1e sudo route add -host 193.150.193.150 gw 192.168.0.1depois de conectar-se à VPN.

  • Se a VPN não permitir o acesso à Internet pela rede corporativa, você precisará alterar as configurações padrão do gateway no seu computador para apontar para 192.168.0.1 depois de se conectar à VPN. Nesse caso, convém configurar seu gateway padrão usual e adicionar rotas de rede para acessar equipamentos somente VPN.

Pode ser necessário desmembrar sua tabela de roteamento no caso conectado à VPN mostrado em sua segunda pasta colar para o seguinte:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.100.0.0      10.100.0.105    255.255.255.0   UGH   0      0        0 tun0
10.100.0.105    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Em seguida, adicione rotas conforme necessário para acessar o equipamento corporativo. Na tabela de roteamento mostrada acima, assumi uma rede / 24 na VPN, que pode estar incorreta. Você terá que definir a máscara adequadamente.


Como eu descobriria os endereços do meu servidor DNS local e o da rede corporativa?
precisa

Editei minha resposta para fornecer essas informações.
jkt123

De acordo com o nmcli, eu recebo exatamente os mesmos servidores DNS quando estou conectado à VPN e quando não estou, mesmo que claramente não deva estar, pois posso resolver um domínio interno na rede da empresa quando eu ' estou conectado.
Tommy Brunn

Quando você executou nmclisem uma conexão VPN, conseguiu resolver o DNS corretamente? Caso contrário, desconecte-se da VPN, verifique se o DNS está funcionando corretamente e execute nmcli.
jkt123

Sim, consegui resolver o DNS normalmente quando desconectado da VPN. Exemplo de saída: paste.ubuntu.com/7345250
Tommy Brunn

0

Há algumas lacunas que não posso preencher para você relacionadas a como o NetworkManager coordena as coisas para você. Vou tentar esclarecer como as coisas que coordena precisam funcionar. Não é uma resposta perfeita, mas espero que útil. Na verdade, dado que essa é uma pergunta antiga, isso é realmente para a posteridade.

Você provavelmente não deseja usar a VPN corporativa, exceto as conexões com a rede corporativa. Sendo esse o caso, seria melhor se a configuração da sua VPN direcionasse apenas os intervalos de rede apropriados para a VPN e mantivesse a rota padrão apontando para o roteador local, como antes. Seria bom se as empresas configurassem suas VPNs para rotear apenas o tráfego ou suas redes, mas infelizmente isso parece ser raro. Felizmente, você pode configurar as rotas na sua configuração local.

Isso ainda deixa você com um possível problema de DNS. Os comentários de jtk123 sobre o que o dnsmasq faz com o DNS não são específicos do dnsmasq - é assim que o DNS funciona. Se um cliente DNS ou um resolvedor intermediário obtiver uma resposta de que não existe uma entrada DNS, não será um comportamento normal voltar a perguntar a outro servidor DNS. Isso significa que você precisa de um resolvedor de DNS que responda conforme desejar, se a solicitação estiver relacionada à rede da empresa ou não.

Talvez a rede da sua empresa responda a consultas DNS relacionadas à Internet mais ampla; nesse caso, você apenas a usa, e provavelmente isso é bom. Caso contrário, você precisará de um servidor DNS local que encaminhe solicitações de domínios associados à empresa para o servidor DNS e encaminhe outras solicitações para outros lugares, conforme apropriado.

O dnsmasq pode ser solicitado a encaminhar solicitações de domínios específicos para servidores DNS upstream específicos. por exemplo, veja a opção --server conforme descrito na página do manual dnsmasq.conf. Não sei ao certo como fazer o gerenciador de rede se comportar bem com isso (que é o que estou procurando descobrir atualmente).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.