miércoles, 17 de febrero de 2010

COMO FUNCIONA EL SERVICIO DNS

(Sistema de Nombres de Dominio)

1. EL MOTIVO DEL SERVICIO DNS.


En las redes que usan el protocolo TCP/IP, tales como Internet, la forma primaria de distinguir un ordenador de otro es mediante su número de IP , de forma similar a como en la red telefónica se distingue un terminal entre todos los posibles mediante el número de teléfono.

Para esquivar la necesidad de que los seres humanos nos tuviéramos que aprender de memoria largas listas de números de teléfono se inventaron las guías telefónicas. De la misma manera, encontramos que la utilización de números de IP para “llamar” a otros ordenadores desde el nuestro resulta inconveniente. La solución a éste problema fue, allá por los años 80, la invención de los Nombres de Dominio y del servicio DNS.


2. DEFINICIONES DE DOMINIO Y DNS.

Un nombre de dominio es, sencillamente, una serie de secuencias de caracteres separadas por puntos, que identifica de forma unívoca a un conjunto de recursos (léase ordenadores) entre todos los de la red, o incluso a uno concreto. El nombre de dominio de una máquina la caracteriza y distingue de entre todas las existentes tan bien como su número de IP. Un ejemplo de esto podría ser: “www.canarycad.org” (sin las comillas).


El SERVICIO DNS se diseñó para permitir, por ejemplo, el que al usar un navegador de Internet no necesitemos recordar el número de IP del servidor web al que queremos acceder, en vez de eso nos basta teclear el nombre de domino completo del mismo, el navegador, de forma automática, consulta al servidor de DNS que tengamos configurado la dirección IP correspondiente a dicho nombre de dominio. Este proceso recibe el nombre de RESOLUCIÓN del Nombre de Dominio. Cuando recibe la respuesta, y de forma transparente para nosotros (o sea sin que nos demos cuenta), “marca” dicho número de IP y entra en comunicación directa con el servidor web.

Pero, ¿cómo funciona internamente esto del DNS?. Pues vamos a ver si lo puedo explicar.


3. COMPORTAMIENTO OBSERVABLE DEL SERVICIO DNS.

Cuando invocamos el servicio DNS, por ejemplo al usar el comando ping con el nombre DNS (el FQDN) de un ordenador, en vez de con su número de IP, se produce la resolución del nombre sin importar donde esté la máquina con la que queremos conectar, ya puede ser en el edificio de enfrente, en la ciudad de al lado, o en China. Este comportamiento nos puede llevar a pensar que todos los servidores de DNS tienen una copia de toda la “guía telefónica” de Internet.

Nada más lejos de la verdad. En realidad la práctica totalidad de los servidores de DNS existentes no cuentan más que con una pequeña parte de la información, lo que pasa es que éste servicio fue definido de tal manera que un servidor DNS que no tenga un dato concreto puede consultar con otros servidores DNS hasta encontrarlo, o hasta determinar que no existe y devolver el correspondiente mensaje de error.

4. NIVELES DE LOS NOMBRES DE DOMINIO.

Como ya dije en el punto 4, en un nombre de dominio completo (FQDN) se distinguen diferentes nombres de dominios individuales separados por un punto. Dichos dominios se numeran empezando a contar por la derecha. Así se dice que el más a la derecha es un dominio de PRIMER NIVEL, el siguiente hacia la izquierda de segundo nivel, y así hasta el finalizar el nombre. Por ejemplo en “promo2005.tecnocad.org” el dominio de 1er nivel es “org”, el de 2º nivel es “tecnocad”, y “promo2005” es el de 3º.

De cada dominio se dice que es SUBDOMINIO del dominio de nivel inmediatamente anterior, así en el ejemplo anterior “promo2005” es subdominio del dominio “tecnocad”, y “tecnocad” es subdominio del dominio “org”. Cada dominio del nivel N depende de otro dominio del nivel N-1.

Además de los distintos niveles de los dominios existe lo que se denomina la RAIZ del árbol de dominios, ó sencillamente DOMINIO RAIZ, que se representa por un punto “.”. El Raíz es el único dominio que no depende de ningún otro.

El término Raíz para el dominio “.” viene de que suele representarse toda la información gestionada por el servicio DNS usando una estructura de árbol invertido, donde el extremo superior es la raíz, de la que descienden ramas que van a parar a nudos que representan los dominios de 1er nivel, de donde a su vez descienden ramas que terminan en otros nudos, que representan los dominios de 2º nivel, y así en adelante.

El FQDN de un recurso concreto (por ejemplo un ordenador) contiene el FQDN del dominio al que pertenece, y un identificador del dato característico asociado (por ejemplo de su número IP). Así en “www.canarycad.org” el dominio es “canarycad.org”, y “www” no es un subdominio, sino el nombre del registro HOST asociado a esa máquina (un registro host contiene justamente un número de IP).


5. COMO SE REPARTE DE LA INFORMACION DE LOS DOMINIOS ENTRE DISTINTOS SERVIDORES.

Toda la información asociada a uno de los dominios individuales está íntegramente contenida dentro de un único servidor de DNS, que se dice que es la AUTORIDAD para él.

Los datos guardados en un servidor Autoridad para un dominio son de naturaleza diversa, de momento nos basta con saber que entre ellos se encuentran dos tipos especialmente importantes: 1) el nombre y dirección IP de cada uno de los hosts que dependen directamente de éste dominio (el host “www.casi.medical.org” depende directamente del dominio “casi.medical.org”, pero NO del “medical.org”), y 2), también contiene el FQDN de cada uno de los Servidores de Autoridad de los subdominios de éste dominio (si no lo fuera el actual).

La función principal del Dominio Raíz es contener la relación de los Servidores de Autoridad de los dominios de primer nivel (tales como “org”, “com”, “net”, “es”, “fr”, “uk”, etc...).

Si el organismo competente nos concede Autoridad sobre un dominio, o mejor dicho, si se la concede a un servidor que nosotros administramos, eso implica que podremos añadir a dicho dominio toda la información que deseemos, tal como subdominios, direcciones de IP de servidores web, ó ftp, ó de ordenadores cualquiera, nombres de servidores de e-mail, etc..., y que dicha información estará automáticamente disponible en Internet sin que tengamos que solicitar ninguna autorización adicional por nuestra parte. Justamente eso es lo que quiere decir que nosotros administramos el dominio.


6. COMO SE BUSCA LA INFORMACION EN LOS SERVIDORES DE DNS.

Como dije en el punto 3, un servidor de DNS que no tenga el dato que se le solicita puede consultar con otros servidores DNS (o sea cuando no pueda resolver el nombre de dominio con sus propios datos). Existen dos maneras.

La primera, la más simple, recibe el nombre de Procedimiento Iterativo ó BUSQUEDA ITERATIVA. Consiste en que el servidor DNS proporciona al ordenador que hizo la pregunta las direcciones de otros varios servidores de DNS para que se la pueda enviar también a ellos.

Como es evidente, esta manera no garantiza el éxito de la consulta, porque es posible que los otros (pocos) servidores DNS mencionados por el primero tampoco sepan la respuesta.

La segunda manera, en cambio, sí que tiene garantizado el éxito. Recibe el nombre de Procedimiento Recursivo ó BUSQUEDA RECURSIVA.

Será más fácil de explicar con un ejemplo. Digamos que yo, usuario final, quiero ver en mi navegador de Internet la siguiente web: “www.calma.total.org”. Pues bien, a tal efecto pongo esa dirección (sin las comillas) en el espacio reservado para ello en mi navegador. Los sucesos que ocurren a partir del momento en que pulse Intro son los siguientes (simplificados):

1) Mi navegador pregunta al servidor DNS que tengo configurado, al que llamaremos DNSmío, la dirección IP que corresponde al host “www.calma.total.org”.

2) DNSmío no tiene la información así que decide obtenerla usando una búsqueda recursiva, para lo cuál mira en su propia configuración la lista de números de IP de los de los Servidores de Autoridad del dominio Raíz (que son pocos) y elige uno, al que vamos a llamar DNSraiz.

3) DNSmío envía a DNSraiz una petición para saber qué servidor es la Autoridad para el dominio “org”. RAIZ responde con el dato de que la Autoridad la tiene el servidor DNSorg (conviene destacar que si un Servidor Autoridad no tiene éste dato entonces es que no existe tal servidor ó subdominio, es decir que el nombre del subdominio no está registrado, y por tanto es erróneo ó “ilegal”).

4) DNSmío pregunta ahora al servidor DNSorg quién es el servidor de Autoridad para “total.org”. DNSorg devuelve una referencia a otro servidor de DNS al que llamaremos DNStotal.

5) DNSmío vuelve a preguntar, esta vez al ordenador DNStotal, por la Autoridad para “calma.total.org”. DNStotal responde que es otro servidor, que llamaremos DNScalma.

6) Por último DNSmío pide a DNScalma el contenido de un registro de tipo host (ó sea un número de IP), y de nombre “www.calma.total.org”.


7. LIMITACIONES EN LOS NOMBRES DE DOMINIOS.

La relación de caracteres válidos en los nombres de dominios, y el número mínimo y máximo de los mismos, no está estandarizada a nivel de Internet. Es decir que distintos dominios tienen reglas para componer los nombres algo diferentes.

Por mencionar un caso típico, los subdominios del dominio “.com” pueden tener hasta 67 caracteres, a elegir entre letras, números, y guiones (aunque no pueden comenzar ni terminar en guión).

En la siguiente dirección puede encontrarse la relación de los caracteres permitidos y longitud máxima para los dominios de 1er nivel más comunes: “http://bitsolution.com.mx/clientes/especificaciones.htm”.


8. LAS ZONAS EN LOS SERVIDORES DNS.

Un determinado servidor de DNS que tenga la Autoridad sobre un dominio concreto, por ejemplo sobre “megared.net”, no está obligado a delegar la Autoridad sobre ninguno de sus subdominios. Por tanto podría seguir siendo autoridad sobre “megared.net”, sobre “canarias.megared.net”, sobre “laspalmas.canarias.megared.net”, etc...

Pues bien, se conoce como ZONA al conjunto de un dominio delegado, junto con todos los subdominios del mismo que NO lo están.

Como consecuencia de lo anterior el servidor DNS que tenga la Autoridad para un dominio delegado, también tendrá la Autoridad para todos los otros subdominios de la misma Zona, pero no para los otros subdominios que no están en ella (o sea para los delegados).

Un servidor de DNS concreto puede contar con cero, una, o muchas zonas. Parte de ellas pueden venir de delegaciones de Autoridad, otra parte pueden ser copias de zonas cuya Autoridad está en otro servidor, pero que, por cuestiones de seguridad y de rapidez, se duplican en el nuestro.


9. DUPLICACION DE ZONAS Y CACHE.

Si la el Servidor de Autoridad para un cierto dominio fuera el único servidor que contara con la información sobre el mismo el sistema resultaría un tanto frágil, y además sería fácil sobrecargarlo con demasiadas peticiones de información, con lo que se perdería velocidad en las consultas (imagínense si sólo existiera un servidor para el dominio Raíz).

Para solventar este inconveniente al definir servicio DNS se incluyeron algunos mecanismos para que la información pudiera residir en más de un servidor.

Un SERVIDOR CACHE DE DNS es un servidor DNS que acepta solicitudes de información de los usuarios finales, y que utiliza el mecanismo de Búsqueda Recursiva para localizar los datos pertinentes, pero que después de proporcionarlos a los peticionarios iniciales guarda una copia para sí mismo. A partir de ese momento cualquier otra consulta del mismo dato, o de datos relacionados, puede ser resuelta mucho más rápidamente.

Lo normal es que casi todos los Servidores de DNS sean servidores de caché, no importa si tienen o no autoridad sobre algún dominio. De hecho podemos crear un servidor DNS que no tenga autoridad sobre ningún dominio, y que sólo sirva de caché. Esta situación tiene la ventaja de que no es necesario registrar dicho servidor en Internet, con lo que no hace falta realizar ningún trámite burocrático para ponerlo en marcha ni para usarlo.

La DUPLICACION DE ZONAS consiste sencillamente en que el Servidor de Autoridad para una zona concreta (o sea para un dominio y cero, uno, o varios subdominios del mismo) envíen copia de la información de la misma a otros servidores de DNS, configurados estos para aceptar los datos y distribuirlos a su vez como si fueran propios. La diferencia fundamental entre el servidor de Autoridad y las copias es que no es posible (o no debería serlo) editar la información en las copias, y sí en el servidor de Autoridad. El comienzo de la transferencia puede ser tanto iniciado por el servidor con la Autoridad (el servidor Maestro para la zona) como por el duplicado (servidor/es secundario/s para la zona).

Cuando se registra oficialmente en Internet un servidor como Autoridad para un dominio concreto, por lo general los organismos de registro solicitan que les demos la dirección de al menos dos servidores de DNS, en uno residiría la Autoridad propiamente dicha, y el otro u otros contendrían duplicados de la zona en cuestión. De ésta manera el servidor de autoridad del nivel anterior al nuestro puede distribuir las consultas entre las distintas copias.


10. EL SERVICIO DNS Y EL CORREO ELECTRONICO: DIRECCIONAMIENTO DE E-MAILS.

Las direcciones de correo electrónico están compuestas de 2 partes bien diferenciadas y separadas por el símbolo “@”, por ejemplo “cmmtecno@correo.tecnocad.org”.

Sólo la 2ª parte de las direcciones contienen el nombre de un recurso localizable usando el servicio DNS. Toda la información antes de la arroba no es significativa, porque identifica a una cuenta de usuario concreta dentro de un servidor, y el servicio DNS no guarda información sobre usuarios.

Para declarar los servidores de correo en el servicio DNS se necesitan dos pasos. El primero consiste en almacenar en un registro Host el nombre y la dirección IP del que va a ser el servidor de e-mail. La segunda consiste en añadir un registro de tipo MX, que relaciona el nombre del dominio de correo electrónico con un nombre de servidor (el nombre del servidor y el del dominio de e-mail, por tanto, no tienen porqué coincidir, ni aún parecerse).

Un ejemplo: la compañía Know-How ha registrado el dominio “knowhow.com” con la autoridad competente, quien ha delegado la Autoridad sobre el mismo en el servidor “isp.logidos.org”. Know-How desea utilizar ése dominio para las cuentas de correo de sus empleados. Como no quieren poner su propio servidor acuerdan con otra empresa llamada Canaricad, que ya lo tiene y que lo ha registrado como “mail.canaricad.org”, que le dé ese servicio. Know-How se pone entonces en contacto con quien administra el servidor “isp.logidos.org” (y por tanto su dominio) para que cree dentro de “knowhow.com” un nuevo registro de tipo MX, y que le asocie el nombre de servidor “mail.canaricad.org”. A partir de ese momento ya puede solicitar de Canaricad que cree todas las cuentas de e-mail que desee, ya que cualquier correo que se envíe a una dirección que termine en “@knowhow.com” terminará en el servidor “mail.canaricad.org”.


11. DONDE ENCONTRAR MÁS INFORMACION.

Todas las especificaciones técnicas del servicio DNS han sido publicadas en Internet en forma de documentos RFC, y son fáciles de encontrar.

Los documentos principales sobre éste tema son las RFC0882 y RFC0883, que datan de 1983 y contienen las especificaciones originales del servicio DNS, y las RFC1034 y RFC1035, que datan de 1987 y son las que están en vigor actualmente (con numerosas modificaciones y añadidos).

Pueden consultar los originales en Inglés en la dirección: “http://www.rfc-editor.org”.

Es posible encontrar algunas RFCs traducidas al Español en diversas webs, una de las que tiene más material traducido está en: “http://www.rfc-es.org/index.php”.

No hay comentarios:

Publicar un comentario