¿Que es Domain Name System?

El Domain Name System que de ahora en adelante llamaremos por sus siglas en inglés DNS, es uno de los protocolos básicos de la arquitectura web y muchas veces pasamos por alto la importancia de este sistema

Si lo comparamos con ejemplos de la vida cotidiana, DNS vendría siendo como la guía telefónica del internet y su función es traducir los nombres de los dominios o páginas web, es dirección IP. Volviendo al ejemplo de la guía telefónica, para nosotros los humanos es muy difícil memorizar todos los números de teléfono de los negocios o personas que necesitamos, pero si sabemos el nombre basta con buscar en la guía telefónica para encontrar rápidamente el número. 

Qué pasaría si cada vez que quieras ingresar a Google tuvieras que escribir en tu navegador https://172.217.2.68 y el dia de mañana Google cambia la IP de sus páginas a 216.58.192.164, sería muy difícil y muy tedioso estar acordandonos de todas estas direcciones IP, pues gracias al DNS no tenemos que hacer esto, simplemente buscamos el nombre de la página web y el sistema se encarga de encontrar las direcciones.

¿Cómo funciona DNS?

DNS trabaja de una manera jerárquica, pero antes de poder explicar cómo funciona el DNS, tenemos que entender cuál es la estructura de un dominio web, tomemos por ejemplo www.outburstconsulting.com y dividamos el dominio es sus partes:

  • Top Level Domain (TLD): Es el dominio al más alto nivel de la jerarquía, entre los más comunes están .com, .edu, .org, .net, si quieres consultar la lista completa la puedes encontrar aquí.
  • Domain name: Esta parte del dominio es la que compras y la que compañías llamadas “Registrars” se encargan de inscribir en el servicios de DNS, seguramente ya sabes de algunas de estas compañias, como www.godaddy.com entre otras.
  • Hostname: Este ya es el nombre completo del dominio que estamos buscando y una vez que compres del dominio podrás configurar.

Bueno, ya sabiendo esto, ¿cómo funciona el DNS? Imaginemos que abres tu navegador favorito y buscas www.outburstconsulting.com, tanto el navegador como el sistema operativo primero intentarán buscar en su memoria interna (caché) o en su archivo hosts si la dirección está preconfigurada que para propósito de este ejemplo, no lo esta.

Al no saber cual es esta dirección el sistema operativo también está programado para ir a preguntar a un “DNS Resolver” por la dirección que no conoce,  este por lo general es proporcionado automáticamente por su proveedor de servicios de internet o configurado manualmente en su computadora, Google proporciona un servicio gratuito de DNS muy utilizado por si lo quieres probar.

Los 8 pasos de una búsqueda de DNS

Utilizando el siguiente diagrama, vamos a explicar los 8 pasos que realiza el DNS para encontrar la dirección IP del dominio, para este ejemplo ninguna de la información va a estar guardada en caché.

  1. El usuario escribe en su navegador la dirección www.outburstconsulting.com y la petición viaja al DNS resolver. Esta es una petición recursiva, esto significa que se va a realizar una vez y va a quedar a la espera de un registro de DNS o un error.
  2. El DNS resolver luego realiza peticiones iterativas a los diferentes servidores, empezando por los servidores Root. Una petición iterativa se refiere a que la petición no necesita una respuesta completa y seguirá haciendo peticiones a las respuestas que obtenga hasta encontrar la respuesta completa o encontrar un error.
  3. Los servidores de Root no saben dónde está el dominio completo, pero si tiene información de los servidores TLD (estos son los .com, .net, etc), así que le pasarán al DNS Resolver información de donde ir a buscar de los dominios que en nuestro caso seria los .com
  4. El DNS resolver le pregunta a los servidores TLD por www.outburstconsulting.com.
  5. Los servidores TLD tampoco saben dónde se encuentra el dominio completo, pero como ya los “Registrars” se encargaron de registrar el dominio, saben donde puede ir el DNS resolver a preguntar por outburstconsulting.com.
  6. El DNS resolver le pregunta a los servidores Autoritativos por www.outburstconsulting.com.
  7. Los servidores autoritativos son aquellos que guardan los registros del dominio y que en nuestro caso pueden responder la petición con una dirección IP, los servidores Autoritativos son la verdad final para muchos de los registros de DNS.
  8. Finalmente el DNS Resolver tiene una dirección IP que brindar el navegador, y termina la petición de DNS.

Aunque el proceso pueda parecer largo y en primera instancia enredado, una petición de DNS toma solamente unos milisegundos en completarse, ya que la mayoría del tiempo parte información ya se encuentra cacheada en los DNS Resolvers, como podemos ver en este ejemplo utilizando una herramienta en línea llamada dig, en la página https://www.digwebinterface.com/, tomó solamente 64ms obtener una respuesta.

¿Cómo guarda el DNS la información?

Siguiendo con el ejemplo de la guía telefónica, una guía guarda diferentes tipos de información de una persona o empresa, desde su número telefónico hasta la dirección, igualmente un servidor de DNS puede guardar diferentes tipos de registros sobre un dominio.

Antes de entrar a los tipos de registros en DNS, veamos primero cual es la estructura:

  • Owner: Indica el nombre de dominio DNS que posee un registro, este nombre es el mismo que el dominio (outburstconsulting.com) más el hostname (www)
  • TTL: El tiempo por el cual el registro es válido en memoria cache.
  • Class: Indica que el registro pertenece al protocolo de internet “IN”
  • Type: Indica el tipo de información que tiene el registro.
  • Data: Información del registro.

Tipos de registro

A:

Es el tipo de registro más básico que existe, y se utiliza para guardar direcciones IPv4.

www.outburstconsulting.com. 300 IN A 104.27.181.225

AAAA:

Igual que el registro A, pero para IPv6

www.outburstconsulting.com. 299 IN AAAA 2606:4700:3033::681b:b5e1

MX:

Este registro es para el intercambio de correo, y dirige el correo al servidor de correos de acuerdo al protocolo SMTP. 

outburstconsulting.com. 299 IN MX 1 aspmx.l.google.com.

CNAME:

Se usa en lugar de un registro A, cuando un dominio o subdominio es un alias de otro dominio.

outburstconsulting.com. 299 IN CNAME www.outburstconsulting.com

NS:

Este registro indica qué servidor DNS tiene autoridad para ese dominio (qué servidor contiene los registros DNS reales). Básicamente delega las funciones de DNS a otro servidor.

outburstconsulting.com. 21599 IN NS dorthy.ns.cloudflare.com.

SOA:

Puede almacenar información importante sobre el dominio, como la dirección de correo electrónico del administrador, cuándo se actualizó el dominio por última vez y cuánto tiempo debe esperar el servidor entre actualizaciones.

outburstconsulting.com. 1799 IN SOA dorthy.ns.cloudflare.com. dns.cloudflare.com. 2034531515 10000 2400 604800 3600