Cómo funciona el DNS

Funcionamiento del DNS.

Cómo funciona el DNS

Cuando abrimos un navegador de Internet y escribimos una dirección web, o mandamos un correo electrónico, o entramos por FTP a un servidor, ¿qué hace que el navegador nos muestre el contenido de la página? ¿Y el correo electrónico? ¿Cómo veo el contenido del servidor? El hecho de que nuestro equipo, ya sea móvil, ordenador, tablet... pueda hacer todo esto, es en parte gracias al DNS (Domain Name System, Sistema de Nombres de Dominio).

Los ordenadores y otros dispositivos utilizan las direcciones IP para identificarse y comunicarse en Internet. Nosotros, como humanos que somos, preferimos escribir una dirección Web del estilo dominio.com antes que un conjunto de números como 234.123.3.65. Por ejemplo, para entrar a Geeky Theory, tecleáis geekytheory.com, no metéis la IP. Por lo tanto, el Sistema de Nombres de Dominio (DNS) relaciona las direcciones IP con los nombres de dominio.

Arquitectura de DNS

Se utiliza una base de datos distruibuida jerárquicamente que almacena la información asociada a los nombres de dominio y las direcciones IP. Sus usos más comunes son la traducción de nombres de dominio a sus correspondientes IP y localización de servidores de correo electrónico. He creado un pequeño diagrama de ejemplo de lo que sería la estructura jerárquica:

como funciona dns estructura jerárquica

Como vemos en el diagrama, tenemos distintos niveles. Dependiendo de su localización en la jerarquía, un nombre de dominio puede ser de primer nivel (top), segundo, tercero, cuarto, etc. Los dominios de primer nivel serían el .com, .es, .org, .edu, etc. Cada país tiene su propio dominio: México (.mx), Argentina (.ar), Chile (.cl), etc. Estos son los llamados Top Level Domains. El DomainName es la sucesión de nombres concatenados por puntos y el Fully Qualified Host Name (FQHN) es el nombre completo, tal cual se escribe en el navegador.

Cada uno de los nodos del árbol que he mostrado arriba, está compuesto por un grupo de servidores que se encargan de resolver un conjunto determinado de dominios correspondiente a su zona de autoridad.

Resolución de nombres

Llega el momento de introducir en el navegador la URL de una Web, es decir, el FQHN. Vamos a poner el ejemplo de Geeky Theory (geekytheory.com). Las consultas DNS se pueden enviar desde un cliente DNS (resolución) a un servidor DNS o entre dos servidores DNS. Existen dos tipos de consultas DNS:

  • Recursivas: solicitudes sucesivas de la dirección IP al dominio y, si no se obtiene resultado, se hacen nuevas solicitudes hasta encontrarla. Esto quiere decir que yo voy a preguntar por el dominio geekytheory.com [1] y como respuesta [8] debo obtener la IP.
  • Iterativas: solicitudes que tienen como respuesta una dirección donde puede estar ubicada la dirección buscada. Vamos a ir haciendo búsquedas sucesivas a lo largo del árbol jerárquico [2-7], ya que no hemos solicitado una resolución completa, sino por partes.
consulta DNS como funciona
  1. Consulta recursiva para geekytheory.com
  2. Consulta iterativa para geekytheory.com a la raíz.
  3. Devuelve la referencia al .com.
  4. Consulta iterativa a geekytheory.com.
  5. Devuelve la referencia al servidor donde está la información de geekytheory.com.
  6. Consulta iterativa para saber los datos de geekytheory.com.
  7. Respuesta con la IP de geekytheory.com.
  8. Respuesta final que contiene la IP de geekytheory.com.

USO DE CACHÉ

Los servidores tienen mecanismos de caché que hacen que las respuestas sean más rápidas. De esta manera no tenemos que consultar la base de datos cada vez que alguien nos pregunte por geekytheory.com y se ahorra mucho tiempo y recursos.

Vídeo explicativo

Os dejo un vídeo que he visto en YouTube explicando a grandes rasgos en qué consiste el DNS.

Este es básicamente el funcionamiento de los DNS. Se puede profundizar mucho más, pero creo que con esto nos hacemos una idea de cómo va el tema. Si tenéis alguna duda o sugerencia, abajo están los comentarios.

Por cierto, Miguel y yo tuvimos la suerte de asistir a una charla de Paul Mockapetris, inventor del DNS y charlar con él. Un tío muy majo. Nos contó que su hijo era un viciado del Minecraft, además de alguna que otra cosa más técnica :D . Aquí una foto (de enero de 2013):

como funciona el dns paul mockapetris

¡Saludos!