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
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
.
/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
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
.
/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
.
/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á.
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.