¿Qué es DNS? | Como funciona DNS

DNS es lo que permite a los usuarios conectarse a sitios web usando nombres de dominio en lugar de direcciones IP. Obtenga información sobre cómo funciona DNS.

Share facebook icon linkedin icon twitter icon email icon

DNS

Metas de aprendizaje

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

  • Definir DNS
  • Entender cómo funciona DNS
  • Diferenciar entre búsquedas iterativas y recursivas de DNS
  • Separar los servidores de nombres autoritativos de las resoluciones de DNS recursivas
  • Explorar cómo funciona el almacenamiento en caché de DNS

¿Qué es DNS?

El Sistema de nombres de dominio (DNS) es la agenda telefónica 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 los 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 un computadora (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 que intervienen al 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 dominios de primer nivel - 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 contiene 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 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 autoritativo tiene acceso al registro solicitado, devolverá la dirección IP para el nombre de host solicitado de vuelta al recursor DNS (el bibliotecario) que hizo la solicitud inicial.

¿Cuál es la diferencia entre un servidor DNS autoritativo y una resolución de DNS recursiva?

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 la resolución recursiva está al inicio de la consulta de DNS y el servidor de nombres autoritativo está al final.

Resolución de DNS recursiva

La resolución recursiva es la computadora que responde a una solicitud recursiva desde un cliente y se toma el tiempo necesario para inspeccionar el registro de DNS. Hace esto mediante una serie de solicitudes hasta que alcanza el 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, las resoluciones de DNS recursivas 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 de 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 de 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 consultas desde sus propios datos sin necesidad de consultar otra fuente, ya que es la fuente final de confianza para ciertos registros de 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 resoluciones recursivas de DNS, tales como Google DNS, OpenDNS y proveedores como Comcast, mantienen instalaciones de centro de datos de resoluciones recursivas de DNS. Estas resoluciones permiten consultas rápidas y fáciles mediante clústeres optimizados de sistemas informáticos 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 permite gestionar grandes volúmenes de tráfico de 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 ocupa de que un nombre de dominio se traduzca a la dirección IP apropiada. Para saber cómo funciona este proceso, resulta útil seguir la ruta de una búsqueda de DNS desde un navegador web a través del proceso de búsqueda de DNS, y de regreso de nuevo. Veamos los pasos.

Nota: A menudo la información de búsqueda de DNS se almacenará en caché, en forma local dentro de la computadora que realiza la consulta o remota en la infraestructura de DNS. En una búsqueda de DNS generalmente hay 8 pasos. Cuando la información de DNS se almacena en caché, se omiten pasos del 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 de DNS:

  1. Un usuario escribe “example.com” en un navegador web y la consulta viaja por Internet y es recibida por una resolución DNS recursiva.
  2. A continuación, la resolución consulta un servidor de nombres raíz de DNS (.).
  3. Luego, el servidor raíz responde con la dirección de un servidor 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. A continuación, la resolución hará una solicitud al dominio de primer nivel .com.
  5. Luego, el servidor de dominio de primer nivel responderá con la dirección IP del servidor de nombres de dominio, example.com.
  6. Por último, la resolución recursiva envía una consulta al servidor de nombres de dominio.
  7. Por ejemplo, la dirección IP se devolverá a la resolución recursiva desde el servidor de nombres.
  8. A continuación, la resolución de DNS responderá al navegador web con la dirección IP del dominio solicitado inicialmente.

  9. Una vez que los 8 pasos de la búsqueda de 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 esa IP devuelve la página web para que se procese en el navegador (paso 10).
DNS query diagram

¿Qué es una resolución de DNS?

La resolución 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. La resolución 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 recursiva y una resolución de DNS recursiva. La consulta se refiere a la solicitud hecha a una resolución de DNS que requiera la resolución de la consulta. Una resolución recursiva de DNS es la computadora que acepta una consulta recursiva y procesa la respuesta haciendo las solicitudes necesarias.

DNS query diagram

¿Qué son los tipos de consultas de DNS?

En una consulta común 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 resultar en una reducción de la distancia recorrida. En una situación ideal, los datos de registro almacenados en la memoria caché estarán disponibles, permitiendo que un servidor de nombre de DNS devuelva una consulta no recursiva.

3 tipos de consultas de DNS:

  1. Consulta recursiva - En una consulta recursiva, un cliente DNS exige que un servidor DNS (generalmente una resolución DNS recursiva) responda al cliente con el registro del recurso solicitado o un mensaje de error si la resolución no puede encontrar el registro.

  2. Consulta iterativa - En esta situación, el cliente DNS permitirá que un servidor DNS devuelva la mejor respuesta que pueda. Si el servidor DNS consultado no tiene una coincidencia para el nombre de la consulta, devolverá una referencia a un servidor DNS autoritativo para un nivel más bajo del espacio de nombres del dominio. A continuación, el cliente DNS hará una consulta a la dirección de referencia. Este proceso continúa con servidores DNS adicionales por la cadena de consulta hasta que se produzca un error o se supere el tiempo de espera.

  3. Consulta no recursiva - Generalmente se produce cuando un cliente de resolución de DNS consulta a un servidor DNS para un registro al que tiene acceso, ya sea porque es autoritativo para el registro o porque el registro existe dentro de su caché. Generalmente, un servidor DNS almacenará en caché registros de DNS para evitar el consumo de banda ancha adicional y cargar en servidores en sentido ascendente.

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

El objetivo del almacenamiento en caché es guardar datos temporalmente en una ubicación que produzca mejoras en rendimiento y fiabilidad para las solicitudes de datos. El almacenamiento en caché de DNS consiste en almacenar datos más cerca del cliente solicitante para que la consulta de DNS se pueda resolver antes y se puedan evitar las consultas adicionales más abajo de la cadena de búsqueda de DNS, mejorando de este modo los tiempos de carga y reduciendo el consumo de banda ancha/CPU. Los datos de DNS se pueden almacenar en caché en diversas ubicaciones; cada una de ellas guardará los registros de DNS durante un período de tiempo determinado por un tiempo de vida (TTL).

Almacenamiento en caché de DNS del navegador

Los navegadores web modernos están diseñados de forma predeterminada para almacenar en caché registros de DNS por un período establecido de tiempo. El objetivo aquí es evidente: cuanto más cerca esté el almacenamiento en caché de DNS del navegador web, menos pasos de procesamiento habrá que tomar para verificar el caché y hacer las solicitudes correctas para una dirección IP. Cuando se realiza una solicitud para un registro de DNS, el caché del navegador será la primera ubicación verificada por el registro solicitado.

En Chrome, puedes ver el estado de tu caché de DNS en chrome://net-internals/#dns.

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

La resolución de DNS a nivel del sistema operativo es la segunda y última parada local antes de que una consulta de DNS deje tu equipo. Al proceso dentro de tu sistema operativo diseñado para gestionar esta consulta se le denomina habitualmente “resolución stub” o cliente DNS. Cuando una resolución stub recibe una solicitud de una aplicación, primero comprobará su propio caché para ver si tiene el registro. Si no lo tiene, envía una consulta de DNS (con un indicador recursivo establecido) fuera de la red local a una resolución de DNS recursiva dentro del proveedor de servicios de Internet (ISP).

Cuando la resolución recursiva dentro del ISP recibe una consulta de DNS, como en todos los pasos anteriores, también verificará si la traducción solicitada de la dirección IP al host ya está almacenada dentro de la capa de persistencia local.

La resolución recursiva también tiene una funcionalidad adicional según los tipos de registros que tenga en su caché:

  1. Si la resolución no tiene los registros A pero tiene los registros NS para los servidores de nombres autoritativos, consultará directamente a estos servidores de nombres, omitiendo varios pasos en la consulta de DNS. Este atajo evita 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 de DNS sea más rápida.
  2. Si la resolución 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 de que la resolución 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.

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