Sunday, February 26, 2012

DNS I: Introducción al Sistema de Nombre de Dominio (Domain Name System)

DNS es un sistema de bases de datos distribuidas, cuyas tablas de direcciones no se almacenan totalmente en un único host, sino que están distribuidas a través de varios servidores.

¿Que es un Dominio?

Un dominio es una división lógica del DNS y por lo tanto de su base de datos.

Cada dominio representa una rebanada de todo el pastel DNS. Los siete primeros dominios "genéricos" mas conocidos tienen terminaciones de tres letras (.com, .org, .edu, .net, y otros menos extendidos como .int, .gov, y .mil). La lista de dominios principales se ha ampliado para incluir .aero, .biz, .coop, .info, .museum .name, .pro, etc. Cuando hablamos de dominios genéricos podemos pensar en los dominios que utilizamos todos los días (por ejemplo: google.com o yahoo.com). 

También hay dominios de dos letras, que a menudo representan códigos de países como por ejemplo Colombia (.co), México (.mx), España (.es), los Estados Unidos (us), Francia (.fr), el Reino Unido(.uk) y Austria (.at) entre muchos otros.

Anteriormente las direcciones IP y nombres de dominio se mantenían en tablas que eran descargas cada noche. A medida que Internet fue creciendo, esto se volvió poco práctico, especialmente por el tamaño de las tablas y las cuestiones relacionadas con algún punto de fallo. Este es un extracto de el archivo estático /etc/hosts de un servidor basado en UNIX: 

A pesar de que los equipos UNIX y Windows aun albergan un pequeño archivo llamado etc/host con las direcciones utilizadas frecuentemente, esta función ha sido aumentada agregando capacidades DNS. Los equipos  están configurados para  buscar primero de forma recursiva en el archivo etc/hosts, si el dispositivo solicitado no se encuentra allí, busca el DNS para la resolverlo Iterativamente.

¿cómo funciona realmente una resolución de nombres DNS? 
Las personas se refieren a los hosts por nombres fáciles de recordar y generados  por inspiración divina :), mientras que los computadores se refieren a los hosts por su dirección IP binaria. Después de todo, El datagrama IP posee un campo para la  dirección IP y no para  el nombre del host.  

A nivel muy básico podemos decir que una resolución DNS traduce una dirección IP a un nombre de host, o de manera inversa, un nombre de host en una dirección IP. Esto implica dos rutinas de resolución: gethostbyname (obtener el host por nombre) y gethostbyaddr (obtener el host por dirección).

 
Cuando un host emite una petición gethostbyaddr, este entrega una dirección IP al servidor DNS y le solicita que resuelva el nombre de host. Hay mucho más para procesar que lo que se ve a simple vista. Por el contrario, una petición gethostbyname entrega el nombre de un host al servidor DNS, solicitando la resolución una dirección IP.

NSLOOKUP: Herramienta de consulta DNS, es muy fácil de usar, solo digitas nslookup desde el prompt de windows o la terminal de de linux, y ya puedes jugar con sus diferentes opciones.



nslookup en línea: http://centralops.net/co/NsLookup.aspx 


Si tienes información adicional sobre este tema, tus comentarios o links de referencia serán bienvenidos.

No comments: