Mantener un /etc/resolv.conf estatico, usando dhcp

Por alguna obscura razón, Mandrakelinux se empeña en sobre-escribirme el /etc/resolv.conf cada vez que pide una IP via DHCP. Y mi /etc/resolv.conf está "escrito a medida". Hartito de re-escribirlo cada vez que levantaba la red, busqué el culpable y la solución.

Esta solución se "adecentó" cuando tuve que explicarsela a peratu. Aquí tenéis el resultado.

El culpable de la re-escritura continuada de /etc/resolv.conf es el script /sbin/dhclient-script , concretamente en la función function make_resolv_conf() .

Para que deje de molestar, necesitamos seguir estos pasos:

1. Crear el archivo /etc/resolv.conf.notocar con el contenido que deseemos para nuestro /etc/resolv.conf .

2. Editar el archivo /sbin/dhclient-script y cambiar la funcion function make_resolv_conf() original por esta otra:


function make_resolv_conf() {
rm -f /etc/resolv.conf
if [ -n "/etc/resolv.conf.notocar" ]; then
  cat /etc/resolv.conf.notocar > /etc/resolv.conf
else
if [ -n "$new_domain_name" ]; then
   echo search $new_domain_name > /etc/resolv.conf
fi
if [ -n "$new_domain_name_servers" ]; then
   for nameserver in $new_domain_name_servers; do
     echo nameserver $nameserver >> /etc/resolv.conf
   done
    fi
fi
[[ -x /sbin/update-resolvrdv ]] && /sbin/update-resolvrdv
}

Explicación: Esta función solo consta de una pequeña modificación de la original. La modificación consiste en comprobar la existencia del archivo /etc/resolv.conf.notocar. Si dicho archivo existe, copia el archivo /etc/resolv.conf.notocar a /etc/resolv.conf. Si el archivo /etc/resolv.conf.notocar NO existe, el script actua como antes de la modificación del archivo.

Salut,

Sinner

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.

tenias mi mismo dolor de cabeza

Pues si, me ocurria exactamene lo mismo, pero no fui capaz de descubrir que script era el que hacia el cambio, asi que lo resolvi metiendole una orden al cron para que me reescribiera el resolv.conf cada X tiempo, pero era una jodienda, cierto es, asi que, solo me queda agradecer la solucion adecuada, no la chapuza mia.
Lo que no termino de determinar es la oscura razon del porque hace esto, que mania con jodernos la resolucion de dns
Venga, saludos.

Puede ser que esté mal esta

Puede ser que esté mal esta frase?
"Si dicho archivo existe, copia el archivo /etc/resolv.conf.notocar a /etc/resolv.conf. Si el archivo /etc/resolv.conf.notocar existe, el script actua como antes de la modificación del archivo."
No deberia ser que si el archivo /etc/resolv.conf.notocar NO existe, el script actua como antes de la modificación del archivo?
Si estoy diciendo tonterias, perdonesemele.
Spin!

Arreglado. Gracias por informar del error :)

Las preguntas nunca son indiscretas. Las respuestas sí lo son a veces.

Otro metodo

Otro metodo para arreglar el problema es este:

1. editar /etc/resolv.conf y dejarlo como queramos
2. editar el archivo /etc/sysconfig/network-scripts/ifcfg-ALGO , donde "ALGO" representa la interfaz que utilizas para pedir la IP via DHCP (eth0, ppp0 ...) y añadirle la linea:

PEERDNS=no

Con esto basta y no hace falta juaquear el script de dhcp-client

Salut,
Sinner

inmutable

Otra solución sería hacer inmutable/intocable el fichero /etc/resolv.conf , incluso para root. Esto se hace añadiendole el atributo +i:

chattr +i /etc/resolv.conf

Aunque así puede que nos lance mensajes muy feos de "no se ha podido escribir en /etc/resolv.conf" o cosas por el estilo.

En fin, al menos tres soluciones hay. Que cada uno elija la que quiera :)

Para mi gusto, la mejor es la de PEERDNS=no

Saludos.

Las preguntas nunca son indiscretas. Las respuestas sí lo son a veces.

Gracias, tambien me fastidiaba el mismo problema

Por alguna extraña razon en mi LAN cada que que iniciaba el mandrake, debia poner manualmente en el acceso a internet los dns de mi provedor, porque sino el ftp, el correo y algunas otras cosas no funcionaban. Curiosamente si el mozilla y el firefox.

El sistema que propones...

El sistema que propones te funciona ya que tienes DHCP activado, pero es inútil si tienes una IP estática ya que en ese caso no se usa el script que mencionas.

La solución al problema es realizar los cambios con la red desactivada. Una vez que la levantes y en veces sucesivas, el archivo resolv.conf no será modificado.