New Devices. tu lugar de actualización.
     

seminario   publicaciones   tutoriales

   

tutoriales

mapa del sitio   @

Protocolo DNS

Protocolo DNS

En la figura 1.1 podemos observar la estructura gráfica de una base de datos DNS donde cada nodo es un nombre de dominio, Todos los nombres de dominios nacen a partir del dominio raíz, el cual se denota con un punto. A su vez cada uno de estos nombres de dominio puede sub-dividirse. Por ejemplo, el dominio .org. incluye a dos nombres de dominio caida y kernel. Cada uno de estos nombres de dominio tienen dos nombres de dominio llamados www.caida.org. y ftp.caida.org y www.kernel.org. y ftp.kernel.org.. Esto implica que el nombre de dominio www asignado a dos computadores "www.caida.org. y www.kernel.org." gozan de un nombre de dominio único. Cada uno de estos nombres de dominio son nombres de dominio completamente calificados "FQDN, Full Qualified Domain Name". De esta manera dos computadoras pueden tener el mismo nombre sí y sólo sí pertenecen a zonas distintas.

Una zona representa las partes contiguas del árbol del dominio para el cual un servidor de nombres contiene la información completa y es autoridad del dominio. En la figura 1.1 podemos apreciar dos zonas Caida.org. y Kernel.org.. Los servidores de dominio de cada zona contienen en sus bases de datos la dirección IP asociada al nombre de dominio.

El servidor de nombres de una zona puede delegar la responsabilidad del sistema de nombres de dominios a otro servidor de nombres de dominio con el fin de descentralizar la base de datos. Tal es el ejemplo de los servidores de nombres "." raíz presentados en la figura 1.1. Estos servidores de nombres delegan sus zonas a los servidores de nombres del dominio org..

 

Figura 1.1  Estructura gráfica de una base de datos DNS

Figura 1.1 Estructura gráfica de una base de datos DNS

Como cada computadora está asociada a un nombre de dominio completamente calificado "FQDN" y un FQDN tiene asociado una dirección IP, esto implica que los servicios ofrecidos por una computadora pueden ser accesados a través de un nombre completamente calificado. El nombre de un dominio puede tener hasta 63 caracteres de longitud y puede pertenecer a cualquiera de los 127 niveles posibles. En el protocolo DNS no existe diferencia entre mayúsculas o minúsculas. Un dominio puede ser una computadora o puede ser un nodo del cual parten otros dominios.

Un nombre de dominio es un índice dentro de la base de datos DNS. Los nombres indexados en un dominio son las rutas que conforman el espacio de nombres de dominio. El nombre completo asociado a una dirección IP es una secuencia de nombres de dominios asignados desde su nodo hasta el nodo raíz.

El espacio de dominio de la red Internet está dividido básicamente en tres niveles: Nivel Raíz, Nivel Tope y Nivel secundario. En la figura 1.2 podemos observar el nivel jerárquico de cada uno de estos niveles.

Figura 1.2 Espacio de dominio de la red Internet

Figura 1.2 Espacio de dominio de la red Internet

Los servidores de nombres de dominio superiores, es decir, los servidores de nombres de raíz primarios, son los servidores que delegan la resolución de nombres de dominios por números IP a los servidores de nombres de dominio de nivel tope. Los nombres de dominios de nivel tope más comunes en la red Internet son los dominios genéricos:

-. Com. Son dominios asignados a organizaciones comerciales. Ej. newdevices.com.

-. Edu. Son dominios asignados a instituciones educativas. Ej. ucv.edu.

-. Gov. Son dominios asignados a agencias gubernamentales.

-. Net. Son dominios asignados a organizaciones relacionadas con la red Internet.

-. Org. Son dominios asignados a organizaciones sin fines de lucro.

Además de estos nombres de dominio incluidos en el nivel tope se encuentran los nombres de dominio geográficos basados en la nomenclatura ISO3166. Cada uno de estos nombres de dominio son administrados por cada país. Este tipo de nombres de dominio son organizados por localidad y son útiles para organizaciones y negocios que deseen operar en dicha localidad geográfica.

Los servidores de nombres de dominio de nivel tope delegan la resolución de nombres por números IP a los servidores de nombres de dominio de nivel secundario. En este nivel se encuentran todos los nombres de dominio asignados a las computadoras que ofrecen servicios de Internet. Ejemplo: www.caida.org..

Dentro del espacio de nombres de dominio de la red Internet se encuentra el espacio de nombres de dominio in-arpa.addr cuya función es asociar una dirección IP con un nombre de dominio de esta manera el usuario a partir de una dirección IP puede conocer el nombre de dominio asociado a dicha dirección IP. En este espacio de nombres de dominios la dirección IP se lee desde lo más especifico a lo más general; Por ejemplo www.caida.org. (192.172.226.123) se leeria 123.226.172.192.in-addr.arpa. lo cual retorna en una búsqueda a www.caida.org..

Base de datos del protocolo DNS

Cada servidor de nombres de dominio mantiene una base de datos que sirve para asociar los nombres de dominios con direcciones IP. Está base de datos se conoce con el nombre de archivos de la zona. Cada servidor de nombres de dominio también mantiene una base de datos de resolución inversa. Esta base de datos se conoce con el nombre de archivos de resolución inversa de la zona.

Ambas bases de datos son manejadas por un servidor de nombres, el cual responde a las solicitudes hechas por el resolver. El formato de dichas bases de datos son archivos de texto donde se definen los registros de recurso "Resource Records RR" que sirven para especificar la relación entre un nombre de dominio y una dirección IP además sirve para especificar en qué zona del espacio de nombres de dominios el servidor de nombres de dominios pertenece. La siguiente tabla presenta los registros de recursos más comunes para la clase IN, es decir; Internet.

Nombre del Recurso Tipo de Registro Función
Inicio de autoridad SOA Parámetros que gobiernan la zona
Servidor de nombres NS Indentifica el servidor de nombres de una Zona.
Dirección A Asocia un nombre con una direccion IP
Puntero PTR Asocia una direccion IP con un nombre. Búsqueda inversa
Oficinas de Correo MX Indentifica donde deben ser enviados los correos electrónicos del dominio
Nombre Canonico CNAME Define un alias para un nombre ya definido
Informacion de estación HINFO Utilizado para definir el hardware y/o Sistema operativo de un computador
Servicios ofertados WKS Anuncia los servicios
Text TXT Almacena cualquier información

El formato de un registro de recurso es el siguiente:

[nombre] [ttl] IN <tipo de registro> <valor>

-. [nombre] es el nombre del objeto referenciado por el registro del recurso. Puede ser un nombre de estación o un nombre de dominio.

-. [ttl] es el tiempo de vida del registro. Define la cantidad de segundos que la información sobre este registro puede ser mantenida en la memoria de un servidor de dominios. Si el ttl es omitido usa el ttl indicado por el recurso definido en la sección SOA.

-. IN Identifica la clase del registro como clase Internet.

-. <tipo de registro> Identifica el tipo de recurso de acuerdo a la tabla anterior.

-. <valor> es la información específica al tipo de recurso.

Servidores de nombres Autoritarios

Cada zona goza de un servidor de nombres de dominio autoritario. Un servidor de nombres de dominio autoritario es la autoridad de la zona ya que contiene todos los registros de recursos de la zona. Un servidor de nombres de dominio autoritario se define con el registro de recurso NS y SOA.

Para que el protocolo DNS sea tolerante a fallas se recomienda dos o más servidores de nombres de dominio autoritarios por zona donde al menos uno de ellos sea master. Existen diferentes tipos de servidores de nombres autoritario, a saber:

-. Servidores de nombres de dominio Primario o Master

-. Servidores de nombres de dominio Secundarios o Esclavos

-. Servidores de nombres de dominio Recursivos o Cache

El servidor que contenga los datos de la zona en su sistema de archivos se conoce con el nombre de servidores de nombres de dominio primario o master. Los servidores de nombres de dominio primarios cargan los datos de la zona a través de los archivos de la zona ubicados en el sistema de archivo del servidor.

Los servidores de nombres de dominio esclavos cargan el contenido de la zona de otro servidor usando un proceso de réplica conocido como transferencia de la zona. Los datos se transfieren típicamente desde un servidor de nombres de dominio primario.

Un servidor de nombres de dominio recursivos o cache utiliza búsquedas recursivas en el sistema de nombres de dominio con el fin de buscar la dirección IP asociada al nombre de dominio solicitado por el resolver y por cada búsqueda el servidor de nombres de dominio recursivo almacena el resultado en memoria "Cache" con el fin de acelerar futuras búsquedas. Un servidor de nombres de dominio recursivo es conocido también con el nombre de servidor de nombres de dominio cache.

Métodos de búsqueda

Los servidores de nombres de dominio no sólo pueden ofrecer al resolver los datos de la zona que tienen autoridad sino que pueden buscar a lo largo del espacio de dominios, datos sobre los que no tienen autoridad. A esto se le como conoce como resolución. La resolución comienza siempre desde los servidores de nombres de dominio superiores "Servidores de nombres de dominio de raíz primarios" hasta llegar al servidor de nombres de dominio de nivel secundario que tiene la información acerca de la zona solicitada por el resolver. El proceso de resolución o búsqueda puede ser de dos tipos: Recursiva o Iterativa.

Una búsqueda recursiva consiste en que un servidor de nombres de dominios a medida que obtiene respuestas durante el proceso de resolución de nombres de dominios este va guardando los nombres y su dirección IP asociada en una memoria cache con el fin de acelerar el proceso de búsqueda si la misma información es solicitada nuevamente.

Una búsqueda iterativa consiste en que el servidor de nombres de dominios da la mejor respuesta posible basado en la información contenida en los archivos de la zona y en la memoria cache. La preguntas "Queries" solicitadas a los servidores de nombres de dominio raíz solo pueden ser iterativas.

En la figura 1.3 podemos observar como la computadora PC1 a través de una aplicación cliente que hace uso del protocolo HTTP, requiere establecer una conexión TCP, puerto de destino 80 con el servidor de servicios WWW cuyo nombre de dominio es www.debian.org.. Para poder establecer dicha conexión TCP, la aplicación del computador PC1 hace uso de la función gethostbyname(www.debian.org) ofrecida por la aplicación resolver con el fin de iniciar el proceso de resolución. Una vez ejecutada dicha función la aplicación resolver pregunta al servidor de nombres de dominio de la zona donde se encuentra el computador PC1 "¿Cuál es la dirección IP del nombre de dominio www.debian.org?" a partir de este momento los siguientes pasos ocurren:

Figura 1.3 Método de resolución de nombres por números IP

Figura 1.3 Método de resolución de nombres por números IP

-. El servidor de nombres de dominio ejecuta una búsqueda en los registros de recursos ubicados en la memoria cache y en los archivos de la zona. Si la búsqueda no arroja resultados, el servidor de nombres de dominios pregunta a los servidores de nombres de dominio raíz.

-. Los servidores de nombres de dominio raíz "f.root-servers.net" responden indicando que el servidor de nombres de dominio de la zona debian.org. puede ser encontrado en el servidor de nombres de dominio org. "B.GTLD-SERVERS.NET". En este paso podemos apreciar como los servidores de nombres de dominio raíz "f.root-servers.ne" delegan las búsquedas a los servidores de nombres de dominio de nivel tope "B.GTLD-SERVERS.NET", tal como lo es el dominio org..-. El servidor de nombres de dominio local pregunta a los servidores de nombres de dominio"B.GTLD-SERVERS.NET" org. ¿cuál es la dirección IP del dominio www.debian.org?.. El servidor de nombres de dominios "B.GTLD-SERVERS.NET" org. encuentra que uno de los servidores de nombres de dominios de la zona debian.org. es administrada por el servidor de dominios "NS2.CISTRON.NL => IP 62.216.31.55". Esta información es enviada al servidor de nombres de dominio local.

-. El servidor de nombres de dominio local pregunta al servidor de nombres de dominio NS2.CISTRON.NL: ¿Cuál es la dirección IP del nombre de dominio www.debian.org.? Este servidor responde con la dirección IP asociada al dominio www.debian.org => 192.25.206.10. Luego el servidor de nombres de dominio local almacena en la memoria cache www.debian.org => 192.25.206.10 y la función gethostbyname(www.debian.org) finaliza retornando la dirección asociada al nombre de dominio www.debian.org.. A partir de este momento la aplicación que hace uso del protocolo HTTP puede iniciar la conexión TCP, puerto 80 con el servidor de servicios WWW cuyo nombre de dominio es www.debian.org..

Con este ejemplo pudimos demostrar que el sistema de nombres de dominios del protocolo DNS es una base de datos distribuida que permite un control local sobre los segmentos de la base de datos en general, logrando que cada segmento esté disponible a lo largo de toda la red Internet. El sistema de dominios de nombres utiliza un esquema cliente servidor.

Servidores de nombres de dominio

La aplicación de servicios de nombres de dominios más conocida he implementada en la red Internet es BIND "Berkeley Internet Name Domain". Esta aplicación actualmente es mantenida y desarrollada por la organización sin fines de lucro: The Internet Software Consortium "www.isc.org". Esta aplicación determina el lugar de los archivos de configuración de la zona a través de un archivo de configuración cuyo nombre por defecto es named.conf. Un ejemplo de este archivo de configuración es el siguiente:

noteimporta-2:/etc/bind# more named.conf


options {

// La siguiente linea indica que el directorio de trabajo de la aplicación named "BIND es directory "/var/cache/bind".
// En este directorio se guardan todos los archivos generados transitorios generados por named.

directory "/var/cache/bind";

//La siguiente linea indica que el servidor no va a responder de manera autoritativa si el dominio solicitado no existe.

auth-nxdomain no;

};

//La siguienete tres lineas sirven para indicar el archivo de la zona raiz donde de encuentran nombres de los servidores raices y sus direcciones de IP asociadas.
//

zone "." {
type hint; //Tipo de servidor definido para esta zona Cache.
file "/etc/bind/db.root";
};

//Las siguientes lineas sirven para indicar el archivo de las zonas: localhost, 127.in-addr.arpa, 0.in-addr.arpa y 255.in-addr.arpa

zone "localhost" {
type master; //Tipo de servidor definido para esta zona Master.
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master; //Tipo de servidor definido para esta zona Master
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master; //Tipo de servidor definido para esta zona Master
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master; //Tipo de servidor definido para esta zona Master
file "/etc/bind/db.255";
};

Esta es la información contenida en el archivo db.local

noteimporta-2:/etc/bind# more db.local

;
; BIND data file for local loopback interface

;
$TTL 604800

@ IN SOA localhost. root.localhost. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;
@ IN NS localhost.

@ IN A 127.0.0.1

Esta es la información contenida en el archivo db.127

noteimporta-2:/etc/bind# more db.127

;

; BIND reverse data file for local loopback interface

;

$TTL 604800

@ IN SOA localhost. root.localhost. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;
@ IN NS localhost.

1.0.0 IN PTR localhost.

Esta es la información contenida en el archivo db.0

noteimporta-2:/etc/bind# more db.0

;
; BIND reverse data file for broadcast zone

;
$TTL 604800

@ IN SOA localhost. root.localhost. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS localhost.

Esta es la información contenida en el archivo db.255

noteimporta-2:/etc/bind# more db.255

;

; BIND reverse data file for broadcast zone

;

$TTL 604800

@ IN SOA localhost. root.localhost. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS localhost.

Los archivos de configuración presentados pueden ser utilizados por un servidor de nombres de dominios local.

Anterior  Inicio  Siguiente

© 2002 New Devices. Derechos Reservados.