Saltar al contenido

¿Cómo configuro mi DNS cuando se sobrescribe resolv.conf?

Si encuentras algún error en tu código o trabajo, recuerda probar siempre en un entorno de testing antes aplicar el código al trabajo final.

Solución:

Creo que si desea anular el servidor de nombres DNS, simplemente agregue una línea similar a esta en su base archivar bajo resolv.conf.d.

Ejemplo

$ sudo vim /etc/resolvconf/resolv.conf.d/base

Luego ponga su lista de servidores de nombres así:

nameserver 8.8.8.8
nameserver 8.8.4.4

Finalmente actualizar resolvconf:

$ sudo resolvconf -u

Si echa un vistazo a la página de manual de resolvconf describe los diversos archivos bajo /etc/resolvconf/resolv.conf.d/.

   /etc/resolvconf/resolv.conf.d/base
          File  containing  basic  resolver  information.  The lines in this 
          file are included in the resolver configuration file even when no
          interfaces are configured.

   /etc/resolvconf/resolv.conf.d/head
          File to be prepended to the dynamically generated resolver 
          configuration file.  Normally this is just a comment line.

   /etc/resolvconf/resolv.conf.d/tail
          File to be appended to the dynamically generated resolver 
          configuration file.  To append nothing, make this  an  empty  
          file.   This file is a good place to put a resolver options line 
          if one is needed, e.g.,

              options inet6

Aunque hay una advertencia en la parte superior de la head expediente:

$ cat /etc/resolvconf/resolv.conf.d/head
# 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

esta advertencia está ahí para que cuando se construyan estos archivos, la advertencia finalmente se abrirá camino en el resultado resolv.conf archivo que estos archivos se utilizarán para hacer. Por lo tanto, podría haber agregado fácilmente el nameserver líneas que se describen anteriormente para el base archivo, a la head archivo también.

Referencias

  • Servidor de nombres persistente dns para ubuntu 14.04
  • ¿Cómo agrego un servidor DNS a través de resolv.conf?

También estoy interesado en esta pregunta y probé la solución propuesta @sim.

Para probarlo pongo

nameserver 8.8.8.8

en /etc/resolvconf/resolv.conf.d/base y

nameserver 8.8.4.4

en /etc/resolvconf/resolv.conf.d/head

Luego reinicié la red con

sudo service network-manager restart

el resultado es que /etc/resolv.conf parece

# 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.4.4
nameserver 127.0.1.1

y nm-tool establece que el dnsserver son

DNS:             208.67.222.222
DNS:             208.67.220.220

cuales son los proporcionados por mi router. Por otro lado, cavar una dirección dice que

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Si no me equivoco, concluyo de todo esto que

  1. resolvonf solo lee la parte “cabeza”: dnsmasq controla de alguna manera la parte “base”
  2. el dnsserver en realidad está obligado a 8.8.4.4 independientemente del servidor proporcionado por dhcp, PERO pierde el almacenamiento en caché proporcionado por dnsmasq, ya que la solicitud siempre se envía a 8.8.4.4
  3. dnsmasq sigue utilizando SÓLO el servidor dns proporcionado por dhcp.

Con todo, funciona, pero no creo que sea el resultado deseado. Una solución más cercana, creo, es la siguiente. Editar

sudo vim /etc/dhcp/dhclient.conf

Luego añade

supersede domain-name-servers 8.8.8.8;

El resultado es el siguiente: resolv.conf contiene solo 127.0.0.1, lo que significa que se invoca el caché dnsmasq y la herramienta nm dice

DNS:             8.8.8.8

lo que significa que si el nombre buscado no está en el caché, entonces se solicita en 8.8.8.8 y no en el servidor provisto por dhcp.

Otra opción (quizás mejor) es usar “anteponer” en lugar de “reemplazar”: de esta manera, si el nombre no se resuelve con 8.8.8.8, la solicitud vuelve al otro servidor. De hecho, nm-tool dice

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220

Descubrí que puedes cambiar los servidores de nombres que dnsmasq utiliza agregando las siguientes líneas a /etc/dnsmasq.conf:

server=8.8.8.8
server=8.8.4.4

yo no tenía un /etc/dnsmasq.conf Sin embargo, ya que está instalado por el paquete dnsmasq, pero Ubuntu solo viene con dnsmasq-base. corrí sudo apt-get install dnsmasqluego editado /etc/dnsmasq.confluego sudo service dnsmasq restart y sudo service network-manager restart.

corrí sudo tail -n 200 /var/log/syslog para comprobar mi syslog y verificar que dnsmasq estaba usando los servidores de nombres que especifiqué:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53

valoraciones y comentarios

Más adelante puedes encontrar las crónicas de otros creadores, tú además tienes la opción de insertar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *