¿Cómo anular el servidor de nombres proporcionado por DHCP?

12

Creo (creo) que he configurado una dirección IP estática en /etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

Y cambio el archivo /etc/resolv.confpara incluir los servidores de nombres deseados.

Luego reinicio la red sudo /etc/init.d/networking restart

Pero después de algunas horas resolv.conf siempre vuelve al servidor de nombres DHCP.


También debería decir que este es Ubuntu Server con solo l0e eth0interfaces.

David Parks
fuente
¿Está resolvconfinstalado el paquete?
Gilles 'SO- deja de ser malvado'
¿Está tratando de usar dhclient en otra interfaz de red (tal vez una interfaz wifi o de acceso telefónico), o dhclient se ejecuta incorrectamente en eth0 aunque se supone que es estático?
Poolie
Solo hay eth0 y lo0, la IP que configuré manualmente es la misma que la IP DHCP que obtendré (el servidor DHCP siempre servirá la misma IP estática). Pero no quiero usar el servidor de nombres proporcionado por el servidor DHCP, así que pensé en configurar la IP yo mismo y no habría ningún DHCP, pero no entiendo por qué el resolv.conf sigue siendo actualizado.
David Parks
Gilles: no, ejecuté: dpkg -L resolvconf y obtuve: El paquete `resolvconf 'no está instalado.
David Parks

Respuestas:

34

Si desea anular o agregar a los servidores de nombres sugeridos por el servidor DHCP, puede configurar esto en /etc/dhcp/dhclient.conf, por ejemplo:

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

También puede hacerlo desde el control "Editar conexiones" en el indicador de red en Unity o GNOME.

billar
fuente
44
Esta fue la mejor solución, publiqué otra opción, pero me di cuenta de que establecer una IP estática no era una buena idea en un entorno AWS EC2. :)
David Parks
¿Qué sucede si desea anteponer varios servidores de nombres de dominio?
dangonfast
El servidor de nombres de dominio anterior 127.0.0.1parece descartar el servidor de nombres proporcionado por dhcp (esto no sucede antes de otros servidores de nombres)
dangonfast
2
Reemplace prependcon supersedepara sobrescribir el valor de DHCP por completo.
Sqerstet
1

Una resolución que resolverá su problema es configurar su resolvconfpaquete. Esto dará prioridad a sus servidores de nombres preferidos, así como a cualquier otra configuración deseada resolv.conf, como las preferencias de búsqueda y dominio.

Edite el archivo: /etc/resolvconf/resolv.conf.d/head

Coloque los servidores de nombres que desee y cualquier otra configuración que desee tener preferencia cuando haya un cambio de red allí. Cuando se producen cambios en la red, la configuración siempre tendrá prioridad.

Un ejemplo del /etc/resolvconf/resolv.conf.d/headarchivo:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 8.8.8.8
search mydomain.com

Mire la respuesta a una pregunta similar:
anular dns nameserver

Nota:
Asegúrese de tener un salto de línea después de la última entrada. La mayoría de los editores proporcionarán un salto de línea automáticamente al guardar el archivo.

LD James
fuente
-2

Encontré una referencia para eliminar el cliente dhcp, creo que ese fue el principal culpable. He hecho esto y aún no he visto el problema. Esperará hasta la mañana para confirmar, pero parece que el cliente dhcp todavía se estaba ejecutando y tuvo que detenerse y desinstalarse.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd
David Parks
fuente
Estoy un poco confundido si la solución fue el comando de anteponer o si realmente estaba eliminando el cliente DHCP.
Eugene van der Merwe
@EugenevanderMerwe Es el comando de anteponer. El cartel decía "Esta fue la mejor solución, publiqué otra opción, pero me di cuenta de que establecer una IP estática no era una buena idea en un entorno AWS EC2. :)"
Grammargeek
-3

Como regla general, siempre debe desinstalar todos los servicios de red utilizando apt-get --purge remove <package-name>. De esta forma, también se eliminarán todos los archivos de configuración.

En este caso el comando sería:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

Este comando eliminará por completo el isc-dhcp-client.

Miikael Ljung
fuente
44
¿Cómo es esto relevante y por qué crees que es una buena regla general? ¿No quiere dejar de usar DHCP?
Poolie