• DNS: {{Domain Name System}}
  • Es una {{base de datos distribuida}}
    • Implementada en un conjunto de servidores organizados de manera {{jerarquizada}}
  • Servicio de directorio para recursos de Internet
    • Recursos:
      • Direcciones IP
      • Información de host
      • Nombres canónicos de host
      • Nombres simplificados (alias) de host
      • Nombres de servidores de correo
      • Nombres de servidores DNS
      • etc
  • Da servicio a otras aplicaciones de red, y no interactúa con el usuario directamente
  • El protocolo que permite el intercambio de información también se llama DNS
Introducción a DNS
  • DNS se basa en un modelo {{cliente/servidor}}
  • Entidades funcionales:
    • Clientes DNS (resolvers)
    • Servidores DNS
Entidades funcionales DNS
  • Normalmente ubicados en hosts
  • Prestan servicio a determinadas aplicaciones de red.
Cliente DNS
  • El protocolo DNS fija los mensajes (consultas DNS) que pueden intercambiar los clientes y servidores DNS, el formato de los mensajes DNS, así como las acciones que deben tomar los equipos involucrados en dichas consultas.
Protocolo DNS
  • Solicitudes (peticiones) de información relativa a recursos.
  • Respuestas correspondientes a solicitudes.
Consultas DNS
  • El formato de solicitudes y respuestas del protocolo DNS es el mismo, y se puede ver más abajo:
  • Sección cabecera son los 12 primeros bytes, y contiene los siguientes campos:
    • Identificador (2 bytes) asignado por el cliente y devuelto sin cambio en la respuesta, para relacionar las solicitudes con sus respuestas.
    • Indicadores (2 bytes) dispone de varios subcampos o flags:
      • Flag de Consulta (0) o Respuesta (1)
      • Flag de Autorización: indica si el servidor DNS que responde es autorizado (1) o no.
      • Flag de "Solicitud de Rercursión" indica, en una solicitud que el servidor DNS realice recursión (1) si no dispone del RR.
      • Flag de "Recursión Disponible" indica, en una respuesta, si el servidor DNS admite (1) o no (0) recursión.
    • Campos "Número de ..." indica, cada uno de ellos, el número de campos de capa tipo que siguen después de la cabecera.
    • Campo Cuestiones contiene información acerca de la consulta.
    • Campo Respuestas contiene los registros del recurso solicitado, que pueden ser varios.
    • Campo Autoridad contiene registros de otros servidores DNS autorizados.

Mensaje_DNS.png

Formato mensajes DNS
  • Consiste en {{almacenar copias temporales de resoluciones DNS que NO son responsabilidad del sistema en cuestión (entidad DNS)}}.
    • Posiblemente por haber hecho una consulta recursiva.
    • También puede hacerlo el cliente DNS (resolver) de un host.
    • Se guarda en disco duro o en memoria RAM durante un cierto tiempo (el tiempo de almacenamiento es fijado por el servidor DNS autorizado del equipo según su campo TTL (ver Registros de Recurso (RR) en DNS)).
  • Permite reducir los tiempos de respuesta.
    • Si un cliente DNS ha realizado una consulta en el pasado reciente, posiblemente tendrá dicha información, y por lo tanto no será necesario contactar al servidor DNS local
    • Si un cliente contacta a un servidor DNS local que tenga en caché la información solicitada, podrá devolverla sin necesidad de contactar a otros servidores DNS.
Caché DNS
  • Información que se almacena en servidores DNS. Está formado por cuatro campos: Tipo, Nombre, Valor, TTL. El Nombre y Valor dependen del campo Tipo:
    • Si Tipo = A, entonces Nombre es un nombre de host y Valor es la dirección IP correspondiente a dicho nombre.
    • Si Tipo = NS, entonces Nombre es un dominio y Valor es el nombre de host de un servidor DNS autorizado para dicho dominio.
    • Si Tipo = CNAME entonces Valor es un nombre canónico/completo correspondiente al alias especificado por Nombre.
  • En las respuestas de DNS (Consultas DNS) los servidores DNS contactados devuelven cero o más RR (en un formato diferente al almacenado, pero la información es la misma).
Registros de Recurso (RR) en DNS
  • Vamos a ver un ejemplo de cómo se añaden registros en un servidor de DNS.
  • Para ello compramos un dominio, por ejemplo jaimegarciareinoso.es en cualquier proveedor autorizado (hay varios).
  • Cada proveedor de DNS tiene su propio sistema de configuración, normalmente por web. En la siguiente figura se puede ver el sistema de control del que hemos comprado nosotros:
    Panel de Control DNS
  • En la figura se pueden ver varias entradas almacenadas en el servidor autorizado del dominio, cada una de ellas de un tipo (RR) diferente:
    - Los RR A relacionan los nombres de host del campo Entrada DNS con las direcciones IP del campo Valor. Por ejemplo, el host con nombre www.jaimegarciareinoso.es tiene como dirección IP la 217.76.142.216. Como a veces nos olvidamos de poner en el navegador el nombre del equipo, en este caso www, también se suele añadir un RR A para el nombre sin esa parte, en este caso jaimegarciareinoso.es, asociándole la misma dirección IP. En la siguiente captura vemos parte del contenido del mensaje response que envía el servidor local de DNS al cliente que ha solicitado la dirección IP del servidor web [1] (nótese que la dirección IP coincide con el campo Valor del servidor DNS autorizado):
    Captura Wireshark DNS CNAME

    - Los RR de tipo CNAME apuntan a otro nombre de dominio diferente. Esto quiere decir que cuando se pida resolver un nombre de la columna de la izquierda, se responderá con el nombre que hay en el campo Valor. Además, en el mensaje response se devolverá otro RR de tipo A, con la correspondencia entre el nombre del campo valor y su dirección IP correspondiente, como se puede ver en la siguiente captura:
    Captura Wireshark DNS CNAME

  1. recordemos que en un mensaje response se incluye el campo de Queries enviado en la solicitud.↩︎

Inserción de registros DNS
  • Ejemplo donde un usuario en un PC solicita acceder al equipo www.soluciones.es. El PC tiene configurado como servidor DNS a DNS local, y por lo tanto conoce su dirección IP. A su vez, el DNS local sólo conoce la dirección IP de un DNS raíz, este a un DNS.es que finalmente conoce la IP del DNS autorizado del dominio soluciones.es. Asumimos que el DNS local funciona en modo recursivo y el resto de servidores en modo iterativo.
  1. En la figura se puede ver cómo el PC envía al DNS local una solicitud donde en la sección Queries se incluye un RR tipo A con nombre www.soluciones.es.
  2. El DNS local no tiene la información solicitada, por lo que recorre los diferentes componentes del nombre de izquierda a derecha y lo compara con su propia base de datos (BBDD) de nombre. Como se ha comentado, la única información que tiene en su BBDD es la de un servidor raíz, por lo que envía una solicitud similar a la recibida del PC.
  3. El DNS raíz recibe la solicitud, pero no tiene la IP asociada al nombre solicitado, por lo que recorre el nombre y lo compara con las entradas en su BBDD, encontrando una correspondencia con el componente .es. El DNS raíz responde con un mensaje DNS donde en la sección de Authoritative Nameservers incluye un RR de tipo NS con el campo Name igual a .es y el campo Name Server igual al nombre de un servidor DNS que sirve al dominio .es (en nuestro caso, DNS.es). Además, incluye en la sección Additional Records un registro tipo A con el campo Name igual a DNS.es y campo Address la dirección IP asociado a dicho servidor DNS.
  4. El DNS local almacena la información recibida, y contacta con el servidor TLD de .es devuelto por el DNS raíz, con una solicitud similar a (1) y (2).
  5. El servidor DNS.es realiza acciones similares a las descritas en el punto (3) y devuelve los registros NS y A asociados al servidor DNS soluciones.es.
  6. Después de guardar la información recibida, el DNS local contacta con el DNS soluciones.es
  7. El DNS soluciones.es es un DNS autorizado para el dominio donde se encuentra el equipo solicitado, por lo que devuelve en la sección Answers un RR tipo A con el campo Name igual a www.soluciones.es y en el campo Address la IP asociada a dicho nombre.
  8. Después de almacenar la información recibida, el DNS local devuelve la respuesta al PC.
DNS_soluciones.esDNS_es_(TLD)DNS_RaizDNS_LocalPCDNS_soluciones.esDNS_es_(TLD)DNS_RaizDNS_LocalPC(1)Query(Type:A,www.soluciones.es)(2)Query(Type:A,www.soluciones.es)(3)Response(Type:A,IPes)*(4)Query(Type:A,www.soluciones.es)(5)Response(Type:A,IPsoluciones)*(6)Query(Type:A,www.solucione.es)(7)Response(Type:A,IPweb)(8)Response(Type:A,IPweb)

(*) En estos mensajes de respuesta se incluyen otros registros, como registros de tipo NS con los nombres de los servidores DNS devueltos como respuestas a las peticiones[1]. Además, en los propios mensajes se incluyen registros de tipo A que asocian las direcciones IP a los nombres de los servidores DNS comentados anteriormente [2].

  • Pregunta: ¿cuál sería el intercambio de mensajes DNS, si justo después de recibir el mensaje (8), el PC solicita la IP del equipo email.soluciones.es?

  1. en la sección Authoritative Nameservers↩︎

  2. en la sección Additional Records↩︎

Ejemplo de resolución DNS
  • Formas de identificación de recursos en Internet dirigida a las personas.
    • Mnemónico: fácil de recordar y entender por las personas.
    • Un nombre es la concatenación de cadenas de etiquetas separadas por puntos.
  • Identifican:
    • Un host dentro de un dominio
    • En general, un recurso.
  • Ejemplo: www.aut.uah.es
    • El equipo www está dentro del dominio aut.uah.es, que a su vez está en el dominio uah.es que forma parte del TLD (Top-Level Domain) de España (.es).

Dominios_DNS.png

Nombres de dominio
  • Responde a una estructura organizativa
  • Componentes (etiquetas) de un nombre de dominio
  • Un nombre se escribe de derecha a izquierda, comenzando por la raíz, luego por el dominio de primer nivel y así, mientras más hacia la izquierda, más específico, hasta llegar al identificador de un nombre de un host dentro de un dominio.
    • Por ejemplo:
      • es: dominio de España (primer nivel o TLD -Top Level Domain-).
      • uah.es: dominio de la UAH dentro del dominio ES
      • aut.uah.es: dominio del dpto. de Automática dentro del de la UAH (que está dentro del de ES)
      • www.aut.uah.es: identifica el equipo www que está dentro del dominio aut.uah.es.
Jerarquía DNS
  • Un dominio DNS representa {{un conjunto de equipos, posiblemente conectados a Internet, administrados de forma conjunta}}
  • El administrador de un dominio debe ofrecer el servicio DNS para que otros usuarios puedan {{obtener la Dirección IP de los equipos de su dominio}} (ver Servidor DNS autorizado)
Dominio DNS
  • Disponen de registros de todos los servidores DNS TLD (en particular, conocen las direcciones IP de dichos servidores).
  • Existe un número reducido de estos servidores.
Servidor DNS raíz
  • TLD: {{Top-Level Domain o dominio de nivel superior}}.
  • Son responsables de almacenar registros de los dominios de nivel superior
    • Genéricos como .com, .org, .info, etc.
    • Geográficos como .es, .it, .uk, .cn, etc.
Servidor DNS TLD
  • Obligatorio para toda organización con hosts accesibles desde Internet
  • Implementados, gestionados y mantenidos por:
    • La propia organización, o
    • Por un ISP
  • Disponen de los registros DNS de los recursos bajo su jurisdicción (dominio)
    • Es decir, correspondencia entre las IPs de sus equipos y los nombres DNS de dichos equipos.
Servidor DNS autorizado
  • Estrictamente no pertenecen a la jerarquía de servidores DNS
  • Cada ISP dispone de uno o varios para servir a sus clientes.
  • Se encuentran "cerca" de los hosts de una organización.
  • Normalmente es el primer punto de contacto de las consultas DNS de los clientes.
    • Los clientes normalmente tienen configuradas las IPs de servidores DNS locales.
Servidor DNS local
  • Locales
      • Se utiliza para consultas a la Caché DNS local.
  • Recursivas [1]
    • Servicio por el cual un servidor DNS contacta con otros servidores DNS en el caso de no tener la información solicitada en una consulta.
  • Iterativas [1-1]
    • Servicio por el cual un servidor DNS responde con el registro de otro servidor DNS más apropiado. Esto se hace cuando el servidor contactado no tiene la respuesta exacta para la consulta recibida.
  • Inversas
    • Es una consulta en donde se solicita un nombre de host dada una dirección IP.

  1. Normalmente, los Servidor DNS local ofrecen un servicio recursivo, mientras que el resto de servidores (Servidor DNS raíz, Servidor DNS TLD y Servidor DNS autorizado) ofrecen un servicio iterativo.↩︎↩︎

Tipos de Consultas DNS
Start-here.jpg
  • DNS nos puede recordar a un sistema de agenda telefónica, en donde normalmente un usuario, llamémosle Alice, no recuerda el número de teléfono de la persona a la que quiere llamar pero sí su nombre, por ejemplo, Bob. Por lo tanto, Alice buscará en su agenda el número de teléfono de Bob, que es lo que realmente necesita su móvil/fijo para poder realizar la llamada.
  • Podemos preguntarnos, ¿qué pasa si Alice no tiene en su agenda a Bob? Alice podría llamar a Charlie, a quien sí tiene en su agenda, y preguntarle si tiene el número de teléfono de Bob. Aquí podrían pasar dos cosas:
    • Charlie sí tiene el teléfono de Bob, por lo que se lo da a Alice.
    • Charlie no tiene el teléfono de Bob, pero sí tiene el teléfono de David que podría saber esa información. En este caso se podrían dar dos situaciones:
      • Charlie le pasa el nombre y teléfono de David a Alice para que lo llame ella (esto se conoce en DNS como servicio iterativo -ver Tipos de Consultas DNS-)
      • Charlie llama a David y le pregunta si sabe el número de teléfono de Bob. En este momento, se pueden dar las mismas circunstancias que cuando Alice llama a Charlie (este caso se conoce en DNS como servicio recursivo -ver Tipos de Consultas DNS-)
  • Ejemplo donde Charlie presta un servicio recursivo [1]
DavidCharlieAliceDavidCharlieAliceRequest(Bob)Request(Bob)Response(Bob,+12 600700800)Response(Bob,+12 600700800)
  • Ejemplo donde Charlie presta un servicio iterativo [1-1]
DavidCharlieAliceDavidCharlieAliceRequest(Bob)Response(David,+22 678876654)Request(Bob)Response(Bob,+12 600700800)

  1. es importante resaltar que Bob no interviene en estos intercambios de mensajes.↩︎↩︎

Símil entre DNS y llamadas telefónicas
Dominios_DNS.png
Mensaje_DNS.png
2
3
1
4