Que es DNS

Publicado en por javier morales

DNS (Domain Name Service)


 

Muchos usuarios prefieren utilizar un nombre que sea mas fácil de recordar que una direccion numerica. Para hacer esto, un servidor debe transformar el nombre en la direccion correcta. Esto se hacia originalmente en Internet mediante una tabla unica situada en un servidor central, donde estaban contenidos todos los nombres de Host. Esto era posible debido a que solo existian unos cientos de servidores, pero debido a un gran aumento del numero de servidores, fue necesario descentralizar el servidor de nombres y dividirlo en multiples DNS (servidores de nombres de dominio).

Esto redujo el tiempo de respuesta del sevidor, y disminuyo el trafico en la red.

La estructura del sistema de dominios es similar a la estructura de directorios del DOS o del UNIX. Es decir, es una estructura en forma de arbol, y los archivos estan identificados con una ruta de acceso. La diferencia es que en el DNS la ruta empieza con el nombre del nodo en vez del directorio raiz. Ademas, las rutas en un servidor DNS se escriben en sentido inverso a las del DOS.

Desde el punto de vista de un programa el funcionamiento de este servicio en muy simple. El programa proporciona un nombre de dominio, y el DNS le devuelve su direccion IP.

Nombres de dominio

El programa de usuario proporciona el nombre de dominio como una secuencia de palabras. Las palabras estan listadas de izquierda a derecha, y la que representa la zona mas cercana al usuario es la primera.

Los programas DNS manipulan el nombre del dominio proporcionado por el usuario de manera que sea facilmente interpretado por otros programas. Para los programas, cada nombre de dominio contiene una secuencia de etiquetas, y cada etiqueta contiene un octeto de longitud seguido por una cadena de caracteres de un subconjunto de caracteres ASCII. Este subconjunto está formado por caracteres alfa (A-Z), digitos (0-9) y un signo menos (-).

Arquitectura del DNS

DNS es un protocolo de la capa de aplicacion y esta clasificado como una utilidad por convenio entre los usuarios y el administrador del sistema, en vez de una parte integrada en los servicios de usuario.

Elementos de programas de DNS

Siguiendo el modelo Cliente/Servidor, DNS consiste en un usuario, un cliente, un servidor de nombres local y un servidor de nombres remoto. En terminos de las especificaciones, DNS consiste en un programa de usuario, un cliente, un servidor de nombres, y un servidor de nombres remoto. Cada Host debe implementar un mecanismo utilizando el cliente DNS para convertir nombres de Host en direcciones IP.

Elementos de Datos de DNS

Un nodo DNS se representa por una etiqueta en el interior del nombre de dominio, y todos los nodos tienen unos archivos de recursos (resource records (RRs)) que contienen información que habilita el programa DNS para encontrar el nombre de dominio solicitado.

Formato de un RR. (Ver Figura 2)

 

  • Nombre del propietario (Owner Name) o (SNAME) es el nombre del nodo al cual pertenece el Resource Record. Este nombre que sera comparado con el nombre proporcionado por el programa de usuario El nombre está en formato DNS con unos octeto de longitud seguido por cadenas ASCII.
  • Tipo (Type) es un entero de 16 bits que describe el tipo de Resource Record. (Ver Tabla 1).
  • Clase (Class) es un entero de 16 bits que define la clase del Resource Record. Un RR de Internet tiene el campo igual a 1.
  • Tiempo de vida (Time-to-live) es un entero de 32 bits que especifica el intervalo de tiempo en el cual el RR debe ser almacenado en la memoria cache, antes de ser actualizado con la información del origen. El valor cero significa que el RR debe ser utilizado solo en la transaccion en progreso, y no tiene que ser almacenado. El valor cero tambien se utiliza para datos muy volatiles.
  • Longitud RD (RDLength) es un entero de 16 bits especifica la longitud en octetos del campo RDATA.
  • RData es una cadena de longitud variable de octetos que describen el recurso. El formato de esta información varia segun el tipo y clase del RR. Para el tipo A RR (Internet) , el campo RData contiene una direccion IP de 32 bits.
Otro elemento de datos del DNS es el SLIST. El SLIST es una estructura que describe los servidores de nombres y la zona donde el el cliente esta intentando enviar una solicitud actualmente.
Tabla 1.
Tipos de Resource Records
Valor Codigo Significado
1 A La direccion de un Host
2 NS Un servidor de nombres autorizado
5 CNAME El nombre canonico de un alias
6 SOA Inicio de la zona de autoridad
11 WKS Descripcion de un servicio conocido
12 PTR Un puntero de nombre de dominio
13 HINFO Información de un Host
14 MINFO Información del Mailbox o de una lista de correo
15 MX Intercambio de correo
16 TXT Cadena de texto
22 NSAP Cadena hacia un servicio de transporte OSI
23 NSAP-PTR Puntero de nombre de dominio NSAP
252 AXFR Solicitud de tranferencia de un a zona entera
253 MAILB Solicitud de los archivos del Mailbox
255   Solicitud de todos los archivos

Figura 2.
Formato de un Resource Record
msb   lsb
7 6 5 4 3 2 1 0
Owner name
Type
Class
Time to live
RDLength
RData
27 26 25 24 23 22 21 20

Funcionamiento del DNS

Un programa manda una solicitud a un cliente (resolver) que contiene un nombre de dominio para el cual se quiere la direccion IP asociada. La solicitud se suele hacer con una subrutina, o un puntero hacia el nombre de dominio en la pila del sistema. Los nombres de dominio en el cache del Resolver (cliente) estan en un formato estándar contenido en RRs. Existen tres posibles respuestas de un Resolver al programa de usuario.

  • Uno o mas RRs conteniendo la direccion IP solicitada. En el caso de que el nombre proporcionado fuera un alias, el Resolver simplemente devuelve el nombre de dominio al que hace referencia el alias.
  • Un mensaje de error en el nombre, que significa que el nombre proporcionado no existe.
  • Un error de datos no encontrado, que significa que el nombre proporcionado existe, pero no se refiere a ninguna direccion IP.

Formato de un mensaje DNS

El Protocolo DNS utiliza mensajes enviados por el UDP para trasladar solicitudes y respuestas entre servidores de nombres. La transferencia de zonas completas la hace el TCP.
El formato de un mensaje DNS tiene cinco partes.

  • Cabecera define el formato de las otras partes
  • Pregunta es el objetivo a resolver
  • Respuesta es la resolucon del objetivo
  • Autoridad es la referencia a un servidor autorizado
  • Adicional es información relacionada, pero no la respuesta.

Formato de la cabecera. (Ver Figura 3)

La cabecera contiene los siguientes campos:

 

  • ID es un campo de 16 bits utilizado para relacionar solicitudes y respuestas.
  • QR es un campo de 1 bit que identifica el mensaje como una solicitud (0) o una respuesta (1).
  • OPcode es un campo de 4 bits que describe el tipo de mensaje. (Ver Tabla 2)
    Tabla 2.
    Codigo de operacion/Tipo de mensaje
    Codigo Descripcion
    0 Solicitud normal (nombre a direccion)
    1 Solicitud Inversa (direccion a nombre)
    2 Solicitud del estado del servidor
  • A es un campo de 1 bit que cuando tiene valor 1 indica que la respuesta la ha hecho un servidor autorizado
  • T es un campo de 1 bit que cuando toma valor 1 indica que el mensaje ha sido truncado
  • RQ es un campo de 1 bit que cuando esta puesto a 1, indica la solicitud de un servicio recursivo por parte del servidor de nombres. Este servicio normalmente no esta disponible.
  • RA es un campo de 1 bit que indica la disponibilidad del servicio recursivo.
  • Z es un campo de 3 bits reservado para un uso futuro, y su valor debe ser 0.
  • RCode es un campo de 4 bits que lo rellena el servidor de nombres, y sirve para indicar el estado de la busqueda. (Ver Tabla 3)
    Tabla 3.
    Estado de la busqueda
    Codigo Descripcion
    0 Sin errores
    1 Error de Imposible interpretar el formato de la busqueda
    2 Error de Imposible procesar el servidor
    3 Error de nombre inexistente
    4 Tipo de busqueda no soportado
    5 Solicitud rechazada
  • QDCount es un campo de 16 bits que indica el numero de entradas en la sección de Preguntas.
  • ANCount es un campo de 16 bits que indica el numero de Resource Records en la sección de Respuesta.
  • NSCount es un campo de 16 bits que define el numero de Resource Records en la sección de Autoridad.
  • ARCount es un campo de 16 bits que define el numero de Resource Records en la sección de Archivos Adicionales.
Figura 3.
Formato de la cabecera DNS
  Octet +0 Octet +1 Octet +2 Octet +3
  7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
+0 ID QR Opcode A T RQ RA Z Rcode
+4 QDCOUNT ANCOUNT
+8 NSCOUNT ARCOUNT

Etiquetado en Redes

Para estar informado de los últimos artículos, suscríbase:
Comentar este post