Not Another Dynamic DNS

Proyecto final del ramo Programación de Sistemas.
Desarrollado por:
Claudia Codriansky/Fransisco Castillo
                     Trabajo                                                           
Copyright Claudia Codriansky/Francisco Castillo

El Sistema de servidores de nombres de dominio se puede ver como una "base de datos" que se distribuye a lo largo de múltiples host en Internet en la cual se especifica relación que existe entre una dirección IP y un nombre de máquina en especifico. Es un sistema basado en la arquitectura cliente-servidor. Los conceptos mas importantes son descritos a continuación.


Espacio de nombres de Dominio

La figura es una pequeña ilustración acerca de ésta base distribuida, la base de datos se ordena de acuerdo a un árbol invertido en cuya cima se encuentra la raíz, representada por un punto, que la mayoría de las veces se omite, en cada una de las bifurcaciones existe un tag amigable para los humanos. Los diferentes caminos que se pueden recorrer, se conocen como "espacio de nombres de dominios". Y la idea detrás de un recorrido es identificar a un host o maquina especial. La máxima profundidad que se puede alcanzar es de 127 niveles.

Nombre de Dominio

Como se dijo anteriormente cada nodo del árbol tiene un tag asociado, sin puntos, que pueden ser de hasta 63 caracteres. El zero-lenght (sin tag) esta reservado para la raíz.

Los nombres de dominio se leen desde el nodo(desde abajo hacia arriba) hasta la raíz, incluyendo estos puntos en las bifurcaciones. Los nombres de dominio son nombres de equipos en donde se proporciona un sistema para "nombrar" a un determinado computador en vez de reconocerlo por una IP numérica.
Ejemplos

El siguiente ejemplo ilustra la diferencia entre una URL (Uniform Resource Locator) y un nombre de dominio:

URL: http://www.wikipedia.org/
Nombre de dominio en ascii: wikipedia.org

Dominio

Es simplemente un rama del árbol del "espacio de nombres de dominio". Para la figura se puede ver el dominio de los .cl o el dominio utfsm.cl. Los host están representados como se dijo anteriormente por "nombres de dominio" en la figura se identifica "aragorn.elo.utfsm.cl" . Los nombres de dominio solamente están indicados dentro de la base de datos del DNS

Dominios de nivel superior ( Top level domains )

Cada nombre de dominio termina en un Dominio de nivel superior (TLD), que es siempre o bien uno de una pequeña lista de nombres genéricos (tres o más carácteres), o un código territorial de dos caracteres basado en la ISO-3166 (hay pequeñas excepciones y los nuevos código se integran caso por caso).

Las extensiones (gTLD) son:

Servidor de nombres (DNS) y zonas

Los servidores de nombres (DNS) son programas que almacenan información acerca de los espacios de nombres de dominio. Estos generalmente tienen información acerca de una parte del espacio de nombres. Lo que se conoce como zona. Estas información es leída desde un archivo o desde otro servidor de nombres.

Diferencia entre dominio y zona

Todos los top level domains y muchos niveles de segundo orden y mas abajo son divididos en niveles más chicos mediante la delegación. Por ejemplo la zona cl contiene mayoritariamente información de la delegación de subdominios .cl. Una zona y sus dominios comparten el mismo nombre de dominio pero contienen diferentes nodos. El nombre de dominio cl contiene información de cl + utfsm.cl + pucv.cl, etc. Pero la zona cl solo contiene información de cl. probablemente solo punteros a los subdominios delegados.

Sub-dominios delegados

En abstracto. Involucra la asignación de una parte de un dominio a otra organización. La información de una zona en vez de contener información acerca del dominio delegado contiene punteros hacia los servidores de nombres que tienen la autoridad para ese dominio.

Tipos de Servidores de Nombres

Primary Master Lee la información de la zona desde un archivo en un host
Second Master Obtiene la información de la zona desde otro servidor de nombres que es autoritario de la zona. Al que es llamado Master Server, el Primary Master puede ser el Master Server como no.

El Secondary Master contacta al master Server luego este envía información de la zona, en lo que se llama transferencia de zonas.

Resolver: Cuando los clientes acceden a los servidores de nombres, mediante los diversos programas que existen en los host y los cuales requieren información del espacio de nombres, estos ejecutan las siguientes tareas.

Resolución

Los servidores de nombres están dispuestos a devolver la información de un espacio de nombres. No solo pueden dar información que concierne a su zona, en donde ellos presentan autoridad, si no que además pueden buscar a través del espacio de nombres para encontrar información de la cual ellos no son autoritarios.

Root Name Server

Conocen donde se encuentran los servidores de nombre autoritarios para cada uno de los top-level zones que existen. Al hacer una consulta, al menos dan la respuesta del lugar donde se encuentra los servidores de nombres del nivel mas alto del nombre de dominio que se quiere encontrar. Estos están ubicados en lugares estratégicos a lo largo del mundo. Se proveen mecanismos como el caching para ayudar a la no sobre carga de los Root Name Server. Pero en la ausencia de otra información la resolución tiene que comenzar con los servidores raíz.

Recursión

Existe recursion en la búsqueda de nombres de dominio, debido a que el servidor de nombres local no hace referencia al resolver de mas datos que la respuesta definitiva, esto es, no le dice donde puede encontrarse un servidor de nombres mas acertado. Esto es porque un Stub Resolver la inteligencia suficiente y el servidor de nombres sabe que no debe contestar con una referencia, además el resolver hace una consulta recursiva.

Las consultas vienen en dos sabores.

Recursiva: Toda la carga de la consulta se pone en un solo servidor de nombres. Con llamadas recursivas para la resolución de nombres.

BIND

Como se ha mencionado a lo largo del documento un servidor de dominios es un software, se ha elegido BIND dado que se distribuye con la mayoría de las distribuciones libres de UNIX y en todas las de LINUX. el servidor BIND DNS es usado en la mayoría de las máquinas de servicios en Internet, proveyendo una arquitectura robusta y estable en la cual el naming de la organización puede ser construido. La librería incluida en BIND porvee un API estándar para la traducción entre dominios de nombres ydirecciones de Internet y está prevista para ser ligada con aplicaciones que requieren servicio de nombres.