Tabla de contenido
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:
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:
- Ver con whois que DNS tiene el dominio
- Comprobar si esos DNS resuelven el dominio correctamente
- 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 y 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/