DNS

Mediante esta entrada se pretende realizar un resumen esquematizado del protocolo DNS de tal forma que el lector tenga la capacidad de adquirir los conocimientos básicos sobre dicho protocolo. 

Glosario previo

Hostname: Son nombres mnemónicos que identifican un equipo. Casi no proporcionan información de localización. Son difíciles de procesar por routers. Un ejemplo sería www.cronicasdeuninformático.com

Dirección IP: Protocolo que permite asignar direcciones de 4 Bytes "en su versión de IPv4". Un ejemplo sería 172.16.1.1

FQDN: Nombre completo que se compone de la suma del nombre del equipo mas el dominio al que pertenece.

Transferencia de zona: Se realizan para actualizar los registros de un servidor DNS mediante la Base de Datos de otro servidor DNS. De esta forma se permite mantener la misma información actualizada en múltiples servidores DNS.

¿Qué es DNS?

Podemos definir DNS como un servicio de directorio capaz de traducir hostnames a sus correspondientes direcciones IP. DNS proporciona el protocolo que permite a los clientes y servidores comunicarse.
  • Base de datos distribuida con nombres de servidores jerárquicos
  • Protocolo de aplicación que permite la comunicación entre un equipo y un servidor de nombres
  • Emplea el puerto 53 La comunicación puede ser TCP o UDP
  • Empleado por otros protocolos de aplicación como HTTP y FTP
  • Emplea TCP/IP
  • La transferencia de zona se realiza empleando TCP
Proporciona

Host aliasing: Un hostname complicado (De tipo canónico) puede tener un alias que sea mas sencillo de recordar

Mail server aliasing: Permitiendo que los servidores de corre tengan alias. Así una compañía puede tener el mismo Alias para un servidor web y servidor de correo.

Balanceador de carga: Mediante la asociación de un conjunto de direcciones IP a un equipo con nombre canónico. Se rota la dirección IP por cada petición distribuyendo de esta forma el tráfico.

Pregunta respuesta a un servidor DNS

DNS Query Reply
Diseño

A continuación se citan los motivos por los cuales DNS no emplea un diseño centralizado:
  • Único punto de fallo
  • Volumen de tráfico
  • Delay por distancia para aquellas localizaciones que no se encuentren cerca del punto central
  • Difícil mantenimiento debido al gran número de registros
  • No sería escalable
Por los motivos descritos en el apartado anterior DNS emplea un diseño distribuido.  Destacar que otro motivo por el cual DNS emplea un diseño distribuido es debido a que ningún sitio conoce toda la información. Gracias a este diseño obtenemos un gran número de servidores organizados jerárquicamente y distribuidos a lo largo del mundo.

El espacio DNS es jerárquico

El espacio DNS se divide en nodos a los cuales se les asigna una etiqueta de hasta 63 caracteres. El raíz tiene como etiqueta "Null". No se diferencian entre mayúsculas y minúsculas. Cada nodo tiene un nombre de dominio único pero pueden compartir la misma etiqueta si se encuentran en diferentes niveles del árbol jerárquico.

DNS jerárquico
En este caso el FQDN sería:

 www . cronicasdeuninformatico . com

Nota: Arpa define los dominios especiales, los dominios genéricos son de tipo .com . net y los de dos caracteres son los códigos de los países.

Tipos de servidores

Local Name Servers: Cada ISP tiene uno. Cuando un cliente hace una petición se envía primero a estos servidores. Generalmente se configuran a mano en cada servidor. Son cercanos al cliente y deben de poder realizar resoluciones de equipos del mismo ISP.

Root Name Servers: Cuando un local name server desconoce una respuesta, este pregunta a un servidor root que le devuelve la respuesta o la dirección IP del servidor de nombres autoritativo.

Authoritative Name Servers: Cada Host está registrado en un servidor autoritativo. Se dice que un servidor de nombre es autoritario para un equipo cuando tiene un registro que traslada el hostname a una dirección IP. Muchos servidores son locales y autoritativos a la vez.

Nota: Pueden existir servidores intermedios

Tipos de consultas

Recursivas: Cada servidor pregunta al siguiente y este le devuelve la respuesta.

Consult Recursiva


Iterativas: El servidor envía al cliente un DNS reply indicándole al servidor al que le tiene que preguntar por dicho host.

Consulta Iterativa

Nota: Destacar que los servidores Root son siempre iterativos debido a la carga de trabajo que soportan.

Cache DNS

Mediante esta técnica se reducen los retardos y los mensajes DNS en la red. Cuando el servidor recibe un mapeo de DNS lo cachea en la memoria local "Memoria RAM". Si vuelven a preguntar por ese host el servidor devuelve el valor cacheado. Destacar que el cacheo se vacía transcurrido un tiempo determinado. 

Resource Record

Los servidores DNS intercambian la información solicitada mediante registros de tipo R.R. "Resource Record" El formato de este tipo de registros es el siguiente:

RR format (nombre, valor, tipo, TTL)

TTL: Tiempo de vida del registro "tiempo en que se elimina de la cache"

Tipos:
  • A: Contienen el nombre de hostname y su correspondiente dirección IP
  • NS: De tipo "Nombre del servidor de nombres", contiene el valor del hostname del servidor que puede conocer la dirección IP para el registro solicitado
  • CNAME: Valor canónico para el alias de un nombre
  • MX: Hostname del servidor de correo para un determinado alias
Nota: Si el tamaño de la respuesta supera los 512 Bytes se vuelve a realizar la solicitud empleando TCP. Se pueden emplear múltiples segmentos transfiriendo cualquier tamaño de datos.