Skip to content
Home » Problemas resolución DNS Linux

Problemas resolución DNS Linux

A veces puede ocurrir que inexplicablemente desde Linux, no resuelva un dominio que está dentro de la propia red. Cuando pase esto, debemos revisar el archivo:

/etc/nsswitch.conf

que es donde se define el orden de los lugares donde “mira” para resolver un dominio. En algunas distros el orden suele ser el siguiente:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

es decir, primero busca en los ficheros locales, en /etc/hosts, luego estaba puesto que buscara en mdns4_minimal [NOTFOUND=return] y claro aquí es donde estaba el problema porque: “mdns4_minimal [NOTFOUND=return]: especifica que se debe usar mDNS (Multicast DNS) para encontrar el nombre del dominio. Este protocolo permite saber en todo momento la relación entre la dirección IP y el nombre de una máquina dentro de la red local. Cuando se utiliza mDNS, en lugar de encargar la resolución de nombres a un servidor DNS, esta labor se distribuye, y cada equipo se encarga de la resolución de su propio nombre a través de un mecanismo multicast (224.0.0.251). Existen diferentes implementaciones de este protocolo, siendo las más conocidas Bonjour (Apple) y Avahi (GNU/Linux, suele instalarse por defecto). El protocolo mDNS usa el pseudodominio de primer nivel .local, por lo que él se encarga de buscar la IP de cualquier nombre de dominio terminado en .local, que se debe corresponder con un equipo de la red local. Si no lo encuentra, el código [NOTFOUND=return] detiene la búsqueda y no se pasa a la siguiente fuente. De esta manera, si tenemos una máquina llamada pc1 (el nombre de un equipo se encuentra en el fichero /etc/hostname) y queremos, por ejemplo, hacerle ping, podremos hacerlo con el comando: ping pc1.local; la IP de pc1.local la buscará el equipo desde donde ejecutamos el comando ping, utilizando el protocolo mDNS (implementado por el software Avahi en GNU/Linux, paquete avahi-daemon en Debian) generando un tráfico multicast en la red local que pregunta por la IP de dicho nombre. Todo este procedimiento solo afecta a los nombres acabados en .local.