Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  News   Archives   Companies   Tips  

Introducción al DNS

by Andreas J Gundacker

Este art�culo se dirige a todos los que est�n interesados en el tema de las redes inform�ticas mundiales como la Internet y el World Wide Web (WWW). Sobre aquellas personas que desean saber m�s sobre su funcionamiento.
Si Ud. se ha preguntado que pasa detr�s de su navegador despu�s de colocar la direcci�n de un servidor, este art�culo le ayudar� a comprender de una manera sencilla los procesos que se llevan a cabo.


Este artículo apareció por primera vez en el Linux Magazine.
Reimpreso con permiso del autor

La rese�a es dividida en cinco secciones:

La primera le explica en palabras breves lo que significa la Internet y como se desarroll�.
La segunda le ayudar� a comprender algunas expresiones t�cnicas.
La tercera se dedica de los protocolos m�s importantes de la Internet: El TCP y el IP.
La cuarta le ayudar� entender el funcionamiento del DNS.
La quinta secci�n pertenece a la parte practica, explicando la creaci�n de un Servicio de Dominio de Nombres (Domain Name Service - DNS) para una red local con un gateway, usando el sistema operativo LINUX, como fue implementado en la red del autor. De este modo el documento sirve como introducci�n b�sica para principiantes y ofrece una referencia pr�ctica para avanzados. 


1 La ARPANET, el origen de la World Wide Web
2 Comprendiendo algunas expresiones t�cnicas  
3 El TCP/IP 
   3.1 El IP y la IP 
   3.2 El TCP (Transmission Control Protocol) 
4 El Sistema de Dominio de Nombres (DNS: Domain Name System) 
   4.1 Un resumen del sistema 
   4.2 �Por qu� se necesita el DNS?
5 La Instalaci�n de un Servidor de Dominio de Nombres
   5.1 Archivos de base de datos (database files)
   5.2 Ressource records
   5.3 Los archivos completos para nuestro dominio ficticio
    5.4 Abreviaciones
  5.5 La Librer�a de Resolver
   5.6 Probando su setup con nslookup

   

(1) La ARPANET, el origen de la World Wide Web

La "Internet" significa todas las redes inform�ticas interconectadas las cuales resultaron de la ARPANET. La ARPANET naci� en el a�o 1969 de un proyecto de investigaci�n de la DARPA (Defense Advanced Research Project Agency) americana. Cuando la ARPANET sali� del estado experimental, se desarrollaron los protocolos b�sicos del TCP IP, los cuales fueron nominados al est�ndar militar (Military Standard) y todas las instituciones que formaban parte de la ARPANET tuvieron que adaptarse a los nuevos protocolos. Para simplificar este cambio, la DARPA encarg� a la empresa Bolt, Beranek &Newman (BBN) para la integraci�n de TCP IP en el sistema Berkley-Unix (BSD). Es por eso que TCP IP y el sistema de operaci�n UNIX se fusionaron.

En el a�o 1983 La ARPANET fue separada. De ella resultaron La MILNET como parte de la Defense Data Network (DDN) y otra ARPANET mas peque�a. El conjunto consistiendo de la MILNET y la ARPANET se dominaba la INTERNET. En el a�o 1990 desapareci� la ARPANET abriendo el paso a la Internet, que abarca una gran cantidad de redes en todo el mundo.

 

(2) Un par de expresiones importantes

Imag�nese que usted esta sentado delante de una computadora que forma parte de una red local (local area network = LAN) del instituto de matem�ticas de su universidad (Figura 1).

La LAN de matem�ticas es conectada v�a el backbone (nodo principal) con la LAN del instituto de f�sicas la cual se encuentra en otro edificio. Usted desea mandar datos a un amigo que esta trabajando en el instituto de f�sicas. Es importante saber, que su computadora y la de su amigo tienen nombres inequ�vocos en la red de la universidad (igual que todas las computadoras en la Internet). Por ejemplo la suya se llama Einstein, la de su amigo se llama Edison. Para que las dos redes f�sicamente independientes puedan comunicarse, necesitan un gateway. Un gateway es una computadora, que es capaz de unir redes f�sicamente independientes. En este caso necesitamos dos gateways - uno para la red local de matem�ticas y una para la red de los f�sicos. En adelante llamamos el gateway de matem�ticas "mats" y el de f�sicas "fisa".


Figura 1: El camino de un datagram de Einstein a Edison

Como el software (rlogin, telnet, ftp etc.) de Einstein no puede mandar datos (paquetes de datos) directamente a Edison, la cual se encuentra en una red f�sicamente independiente, tiene que confiar en un gateway que transporta los paquetes al destino correspondiente. Es decir que el gateway "mats" dirige los paquetes al gateway "fisa", que tiene la misma funci�n para la red de los f�sicos. La transferencia pasa v�a el backbone de la universidad y "fisa" entrega los datos finalmente a Edison. Este esquema de transmisi�n de datos a un host lejano (computadora de una red) se llama Routing y los datos o paquetes de datos son designados datagrams.

(3) El TCP/IP

(3.1) El IP y la IP

Los datagrams como unidades mas peque�as de la transmisi�n de datos son intercambiados por un protocolo - el Internet Protocol (el IP), que es completamente independiente del hardware. De este modo llegamos a la ventaja principal del protocolo IP, que consiste en reunir redes f�sicamente separadas en una red aparentemente homog�nea.

Las funciones principales del IP:

  • Definir datagrams: al enviarse un archivo v�a la red, es dividido en partes mas peque�os, es decir, bloques de datos o paquetes
  • Establecer la direcci�n en la Internet: el IP incorpora esta informaci�n en el cabezal, junto con la identificaci�n del mismo
  • Routing de datagrams a computadoras lejanas: si un datagram va dirigido a una computadora que no se encuentra en la misma red, es direccionado a un gateway para llegar al destino indicado.

Pero por otra parte el IP no dispone de informaciones de control de la transmisi�n (handshake), es decir, que el IP transporta paquetes de un lugar a otro sin el debido control de que se recibieron todos los paquetes en el orden correcto. Este problema lo trataremos m�s adelante.

Ahora tenemos una idea sobre el software de la transmisi�n (Routing). Recordemos que nuestra computadora tiene el nombre Einstein. Las computadoras de redes reciben nombres porque son mas f�ciles de recordar que una secuencia de cifras.

El IP tiene un esquema de direcci�n independiente del hardware. Esto se consigue asignando una cifra �nica de 32 bits a un host; la direcci�n-IP (la IP). La direcci�n IP es representada por cuatro cifras decimales (octetos) separadas por puntos. Einstein por ejemplo, podr�a tener la direcci�n de hardware 0x952C0C02, la cual aparecer�a de la forma 149.176.12.7 .

En este punto habr� comprendido que tenemos tres direcciones distintas:

  • El nombre del host: Einstein
  • La direcci�n IP: 149.176.17.7
  • Y la direcci�n del hardware. En nuestro caso ser� una tarjeta de Ethernet con la direcci�n �nica 0x952C0C02.

La direcci�n de la tarjeta de Ethernet ocupa un puerto en el sistema operativo, usualmente es eth0-n bajo Linux. Puertos seriales p. ej. llevan el nombre cua0-n o ttyS0-n. Para ser exacto no se deber�a decir que su computadora o el host tiene el nombre Einstein, sino que se refiere al interfaz de hardware correspondiente.

Usted sabe ahora que el Internet Protocol (el IP) transmite datos entre computadoras en forma de datagrams. Cada datagram es transmitido a la direcci�n en la Internet u otra red local, que se indica en el cabezal del datagram. La direcci�n de destinatario es una direcci�n est�ndar (la IP) de 32 Bits y contiene informaci�n suficiente para identificar inequ�vocamente una computadora de una red.

Una direcci�n IP consiste de dos partes:

  • Una direcci�n de red
  • Y una direcci�n de la computadora (host) dentro de esta red.

Dependiendo del tama�o de la red resulta el n�mero de las direcciones de host. Para cumplir estas diferentes exigencias, se ha creado diferentes clases de redes, que definen separaciones de direcci�n IP diferentes.
 

Clase A:   La Clase A abarca redes de 1.0.0.0 hasta 127.0.0.0. La cifra de este tipo de red se encuentra en el primer octeto. As� quedan 24 Bits para definir los hosts, lo que es suficiente para aproximadamente 1,6 millones de computadoras.
Clase B:   La Clase B abarca redes de 128.0.0.0 hasta 191.255.0.0 . La cifra de este tipo de red se encuentra en los dos primeros octetos. Esto permite 16.320 redes con 65.024 computadoras en cada una.
Clase C:   Clase C abarca las redes 192.0.0.0 hasta 223.255.255.0 . La cifra de red se encuentra en los primeros tres octetos. Esto permite casi dos millones de redes con alrededor de 254 hosts.
Clase D, E y F:   Direcciones, que est�n en la gama de 224.0.0.0 hasta 225.0.0.0 son experimentales, o son reservadas para el uso futuro y no definen ninguna red.

Regresando a nuestro ejemplo, Ud. puede ver que Einstein con la IP 149.176.12.7 forma parte de una red de la clase B: 149.176.0.0 y precisa la computadora host 12.7. Es importante saber, que la direcci�n de host no debe tener el 0 ni el 225, como est�n reservados para objetivos especiales. La direcci�n de host , consistiendo solo de ceros identifica la red misma (149.176. 0.0). Si las cifras de host s�lo consisten de 255 (149.176.255.255) se habla de una direcci�n broadcast (radio), ya que los datos, que son mandados a esta direcci�n, son recibidos de todas las computadoras en la red 149.176.0.0.

Al mismo tiempo existen dos direcciones de red reservadas: 0.0.0.0, que se llama default route y 127.0.0.0 que es la direcci�n-loopback. La default route tiene que ver con la manera como IP realiza el routing de los datagrams (apunte: masquerading).

Mas importante por ahora es la red 127.0.0.0, la cual es reservada para el tr�fico de IP, que tiene lugar en su computadora. La IP 127.0.0.1 se dirige usualmente a un interfaz en su computadora que se llama interfaz de loopback, lo que funciona como un c�rculo cerrado. Cada paquete mandado all�, es devuelto inmediatamente. De este modo el loopback sirve para probar el software de red sin estar obligado usar una red "real".
"Ping localhost" o "ping 127.0.0.1" es una prueba com�n bajo LinuX para ver si TCP IP est� configurado de la manera correcta.

La IP que Ud. va a tener al final es decidido por una instituci�n central que se llama NIC (Network Information Center). La mejor soluci�n es encargar su proveedor con la reservaci�n de la direcci�n IP. Si Ud. est� seguro que su red nunca ser� conectada a la Internet, puede elegir una IP cualquiera. Pero para estar seguro que ning�n paquete de datos escape a la Internet, conviene usar IPs que s�lo son v�lidos dentro de su red privada y no pueden ser transferidos entre Sistemas de Internet.

Estas direcciones son:

  • Clase A: 10.0.0.0
  • Clase B: 172.16.0.0 hasta 172.31.0.0
  • Clase C: 192.168.0.0

Sin embargo es posible instalar un gateway para la Internet, es decir, que la direcci�n externa del gateway es conocida dentro de la Internet, pero las computadoras dentro de su red normalmente no las pueden accesar, porque sus IPs no son transmitidos en la Internet. Los hosts de su red por otro lado tendr�n acceso a la WWW (World Wide Web).

 

(3.2) El TCP (Transmission Control Protocol)

Como fue mencionado antes, el Internet Protocol no dispone de control de la transmisi�n, de esto se ocupa el TCP. El TCP es un protocolo de flujo de datos (byte stream), confiable y orientado a la conexi�n.

  • Se habla de flujo de datos (byte stream), porque el TCP considera los datos como una unidad de paquetes no separados, en vez de una secuencia de paquetes independientes.
  • Es confiable porque verifica si todos los datagrams han llegado. En el caso de que se pierda uno, el emisor recibe la informaci�n correspondiente del receptor y tiene que retransmitir los paquetes perdidos hasta que todos sean recibidos por el receptor.
  • Orientado a la conexi�n significa que el TCP establece una conexi�n l�gica entre dos computadoras, de modo que antes de la transmisi�n de los datagrams el TCP transmite informaciones de control (handshake) entre el emisor y el receptor iniciando la comunicaci�n entre los dos hosts.

Debido a esto el TCP se ocupa del orden correcto de los datos.

 

(4) El Sistema de Dominio de Nombres (DNS: Domain Name System)

(4.1) Un resumen del sistema

El Sistema de Dominio de Nombres (DNS) es b�sicamente una base de datos distribuida de computadoras que forman parte de una red. Esto facilita el control local de la totalidad de segmentos de la base de datos, lo que permite, que cada segmento est� disponible a trav�s de la red por un esquema de cliente-servidor (client server).

El Servidor de Nombres (name server) es un programa que forma la parte servidor del mecanismo cliente-servidor del DNS. Los Servidores de Nombres contienen informaci�n sobre un determinado segmento de la base de datos y la hace disponible para clientes (clients), denominados Resolver. Los Resolvers muchas veces consisten s�lo en rutinas de librer�as, que crean interrogaciones y las mandan a trav�s de la red a un Servidor de Nombre.

La estructura de la base de datos del DNS es mostrada en figura 2. La totalidad de la base de datos se muestra como un �rbol (tree) invertido con la ra�z (root) en la punta. El nombre de la ra�z es la etiqueta NULL, pero se escribe con un solo punto ("."). Cada nudo del �rbol representa tanto una partici�n de la totalidad de la base de datos, como un Dominio (domain) del Sistema de Dominio de Nombre. En adelante cada dominio puede ser dividido en particiones que se llaman Subdominios (subdomains), que son derivados como ni�os de sus nudos paternales.


Figura 2: La base de datos del DNS

Cada dominio es marcado de modo que tiene una etiqueta que le identifica relativamente con su dominio paternal. El dominio posee tambi�n un nombre de dominio (domain name), que identifica su posici�n en la base de datos, tal como una ruta absoluta de un directorio especifica su lugar en el sistema de archivos de su computadora.

En el DNS, el nombre de dominio completo es una secuencia de etiquetas, empezando por el dominio hasta la ra�z (root), separando las etiquetas por puntos "." (p. ej: einstein.matematicas.ac.edu). Permitiendo que cada dominio puede ser administrado por una organizaci�n diferente. Cada organizaci�n puede dividir su dominio en varios subdominios, cuya administraci�n puede ser realizada por otras organizaciones.

El Network Information Center p. ej. administra el dominio "edu" (educational) pero pasa la autoridad sobre el subdominio "ac.edu" (academic) a la Universidad, la cual autoriza al instituto de matem�ticas para administrar el siguiente subdominio: "f�sicas.ac.edu" (Figura 3).


Figura 3: El mantenimiento de subdominios

Finalmente queda mencionar que un dominio puede contener tanto subdominios como hosts. Cada host en una red tiene un Nombre de Dominio que posee la informaci�n sobre el host, as� como la direcci�n IP o como va el Routing de correo, etc. Un host tambi�n puede tener uno o mas Aliases de Dominio de Nombre, que son simplemente un indicador de un nombre de dominio (el alias) para el nombre oficial (canonical domain name). Un ejemplo: si su esposa se llama Maria Elizabeth, en algunos momentos la llamar� Maria y en otros Elizabeth. Aunque utilice nombres diferentes se refiere a la misma persona.

Las organizaciones de un dominio son libres de elegir nombres dentro de su dominio. No importa cual nombre sea usado, es seguro que no causa conflicto con otro nombre, porque tiene su Nombre de Dominio �nico adjuntado al final. De este modo pueden existir dos hosts con el nombre Einstein en su Universidad, por ejemplo, paquetes de einstein.fisicas.ac.edu siempre van a encontrar su camino a einstein.matematicas.ac.edu, porque se trata de dominios paternales diferentes.

 

(4.2) �Por qu� se necesita el DNS?

Para resolver nombres de dominio y direcciones IP y para poder ubicar hosts de redes lejanas. Como fue mencionado antes, es m�s f�cil recordar nombres en vez de cifras. Sobre todo cuando se trata de una cantidad de direcciones tan inmensa como la Internet.

Las computadoras por otro lado trabajan perfectamente con cifras como la direcci�n IP. Lo que sucede cuando usted entra a la Internet colocando una direcci�n como p. ej. http://www.altavista.com, es que su navegador dirige una petici�n (request) al Servidor de Dominio de su proveedor y este intenta resolver el nombre de dominio con la IP correspondiente. En el caso que su proveedor no est� autorizado para esta zona, transmite la petici�n (request, query) al servidor de dominio autorizado hasta llegar al dominio que se indic�. (Detallamos una busqueda con la direcci�n "einstein.matematicas.ac.edu" en la Figura 4).


Figura 4: La resoluci�n de einstein.matematicas.ac.edu en la Internet

Esto significa que cada servidor de dominio tiene la informaci�n completa de la zona para que esta autorizado y aparte tiene informaciones b�sicas sobre otras zonas. Cuando una petici�n (request) se dirige a una zona que esta fuera de la zona autorizada, su servidor por lo menos sabe por donde buscar. Esto puede significar que la petici�n (request) de una direcci�n tiene que pasar por varios Servidores de Dominio hasta que usted tenga contacto con el destino solicitado.

Aunque usted supiera la direcci�n IP del detino, es imprescindible consultar otros Servidores de Dominio si su computadora no se encuentra en la misma zona. De este modo es f�cil de imaginar porque el Sistema de Dominio de Nombre no puede consistir en una sola base de datos centralizada. Primero tardar�a demasiado tiempo encontrar un servidor entre millones de otros y segundo habr�a una cola bastante larga en el caso de miles de peticiones simult�neas de todo el mundo. Adicionalmente no tendr�a sentido dirigirse a un servidor lejano para comunicar con un host de la misma zona.

Hasta ahora hablamos del mapeo de nombres a direcciones. Pero, que sucede si usted de repente tiene la direcci�n IP y desee saber el nombre de este dominio. Para solventar este problema fue creado el dominio "in-addr.arpa". (Figura 5)

Este dominio es llamado dominio inverso y la resoluci�n de direcciones IPs a nombres de dominio se denomina mapeo reverso (reverse mapping o reverse lookup). El dominio de nombre inverso es creado poniendo las cifras de la IP del orden contrario y a�adiendo in-addr.arpa al final.

Un ejemplo: Nos recordamos que la IP de Einstein del instituto de matem�ticas es "149.176.12.7" con el nombre de dominio "einstein.matematicas.ac.edu".

El dominio "matematicas.ac.edu" entonces tendr� el nombre de dominio inverso: "12.176.149.in-addr.arpa" y la computadora einstein.matematicas.ac.edu correspondientemente esta realizada con "7.12.176.149.in-addr.arpa".

Figura 5: El mapeo reverso

 

(5) La Instalaci�n de un Servidor de Dominio de Nombres para una red local (LAN) con gateway bajo el Sistema Operativo LINUX usando BIND (Berkeley Internet Name Deamon: Demonio de Nombres Internet de Berkeley).

Lo siguiente est� basado en un supuesto de que usted sabe instalar y configurar tarjetas de red bajo LinuX. Los comandos "ifconfig" y "ping localhost" pueden comprobar una configuraci�n correcta para cada computadora. Ahora nos dedicamos a conectar sus computadoras v�a el DNS configurando BIND. Usted tiene que tener instalado el paquete BIND, que contiene named (pronunciado neimdii = el demonio de servidor) en la computadora que trabajar� como servidor de dominio. En este capitulo vamos a instalar un dominio ficticio. De este modo usted solo tiene que reemplazar las IPs, los nombres de las computadoras y un par de detalles adicionales de su red.


Figura 6
: La red de Distribuciones Alcomato

Nuestro dominio ficticio es para un mayorista de bebidas. La empresa "Distribuciones Alcomato", especializada en cervezas y licores se ha conformado bajo el nombre de dominio "alcomat.com" despu�s de haber contactado el NIS. Distribuciones Alcomato tiene dos Ethernets con los n�meros de red 192.249.249 y 192.253.253 (Figura 6).

Una parte de la tabla de host (hosttable, usualmente el archivo /etc/hosts) muestra lo siguiente:
 

/etc/hosts 
127.0.0.1       localhost

# estas son las computadoras para los licores

192.249.249.2   whisky.alcomat.com              whisky 

192.249.249.3   brandy.alcomat.com              brandy

192.249.249.4   vodka.alcomat.com               vodka

        .........

# estas son las computadoras para las cervezas

192.253.253.2   mahou.alcomat.com               mahou

192.253.253.3   augustiner.alcomat.com          augustiner

192.253.253.4   polar.alcomat.com               polar

        ..........

# Lo siguiente define el gateway de los dos Ethernets

192.249.249.1   tubo.alcomat.com tubo   tu       tub249

192.253.253.1   tubo.alcomat.com tubo   tu       tub253

 

(5.1) Archivos de base de datos (database files)

La primera etapa ser� traducir la tabla de host a datos equivalentes de DNS. El DNS consiste de varios archivos: Un archivo proyecta todos los nombres de hosts a direcciones IP. Otros archivos vuelven a proyectar las IPs a nombres de hosts. La b�squeda de direcciones IP a nombres de hosts es llamada reverse mapping (mapeo reverso) y cada red tiene su propio archivo para el mapeo reverso.

He llamado el archivo que proyecta nombres a direcciones named.hosts. Los archivos que proyectan las direcciones a hosts los llam� named.249 y named.253 correspondiendo a las dos redes de la empresa ficticia. Usted puede elegir cualquier denominaci�n diferente para estos archivos. Sin embargo los llamar� archivos de base de datos del DNS.

Aparte de estos existen dos archivos de datos que son mas o menos iguales para cada servidor. Estos los llam� named.cache y named.local.

Para unir todos los archivos de base de datos, el Servidor de Nombres requiere un archivo de inicio – usando BIND, este archivo usualmente es /etc/named.boot. Los archivos de base de datos son espec�ficos para el DNS. El archivo de inicio es espec�fico para la implementaci�n del Servidor de Nombres – en nuestro caso usaremos BIND.

 

(5.2) Ressource records

La mayor�a de los componentes de estos archivos se llaman DNS ressource records. Seg�n las Referencias de DNS los ressource records tienen el orden siguiente:

  • SOA record: Indica la autoridad para estos datos de dominio
  • NS record: Indica el servidor de nombre para este dominio

Los siguientes records indican datos de hosts en este dominio:

  • A: mapeo de nombres a direcciones
  • PTR: mapeo de direcciones a nombres (mapeo reverso)
  • CNAME: canonical name (nombre oficial para aliases)
  • TXT: informaci�n de texto
  • RP: persona responsable

Comentarios: Se les hace leer mas f�cil a los archivos del DNS usando comentarios y l�neas blancas. Los comentarios empiezan con un punto y coma y terminan al final de la l�nea. Los Servidores de Nombres ignoran comentarios as� como l�neas blancas.)

SOA record:
El primer ressource record de cada archivo de base de datos es el SOA record (start of authority). El SOA record indica que este Servidor de Nombres es la mejor fuente de informaciones para los hosts dentro de este dominio. Nuestro Servidor de Nombres - augustiner - es autorizado para el dominio "alcomat.com" debido al record SOA. Se requiere un SOA record para named.hosts, named.249 y named 253. Adjuntamos el SOA record siguiente al archivo "named.hosts".
 

SOA record
alcomat.com.   IN SOA augustiner.alcomat.com.  juan.mahou.alcomat.com. (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week

El nombre "alcomat.com" debe estar en la primera columna. �Es muy importante poner un punto al final de los nombres! Sino, es a�adido autom�ticamente el dominio "alcomat.com", lo que tendr�a poco sentido. La explicaci�n se la dar� cuando tratemos las abreviaciones.

El "IN" pone para la Internet. Existen otras clases, pero ninguna es de uso com�n.

El primer nombre despu�s de SOA, augustiner.alcomat.com, es el nombre del Servidor de Nombres para estos datos. El segundo nombre, juan.mahou.alcomat.com, es la direcci�n de correo de la persona encargada de estos datos (si usted reemplaza el primer punto "." por una @). BIND provee otro tipo de ressource record para este prop�sito: RP (persona responsable).

Los par�ntesis permiten que el SOA record se extiende sobre varias l�neas. La mayor�a de los renglones dentro de los par�ntesis sirven para informar Servidores de Nombres secundarios, que no usamos en nuestra red ficticia y probablemente ser� tratado en la pr�xima edici�n.

SOA records similares son insertados en los archivos named.249 y named.253. Note que en estos archivos cambiamos el primer nombre del SOA record de alcomat.com al nombre apropiado del dominio in-addr.arpa: 249.249.192.in-addr.arpa. y 253.253.192.in-addr.arpa.

NS record:
El pr�ximo rengl�n que a�adimos a cada archivo de base de datos es el NS record (name server: Servidor de Nombres). Los NS records de nuestro dominio son:
 

NS record
alcomat.com.      IN NS     augustiner.alcomat.com. 
alcomat.com.      IN NS     tubo.alcomat.com. 

Estos records indican que existen dos Servidores de Nombres para el dominio "alcomat.com". Los Servidores de Nombres se encuentran en los hosts "augustiner" y "tubo". Hosts como "tubo", (es nuestro gateway) que tienen m�s que un interfaz de red (multihomed hosts), en nuestro caso dos tarjetas de Ethernet, son elecciones excelentes para un Servidor de Nombres, ya que son bien conectados: Primero son accesibles directamente de hosts de m�s que una red y en el caso de servir tambi�n como Routers no son parados muchas veces ya que son controlados con mucha atenci�n. (are monitored closely).

Igual que con los SOA records, a�adimos NS records a los archivos named.249 y named.253.

Direcci�n y Alias records:
El paso siguiente es el mapeo de direcciones a nombres. A�adimos los siguientes ressource records al archivo named.hosts.

 

A record
;
;direcciones de hosts
;

localhost.alcomat.com.   IN A      127.0.0.1
mahou.alcomat.com.       IN A      192.253.253.2
augustiner.alcomat.com.  IN A      192.253.253.3
polar.alcomat.com.       IN A      192.253.253.4

;
; hosts de m�ltiple residencia
;

tubo.alcomat.com.        IN A      192.253.253.1
tubo.alcomat.com.        IN A      192.249.249.1

;
; Aliases
;

edel.alcomat.com.        IN CNAME  augustiner.alcomat.com.
pol.alcomat.com.         IN CNAME  polar.alcomat.com.
tu.alcomat.com.          IN CNAME  tubo.alcomat.com.
tub249.alcomat.com.      IN A      192.249.249.1
tub253.alcomat.com.      IN A      192.253.253.1

Los primeros dos bloques no le van a sorprender. La "A" indica direcci�n (address) y cada ressource record mapea un nombre a una direcci�n. Tubo act�a como Router y tiene dos direcciones asociados con su nombre y por eso tiene dos ressource records.

El tercer bloque contiene la tabla de los aliases. Para los primeros dos aliases creamos "CNAME" (canonical name, fully qualified host name = nombre de host de primera orden) ressource record. Sin embargo, creamos records de direcci�n para los otros dos aliases.

Cuando un Servidor de Nombre busca un nombre y encuentra un CNAME-record correspondiente, reemplaza el nombre con el nombre de host de primera orden y sigue buscando el nuevo nombre. Si por ejemplo el Servidor de Nombres busca "tu", encuentra un record CNAME indicando a "tubo". Despu�s es buscado "tubo" y son retornadas las direcciones 192.249.249.1 y 192.253.253.1.

Los �ltimos dos renglones solventan un problema especial. Supongamos que tenemos un gateway, como "tubo" y usted desea comprobar una de las interfaces. Una soluci�n muy com�n es, mandar un "ping" al interfaz para verificar que esta respondiendo. Cuando usted manda un "ping tubo", el Servidor de Nombres retornara ambas direcciones. En nuestra tabla no pusimos aliases para tub249 y tub253, porque resultar�a en ambas direcciones retornadas cuando el alias es buscado. Para evitarlo usamos �nicamente el address record "A" para indentificar las dos interfaces. Para comprobar la operaci�n del interfaz 192.249.249.1 de tubo, mandamos un "ping tub249", ya que se refiere a una sola direcci�n. Funciona igual con "tub253".

Formulemos una regla general para esto:

Cuando un host tiene m�s de una interfaz de red (multihomed host), se crea un address record "A" para cada alias que es �nico para una direcci�n.

Dicho aparte, no se los identifica a los usuarios con nombres como tub249 o tub253. Estos sirven �nicamente para prop�sitos de administraci�n de sistema y no son de ning�n uso para el usuario.

 

PTR Records
Ahora creamos los mapeos de direcci�n a nombre. El archivo named.249 mapea direcciones a nombres de hosts para la red 192.249.249. El ressource record para este mapeo es el PTR (pointer = puntero, indicador) record. Existe un record para cada host de esta red. (Recuerde que en el DNS son buscado nombres para direcciones). La direcci�n esta puesta en orden inversa y es adjuntado in-addr.arpa.

Los siguientes records son los PTR records para la red 192.249.249.
 

PTR record
1.249.249.192.in-addr.arpa.     IN PTR     tubo.alcomat.com.
2.249.249.192.in-addr.arpa.     IN PTR     whisky.alcomat.com.
3.249.249.192.in-addr.arpa.     IN PTR     brandy.alcomat.com.
4.249.249.192.in-addr.arpa.     IN PTR     vodka.alcomat.com.

 
Recordamos que tubo tiene dos direcciones, ya que tiene dos interfaces de red. Sin embargo solo aparece una, debido a que este archivo solo muestra la conexi�n directa a la red 192.249.249 y tubo tiene una sola conexi�n all� con la interfaz 192.249.249.1. Funciona igualmente para el archivo named.253.

 

(5.3) Los archivos completos para nuestro dominio ficticio 

El archivo de tabla de hosts para el dominio alcomat.com

named.hosts
alcomat.com.   IN SOA augustiner.alcomat.com.  juan.mahou.alcomat.com. (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week
;
; Nuestros Servidores de Nombres
;

alcomat.com.             IN NS     augustiner.alcomat.com. 
alcomat.com.             IN NS     tubo.alcomat.com. 

;
; Direcciones de hosts
;

localhost.alcomat.com.   IN A      127.0.0.1
mahou.alcomat.com.       IN A      192.253.253.2
augustiner.alcomat.com.  IN A      192.253.253.3
polar.alcomat.com.       IN A      192.253.253.4
whisky.alcomat.com.      IN A      192.249.249.2
brandy.alcomat.com.      IN A      192.249.249.3
vodka.alcomat.com.       IN A      192.249.249.4

;
; Hosts de m�ltiple residencia
;

tubo.alcomat.com.        IN A      192.253.253.1
tubo.alcomat.com.        IN A      192.249.249.1

;
; Aliases
;

edel.alcomat.com.        IN CNAME  augustiner.alcomat.com.
pol.alcomat.com.         IN CNAME  polar.alcomat.com.
tu.alcomat.com.          IN CNAME  tubo.alcomat.com.
tub249.alcomat.com.      IN A      192.249.249.1
tub253.alcomat.com.      IN A      192.253.253.1

 

Los archivos named.249 y named.253 para el mapeo de direcciones a nombres de hosts

named.249
249.249.192.in-addr.arpa. IN SOA augustiner.alcomat.com.  juan.mahou.alcomat.com. (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week
;
; Servidores de Nombres
;
249.249.192.in-addr.arpa.         IN NS      augustiner.alcomat.com. 
249.249.192.in-addr.arpa.         IN NS      tubo.alcomat.com. 

;
; Mapeo de direcciones a nombres
;
1.249.249.192.in-addr.arpa.       IN PTR     tubo.alcomat.com.
2.249.249.192.in-addr.arpa.       IN PTR     whisky.alcomat.com.
3.249.249.192.in-addr.arpa.       IN PTR     brandy.alcomat.com.
4.249.249.192.in-addr.arpa.       IN PTR     vodka.alcomat.com.

 

named.253
253.253.192.in-addr.arpa. IN SOA augustiner.alcomat.com.  juan.mahou.alcomat.com. (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week
;
; Servidores de Nombres
;
253.253.192.in-addr.arpa.         IN NS      augustiner.alcomat.com. 
253.253.192.in-addr.arpa.         IN NS      tubo.alcomat.com. 

;
; Mapeo de direcciones a nombres
;
1.253.253.192.in-addr.arpa.       IN PTR     tubo.alcomat.com.
2.253.253.192.in-addr.arpa.       IN PTR     mahou.alcomat.com.
3.253.253.192.in-addr.arpa.       IN PTR     augustiner.alcomat.com.
4.253.253.192.in-addr.arpa.       IN PTR     polar.alcomat.com.

 

La direcci�n loopback

Un Servidor de Nombres necesita un archivo adicional para la "red de loopback": named.local. Esta es la direcci�n que usan los hosts para el trafico directo con ellos mismos. La red de loopback es (casi) siempre 127.0.0, y el numero del host (casi) siempre 127.0.0.1.

named.local
0.0.127.in-addr.arpa.     IN SOA augustiner.alcomat.com.  juan.mahou.alcomat.com. (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week
;
; Servidores de Nombres
;
0.0.127.in-addr.arpa.         IN NS      augustiner.alcomat.com. 
0.0.127.in-addr.arpa.         IN NS      tubo.alcomat.com. 

;
; Mapeo de direcciones a nombres
;
0.0.127.in-addr.arpa.         IN PTR     localhost.

 

El archivo named.cache

Este archivo contiene las direcciones y nombres de todos los Servidores de Nombres de Root (root nameservers) de la Internet. Si usted no piensa conectar su red a la Internet no es necesario instalarlo.
Aunque el paquete de software BIND normalmente contiene este archivo (named.root o named.cache), conviene dirigirse al host de Internet ftp.ts.internic.net(198.41.0.5) via ftp an�nimo para descargar el archivo actual. Como se trata de un archivo que es igual para (casi) cada Servidor de Nombres y es instalado autom�ticamente con BIND, no se explicar�. Lo �nico que usted tiene que saber es, que nombre tiene este archivo en su versi�n de BIND.

El archivo de inicio: named.boot

Lo que finalmente nos hace falta es un archivo que una nuestros archivos de base de datos, o mejor dicho el Servidor de Nombres espera un archivo que le muestra donde se ubican los archivos de base de datos.

BIND busca por defecto el archivo /etc/named.boot. Los archivos de base de datos de nuestro ejemplo se encuentran en el directorio /usr/local/named. Usted es libre de elegir otro directorio, pero es recomendable no poner los archivos en el sistema de archivos de root por falta de espacio.

named.boot
directory	/usr/local/named
primary    alcomat.com                named.hosts
primary    249.249.192.in-addr.arpa   named.249
primary    253.253.192-in-addr.arpa   named.253
primary    0.0.127.in-addr.arpa       named.local

cache      .                          named.cache

Una vez instalado los archivos, usted debe activar el demonio "named" en el archivo de inicio del sistema de modo que se pone vivo autom�ticamente cuando arranque el sistema.

 

(5.4) Abreviaciones

Hasta ahora creamos archivos muy detallados para facilitar la explicaci�n. Existen varias abreviaciones que son usadas normalmente.

El origen
La segunda columna del archivo inicial "named.boot" indica siempre un dominio. Este dominio es la clave para la abreviaci�n mas �til y demuestra el origen de todos los datos dentro de este archivo de base de datos.
��
El origen es adjuntado a todos los nombres dentro de los archivos que no finalizan con un punto!! (mahou.aclomat.com resultar�a en mahou.alcomat.com.alcomat.com). El origen es diferente para cada archivo de base de datos.

La direcci�n de "mahou" del archivo named.hosts:
mahou.alcomat.com.	IN A	192.253.253.2

se habr�a podido escribir:
mahou			IN A	192.253.253.2

Escribimos lo siguiente en el archivo named.249:
2.249.249.192.in-addr.arpa.	IN PTR	whisky.alcomat.com.

Porque 249.249.192.in-addr.arpa es el origen, habr�amos podido escribir:
2				IN PTR	whisky.alcomat.com.					

La notaci�n @
Si el nombre de dominio es el mismo como el origen, puede ser determinado con "@". Esto aparece muy frecuentemente con el SOA record:

@	   IN SOA augustiner.alcomat.com.  juan.mahou.alcomat.com. (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week

La repetici�n del nombre anterior
Si la primera columna de un ressource record consiste de un tabulador o un espacio, es usado el nombre del ressource record anterior. Esto facilita el trabajo cuando se trata de m�ltiples ressource records para un nombre:

tubo			IN A      192.253.253.1
			IN A      192.249.249.1

Finalmente le presento el archivo named.hosts de la forma abreviada. Resulta buen ejercicio hacer los cambios para los archivos restantes ;-))

named.hosts (abreviado)
@   IN SOA 	augustiner  	juan.mahou (
                                  1          ; Serial para updates
                                  10800      ; Refresh after 3 hours
                                  3600       ; Retry after 1 hours
                                  604800     ; Expire after 1 week
                                  86400 )    ; Minimum TTL of 1 week
;
; Nuestros Servidores de Nombres (el nombre @ esta incluido)
;

                            IN NS     augustiner.alcomat.com
                            IN NS     tubo.alcomat.com. 
; Unicamente en este archivo se podr�a eliminar el nombre de dominio (alcomat.com)
; de los Servidores de Nombres, porque named.hosts tiene el mismo origen!

;
; Direcciones de hosts
;

localhost                   IN A      127.0.0.1
mahou                       IN A      192.253.253.2
augustiner                  IN A      192.253.253.3
polar                       IN A      192.253.253.4
whisky                      IN A      192.249.249.2
brandy                      IN A      192.249.249.3
vodka                       IN A      192.249.249.4

tubo                        IN A      192.253.253.1
                            IN A      192.249.249.1

;
; Hosts de m�ltiple residencia
;

tub249                      IN A      192.249.249.1
tub253                      IN A      192.253.253.1

;
; Aliases
;

edel                        IN CNAME  augustiner
pol                         IN CNAME  polar
tu                          IN CNAME  tubo

 

(5.5) La Librer�a de Resolver

La contraparte del Servidor de Nombres es la Librer�a de Resolver, que consiste en un grupo de funciones perteneciendo a las librer�as est�ndar de "C" bajo LinuX. Las rutinas m�s importantes del Resolver son:

  • entregar todas las IPs que pertenecen a un nombre de host (gethostbyname) y
  • entregar el nombre de primer orden de un host que pertenece a una IP (gethostbyaddr).

El archivo m�s importante es host.conf, que controla las funciones de su Resolver. Se encuentra en el directorio /etc y entre otros determina cuales servicios y en la orden de ellos ser�n solicitados por el Resolver.
Para nuestra red ficticia solo necesitamos dos opciones: order y multi.

  • Order determina la orden de los servicios consultados
  • Multi indica que un host puede tener varias direcciones y es usado �nicamente para la tabla /etc/hosts. Los argumentos posibles son on y off.

El archivo /etc/host.conf de nuestro ejemplo le indica al Resolver usar primero el DNS y despu�s la tabla /etc/hosts.

/etc/host.conf
# /etc/host.conf
# Usamos named y la tabla de hosts:/etc/hosts
order   bind hosts
# permitimos multiples direcciones (s�lo para /etc/hosts)
multi   on

 

Ya que nuestro Resolver esta usando DNS, le tenemos que comunicar cual Servidor de Nombres consultar. Para cumplir esto, existe el archivo: resolv.conf.
La opci�n mas importante en resolv.conf es nameserver, que indica al Servidor de Nombres correspondiente. Se pueden insertar hasta tres Servidores de Nombres. Es recomendable poner el Servidor de Nombres m�s confiable como primero, porque son consultados seg�n la sucesi�n .
Existen dos opciones adicionales - domain y saerch- que indican a nombres de dominios, que son adjuntados a un nombre de host en el caso de que el Resolver no conoce la direcci�n. En cuanto a nuestro ejemplo es decir que, cuando usted coloca "ftp mahou", es adjuntado "alcomat.com" autom�ticamente. De este modo usted no est� obligado escribir el nombre completo. La diferencia entre las dichas opciones es, que domain s�lo permite un dominio mientras search acepta varios. La desventaja de una lista de dominios se demuestra en una b�squeda mas larga.

/etc/resolv.conf
# /etc/resolv.conf
# El dominio de Distribuciones Alcomato
domain       alcomat.com
#
# El Servidor de Nombres 
# Como segundo IP conviene poner la IP de su Proveedor de Internet
nameserver   192.253.253.1

 

(5.6) Probando su setup con nslookup

Antes de usar la herramienta nslookup, que trae BIND, vamos a investigar si existen errores de syslog. Si usted ha configurado el archivo inicial de modo que "named" arranca autom�ticamente durante el inicio del sistema, sale un mensaje de "named" esta activo. En el caso de que usted prefiera arancar "named" manualmente, use el comando siguiente:

# /etc/named -b /etc/named.boot (s�lo root puede realizarlo)

  • Con el comando:
    # grep daemon /etc/syslog.conf


    debe aparecer algo como
    *.err;kern.debug;daemon,auth.notice /var/adm/messages o /var/log/messages
    Esto le dice, dependiendo de la distribuci�n, que los mensajes de syslog se encuentran en el archivo /var/adm/messages o /var/log/messages.
  • Con el comando
    # grep named /var/adm/messages (/var/log/messages)

    debe aparecer algo similar como p.ej.
    Feb 12 21:16:48 tubo named [3221]: starting (o restarted)

Si ha ocurrido algun error, aparecen mensajes como p. ej.
Feb 12 21:16:48 tubo named [3221]: named hosts Line 15: database format error (192.249.249.3), indic�ndole el archivo, junto con la l�nea donde se encuentra el error.

Despu�s de corregir los errores, use el comando
# kill -HUP 'cat /etc/named.pid'
para que el Servidor de Nombres vuelva a leer los archivos de base de datos.

 

Las pruebas usando nslookup

Con nslookup se puede buscar cualquier tipo de ressource record y puede ser dirigido a cualquier Servidor de Nombres. Aqui vamos a tratar solo las pruebas elementales.

B�squedas locales:

  • La b�squeda de un nombre de host local:

    # nslookup vodka
    Server: tubo.alcomat.com
    Address: 192.253.253.1

    Name: vodka.alcomat.com
    Address: 192.245.245.4
 
  • La b�squeda de una direcci�n local:

    #
    nslookup 192.245.245.2
    Server: tubo.alcomat.com
    Address: 192.253.253.1

    Name: whisky.alcomat.com
    Address; 192.245.245.2

Si las dos pruebas funcionan de la manera mostrada, su Servidor de Nombres trabaja correctamente para su dominio.

B�squedas de hosts lejanos:
En el caso de que su red tiene acceso a la Internet conviene usar el comando nslookup para buscar un host lejano.

  • La b�squeda de un nombre de host lejano:

    # nslookup ftp.uu.net
    Server: tubo.alcomat.com
    Address: 192.253.253.1

    Name: ftp.uu.net
    Address: 192.48.96.9
 
  • La b�squeda de una direcci�n lejana:

    # nslookup 192.48.96.9
    Server: tubo.alcomat.com
    Address: 192.253.253.1

    Name: ftp.uu.net
    Address: 192.48.96.9

Si esta prueba funciona, su Servidor de Nombres puede ubicar los Servidores de Nombres de root (archivo: named.cache) y como contactarlos para solicitar informaciones sobre hosts lejanos.


Para más información:

  • TCP/IP Network Administration: Craig Hunt; O�Reilley; 1992 
  • DNS and BIND: Paul Albitz & Cricket Liu; O�Reilley; 1997 
  • LINUX Network Administrator�s Guide: Olaf Kirch; O�Reilley; 1995
  • Proyecto Web: Jon Udell, BYTE, Diciembre 1997

© 1998 Andreas J Gundacker
es Licenciado en Empresariales alem�n con afici�n a la Tecnolog�a de Informaci�n.
LinuX le ha ayudado en realizar sus estudios particulares de redes inform�ticos.
Cuando termin� este articulo pasaba un programa de aprendizaje en Kl�ckner Moeller-Somerinca Caracas/Venezuela.


This website is mantained by Miguel A Sepulveda.