Logo de AulaDigital

DNS Como 3

DNS COMO: Servidor de nombres de ``sólo cacheo''. Anterior Siguiente Indice

3. Servidor de nombres de ``sólo cacheo''.

Un primer ataque a la configuración DNS, muy útil para los usuarios de conexiones telefónicas.

Un servidor de nombres de ``sólo cacheo'' (caching only nameserver) obtendrá la respuesta a las solicitudes de nombre provenientes de su red preguntando a servidores externos, recordando la respuesta para la próxima vez que lo necesite.

Lo primero que necesita es el archivo llamado /etc/named.boot. Este archivo es leído cuando se inicia named. Por ahora contendrá simplemente:

;  Archivo boot de servidor de nombres de solo cacheo:
;
directory /var/named
;
; tipo          dominio                         fichero o maquina fuente
cache           .                               root.cache
primary         0.0.127.in-addr.arpa            pz/127.0.0

MUY IMPORTANTE:

En algunas versiones de este documento, en el contenido de los archivos que aquí aparecen hay un par de espacios o tabuladores antes del primer carácter no blanco. Se supone que estos caracteres NO están en el archivo. Borre cualquier espacio inicial de los archivos que corte y pegue de este COMO.

La línea directory indica a named dónde buscar los archivos. Todos los archivos indicados a continuación serán relativos a este directorio. /var/named es el directorio correcto de acuerdo con el LFS, Linux File system Standard. Así, pz es un directorio bajo /var/named, esto es, /var/named/pz.

3.1 /var/named/root.cache

Vamos a describir el archivo llamado /var/named/root.cache nombrado en el archivo boot.named.

/var/named/root.cache debería contener esto:

 .       518400  NS      D.ROOT-SERVERS.NET.
 .       518400  NS      E.ROOT-SERVERS.NET.
 .       518400  NS      I.ROOT-SERVERS.NET.
 .       518400  NS      F.ROOT-SERVERS.NET.
 .       518400  NS      G.ROOT-SERVERS.NET.
 .       518400  NS      A.ROOT-SERVERS.NET.
 .       518400  NS      H.ROOT-SERVERS.NET.
 .       518400  NS      B.ROOT-SERVERS.NET.
 .       518400  NS      C.ROOT-SERVERS.NET.
;
D.ROOT-SERVERS.NET.     3600000 A       128.8.10.90
E.ROOT-SERVERS.NET.     3600000 A       192.203.230.10
I.ROOT-SERVERS.NET.     3600000 A       192.36.148.17
F.ROOT-SERVERS.NET.     3600000 A       192.5.5.241
G.ROOT-SERVERS.NET.     3600000 A       192.112.36.4
A.ROOT-SERVERS.NET.     3600000 A       198.41.0.4
H.ROOT-SERVERS.NET.     3600000 A       128.63.2.53
B.ROOT-SERVERS.NET.     3600000 A       128.9.0.107
C.ROOT-SERVERS.NET.     3600000 A       192.33.4.12

¡Recuerde lo que dije sobre los espacios iniciales!

Este archivo describe los servidores de nombres raíz en el mundo. Este archivo cambiará a lo largo del tiempo y tiene que ser mantenido y actualizado con una cierta regularidad. Vea la sección de mantenimiento ( mantenimiento) para saber cómo mantenerlo actualizado. Este archivo está descrito en la página man de named, pero esto es, IMHO In My Honest Opinion, EMMO o En Mi Modesta Opinión en castellano. , más apropiado para gente que ya comprende named.

La siguiente línea de named.boot es la línea primary. Explicaré su uso en un capítulo posterior: Por ahora, cree un archivo llamado 127.0.0 en el subdirectorio pz:

@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Numero de Serie
                                28800   ; Tasa de Refresco
                                7200    ; Tasa de Reintento
                                604800  ; Caducidad para secundario
                                86400)  ; Validez para Clientes
                        NS      ns.linux.bogus.
1                       PTR     localhost.

A continuación necesita el archivo /etc/resolv.conf, que será algo similar a este:

search subdominio.su-dominio.edu su-dominio.edu
nameserver 127.0.0.1

La línea `search' especifica en qué dominios se buscaría para cualquier nombre de máquina a la que quiera conectar. La línea `nameserver' especifica la dirección de su servidor de nombres, en este caso su propia máquina, ya que es ahí donde named se estará ejecutando. Si quiere una lista de varios servidores ponga una línea nameserver para cada uno. (Nota: named nunca lee este archivo, lo hace el resolutor que usa named).

Para ilustrar lo que hace este archivo:
Si un cliente intenta buscar a fulano, fulano.subdominio.su-dominio.edu se probará primero, a continuación fulano.su-dominio.edu, y finalmente fulano. Si un cliente intenta buscar sunsite.unc.edu, sunsite.unc.edu.subdominio.su-dominio.edu se prueba primero (sí, es tonto, pero es así como tiene que ser), después sunsite.unc.edu.su-dominio.edu, y finalmente sunsite.unc.edu. Puede que no quiera poner demasiados dominios en la línea search, lleva su tiempo el efectuar las búsquedas.

El ejemplo supone que pertenece al dominio subdominio.su-dominio.edu, su máquina probablemente se llame su-maquina.subdominio.su-dominio.edu. La línea search no debería contener su TLD (Top Level Domain o Dominio de Nivel Superior, `edu' en este caso). Si necesita conectar frecuentemente con máquinas de otro dominio, puede añadir ese dominio a la línea search como sigue:

search subdominio.su-dominio.edu su-dominio.edu otro-dominio.com

y así sucesivamente. Obviamente necesita poner un dominio real en su lugar. Por favor, dése cuenta de la falta de puntos al final de estos nombres de dominio.

Lo siguiente, dependiendo de su versión de la librería libc puede necesitar arreglar /etc/nsswitch.conf o /etc/host.conf. Si ya tiene nsswitch.conf corregiremos éste, en otro caso arreglaremos host.conf.

3.2 /etc/nsswitch.conf

Se trata de un extenso archivo donde se especifica de dónde obtener las diferentes clases de tipos de datos, y de cuál archivo o base de datos. Generalmente contiene comentarios útiles al comienzo, que por cierto debería considerar leer ahora. Después busque la línea que comienza por hosts:, debe leerse:

hosts:      files dns

Si no hay una línea que comience por `hosts:' póngala. Eso indica que los programas deben mirar primero en el fichero /etc/hosts , y después comprobar DNS de acuerdo con resolv.conf.

3.3 /etc/host.conf

Probablemente contiene varias líneas, una de ellas debería comenzar con order y tendría que parecerse a lo siguiente:

order hosts,bind

Si no hay una línea order tiene que incluirla. Esto le indica a las rutinas de resolución de nombres que busquen primero en /etc/hosts, y pregunte luego al servidor de nombres (que dijo en resolv.conf que está en 127.0.0.1). Estos dos últimos archivos están documentados en la página de manual resolv (8) (haciendo man 8 resolv) en la mayoría de las distribuciones Linux. Esta página de manual es de obligada lectura IMHO, y todos, especialmente los administradores DNS, deberían leerla. Hágalo ahora, si se dice a sí mismo ``lo haré más tarde'' entonces nunca lo hará.

3.4 Arranque de named

Después de todo esto, ya es hora de iniciar named. Si está utilizando una conexión telefónica, conéctese primero. Teclee ndc start y presione return, sin opciones. Si tiene problemas intente /usr/sbin/ndc start en su lugar. Si el problema persiste vea la sección PUF ( PUF). Ahora ya puede comprobar su configuración. Si mira en el archivo de mensajes de syslog (generalmente llamado /var/adm/messages, o en el directorio /var/log) mientras inicia named, (haga tail -f /var/adm/messages) debería ver algo como esto:

 Jun 30 21:50:55 roke named[2258]: starting.  named 4.9.4-REL Sun Jun 30 21:29:03 MET DST 1996   
                            janl@roke.slip.ifi.uio.no:/var/tmp/bind/named
 Jun 30 21:50:55 roke named[2258]: cache zone "" loaded (serial 0)
 Jun 30 21:50:55 roke named[2258]: primary zone "0.0.127.in-addr.arpa" loaded (serial 1)

Si hay cualquier mensaje de error se deberá a alguna equivocación. named determinará el archivo que ocasiona el error (de named.boot o root.cache espero :-). Mate a named y vuelva a comprobar el archivo.

Ahora es el momento de iniciar nslookup para examinar su trabajo:

     $ nslookup
     Default Server:  localhost
     Address:  127.0.0.1

     >

Si es eso lo que obtiene entonces está funcionando. Eso espero. En cualquier otro caso, vuelva atrás y compruébelo todo. Cada vez que cambie el archivo named.boot tiene que reinicializar named usando el comando ndc restart.

Ahora puede introducir una consulta. Intente buscar alguna máquina cercana a la suya. pat.uio.no está cerca de mí, en la Universidad de Oslo:

     > pat.uio.no
     Server:  localhost
     Address:  127.0.0.1

     Name:    pat.uio.no
     Address:  129.240.2.50

nslookup ahora solicita a named que busque la máquina pat.uio.no. Contactará con alguna de las máquinas servidoras de nombres nombradas en el archivo root.cache, y preguntará allí. Puede tardar un poco antes de conseguir el resultado ya que busca todos los dominios indicados en /etc/resolv.conf.

Si intenta de nuevo obtendrá esto:

     > pat.uio.no
     Server:  localhost
     Address:  127.0.0.1

     Non-authoritative answer:
     Name:    pat.uio.no
     Address:  129.240.2.50

Nota a la línea ``Non-authoritative answer:'' : le dedicaremos un poco de tiempo. Esto significa que named no sale de la red para preguntar esta vez, en su lugar mira en su caché y lo encuentra allí. Pero la información de la caché puede no estar actualizada. Entonces informa de este peligro (de modo un tanto eufemístico) con Non-authorative answer:. Cuando nslookup dice esto la segunda vez que pregunta por una máquina, es un signo seguro de que named almacena la información en la caché y que está funcionando. Ahora puede salir de nslookup usando el comando exit.

Si es un usuario de conexiones telefónicas, (ppp, slip) por favor lea la sección sobre conexiones telefónicas ( timofonicas), hay algunas advertencias para Vd.

Ahora ya sabe cómo configurar un servidor de nombres de ``sólo cacheo''. Tómese una cerveza, un vaso de leche o cuaquier otra cosa que prefiera para celebrarlo.


Anterior Siguiente Indice