Publicado por & archivado en DNS.

Si tienes un servidor con apache y cada vez que resuelves un nombre te añade el propio host, algunas aplicaciones pueden fallar.

 

Se que es algo muy tonto, pero le pasó a un cliente en un servidor Debian y perdimos bastante tiempo hasta descubrirlo, así que aquí lo dejo por si le pasa a alguien.

 

Estábamos probando una librería php que verifica si un servidor de correo aceptará un email y daba como buenos los dominios inexistentes. Después de un buen rato analizando el código, me di cuenta de que el problema no estaba en el código php, sino en la configuración del servidor.

 

Una forma de comprobar si pasa esto, es hacer un ping a un dominio inexistente en nuestro servidor, por ejemplo, suponiendo que el hostname de nuestro servidor fuera intervia.com (cambia intervia.com por tu propio dominio):

ping dominio-inexiste.com

Si recibes una respuesta como la siguiente, es que tu servidor añade el propio host a las búsquedas sin resultado (como se ve, añade el propio host, haciendo ping a dominio-inexistente.com.intervia.com):

# ping dominio-inexiste.com
PING dominio-inexiste.com.intervia.com (94.75.213.143) 56(84) bytes of data.
64 bytes from intervia.com (94.75.213.143): icmp_req=1 ttl=63 time=0.176 ms
64 bytes from intervia.com (94.75.213.143): icmp_req=2 ttl=63 time=0.201 ms
64 bytes from intervia.com (94.75.213.143): icmp_req=3 ttl=63 time=0.185 ms
64 bytes from intervia.com (94.75.213.143): icmp_req=4 ttl=63 time=0.190 ms

Para arreglarlo la solución es tan fácil como editar resolv.conf (como root, o añade sudo), e insertar una línea con “search .”, por ejemplo, si tu resolv.conf sólo contiene los servidores de nombres:

nameserver 8.8.8.8
nameserver 8.8.4.4

Utiliza tu editor favorito para añadirle la línea necesaria (yo uso vi, pero puedes usar cualquier editor de texto):

vi /etc/resolv.conf

Añade search . y graba el archivo:

nameserver 8.8.8.8
nameserver 8.8.4.4
search .

Si ahora tratas de nuevo de hacer un ping, obtendrás esto:

# ping dominio-inexiste.com
ping: unknown host dominio-inexiste.com

 

En este caso, teníamos el DNS del dominio configurado con un * en el tercer nivel, algo muy práctico cuando se usan muchos subdominios, así, cualquiercosa.dominio.com, resuelve a dominio.com, produciendo que en este caso se resuelva al propio dominio. Si no tienes así el DNS el resultado será host incorrecto, pero aun así estará mal, porque aunque no existiera dominio-inexiste.com.intervia.com, la resolución sería incorrecta.

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.