Pergunta

Estou usando uma máquina Ubuntu 8.04 (x86_64) para conectar-me à Cisco VPN do meu empregador.(O cliente não compilou imediatamente, mas descobri patches para atualizar o cliente para compilar em kernels lançados nos últimos dois anos.) Tudo isso funciona muito bem, até que meu cliente DHCP decida renovar seu aluguel e atualizar o /etc/resolv.conf, substituindo os servidores de nomes específicos da VPN pelos meus servidores de rede geral.

Existe uma boa maneira de impedir que meu cliente DHCP atualize /etc/resolv.conf enquanto minha VPN estiver ativa?

Foi útil?

Solução

Se você estiver usando o Ubuntu padrão com NetworkManager, tente remover o cliente CiscoVPN e usar o plugin NetworkManager vpnc para conectar-se ao Cisco VPN.Isso deve evitar todos os problemas, já que o NetworkManager saberá sobre sua conexão VPN.

Outras dicas

Se você estiver executando sem o NetworkManager manipulando as conexões, use o pacote resolvconf para atuar como intermediário para ajustes de programas /etc/resolv.conf: sudo apt-get install resolvconf

Se você estiver usando o NetworkManager, ele cuidará disso para você, então livre-se do pacote resolvconf: sudo apt-get remove resolvconf

Eu descobri isso ao configurar o vpnc no Ubuntu na semana passada.Uma busca por vpn resolv.conf em ubuntuforums.org tem 250 resultados, muitos dos quais estão muito relacionados!

Aconselho seguir o conselho de @Sean, mas se isso falhar por qualquer motivo, deve ser possível configurar o dhclient para não solicitar servidores DNS em /etc/dhcp3/dhclient.conf

chattr +i /etc/resolv.conf deve funcionar.(-i para desfazer)

Mas o melhor é configurar seu dhclient.conf:https://calomel.org/dhclient.htmlVeja os servidores de nomes de domínio e nomes de domínio anteriores.

Veja também "Send HostName;" Se funcionar no seu local de trabalho, você terá um nome de host legal para o seu PC e não um nome estranho que os servidores DHCP atribuem.

O vpnc parece estar fazendo a coisa certa para o concentrador Cisco do meu empregador.Eu entro e saio da VPN e parece atualizar tudo sem problemas.

O daemon DHCPclient pode ser instruído a não atualizar o resolv.conf com uma opção de linha de comando.(-r eu acho, dependendo do cliente)

Isso é menos dinâmico, porque você teria que reiniciar/reconfigurar o DHCP ao se conectar, mas não muito difícil.Da mesma forma, você poderia simplesmente interromper o serviço, mas nesse meio tempo você poderia perder seu IP, então eu realmente não recomendaria isso.

Alternativamente, você pode executar o dhcpclient a partir de um cron job, adicionando as verificações de processo apropriadas.

Esse problema é muito mais perceptível em redes com prazos de concessão de DHCP baixos.Há um bug arquivado na barra de lançamento do pacote dhcp3 do Ubuntu:

https://bugs.launchpad.net/ubuntu/+source/dhcp3/+bug/90681

Que inclui este patch na descrição:

--- /sbin/dhclient-script.orig 2007-03-08 19:19:56.000000000 +0000
+++ /sbin/dhclient-script 2007-03-08 19:19:46.000000000 +0000
@@ -13,6 +13,10 @@
 # The alias handling in here probably still sucks. -mdz

 make_resolv_conf() {
+ # don't overwrite resolv.conf at RENEW time, since a VPN/PPTP tunnel may
+ # have updated it with remote DNS servers
+ [ "$reason" = "RENEW" ] && return
+
     if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then
         # Find out whether we are going to mount / rw
         exec 9>&0 </etc/fstab

Esta mudança para /sbin/dhcp-script impede que o cliente DHCP substitua /etc/resolv.conf quando renovar o seu contrato de arrendamento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top