next up previous contents
Next: Iniciando named Up: DNS COMO Previous: Otras implementaciones de servidores   Índice General


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

Una primera nota para la configuración de DNS, muy útil para usuarios de módem, cable-módem, ADSL y similares.

En Red Hat y distribuciones derivadas puedes conseguir los resultados prácticos de esta primera sección del COMO instalando los paquetes bind, bind-utils y caching-nameserver. Si usa Debian simplemente instala bind (o bind9, al escibir esto, BIND 9 no está soportado por Debian Stable (potato))y bind-doc. Desde luego, que sólo instalando estos paquetes no aprenderás más que leyendo este COMO. Así pues, instala los paquetes, lee y verifica los ficheros instalados.

Un servidor de "sólo cache" encontrará las respuestas a las consultas de nombres y las recordará para la próxima vez que las necesites. Esto acorta el tiempo de espera significativamente para la próxima vez, especialmente si dispones de una conexión lenta.

Lo primero que necesitas es un fichero llamado /etc/named.conf (Debian: /etc/bind/named.conf). Este fichero se lee cuando arranca named. Por ahora simplemente contendrá:


// Fichero de configuración para servidor de sólo cacheo
// La version que lea de este COMO puede contener espacios
// iniciales (espacios previos a los caracteres de estas
// líneas) en este u otros ficheros. Debe eliminarlos para
// que las cosas funcionen.
//
// Observe que los nombres de ficheros y directorio pueden
// ser distintos, aunque los ultimos contenidos deben
// ser muy parecidos.

options {
        directory "/var/named";

        // Descomentar esto podría ayudar si tiene que salir a través
        // de un cortafuegos y las cosas no funcionan fuera.  Sin embargo, de
 todas
        // formas necesitarás hablar con el administrador del cortafuegos.

        // query-source port 53;
};
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
};

key "rndc_key" {
        algorithm hmac-md5;
        secret
 "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};

Los paquetes de las distribuciones Linux pueden usar diferentes nombres para cada uno de los ficheros mencionados aquí; el contenido sigue siendo el mismo.

La línea `directory' le indica a named donde buscar los ficheros. Todos los ficheros mencionados están relativos a esta ruta. Así pz es un directorio bajo /var/named, i.e., /var/named/pz. /var/named es el directorio correcto de acuerdo con la distribución estándar de directorios en Linux (Linux File system Standard).

Aquí describimos el fichero /var/named/root.hints. /var/named/root.hints debería contener lo siguiente: (si cortas y pegas este fichero de una versión electrónica del documento, ten en cuenta que no deberían haber espacios en blanco iniciales en este fichero, i.e. todas las líneas deberían comenzar con un carácter que no sea espacio. Algún software de procesamiento de documentos inserta espacios al comienzo de las líneas y causan confusión. En este caso, elimina los espacios iniciales).


;
; Puede haber comentarios aquí si ya tenías el fichero.
; Si no no te preocupes.
;
.                       6D  IN      NS      A.ROOT-SERVERS.NET.
.                       6D  IN      NS      B.ROOT-SERVERS.NET.
.                       6D  IN      NS      C.ROOT-SERVERS.NET.
.                       6D  IN      NS      D.ROOT-SERVERS.NET.
.                       6D  IN      NS      E.ROOT-SERVERS.NET.
.                       6D  IN      NS      F.ROOT-SERVERS.NET.
.                       6D  IN      NS      G.ROOT-SERVERS.NET.
.                       6D  IN      NS      H.ROOT-SERVERS.NET.
.                       6D  IN      NS      I.ROOT-SERVERS.NET.
.                       6D  IN      NS      J.ROOT-SERVERS.NET.
.                       6D  IN      NS      K.ROOT-SERVERS.NET.
.                       6D  IN      NS      L.ROOT-SERVERS.NET.
.                       6D  IN      NS      M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.4
B.ROOT-SERVERS.NET.     6D  IN      A       128.9.0.107
C.ROOT-SERVERS.NET.     6D  IN      A       192.33.4.12
D.ROOT-SERVERS.NET.     6D  IN      A       128.8.10.90
E.ROOT-SERVERS.NET.     6D  IN      A       192.203.230.10
F.ROOT-SERVERS.NET.     6D  IN      A       192.5.5.241
G.ROOT-SERVERS.NET.     6D  IN      A       192.112.36.4
H.ROOT-SERVERS.NET.     6D  IN      A       128.63.2.53
I.ROOT-SERVERS.NET.     6D  IN      A       192.36.148.17
J.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.10
K.ROOT-SERVERS.NET.     6D  IN      A       193.0.14.129
L.ROOT-SERVERS.NET.     6D  IN      A       198.32.64.12
M.ROOT-SERVERS.NET.     6D  IN      A       202.12.27.33

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)) para saber cómo mantenerlo actualizado.

La siguiente sección de named.conf es la última zone. Explicaré su uso en un capítulo posterior: Por ahora, crea un archivo llamado 127.0.0 en el subdirectorio pz:(De nuevo, por favor borra los espacios iniciales si cortas y pegas esto).


$TTL 3D
@               IN      SOA  ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serial
                                8H      ; Refresh
                                2H      ; Retry
                                4W      ; Expire
                                1D)     ; Minimum TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.

Las secciones llamadas key y controls juntas especifican que tu named se puede controlar remotamente mediante un programa llamado rndc si se conecta desde el host local y se identifica con la llave secreta codificada. Esta llave es como una contraseña. Para que rndc funcione necesita que /etc/rndc.conf cumpla esto:


key rndc_key {
    algorithm "hmac-md5";
    secret
 "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};
options {
    default-server localhost;
    default-key    rndc_key;
};

Como puedes ver la clave es idéntica. Si quieres usar rndc desde otras máquinas sus tiempos tiene que estar dentro de un margen de 5 minutos la una de la otra. Recomiendo usar el software the ntp (xntpd y ntpdate) para hacer esto.

A continuación, necesitas un /etc/resolv.conf parecido a este:(De nuevo: ¡borrar espacios!)


search
 subdomain.your-domain.edu
 your-domain.edu
nameserver 127.0.0.1

La línea `search' especifica en qué dominios buscar para cualquier nombre de máquina al que te quieras conectar. La línea `nameserver' especifica la dirección de tu servidor de nombres, en este caso tu misma máquina ya que es donde se ejecuta named (127.0.0.1 está bien, no importa si la máquina tiene otra dirección también). Si quieres incluir varias máquinas como servidores de nombres basta añadir líneas `nameserver' para cada uno.(Nota: Named nunca lee este fichero, lo lee la aplicación que busca un servidor de nombres. Nota 2: En algunos ficheros resolv.conf puedes encontrar una línea "domain". Es correcto, pero no uses a la vez "search" y "domain", sólo una de ellas funcionará).

Para ilustrar lo que hace este archivo:
Si un cliente intenta buscar a fulano, primero se probará fulano.subdominio.su-dominio.edu, 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 quieras 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, tu máquina probablemente se llame su-máquina.subdominio.su-dominio.edu. La línea search no debería contener tu TLD (Top Level Domain o Dominio de Nivel Superior, `edu' en este caso). Si necesitas conectar frecuentemente con máquinas de otro dominio, puedes añadir ese dominio a la línea search como sigue:(Recuerda eliminar los espacios iniciales, si los hay)


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

y así. Obviamente necesitas poner un dominio real en su lugar. Esto es importante; por favor observa la ausencia de puntos al final de los nombres de dominio.



Subsecciones
next up previous contents
Next: Iniciando named Up: DNS COMO Previous: Otras implementaciones de servidores   Índice General
Pedro Pablo 2002-01-02