Diagnosticar problemas con DNS y corregirlos

En ocasiones, cuando hacemos por ejemplo una migración de hosting podemos tener problemas con los DNS. Para diagnosticar problemas con DNS y corregirlos debemos hacer lo que explicamos a continuación.

Identificando problemas con DNS en un dominio

Cuando cambiamos los servidores DNS de un dominio de un proveedor por los de otro proveedor (O los de un nuevo VPS) es posible que algo vaya mal y acabemos con una pantalla como esta cuando accedamos a la web:

Chrome DNS no responde

El error «DNS_PROBE_FINISHED_NXDOMAIN» (De Chrome), nos hace sospechar que existe un problema con los servidores DNS.

Según vemos esta pantalla u otra similar dependiendo del navegador, lo primero que debemos hacer es tracer paso a paso la resolución DNS de nuestro dominio para ver en qué punto está habiendo problemas.

Para ello yo seguiría estos pasos:

  1. Ver con whois que DNS tiene el dominio
  2. Comprobar si esos DNS resuelven el dominio correctamente
  3. Ver si se están propagando cambios

Vamos a describir con mas detalles el proceso paso a paso a continuación.

Ver con «whois» que DNS tiene el dominio

El comando whois sirve para obtener información de un dominio o una IP. Con el podemos ver:

  • Nombre y apellidos del titular
  • Contacto del titular
  • Datos del proveedor (Registrar en el caso de los dominios y Hosting en el caso de la IP)
  • Contacto para casos de mal uso
  • Datos de servidores DNS

Para utilizar whois de linea de comandos, se debe o bien tener instalada la herramienta whois de Linux. Sin embargo en otros sistemas deberás utilizar herramientas en linea como https://lookup.icann.org/  el cual sirve para la mayoria de dominios (.com, .org, .net, etc) o  https://www.nic.es/sgnd/dominio/publicInformacionDominios.action para los dominios .es. 

Si hacemos un whois al dominio de este sitio web, Aprendeit.com nos aparecerá lo siguiente:

gerardo@ubuntu-dev01:~$ whois aprendeit.com
   Domain Name: APRENDEIT.COM
   Registry Domain ID: 2012671312_DOMAIN_COM-VRSN
   Registrar WHOIS Server: whois.nicline.com
   Registrar URL: http://www.nicline.com
   Updated Date: 2021-01-05T12:40:14Z
   Creation Date: 2016-03-16T01:02:09Z
   Registry Expiry Date: 2021-03-16T01:02:09Z
   Registrar: Arsys Internet, S.L. dba NICLINE.COM
   Registrar IANA ID: 379
   Registrar Abuse Contact Email:
   Registrar Abuse Contact Phone:
   Domain Status: ok https://icann.org/epp#ok
   Name Server: NS1.APRENDEIT.COM
   Name Server: NS2.APRENDEIT.COM
   DNSSEC: unsigned
   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2021-02-08T05:46:52Z <<<

Como se ha podido ver en el fragmento anterior, tenemos 2 nameservers para el dominio:

Name Server: NS1.APRENDEIT.COM 
Name Server: NS2.APRENDEIT.COM

Ahora lo siguiente es comprobar si estos DNS no funcionan correctamente.

Comprobar los DNS resuelven el dominio

Para ver si un dominio se resuelve correctamente desde los servidores DNS que aparecen en su whois debemos ejecutar varias consultas desde la utilidad nslookup de linea de comandos, presente en la mayoría de los sistemas.

Debemos comprobar si:

  • La entrada de tipo A para el dominio resuelve
  • La entrada NS que aparece en  el whois resuelve
  • Si hay una entrada A para la entrada NS que aparece en el whois

Si no sabes los tipos de entradas ni sus diferencias puedes consultarlos en https://en.wikipedia.org/wiki/List_of_DNS_record_types

Para el dominio aprendeit.com comprobaremos los servidores DNS ns1.aprendeit.com y ns2.aprendeit.com. Para ver como funciona por encima nslookup voy a hacer una explicación básica:

  • Ejecutamos nslookup
  • Definimos el tipo de entrada DNS que vamos a utilizar (usaremos en este caso A y NS) con set q=TIPO_DE_ENTRADA
  • Definimos el servidor DNS con server=SERVIDOR_DNS
  • A continuación escribimos la entrada DNS que queremos consultar (en esta consulta es aprendeit.com)

Comprobamos la entrada A con cada servidor DNS

gerardo@ubuntu-dev01:~$ nslookup
> set q=a
> server ns1.aprendeit.com
Default server: ns1.aprendeit.com
Address: 51.195.93.177#53
> aprendeit.com
Server: ns1.aprendeit.com
Address: 51.195.93.177#53

Name: aprendeit.com
Address: 51.195.93.180
>

Viendo que el servidor DNS resuelve la IP comprobamos con el segundo servidor:

gerardo@ubuntu-dev01:~$ nslookup
> server ns2.aprendeit.com
Default server: ns2.aprendeit.com
Address: 51.195.93.179#53
> set q=a
> aprendeit.com
Server: ns2.aprendeit.com
Address: 51.195.93.179#53

Name: aprendeit.com
Address: 51.195.93.180
>

Ambos devuelven la misma IP para el dominio, y todo está correcto, ahora comprobaríamos la entrada NS de del dominio (lo voy a hacer con un solo servidor DNS pero debería hacerse con los dos):

gerardo@ubuntu-dev01:~$ nslookup 
> set q=ns
> server ns1.aprendeit.com
Default server: ns1.aprendeit.com
Address: 51.195.93.177#53
> aprendeit.com
Server: ns1.aprendeit.com
Address: 51.195.93.177#53

aprendeit.com nameserver = ns2.aprendeit.com.
aprendeit.com nameserver = ns1.aprendeit.com.
>

Por ultimo comprobaríamos (con ambos servidores DNS) que las entradas NS tengan su respectiva entrada A, es decir, que en el caso de aprendeit.com que ns1.aprendeit.com ns2.aprendeit.com se resuelva con una dirección IP:

gerardo@ubuntu-dev01:~$ nslookup 
> set q=a
> server ns1.aprendeit.com
Default server: ns1.aprendeit.com
Address: 51.195.93.177#53
> ns1.aprendeit.com
Server: ns1.aprendeit.com
Address: 51.195.93.177#53

Name: ns1.aprendeit.com
Address: 51.195.93.177
> ns2.aprendeit.com
Server: ns1.aprendeit.com
Address: 51.195.93.177#53

Name: ns2.aprendeit.com
Address: 51.195.93.179
>

 

Si alguna entrada no resuelve o no coincide hay que revisar las entradas DNS.

Ver si se están propagando cambios

La web https://www.whatsmydns.net/ nos sirve para comprobar si los cambios DNS se han propagado.
En esta web se puede comprobar desde varios servidores desplegados por todo el mundo si tiene los datos antiguos de DNS.

La propagación DNS puede tardar en completarse hasta 72h, pero si no se ven cambios al poco tiempo puede haber un problema con alguno de los servidores DNS o con el registrar. Deberíamos comprobar lo que hemos visto anteriormente para cerciorarnos que que todo es correcto.

Otras herramientas

https://intodns.com/
https://dnschecker.org/
https://tools.pingdom.com/

Deja una respuesta