Dhclient no actualiza /etc/resolv.conf

Dhclient no actualiza /etc/resolv.conf

En Linux Mint, cuando veo el /etc/resolv.confarchivo, el primer comentario indica que el /etc/resolv.confarchivo es generado por resolvconf(8).

~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

Parafraseando la resolvconf(8)página de manual:

el programa resolvconf es ejecutado por clientes DHCP como dhclient

Corro dhclient wlan0.

~ $ dhclient wlan0

Dhclient debería hacer que el resolvconfprograma se actualice /etc/resolv.conf. El /var/lib/dhcp/dhclient.leasesarchivo verifica que puedo arrendar la dirección IP del servidor de nombres (192.168.0.6).

~ $ cat /var/lib/dhcp/dhclient.leases 
lease {
  interface "wlan0";
  . . .
  option domain-name-servers 192.168.0.6;
  . . .
}

Sin embargo, el /etc/resolv.confarchivo no se actualiza. El /etc/resolv.confarchivo tiene el servidor de nombres 127.0.1.1.

~ $ cat /etc/resolv.conf
# 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 127.0.1.1
search software.eng.apl

No hay servidores de nombres listados en /etc/network/interfaces.

~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

No estoy seguro de lo que me falta aquí para que el /etc/resolv.confarchivo se actualice utilizando el servidor de nombres alquilado desde el servidor DHCP. El servidor DHCP es una máquina Linux CentOS que utiliza DHCPD.

Respuesta1

Mint y otras distribuciones modernas se envían de mdnsforma predeterminada, que envuelve el DNS público normal con un contenedor local "descentralizado" que permite la compatibilidad con zeroconf para su red local. Básicamente, un servidor DNS local resuelve nombres en la red local que ha descubierto, luego recurre al DNS público (ahora proxy) para la resolución pública de Internet, es decir, para nombres fuera de su red local.

En pocas palabras, esto resolv.confes correcto y apropiado para este escenario, y si mdnstiene problemas para acceder al servidor de nombres de su ISP, debe mirar dentroesconfiguración - aunque, por supuesto, si no le importa el soporte zeroconf, deshabilitar mdns(y probablemente también Avahi) le permite administrar resolv.confde la manera tradicional.

Ver también, por ejemplohttps://help.ubuntu.com/community/HowToZeroconf

Respuesta2

puedes editar /etc/dhcp/dhclient.conf editar la línea descomentando#prepend domain-name-server

Respuesta3

Tuve el mismo problema descrito en el OP pero ninguna de las respuestas anteriores funcionó para mí. Estoy ejecutando Linux Mint 18 y descubrí este problema al intentar utilizar funciones de red dentro de un contenedor acoplable. Docker esperaba resolver los valores DNS de /etc/resolv.conf. Pero como el único servidor de nombres listado era 127.0.1.1, la conexión en red de Docker no tuvo éxito.

encontréotra soluciónen Askubuntu eso funcionó para mí. Lo publico aquí como referencia cruzada en caso de que ayude a alguien.


NetworkManager es el programa que (a través de la utilidad resolvconf) inserta la dirección 127.0.1.1 en resolv.conf. NetworkManager inserta esa dirección si y sólo si está configurado para iniciar una instancia del programa dnsmasq para que sirva como servidor de nombres de reenvío local. Esa instancia de dnsmasq escucha consultas en la dirección 127.0.1.1.

Si no desea utilizar un servidor de nombres de reenvío local, configure NetworkManager para que no inicie una instancia de dnsmasq y no inserte esa dirección. En /etc/NetworkManager/NetworkManager.confcomentar fuera de la líneadns=dnsmasq

sudo vim /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

y reinicie el servicio NetworkManager.

sudo service network-manager restart

En este modo, NetworkManager actualiza /etc/resolv.conf (aún a través de resolvconf) para incluir las direcciones del servidor de nombres que NetworkManager tiene para las conexiones activas.

Si desea deshabilitar el mecanismo resolvconf para actualizar resolv.conf y simplemente usar un archivo resolv.conf estático, haga lo siguiente.

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo vim /etc/resolv.conf   # Create static file

información relacionada