¿Qué es DNS? | Cómo funciona DNS

DNS es lo que permite a los usuarios conectarse a sitios web usando nombres de dominio en vez direcciones IP información acerca de como funciona DNS

Share facebook icon linkedin icon twitter icon email icon

DNS

Objetivos de aprendizaje

Después de leer este artículo podrá:

  • Definir DNS
  • Entender como funciona DNS
  • Diferenciar entre búsquedas de DNS iterativas y recursivas
  • Separar los servidores de nombres autoritativos de los solucionadores de DNS recursivos
  • Explorar como funciona el almacenamiento en memoria caché de DNS

¿Qué es DNS?

El Sistema de nombres de dominio (DNS) es como la agenda telefónica de Internet. Las personas acceden a la información online mediante nombres de dominio, como nytimes.com o espn.com. Los navegadores web interactúan mediante direcciones de Protocolo de Internet (IP). DNS traduce los nombres de dominio a direcciones IP para que los navegadores puedan cargar los recursos de Internet.

Cada dispositivo conectado a Internet cuenta con una dirección IP única, que otros dispositivos usa para encontrarlo. Los servidores DNS suprimen la necesidad de que los humanos memoricen direcciones IP tales como 192.168.1.1 (en IPv4), o nuevas direcciones IP alfanuméricas más complejas, tales como 2400:cb00:2048:1::c629:d7a2 (en IPv6).

DNS

¿Cómo funciona DNS?

El proceso de solución de DNS incluye la conversión de un nombre de host (como www.example.com) a una dirección IP compatible con el ordenador (como 192.168.1.1). Se otorga una dirección IP a cada dispositivo en Internet, y esa dirección será necesaria para encontrar el dispositivo apropiado de Internet, al igual que se usa la dirección de una calle para encontrar una casa particular. Cuando un usuario quiere cargar una página, se debe traducir lo que el usuario escribe en su navegador web (example.com) a una dirección que el ordenador pueda entender para poder localizar la página web de example.com.

Para entender el proceso detrás de la resolución de DNS, es importante conocer los diferentes componentes de hardware entre los que debe pasar una consulta de DNS. Para el navegador web, la búsqueda de DNS se produce "entre bastidores" y, aparte de la solicitud inicial, no se requiere una interacción por parte del ordenador del usuario.

Hay 4 servidores DNS implicados en cargar un sitio web:

  • Solucionador de DNS - Se puede considerar al solucionador como un bibliotecario al que se le pide que busque un libro en particular en algún lugar de la biblioteca. El solucionador de DNS es un servidor diseñado para recibir consultas de equipos cliente mediante aplicaciones como los navegadores web. Habitualmente, el solucionador es responsable de realizar solicitudes adicionales para satisfacer la consulta DNS del cliente.
  • Servidor de nombres raíz - El servidor raíz es el primero paso para traducir (solucionar) los nombres de host legibles para humanos en direcciones IP. Se puede comparar a un índice en una biblioteca que apunta a diferentes estantes de libros, generalmente sirve como referencia para otras ubicaciones más específicas.
  • Servidor de nombres TLD - El servidor de nombres de dominio de primer nivel se puede interpretar como un estante de libros en una biblioteca. Este servidor de nombres es el paso siguiente en la búsqueda de una dirección IP específica, y es el host de la última parte de un nombre de host (en example.com, el servidor TLD es “com”).
  • Servidor de nombres autoritativo - Este servidor de nombres final se puede interpretar como un diccionario en una estantería de libros, en el que se puede traducir un nombre específico a su definición. El servidor de nombres autoritativo es la última parada de la consulta del servidor de nombres. Si el servidor de nombres autoritativo cuenta con acceso al registro solicitado, devolverá la dirección IP del nombre del host solicitado al solucionador de DNS (el bibliotecario) que realizó la solicitud inicial.

¿Cuál es la diferencia entre un servidor de DNS autoritativo y un solucionador de DNS recursivo?

Ambos conceptos se refieren a servidores (grupos de servidores) que son integrales para la infraestructura de DNS, pero cada uno desempeña un rol diferente y se encuentra en diferentes ubicaciones dentro del trayecto de una consulta de DNS. Una manera de pensar en qué se diferencian es que el solucionador recursivo se encuentra al comienzo de la consulta de DNS, mientras que el servidor de nombres autoritativo está al final.

Solucionador de DNS recursivo

El solucionador recursivo es el equipo que responde a una solicitud recursiva del cliente y se toma su tiempo para rastrear el registro DNS. Esto lo hace mediante una serie de solicitudes hasta que alcanza al servidor de nombres DNS autoritativo para el registro solicitado (o se vuelve inactivo o devuelve un error si no se encuentra ningún registro). Por suerte, los solucionadores de DNS no siempre tienen que realizar varias solicitudes para rastrear los registros que necesitan para responder a un cliente; el almacenamiento en caché es un proceso de persistencia de datos que ayuda a cortocircuitar las solicitudes necesarias mediante el servicio del registro de recursos solicitado previamente en la búsqueda de DNS.

DNS query diagram

Servidor DNS autoritativo

En resumen, un servidor DNS autoritativo es un servidor que alberga realmente registros de recursos DNS y es responsable de los mismos. Este es el servidor al final de la cadena de búsqueda DNS que responderá con el registro del recurso consultado, permitiendo finalmente que el navegador web haga la solicitud para llegar a la dirección IP necesaria para acceder a un sitio web u otros recursos web. Un servidor de nombres autoritativo puede satisfacer solicitudes de sus propios datos sin necesidad de consultar a otro recursos, ya que es la fuente final de verdad para ciertos registros DNS.

DNS query diagram

Es importante mencionar que en los casos donde la consulta es para un subdominio, tal como foo.example.com o blog.cloudflare.com, se añadirá un servidor de nombres adicional a la secuencia después del servidor de nombres autoritativo, que es el responsable de almacenar el registro CNAME del subdominio.

DNS query diagram

Hay una diferencia fundamental entre muchos servicios de DNS y el que ofrece Cloudflare. Todos los diferentes solucionadores recursivos de DNS como Google DNS, OpenDNS y proveedores como Comcast mantienen instalaciones de centro de datos de solucionadores recursivos de DNS. Estos solucionadores permiten consultas rápidas y sencillas mediante clústeres optimizados de sistemas informáticos optimizados para DNS, pero son básicamente diferentes a los servidores de nombres alojados por Cloudflare.

Cloudflare mantiene servidores de nombres a nivel de infraestructura que son fundamentales para el funcionamiento de Internet. Un ejemplo clave es la red de servidor raíz F, de la que Cloudflare es parcialmente responsable de su alojamiento. La raíz F es uno de los componentes de la infraestructura del servidor de nombres DNS de nivel de raíz, que es responsable de los miles de millones de solicitudes de Internet cada día. Nuestra red Anycast nos sitúa en una posición única para gestionar grandes volúmenes de tráfico DNS sin interrumpir el servicio.

¿Cuáles son los pasos en una búsqueda de DNS?

En la mayoría de situaciones, el DNS hace referencia a un nombre de dominio que está siendo traducido a la dirección IP apropiada. Para ver más información acerca de como funciona el proceso, sirve de ayuda seguir la ruta de una búsqueda de DNS, en su viaje desde un navegador web, a través del proceso de búsqueda de DNS, y de vuelta de nuevo. Echémosle un vistazo a los pasos.

Nota: Con frecuencia, la información de búsqueda de DNS se almacenará en caché en local dentro del equipo que realice la consulta o en remoto en la infraestructura de DNS. Generalmente, hay 8 pasos en una búsqueda DNS. Cuando la información de DNS se almacena en caché, se omiten los pasos del proceso de búsqueda DNS, lo cual lo hace más rápido. El ejemplo a continuación describe los 8 pasos necesarios cuando no se ha almacenado nada en caché.

Los 8 pasos en una búsqueda DNS:

  1. Un usuario escribe “example.com” en un navegador web y la consulta viaja por Internet y es recibida por un solucionador recursivo de DNS.
  2. El solucionador consulta a continuación un servidor de nombres raíz de DNS (.).
  3. El servidor raíz responde a continuación al solucionador con la dirección de un servidor de DNS de dominios de primer nivel (TLD) (tales como as .com o .net), que almacena la información para sus dominios. Al buscar example.com, nuestra solicitud se dirige al TLD .com.
  4. El solucionador hará a continuación una solicitud al dominio de primer nivel .com.
  5. El servidor de dominio de primer nivel responderá a continuación con la dirección IP del servidor de nombres de dominio, example.com.
  6. Finalmente, el solucionador recursivo envía una consulta al servidor de nombres de dominio.
  7. Por ejemplo, la dirección IP se devolverá al solucionador desde el servidor de nombres.
  8. El solucionador de DNS responderá a continuación al navegador web con la dirección IP del dominio solicitado inicialmente.

  9. Una vez que los 8 pasos de la búsqueda del DNS han devuelto la dirección IP para example.com, el navegador podrá hacer la solicitud para la página web:

  10. El navegador hará una solicitud de HTTP a la dirección IP.
  11. El servidor en ese IP devuelve la página web para que se procese en el navegador (paso 10).
DNS query diagram

¿Qué es un solucionador de DNS?

El solucionador de DNS es la primera parada en la búsqueda de DNS, y tiene la responsabilidad de tratar con el cliente que hizo la solicitud inicial. El solucionador inicia la secuencia de consultas que llevan en última instancia a que la URL sea traducida a la dirección IP necesaria.

Nota: una búsqueda de DNS no almacenado en caché incluirá consultas recursivas e iterativas.

Es importante diferenciar entre una consulta de DNS recursivo y un solucionador de DNS recursivo. La consulta hace referencia a la solicitud realizada a un solucionador de DNS que necesita la resolución de la consulta. Un solucionador recursivo de DNS es el equipo que acepta una petición recursiva y procesa la respuesta mediante las solicitudes necesarias.

DNS query diagram

¿Qué son los tipos de consultas de DNS?

En una búsqueda de DNS habitual se producen tres tipos de consultas. Al usar una combinación de estas consultas, un proceso optimizado para la solución de DNS puede desembocar en una reducción de la distancia recorrida. En una situación ideal, los datos de registro almacenados en caché estarán disponibles, lo cual permitirá que un servidor de nombres DNS devuelva una petición no recursiva.

3 tipos de consultas de DNS:

  1. Petición recursiva - En una petición recursiva, un cliente DNS requiere que un servidor de DNS (generalmente un solucionador recursivo de DNS) responda al cliente con el registro del recurso solicitado o un mensaje de error si el solucionador no puede encontrar el registro.

  2. Petición iterativa - en esta situación, el cliente DNS permitirá que un servidor DNS devuelva la mejor respuesta posible. Si el servidor DNS consultado no coincide con el nombre de la petición, este devolverá una referencia a un servidor DNS autoritativo para un nivel inferior del espacio de nombres de dominio. El cliente DNS realizará entonces una petición a la dirección de referencia. Este proceso continúa con los servidores DNS adicionales en la cadena de petición hasta que haya un error o se agote el tiempo de espera.

  3. Petición no recursiva - generalmente se produce cuando un cliente solucionador de DNS consulta a un servidor DNS para un registro al que tiene acceso porque o bien es autoritativo para el registro o el registro existe dentro de su caché. Generalmente, un servidor DNS almacenará en caché los registros DNS para prevenir un consumo de bando de ancha adicional y una sobrecarga en los servidores ascendentes.

¿Qué es el almacenamiento en caché? ¿Dónde se realiza el almacenamiento en caché de DNS?

El objetivo del almacenamiento en caché es almacenar datos temporalmente en una ubicación que mejore el funcionamiento y la confiabilidad de las solicitudes de datos. El almacenamiento en caché de DNS comprende guardar datos más cerca del cliente solicitante para que la consulta DNS se pueda resolver antes y las consultas adicionales más abajo de la cadena de búsqueda DNS se puedan evitar, mejorando de este modo los tiempos de carga y reduciendo el consumo de ancho de banda/CPU. Los datos de DNS se pueden almacenar en caché en numerosas ubicaciones, cada una de ellas almacenará registros DNS por una cantidad determinada de tiempo por un time-to-live (TTL).

Almacenamiento en caché del DNS del navegador

Los navegadores web modernos están diseñados de forma predeterminada para almacenar en caché registros DNS para una cantidad establecida de tiempo. El objetivo aquí es obvio, cuando más cerca esté el almacenamiento en caché de DNS al navegador web, menos pasos de procesamiento habrá que tomar para verificar la caché y hacer las solicitudes correctas para una dirección IP. Cuando se hace una solicitud para un registro DNS, la caché del navegador es la primera ubicación que se comprueba para el registro solicitado.

En chrome, puede ver el estado de su caché de DNS yendo a chrome://net-internals/#dns.

Almacenamiento en caché de DNS a nivel de sistema operativo (SO)

El solucionador de DNS de nivel del sistema operativo es la segunda y última parada en local antes de una petición de DNS deje tu equipo. El proceso en el interior de tu sistema operativo que está diseñado para gestionar esta petición se conoce como "solucionador stub" o cliente DNS. Cuando un solucionador stub recibe una solicitud de una aplicación, y revisa en primer lugar su propio caché para comprobar si tiene el registro. Si no lo tiene, entonces envía una consulta DNS (con una marca recursiva establecida), fuera de la red local a un solucionador recursivo de DNS dentro del proveedor de servicios de Internet (ISP).

Cuando el solucionador recursivo dentro del ISP reciba una consulta DNS, como en todos los pasos anteriores, también verificará si la traducción solicitada de la dirección IP a host ya está almacenada dentro de la capa de persistencia local.

El solucionador recursivo también tiene una funcionalidad adicional según los tipos de registros que tenga en su caché:

  1. Si el solucionador no tiene los registros A, pero tiene los registros NS para los servidores de nombre autoritativos, consultará a estos servidores de nombres directamente, omitiendo varios pasos en la consulta DNS. Este acceso directo previene las búsquedas de los servidores de nombres raíz y .com (en nuestra búsqueda para example.com), y ayuda a que se produzca la resolución de la petición DNS más rápidamente.
  2. Si el solucionador no tiene los registros NS, enviará la consulta a los servidores TLD (.com en nuestro caso), saltándose el servidor raíz.
  3. En el caso improbable que el solucionador no tenga registros apuntando a los servidores TLD, consultará entonces a los servidores raíz. Este evento suele ocurrir después de que se haya purgado una caché de DNS.

Más información sobre qué diferencia al DNS de Cloudflare de otros proveedores de DNS.