• No se han encontrado resultados

2.4. Sistema de nombres de dominio

2.4.2. Descripci´on del DNS

El DNS es una base de datos distribuida[25]. Esto permite delegar el control de secciones de la base de datos a otras entidades, mientras que la informaci´on es accesible a todos los segmentos mediante un esquema cliente servidor. La replicaci´on y almacenamiento temporal de informaci´on (caching) proveen robustez y rendimiento adecuados a la base de datos.

En el sistema interact´uan dos elementos principales: los clientes o resolvers que hacen peticiones y los servidores de nombres que tienen parte de la base de datos y atienden dichas peticiones.

Los tres principales componentes del DNS son:

El espacio de nombres de dominio y los registros de recursos intercambiados en las transacciones del DNS.

Los servidores de nombres, que son programas que tienen la informaci´on sobre una porci´on de la base de datos. Los servidores de nombres deben ser capaces de contactar a otros servidores de nombres y obtener informaci´on que no se en- cuentre en su base de datos local. Se dice que un servidor es autoritativo para la informaci´on que se encuentra en su base de datos local.

Losresolvers, que son programas utilizados para extraer informaci´on de los servi- dores de nombres. Losresolvers generalmente son funciones del sistema operativo que son invocadas cuando se requiere hacer uso del DNS.

Estos tres componentes corresponden a las tres capas o vistas del DNS:

Desde el punto de vista del usuario, el sistema de dominios es accedido a trav´es de una simple funci´on del sistema operativo. El espacio de nombre de dominios cor- responde a un ´arbol sencillo y el usuario puede obtener informaci´on de cualquier secci´on del ´arbol.

Figura 2.3: Visualizaci´on en forma de ´arbol de una porci´on del DNS.

Desde el punto de vista de un resolver, el DNS est´a compuesto de un n´umero desconocido de servidores de nombres. Cada servidor de nombres tiene una o m´as piezas de la informaci´on del ´arbol del DNS.

Desde el punto de vista del servidor de nombres, el DNS consiste en un conjunto de informaci´on local llamada zonas. Los servidores de nombres tienen copias de estas zonas.

La base de datos del DNS se puede imaginar como un ´arbol (ver figura 2.3) en el cual las hojas son los nombres de hosts y cada nodo que no es hoja constituye un segmento de la base de datos. Los nodos que no son hojas son la ra´ız de lo que se encuentra dentro de su segmento y a la vez existe una ra´ız para todo el ´arbol representada con un “.”.

Los servidores de nombres que tienen la informaci´on segmentada de la base de datos de nombres de dominios se dividen en dos tipos:

Figura 2.4: Ejemplo de resoluci´on de nombres de dominio efectuado por un servidor recursivo.

Servidores recursivos. Servidores autoritativos.

Servidores Recursivos Los servidores recursivos tienen la tarea de recorrer el ´arbol para obtener alguna informaci´on en espec´ıfico. La figura 2.4 ilustra el funcionamiento de un servidor recursivo:

A continuaci´on (ver figura 2.5) podemos observar el recorrido que realiza elresolver

o servidor recursivo para obtener la respuesta de la consulta por www.google.com.mx. El recorrido parte desde los servidores ra´ız o root servers. Los registros NS en este ejemplo son utilizados para guiar al resolver en su recorrido en el ´arbol del DNS:

Los registros NS que podemos observar en este ejemplo son registros de referencia o referrals y permiten a un servidor recursivo recorrer el ´arbol del DNS. Este tipo de

Figura 2.5: Ejemplo de registros NS usados por un servidor recursivo para recorrer el ´arbol del DNS.

respuestas componen la mayor´ıa de las respuestas que env´ıa un operador de registro o

registry (ej. NIC M´exico) de Internet.

Servidores Autoritativos Un servidor autoritativo es de vital importancia en el DNS y es el servidor que tiene la informaci´on completa de un segmento de la base de datos. Estos servidores pueden tener informaci´on sobre las direcciones IP de un

host (hoja del ´arbol) o bien pueden tener la informaci´on de qu´e servidores tienen la informaci´on de ramas inferiores en el ´arbol. Por ejemplo, los servidores ra´ız tienen la informaci´on de cu´ales son los servidores que tienen la informaci´on sobre los nombres de dominio terminados en .com y a su vez estos servidores tienen la informaci´on de

los servidores con autoridad o que tienen la informaci´on sobre el dominio o secci´on del ´arbol microsoft.com, por ejemplo.

Los servidores autoritativos son blanco com´un de atacantes pues al interrumpir el servicio que ofrecen se pierden grandes secciones de la base de datos. Es de vital im- portancia proteger la infraestructura de los servidores autoritativos para evitar perder secciones de la base de datos del DNS y mantener este servicio de infraestructura fun- cionando adecuadamente.

Registros de datos Si vemos al DNS como una base de datos, los registros ser´ıan los llamados Resource Records (RR, por sus siglas en ingl´es), y los campos ser´ıan los elementos que conforman un RR. De estos elementos el nombre del dominio es el campo llave usado para la realizaci´on de las b´usquedas.

Si vemos al DNS como un ´arbol entonces un nombre de dominio identifica a un nodo y cada nodo tiene un conjunto de recursos asociados y posiblemente sub´arboles.

Un RR esta formado por el siguiente conjunto de elementos:

owner: el nombre de dominio.

type: valor num´erico de 16bits que especifica el tipo de recurso. Los tipos refieren a recursos abstractos.

class: valor num´erico de 16 bits que identifica a una familia de protocolos.

TTL: valor num´erico de 32bits que indica en segundos cuanto tiempo dura el RR en el ´area decache de los servidores recursivos.

RDATA: los datos transmitidos mediante el RR. El formato del RDATA depende del tipo de RR.

Consultas est´andares Las consultas o queries son enviadas a un servidor para provocar una respuesta. Las consultas pueden viajar por UDP o TCP en el caso de Internet, sin embargo, el transporte de UDP es generalmente utilizado debido a que es menos costoso de procesar ya que es un protocolo no orientado a conexi´on. Al recibir una consulta oquery el servidor de nombres primero verifica s´ı la informaci´on est´a en sus zonas locales, en caso de no existir en sus zonas locales enviar´a la respuesta obtenida de sucache y en caso de no encontrar la informaci´on en su cache el servidor realizar´a una b´usqueda en el sistema de DNS.

Generalmente el usuario no genera consultas directamente, en su lugar realiza peticiones a un resolver local el cual env´ıa una o mas peticiones a los servidores de nombres necesarios.

Una consulta est´andar especifica un nombre de dominio a buscar (QNAME), un tipo de consulta (QTYPE), y un tipo de clase oclass (QCLASS). En Internet la clase IN es la m´as utilizada.

Adem´as de enviar los registros que son encontrados para esta terna de campos, el servidor puede enviar otros RR que permitan al servidor encontrar la informaci´on deseada en alg´un otro servidor de nombres.

Mensajes del DNS Todas las comunicaciones que se realizan dentro del protocolo del DNS se realizan mediante mensajes. Los mensajes tienen un formato definido, y a continuaci´on se presentan las capas que los conforman:

Cabecera o Header siempre est´a presente. La cabecera incluye campos que per- miten conocer cuales de las secciones restantes est´an presentes, y tambi´en especi- fica si el mensaje es una consulta o una respuesta.

consulta oQuestion, es donde viaja la consulta que se esta realizando. Esta secci´on puede contener solamente un nombre de dominio, una clase y un tipo de registro.

Respuesta o Answer, es donde viaja la respuesta a la consulta y existe una gran cantidad de tipos de registros. Esta tesis no aborda el obtener variables a partir de la secci´on de respuesta.

Autoridad oAuthority, es donde viaja informaci´on sobre otros servidores de nom- bres que pueden tener la informaci´on sobre el dominio. Esta secci´on es utilizada para guiar a los servidores recursivos hacia otros servidores autoritativos en In- ternet.

Adicional o Additional, es donde viaja informaci´on sobre glue records para la secci´on de authority.

Cabecera La cabecera oHeader es la secci´on que siempre esta presente en un mensaje del DNS. La informaci´on definida por la cabecera indica si el mensaje es una consulta o respuesta. En caso de ser una respuesta la cabecera indica si la consulta fue realizada con ´exito o no.

A continuaci´on se muestra el formato de la cabecera: La tabla 2.2 muestra el formato de la cabecera, donde:

ID, Un identificador de 16bits asignado por el programa que genera la consulta. Este identificador es despu´es copiado en la respuesta y puede ser usado por el programa que env´ıa la respuesta para hacer match de losqueries que ha enviado. QR, Un campo de un bit que especifica si el mensaje es una consulta (0), o una respuesta (1).

OPCODE, Un campo de cuatro bits que especifica el significado de la consulta de ese mensaje en especifico. Los valores permitidos son:

• 1, una consulta inversa (IQUERY).

• 2, una petici´on para conocer el tipo de servidor (STATUS).

• 3-15, reservado para uso futuro.

AA, Respuesta autoritativa o Authoritative Answer, este bit especifica que el servidor de nombres es autoritativo para el nombre de dominio en la secci´on de consulta.

TC, Truncado oTruncation, especifica que el mensaje fue truncado debido a que el tama˜no es m´as grande que el permitido por el canal de transmisi´on.

RD, Recursividad deseada o Recursion Desired, este bit indica que se desea que la consulta sea resuelta mediante recursi´on.

RA, Recursividad permitida o Recursion Available, este bit es activado por el servidor que env´ıa la respuesta, y especifica que el servidor puede realizar recur- si´on.

Z, Reservado para uso futuro. Debe ser 0 en todos las consultas y respuestas. RCODE, C´odigo de respuesta o Response Code, este campo de 4 bits especifica el tipo de respuesta:

• 0, Condici´on de no error.

• 1, El servidor de nombres no fue capaz de interpretar la consulta.

• 2, El servidor de nombre no fue capaz de procesar esta consulta debido a un problema con el servidor de nombres.

• 3, Error de nombre, este tipo de respuestas solo tienen significado cuando un servidor de nombres es autoritativo para el nombre de dominios, este c´odigo significa que el dominio no existe.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ID QR OPCODE AA TC RD RA Z RCODE QDCOUNT ANCOUNT NSCOUNT ARCOUNT

Cuadro 2.2: Cabecera de un mensaje DNS.

• 4, El servidor no implementa soporte para este tipo de consulta.

• 5, El servidor de nombres se reh´usa a realizar la operaci´on especificada por razones pol´ıticas.

• 6-15, Reservado para uso futuro.

QDCOUNT, un campo de 16 bits que especifica el n´umero de registros en la secci´on de consulta.

ANCOUNT, un campo de 16 bits que especifica el n´umero de registros en la secci´on de respuesta.

NSCOUNT, un campo de 16 bits que especifica el n´umero de servidores de nom- bres que se encuentran en la secci´on de autoridad.

ARCOUNT, un campo de 16 bits que especifica el n´umero de registros que se encuentran en la secci´on adicional.

Documento similar