¿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 el listín telefónico de Internet. Los humanos acceden a información en línea mediante nombres de dominio, como nytimes.com o espn.com. Los navegadores web interactúan mediante direcciones de Protocolo de Internet (IP). DNS traduce nombres de dominio a direcciones IP para que los navegadores puedan cargar recursos de Internet.

Cada dispositivo conectado a Internet tiene una dirección IP única que pueden usar otras máquinas para encontrar el dispositivo. 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 resolución de DNS consiste en convertir un nombre de host (tal como www.example.com) en una dirección IP fácil de usar en el equipo (tal 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 web, se debe hacer una traducción entre lo que un usuario escribe en su navegador web (example.com) y la dirección fácil de usar para la máquina que se necesitará para localizar la página web 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 ocurre “entre bastidores” y no requiere interacción del equipo del usuario aparte de la solicitud inicial.

Hay 4 servidores DNS implicados en cargar un sitio web:

  • Recursor DNS - El recursor se puede comparar con un bibliotecario al que se le pide que busque un libro específico en alguna parte en una biblioteca. El recursor DNS es un servidor diseñado para recibir consultas desde equipos cliente mediante aplicaciones tales como navegadores web. Generalmente el recursor será entonces el responsable de hacer solicitudes adicionales para satisfacer la consulta de DNS del cliente.
  • Servidor de nombres raíz - El servidor raíz es el primer paso para traducir (resolver) nombres de host legibles por 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 de TLD - El servidor de dominios de primer nivel (TLD) se puede comparar a un estante específico 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 autoritativos - Este servidor de nombres final se puede comparar a un diccionario en un estante de libros, en el que un nombre específico se puede traducir a su definición. El servidor de nombres autoritativo es la última parada en la consulta del servidor de nombres Si el servidor de nombres autoritativos tiene acceso al registro solicitado, devolverá la dirección IP para el nombre de host solicitado de vuelta al recursor de DNS (el bibliotecario) que hizo 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 forma de pensar acerca de la diferencia es que el solucionador recursivo está al inicio de la consulta DNS y el servidor de nombres autoritativo está al final.

Solucionador de DNS recursivo

El solucionador recursivo es el equipo que responde a una solicitud recursiva desde un cliente y se toma el tiempo necesario para inspeccionar 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). Afortunadamente, los solucionadores de DNS recursivos no siempre tienen que hacer solicitudes múltiples para inspeccionar los registros necesarios para responder a un cliente, el almacenamiento en caché es un proceso de persistencia de datos que ayuda a saltarse las solicitudes necesarias sirviendo antes el registro de recurso solicitado en la búsqueda DNS.

DNS query diagram

Servidor DNS autoritativo

Básicamente, un servidor DNS autoritativo es un servidor que contiene realmente los registros de recursos DNS y es responsable de ellos. 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 autoritativos puede satisfacer consultas desde sus propios datos sin necesidad de consultar otra fuente, ya que es la fuente final de confianza 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 proporciona Cloudflare. Diferentes solucionadores recursivos de DNS tales como Google DNS, OpenDNS y proveedores como Comcast, mantienen instalaciones de centro de datos de solucionadores recursivos. Estos solucionadores permiten consultas rápidas y fáciles mediante clústeres optimizados de sistemas de equipo optimizados para DNS, pero son esencialmente diferentes de los servidores de nombres alojados por Cloudflare.

Cloudflare mantiene servidores de nombres a nivel de infraestructura que son básicos para el funcionamiento de Internet. Un ejemplo clave es la red de servidor f-root de cuyo alojamiento es parcialmente responsable Cloudflare. El F-root es uno de los componentes de la infraestructura del servidor de nombres DNS a nivel de raíz responsable de miles de millones de solicitudes en Internet cada día. Nuestra red Anycast nos pone en una posición única para gestionar grandes volúmenes de tráfico DNS sin interrupción del servicio.

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

En la mayoría de los casos, DNS se preocupa de que un nombre de dominio se traduzca 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. Veamos los pasos.

Nota: A menudo la información de búsqueda de DNS se almacenará en caché o bien localmente dentro del equipo de consulta o remotamente en la infraestructura DNS. En una búsqueda de DNS generalmente hay 8 pasos. Cuando la información de DNS se almacena en caché, se omiten pasos desde el proceso de búsqueda de DNS, lo que acelera el proceso. El ejemplo a continuación resume los 8 pasos cuando no se almacena 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 a continuación consulta a 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 apuntará hacia el dominio de primer nivel .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 finalmente lleva a una URL traducida en 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 se refiere a la solicitud hecha a un solucionador de DNS que requiera la resolución de la consulta. Un solucionador recursivo de DNS es el equipo que acepta una petición recursiva y procesa la respuesta haciendo las solicitudes necesarias.

DNS query diagram

¿Qué son los tipos de consultas de DNS?

En una consulta típica de DNS hay tres tipos de consultas. Al usar una combinación de estas consultas, un proceso optimizado para la resolución de DNS puede traer una reducción de la distancia viajada. En una situación ideal los datos de registro almacenados en caché estarán disponibles, permitiendo que un servidor de nombre de DNS vuelva a 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 de DNS permitirá que un servidor de DNS devuelva la mejor respuesta que pueda. Si el servidor de DNS consultado no tiene una coincidencia para el nombre de la consulta, devolverá una referencia a un servidor de DNS autoritativo para un nivel más bajo del espacio de nombres del dominio. El cliente de DNS hará a continuación una consulta a la dirección de referencia. Este proceso continúa con servidores de DNS adicionales debajo de la cadena de consulta hasta que se produzca un error o se supere 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 de DNS almacenará en caché registros DNS para prevenir el consumo de ancho de banda adicional y cargar en servidores en sentido ascendente.

¿Qué es la caché DNS? ¿Dónde se realiza la caché DNS?

El objetivo del almacenamiento en caché es guardar datos temporalmente en una ubicación que produzca mejoras en funcionamiento y fiabilidad para 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 diversas ubicaciones, cada una de ellas guardará los registros DNS durante una cantidad de tiempo establecida determinada 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 haga una solicitud para un registro DNS, la caché del navegador será la primera ubicación verificada por 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 a nivel de sistema operativo es la segunda y última parada local antes de que una consulta DNS deje su equipo. Al proceso dentro de su sistema operativo diseñado para gestionar esta consulta se le denomina habitualmente «solucionador stub» o cliente DNS. Cuando un solucionador stub obtenga una solicitud de una aplicación, primero comprobará su propio caché para ver 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 atajo previene búsquedas desde la raíz y servidores de nombres .com (en nuestra búsqueda para example.com) y ayuda a que la resolución de la consulta DNS sea más rápida.
  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 ocurre habitualmente tras hacer una purga de caché de DNS.

Vea qué diferencia a Cloudflare DNS de otros proveedores de DNS.