Fundamentos de DNS

El Deposito

Aunque DNS no sea mencionado en los medios como Java,Cisco,Microsoft u otra tecnología, DNS forma una parte muy importante de Internet que es: la resolución de nombres (www.osmosislatina.com) a nodos IP (213.123.123.1) , para esta resolución se utiliza comúnmente el software llamado BIND ("Berkeley Internet Name Domain") que esta disponible en varias versiones de *nix e inclusive en plataformas Windows.

BIND funciona como un base de datos distribuida que mantiene información sobre las direcciones textuales de una Red, (la información sobre direcciones lógicas ("Nodos IP") es labor de un Router .

Considere la importancia de esta resolución : la localización de un sitio en Internet y el envío de correo electrónico dependen de esta resolución.

Resolvers

Toda computadora ya sea: Servidor,PC o Laptop utilizando Linux,HP-UX,AIX, Sun o Microsoft Windows utiliza un Resolver , este resolver es el encargado de encontrar la resolución de nombres para todos los programas que soliciten una resolución, esto es, cuando de "Internet Explorer" se visita un sitio,IE se comunica con el Resolver , cuando se envía un correo electrónico el "Mailer" (Outlook o Eudora) se comunica con el Resolver , al realizar un telnet se utiliza el Resolver , y es este mismo resolver quien regresa los resultados al programa que esta solicitando la información. Esta información es precisamente la resolución de nombres textuales a nodos IP

De donde obtiene la información el Resolver ?

En Unix

Existen dos archivos llamados resolv.conf y host.conf ambos bajo el directorio /etc/ que contienen datos sobre como obtendrá información el resolver .

  1. /etc/host.conf : Contiene el orden como serán ejecutadas las resoluciones que requiera el "Host", este archivo normalmente contiene la siguiente linea:

    order hosts,bind,nis

    El significado de estos parámetros es que cualquier tipo de resolución de nombres primeramente debe ser ejecutada en el archivo /etc/hosts , posteriormente se debe consultar a BIND y si aún no se ha logrado la resolución, intentar con NIS ("Network Information Server"), si después de consultar este servicio no es posible la resolución, el Resolver responderá que no fue posible localizar el "Host".

    • /etc/hosts : El archivo hosts ubicado en el directorio /etc contiene la resolución de "Hosts" que fueron definidos localmente, en muchas ocasiones se opta por este tipo de resolución debido a su rapidez ya que la información reside en el mismo "Host" que esta solicitando la resolución, sin embargo, una de las desventajas que presenta este archivo es que debe ser modificado manualmente , además en implementaciones de tamaño mediano-grande el mantener este archivo (hosts) actualizado en varios "Hosts" presenta una carga administrativa excesiva. El contenido de /etc/hosts puede ser el siguiente:

      192.168.12.2 produccion.osmosislatina.com servidor1
      10.10.102.1 desarrollo.osmosislatina.com servidor2
      127.0.0.1 localhost mimaquina 
         

      Las lineas anteriores tienen la forma: Nodo_IP nombre_del_Host_completo Alias , el Alias como su nombre lo indica es para evitar utilizar el nombre completo del "Host"(FQDN "Fully Qualified Domain Name"), esto es, telnet produccion.osmosislatina.com es lo mismo que ejecutar telnet servidor1

    • BIND : Es el tema de esta guia y será descrito a mayor detalle en las demás secciones.

    • NIS : "Network Information Server" es un sistema de resolución desarrollado por Sun Microsystem's , su implementación generalmente esta limitada a Intranets y utiliza una metodología diferente a aquella usada por BIND .

  2. /etc/resolv.conf : Anteriormente se pudo observar que el archivo /etc/host.conf especifica como segunda opción a BIND , pero aun no se sabe cuales o cuantos servidores BIND serán utilizados para la resolución, /etc/resolv.conf coordina información sobre como serán utilizados los servidores BIND. Este archivo define varios parámetros y tiene la siguiente forma:

    domain osmosislatina.com 
    search osmosislatina.com supple.com telmex.net 
    nameserver 124.13.24.1 
    nameserver 124.13.17.2
    nameserver 64.12.45.12
    sortlist 124.13.24.0/255.255.255.0 64.0.0.0
    

    La parte más importante de este archivo son los parámetros nameserver , estos indican cuales son las direcciones IP de los servidores DNS que deben ser utilizados. La sección sortlist aunque opcional es utilizada para indicar la preferencia de los nameserver's , esto garantiza que el servidor DNS en 124.13.24.1 tendrá preferencia sobre todos los demás, esta preferencia se puede deber a cercanía o capacidad del "Host"

    El parámetro domain indica el dominio al cual pertenece el "Host", en este caso osmosislatina.com , mientras que el parámetro search es utilizado como un auxiliar para la resolución de nombres, esto es, si se ejecuta el comando telnet lejano , al momento que se utilice la resolución DNS, éste agregará los dominios que se encuentren en search , intentará telnet lejano.osmosislatina.com , telnet lejano.hostway.com .....lo anterior ahorra tiempo de escritura al usuario final.

En Windows

La configuración para Windows 98 y NT es muy similar a la de Unix, sin embargo, debido a su "pseudo-sencillez" no es tan flexible.

En Unix es posible especificar el Orden en que serán utilizados ciertos servicios para la resolución de nombres, esto se hace en el archivo /etc/host.conf , pero en Windows (hasta donde el autor conoce) la resolución se lleva acabo automáticamente de la siguiente manera:

  1. Revisar el nombre local ("localhost") para verificar si la llamada es hacia el mismo "Host".
  2. Verificar el archivo HOSTS
  3. Intentar una resolución con los servidores DNS especificados
  4. Verificar el archivo LMHOSTS
  5. Utilizar los servidores WINS

Links: