1: O Resolvconf grava seu arquivo dinâmico resolv.conf em /run/resolvconf/resolv.conf
. /etc/resolv.conf
é um link simbólico para o último local. Se você quiser usar um arquivo estático resolv.conf, simplesmente substitua o link simbólico /etc/resolv.conf por um arquivo. Isso é atualmente suportado, mas não recomendado.
2: Pelo que entendi, a máquina afetada está executando a edição do Ubuntu Server. Nesse caso, ele configura as interfaces usando o programa ifup
, cujo arquivo de configuração é /etc/network/interfaces
. Para interfaces configuradas pelo método dhcp
, ifup
(normalmente) usa dhclient
do pacote isc-dhcp-client
. O dhclient recebe as informações do servidor de nomes do servidor DHCP e seu script de gancho /etc/dhcp/dhclient-enter-hooks.d/resolvconf
envia essas informações para resolvconf
, que as coloca em resolv.conf
.
Uma coisa que você pode fazer é editar /etc/resolvconf/interface-order
tal que eth0.dhcp
vem antes de eth0.dhclient
. (Eu suponho que a interface relevante é eth0
.) Se você tem o padrão interface-order
você pode, por exemplo, apenas adicionar uma linha eth0.dhcp
antes da linha eth*
.
--- interface-order_ORIG 2012-11-06 10:12:47.630529145 +0100
+++ interface-order 2012-11-06 10:13:16.410529800 +0100
@@ -9,6 +9,7 @@
hso*
em+([0-9])?(_+([0-9]))*
p+([0-9])p+([0-9])?(_+([0-9]))*
+eth0.dhcp
eth*
ath*
wlan*
Em seguida, adicione uma linha dns-nameservers
à sub-rotina iface eth0
em /etc/network/interfaces
com o endereço correto do servidor de nomes.
iface eth0 inet dhcp
dns-nameservers 1.2.3.4
Como eth0.dhcp
vem antes de eth0.dhclient
, o endereço correto do servidor de nomes será incluído em resolv.conf
antes do incorreto.
Outra maneira de substituir o comportamento indesejado de incluir o endereço do servidor de nomes fornecido pelo servidor DHCP é editar o script de gancho do dhclient. Por exemplo, você pode adicionar uma linha como a seguinte (onde 1.2.3.4 é um endereço de servidor de nomes que você gostaria de descartar).
--- resolvconf_ORIG 2012-03-29 22:37:14.000000000 +0200
+++ resolvconf 2012-11-05 20:53:33.312681077 +0100
@@ -54,6 +54,7 @@
fi
shopt -s nocasematch
for nameserver in $new_dhcp6_name_servers ; do
+ [ "$nameserver" = "1.2.3.4" ] && continue
No entanto, outra possibilidade (um pouco bruta, já que é completamente estática) é adicionar uma opção de servidor de nomes a /etc/resolvconf/resolv.conf.d/head
.
3: A configuração de endereços de servidores DNS ficou mais complicada porque as máquinas estão se tornando móveis, estão ficando cada vez mais interfaces e a configuração estática está sendo gradualmente substituída pela autoconfiguração.