<!-- 0,1 -->
<!-- DNS,0 -->
<!-- Nicolai,Langfeldt,janl@math.uio.no -->
<!-- 1.32,1997-06-03 -->
<!-- DNS -->
<!-- Pedro Pablo,Fábrega Martínez,pfabrega@arrakis.es -->
<!-- 1.0,1997-13-10 -->
<!-- DNS,servidor de nombres,IP -->
<!-- Software,Servidores,DNS -->

<!doctype linuxdoc system>

<article>

<title>DNS COMO</title>

<author> Nicolai Langfeldt <tt><htmlurl url="mailto:janl@math.uio.no" 
name="janl@math.uio.no"></tt>
Traducción: Pedro Pablo Fábrega Martínez 
<tt><htmlurl url="mailto:pfabrega@arrakis.es"
name="pfabrega@arrakis.es"></tt> 
Julio 1997
</author>
<date>v1.3.2, 3 Junio 1997

<abstract>
COMO ser un administrador DNS en poco tiempo.
</abstract>

<toc>

<sect>Preámbulo
<p>

<descrip>
<tag /Claves:/ DNS, bind, named, dialup, ppp, slip, Internet, domain,
name, hosts, resolving
</descrip>

<sect1>Rollo Legal
<p>

&copy;opyright 1995 Nicolai Langfeldt. No modificar sin incluir el
copyright, distribúyalo libremente, pero mantenga el mensaje de copyright.
 
<sect1>Créditos y solicitud de ayuda.
<p>

Quiero dar las gracias a Arnt Gulbrandsen, quien leyó los borradores para
este trabajo dedicándole mucho de su tiempo y proporcionando muchas y muy
útiles sugerencias. También quiero dar las gracias a aquellas personas que
me enviaron sugerencias por email y gracias por sus notas. Gracias, me
ayudasteis a seguir con esto. 

Esto nunca será un documento acabado, por favor mandadme correo con
vuestros problemas y éxitos, esto hará mejorar este COMO. Así que por
favor mandad dinero, comentarios y/o preguntas a <tt><htmlurl
url="mailto:janl@math.uio.no" name="janl@math.uio.no"></tt>.  Si envía un
E-mail, por favor asegúrese de que su dirección de remitente es correcta,
recibo un montón de E-mail. Asimismo, por favor lea la sección de las PUF
(<ref id="PUF" name="PUFs">) antes de enviarme un mail.

Si quiere traducir este COMO, por favor notifíquemelo para que yo pueda
mantener la pista de las lenguas en las que he sido publicado <tt/:-)/. 

<sect1>Dedicatoria
<p>

Este COMO está dedicado a Anne Line Norheim. Aunque ella probablemente
nunca lo leerá porque no es de esa clase de chicas. 

<sect>Introducción.
<p>

Lo que es esto y lo que no es.

Para los que comienzan, <bf>DNS</bf> es el <bf>Domain Name System (Sistema
de Nombres de Dominio)</bf>, las reglas de nomenclatura de las máquinas y
el software que mapea los nombres a números IP. Este documento COMO trata
de cómo definir tales conversiones usando un sistema <bf>Linux</bf>. Una
conversión es simplemente una asociación entre dos cosas, en este caso un
nombre de máquina, como <tt>ftp.linux.org</tt> y el número IP de la
máquina, <tt/199.249.150.4/.
 
El DNS es, para los no iniciados (Vd. <tt/;-)/, una de las áreas mas
opacas de la administración de una red. Este COMO tratará de aclarar
algunas cosas. 

Este documento describe cómo configurar un servidor de nombres DNS simple. 
Comenzaremos con un servidor <it>caching only
server</it><footnote>Servidor que se limita a guardar en una caché las IPs
de los nombres de máquina más solicitados, obteniéndolas de servidores
externos.</footnote>, y continuaremos con la configuración de un servidor
DNS primario para un dominio. Para configuraciones más complejas puede
consultar la sección de PUF (<ref id="PUF">) de este documento. Si lo que
busca no está descrito allí, necesitará <it/Documentación Real/.
Volveremos a lo que es la <it/Documentación Real/ en el último capítulo. 

<bf>Antes de empezar</bf>, debe configurar su sistema convenientemente, de
forma que pueda hacer <tt/telnet/ desde y hacia su máquina, efectuando
satisfactoriamente toda clase de conexiones de red, especialmente
<tt>telnet 127.0.0.1</tt> entrando en su propia máquina (compruébelo
ahora). También necesita que los archivos <tt>/etc/host.conf</tt> (o
<tt>/etc/nsswitch.conf</tt>), <tt>/etc/resolv.conf</tt> y
<tt>/etc/hosts</tt> sean correctos como punto de partida, ya que no
explicaré sus funciones aquí.  Si NO tiene aun esta configuración y no
funciona en red, el <it>NET-2 HOWTO</it> explica como hacerlo. Léalo. 

Si está usando SLIP o PPP necesitará que funcionen correctamente. Lea el
<it>PPP-COMO</it> si no es así. 

Cuando digo <it>``su máquina''</it> quiero decir la máquina en la que está
intentando configurar DNS. No cualquier otra máquina que pueda tener en su
red. 

Supongo que <bf>no está detrás de cualquier clase de cortafuegos</bf>
(<it/firewall/) que bloquee peticiones de nombres. Si necesita una
configuración especial, vea la sección PUF (<ref id="PUF">). 

El servicio de nombres en Unix es llevado a cabo por un programa, llamado
<tt>named</tt>.

Éste forma parte del paquete <tt/bind/, que es coordinado por Paul Vixie
para <it/The Internet Software Consortium/. <tt>named</tt> está incluido
en la mayoría de las distribuciones de Linux y generalmente se instala
como <tt>/usr/sbin/named</tt>. Si tiene el fichero <tt>named</tt>
probablemente pueda usarlo; si no lo tiene, puede obtener el binario en un
ftp de Linux, o conseguir los últimos y más voluminosos fuentes en
<tt><htmlurl url="ftp://ftp.vix.com/pub/bind"
name="ftp://ftp.vix.com/pub/bind"</tt>, bien de los subdirectorios de
versión actual, o de prueba, lo que mejor se adapte a su estilo de vida. 

<bf>DNS es una base de datos cuyo ámbito es la Red</bf>. Tenga cuidado con
lo que pone en ella. Si pone incongruencias, Vd. y los demás obtendrán
incongruencias de ella. Mantenga su DNS limpia y consistente y conseguirá
un buen servicio de ella. Aprenda a usarla, administrarla, depurarla y
será otro buen administrador, salvando a la red de caer sobre sus rodillas
sobrecargada por falta de mantenimiento. 

En este documento expongo de forma llana varias cosas que no son
completamente verdad (son al menos medias verdades). Todo esto lo hago en
aras de la simplicidad. Todas funcionarán (probablemente <tt/;-)/ si cree
en lo que digo.

<descrip>
<tag /Aviso:/ Haga una copia de seguridad de todos los archivos que le
indico que cambie si ya los tiene, y así si después si no funciona podrá
volver al principio. 
</descrip>

<sect>Servidor de nombres de ``sólo cacheo''.
<p>

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'' (<it/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 <tt>/etc/named.boot</tt>. 
Este archivo es leído cuando se inicia <tt>named</tt>. Por ahora contendrá
simplemente: 

<tscreen><verb>
;  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
</verb></tscreen>

<descrip> 
<tag /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 <bf>NO</bf> están en el archivo.  Borre cualquier espacio
inicial de los archivos que corte y pegue de este COMO. 
</descrip>

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

<sect1><tt>/var/named/root.cache</tt>
<p>

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

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

<tscreen><verb>
 .       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
</verb></tscreen>

¡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
(<ref id="mantenimiento">) para saber cómo mantenerlo actualizado. Este
archivo está descrito en la página <tt>man</tt> de <tt>named</tt>, pero
esto es, IMHO<footnote><it>In My Honest Opinion</it>, EMMO o <it>En Mi
Modesta Opinión</it> en castellano.</footnote>, más apropiado para gente
que ya comprende <tt>named</tt>.

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

<tscreen><verb>
@               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.
</verb></tscreen>

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

<tscreen><verb>
search subdominio.su-dominio.edu su-dominio.edu
nameserver 127.0.0.1
</verb></tscreen>

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

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

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

<tscreen><verb>
search subdominio.su-dominio.edu su-dominio.edu otro-dominio.com
</verb></tscreen>

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 <tt>libc</tt> puede
necesitar arreglar <tt>/etc/nsswitch.conf</tt> o <tt>/etc/host.conf</tt>. 
Si ya tiene <tt>nsswitch.conf</tt> corregiremos éste, en otro caso
arreglaremos <tt>host.conf</tt>.

<sect1><tt>/etc/nsswitch.conf</tt>
<p>

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
<tt>hosts:</tt>, debe leerse:

<tscreen><verb>
hosts:      files dns
</verb></tscreen>

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

<sect1><tt>/etc/host.conf</tt>
<p>

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

<tscreen><verb>
order hosts,bind
</verb></tscreen>

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

<sect1>Arranque de <tt>named</tt>
<p>

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

<tscreen><verb>
 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)
</verb></tscreen>

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

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

<tscreen><verb>
     $ nslookup
     Default Server:  localhost
     Address:  127.0.0.1

     >
</verb></tscreen>

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 <tt>named.boot</tt> tiene que reinicializar <tt>named</tt>
usando el comando <tt>ndc restart</tt>.

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

<tscreen><verb>
     > pat.uio.no
     Server:  localhost
     Address:  127.0.0.1

     Name:    pat.uio.no
     Address:  129.240.2.50
</verb></tscreen>

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

Si intenta de nuevo obtendrá esto:

<tscreen><verb>
     > pat.uio.no
     Server:  localhost
     Address:  127.0.0.1

     Non-authoritative answer:
     Name:    pat.uio.no
     Address:  129.240.2.50
</verb></tscreen>

Nota a la línea ``<tt>Non-authoritative answer:</tt>'' : le dedicaremos un
poco de tiempo. Esto significa que <tt>named</tt> 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 <tt>Non-authorative
answer:</tt>. Cuando <tt>nslookup</tt> dice esto la segunda vez que
pregunta por una máquina, es un signo seguro de que <tt>named</tt>
almacena la información en la caché y que está funcionando. Ahora puede
salir de <tt>nslookup</tt> usando el comando <tt>exit</tt>. 

Si es un usuario de conexiones telefónicas, (ppp, slip) por favor lea la
sección sobre conexiones telefónicas (<ref id="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.

<sect>Un dominio simple.
<p>

Como configurar su propio dominio.

<sect1>Pero primero algo de teoría a secas.
<p>

Antes de comenzar realmente con esta sección, voy a dar un poco de teoría
sobre cómo funciona DNS.  Y lo va a leer porque será mejor para Vd.  Si no
quiere, al menos debería echar un vistazo rápido. Deje el repaso cuando
sepa lo que debe incluir en su archivo <tt>named.boot</tt>. 

El DNS es un sistema jerárquico. La raíz se escribe como `<tt/./' y se
denomina <it>`root'</it>. Debajo hay cierto número de Dominios de Nivel
Superior (<it/Top Level Domains/, <it/TLD/s), los más conocidos son
<tt/ORG, COM, EDU/ y <tt/NET/, pero hay muchos más. 

Cuando se busca una máquina, la pregunta procede recursivamente en la
jerarquía comenzando desde arriba. Si quiere localizar la dirección de
<tt>prep.ai.mit.edu</tt>, su servidor de nombres ha de encontrar primero
un servidor de nombres que sirva a <tt>edu</tt>. Pregunta al servidor
<tt/./ (ya conoce los servidores <tt/./, es para lo que se utiliza el
<tt>archivo root.cache</tt>), y el servidor <tt/./ proporcionará una lista
de servidores <tt>edu</tt>: 

<tscreen><verb>
     $ nslookup
     Default Server:  localhost
     Address:  127.0.0.1
</verb></tscreen>

Comienza preguntando a un servidor raíz.

<tscreen><verb>
     > server c.root-servers.net.
     Default Server:  c.root-servers.net
     Address:  192.33.4.12
</verb></tscreen>   

Pone el tipo de petición (<it/Query/) a <tt/NS/ (<it/Name Server
records/). 

<tscreen><verb>
> set q=ns 
</verb></tscreen>

Pregunta por <tt/edu/.

<tscreen><verb>
> edu.
</verb></tscreen> 

El punto (".") final aquí es significativo, indica al servidor que le
pedimos un <tt/edu/ que está justo debajo de ".", y esto reduce la
búsqueda un poco.  

<tscreen><verb>
     edu     nameserver = A.ROOT-SERVERS.NET
     edu     nameserver = H.ROOT-SERVERS.NET
     edu     nameserver = B.ROOT-SERVERS.NET
     edu     nameserver = C.ROOT-SERVERS.NET
     edu     nameserver = D.ROOT-SERVERS.NET
     edu     nameserver = E.ROOT-SERVERS.NET
     edu     nameserver = I.ROOT-SERVERS.NET
     edu     nameserver = F.ROOT-SERVERS.NET
     edu     nameserver = G.ROOT-SERVERS.NET
     A.ROOT-SERVERS.NET      internet address = 198.41.0.4
     H.ROOT-SERVERS.NET      internet address = 128.63.2.53
     B.ROOT-SERVERS.NET      internet address = 128.9.0.107
     C.ROOT-SERVERS.NET      internet address = 192.33.4.12
     D.ROOT-SERVERS.NET      internet address = 128.8.10.90
     E.ROOT-SERVERS.NET      internet address = 192.203.230.10
     I.ROOT-SERVERS.NET      internet address = 192.36.148.17
     F.ROOT-SERVERS.NET      internet address = 192.5.5.241
     G.ROOT-SERVERS.NET      internet address = 192.112.36.4
</verb></tscreen>

Esto nos dice que <tt>*.root-servers.net</tt> sirve a <tt>edu.</tt>, y así
podemos seguir preguntando a <tt/C/. Ahora queremos saber quién sirve el
siguiente nivel del nombre de dominio: <tt>mit.edu.</tt> 

<tscreen><verb>
     > mit.edu.
     Server:  c.root-servers.net
     Address:  192.33.4.12

     Non-authoritative answer:
     mit.edu nameserver = STRAWB.mit.edu
     mit.edu nameserver = W20NS.mit.edu
     mit.edu nameserver = BITSY.mit.edu

     Authoritative answers can be found from:
     STRAWB.mit.edu  internet address = 18.71.0.151
     W20NS.mit.edu   internet address = 18.70.0.160
     BITSY.mit.edu   internet address = 18.72.0.3
</verb></tscreen>

<tt/steawb, w20ns/ y <tt/bitsy/ sirven a <tt/mit/, selecciona uno 
y pregunta por <tt>ai.mit.edu</tt>:

<tscreen><verb>
     > server W20NS.mit.edu.
</verb></tscreen>

Los nombres de máquina no son sensibles a mayúsculas/minúsculas, pero como
yo uso el ratón para cortar y pegar, obtengo una copia tal y como aparece
en la pantalla. 

<tscreen><verb>
     Server:  W20NS.mit.edu
     Address:  18.70.0.160

     > ai.mit.edu.
     Server:  W20NS.mit.edu
     Address:  18.70.0.160

     Non-authoritative answer:
     ai.mit.edu      nameserver = WHEATIES.AI.MIT.EDU
     ai.mit.edu      nameserver = ALPHA-BITS.AI.MIT.EDU
     ai.mit.edu      nameserver = GRAPE-NUTS.AI.MIT.EDU
     ai.mit.edu      nameserver = TRIX.AI.MIT.EDU
     ai.mit.edu      nameserver = MUESLI.AI.MIT.EDU

     Authoritative answers can be found from:
     AI.MIT.EDU      nameserver = WHEATIES.AI.MIT.EDU
     AI.MIT.EDU      nameserver = ALPHA-BITS.AI.MIT.EDU
     AI.MIT.EDU      nameserver = GRAPE-NUTS.AI.MIT.EDU
     AI.MIT.EDU      nameserver = TRIX.AI.MIT.EDU
     AI.MIT.EDU      nameserver = MUESLI.AI.MIT.EDU
     WHEATIES.AI.MIT.EDU     internet address = 128.52.32.13
     WHEATIES.AI.MIT.EDU     internet address = 128.52.35.13
     ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
     ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.37.5
     GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.32.4
     GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
     TRIX.AI.MIT.EDU internet address = 128.52.32.6
     TRIX.AI.MIT.EDU internet address = 128.52.38.6
     MUESLI.AI.MIT.EDU       internet address = 128.52.32.7
     MUESLI.AI.MIT.EDU       internet address = 128.52.39.7
</verb></tscreen>

Entonces <tt/weaties.ai.mit.edu/ es un servidor de nombres para
<tt/ai.mit.edu/: 

<tscreen><verb>
     > server WHEATIES.AI.MIT.EDU.
     Default Server:  WHEATIES.AI.MIT.EDU
     Addresses:  128.52.32.13, 128.52.35.13
</verb></tscreen>

Ahora cambia el tipo de solicitud; ha encontrado el servidor de nombres y
va a preguntar todo lo que queremos saber sobre <tt/prep.ai.mit.edu/.

<tscreen><verb>
     > set q=any
     > prep.ai.mit.edu.
     Server:  WHEATIES.AI.MIT.EDU
     Addresses:  128.52.32.13, 128.52.35.13

     prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
     prep.ai.mit.edu
             inet address = 18.159.0.42, protocol = tcp
              #21 #23 #25 #79
     prep.ai.mit.edu preference = 1, mail exchanger = life.ai.mit.edu
     prep.ai.mit.edu internet address = 18.159.0.42
     ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
     ai.mit.edu      nameserver = wheaties.ai.mit.edu
     ai.mit.edu      nameserver = grape-nuts.ai.mit.edu
     ai.mit.edu      nameserver = mini-wheats.ai.mit.edu
     ai.mit.edu      nameserver = trix.ai.mit.edu
     ai.mit.edu      nameserver = muesli.ai.mit.edu
     ai.mit.edu      nameserver = count-chocula.ai.mit.edu
     ai.mit.edu      nameserver = life.ai.mit.edu
     ai.mit.edu      nameserver = mintaka.lcs.mit.edu
     life.ai.mit.edu internet address = 128.52.32.80
     alpha-bits.ai.mit.edu   internet address = 128.52.32.5
     wheaties.ai.mit.edu     internet address = 128.52.35.13
     wheaties.ai.mit.edu     internet address = 128.52.32.13
     grape-nuts.ai.mit.edu   internet address = 128.52.36.4
     grape-nuts.ai.mit.edu   internet address = 128.52.32.4
     mini-wheats.ai.mit.edu  internet address = 128.52.32.11
     mini-wheats.ai.mit.edu  internet address = 128.52.54.11
     mintaka.lcs.mit.edu     internet address = 18.26.0.36
</verb></tscreen>

De esta forma comenzando en <tt/./ ha encontrado los sucesivos servidores
de nombre para el siguiente nivel en el nombre de dominio. Si ha usado su
propio servidor DNS en lugar de usar todos esos otros servidores, su
<tt>named</tt>, desde luego, habrá almacenado en el caché toda la
información que haya encontrado mientras profundizaba en la búsqueda, y en
consecuencia no tendrá que preguntar de nuevo durante un tiempo. 

Se habla mucho menos sobre él, pero un dominio importante es
<tt>in-addr.arpa</tt>. También está anidado como los dominios
<it>'normales'</it>. <tt>in-addr.arpa</tt> nos permite determinar el
nombre de la máquina cuando conocemos su dirección IP. Una cosa importante
aquí es observar que que las direcciones IP están escritas en orden
inverso en el dominio <tt>in-addr.arpa</tt>. Si tiene la dirección de
máquina <tt/192.128.52.43/, <tt>named</tt> procede como para el ejemplo de
<tt>prep.ai.mit.edu</tt>: Busca los servidores <tt/arpa./.  Busca los
servidores <tt>in-addr.arpa.</tt>, los servidores
<tt>192.in-addr.arpa.</tt>, los servidores <tt/128.192.in-addr.arpa./ , y
los servidores <tt/52.128.192.in-addr.arpa./ y finalmente, los registros
necesarios para <tt/43.52.128.192.in-addr.arpa./ ¿Inteligente? (Diga
`sí'). La inversión de números puede ser confusa los 2 primeros años. 

He contado una mentira. DNS no funciona como he dicho de forma literal.
Pero es bastante parecido. 

<sect1>Nuestro propio dominio
<p>

Ahora vamos a definir nuestro propio dominio.  Vamos a crear el dominio
<tt/linux.bogus/ y definir máquinas en él. Uso un nombre de dominio
totalmente falso para estar seguro de que no molestamos a nadie de fuera.

Ya hemos comenzado esta parte con la siguiente línea en
<tt>named.boot</tt>:

<tscreen><verb>
primary         0.0.127.in-addr.arpa            pz/127.0.0
</verb></tscreen>

Por favor tome nota de la ausencia de `.' al final de los nombres de
dominio en este archivo. La primera línea nombra al archivo
<tt>pz/127.0.0</tt> como definición de <tt/0.0.127.in-addr.arpa/. Ya hemos
configurado este archivo, en él podremos leer: 

<tscreen><verb>
@               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)  ; Tiempo de Validez para Clientes
                        NS      ns.linux.bogus.
1                       PTR     localhost.
</verb></tscreen>

Por favor observe los `<tt/./' al final de los nombres de dominio completo
en contraste con el archivo <tt>named.boot</tt> anterior. A algunas
personas les gusta iniciar cada zona del archivo con una directiva
<tt/&dollar;ORIGIN/, pero esto es superfluo. El origen (lugar de la
jerarquía DNS a donde pertenece) de un fichero de zona se especifica en la
columna <tt>dominio</tt> del archivo <tt>named.boot</tt>; en este caso es
<tt>0.0.127.in-addr.arpa.</tt>

Este ``fichero de zona'' contiene tres <it>registros de recursos</it>
(RRs): Un <tt>RR SOA</tt>, Un <tt>RR NS</tt> y un <tt>RR PTR</tt>.
<tt>SOA</tt> es una abreviatura de <it>Start Of Authority</it>. La
`<tt/&commat;/' es una notación especial que simboliza el origen, y como
la columna <tt>dominio</tt> para este archivo indica
<tt/0.0.127.in-addr.arpa/. La primera línea realmente significa: 

<tscreen><verb>
       0.0.127.IN-ADDR.ARPA. IN      SOA ...
</verb></tscreen>

<tt>NS</tt> es el <tt>RR Name Server</tt> (Servidor de Nombres), e indica
a DNS qué máquina es el servidor de nombres del dominio. Y finalmente el
registro <tt>PTR</tt> tiene valor <tt/1/ (igual a
<tt/1.0.0.127.IN-ADDR.ARPA/, esto es, <tt/127.0.0.1/) que es el
<tt/localhost/ de <tt/named/.

El registro <tt>SOA</tt> es el preámbulo de todos los archivos de zona y
debe haber uno exactamente en cada archivo de zona, como primer registro
de todos. El registro <tt>SOA</tt> describe la zona, de dónde proviene
(una máquina llamada <tt>linux.bogus</tt>), quién es el responsable de su
contenido (<tt>hostmaster&commat;linux.bogus</tt>), qué versión del
archivo de zona es (<tt/Numero de Serie/, <tt/1/), y otras cosas que
tienen que ver con el caché y los servidores secundarios DNS. Para el
resto de los campos (<tt>Tasa de Refresco</tt>, <tt>Tasa de
Reintento</tt>, <tt>Caducidad para secundario</tt> y <tt>Tiempo de Validez
para Clientes</tt>) use los valores que aparecen aquí para mayor
seguridad. 

El registro <tt/NS/ nos indica quién efectúa el servicio DNS para
<tt>0.0.127.in-addr.arpa</tt>, que es <tt>ns.linux.bogus</tt>. El registro
<tt>PTR</tt> nos dice que <tt>1.0.0.127.in-addr.arpa</tt> (aka
<tt/127.0.0.1/) es conocido como <tt>localhost</tt>.

Ahora reiniciamos <tt>named</tt> (el comando es <tt>ndc restart</tt>) y
usamos <tt>nslookup</tt> para examinar lo que ha hecho: 

<tscreen><verb>
     $ nslookup

     Default Server:  localhost
     Address:  127.0.0.1

     > 127.0.0.1
     Server:  localhost
     Address:  127.0.0.1

     Name:    localhost
     Address:  127.0.0.1

</verb></tscreen>

así obtiene <tt>localhost</tt> de <tt>127.0.0.1</tt>, bien. Ahora para
nuestra tarea principal, el dominio <tt>linux.bogus</tt>, inserte una
nueva línea, <tt>primary</tt>, en <tt>named.boot</tt>: 

<tscreen><verb>
primary               linux.bogus                     pz/linux.bogus
</verb></tscreen>

Observe que continúa la ausencia de "<tt/./" final en el nombre de dominio
del archivo <tt>named.boot</tt>. 

En el archivo de zona de <tt>linux.bogus</tt> pondremos algunos datos
totalmente falsos<footnote>N del T &nl; Por si no lo ha notado todavía,
<it/bogus/ en inglés significa precisamente <it/falso/.</footnote>: 

<tscreen><verb>
;
; Fichero de zona para linux.bogus
;
; Minimo indspensable para tener funcionando un dominio
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199511301       ; Numero de serie, fecha de hoy + n. de serie de hoy
                        28800           ; Tasa de Refresco, en segundos
                        7200            ; Tasa de Reintento, en segundos
                        3600000         ; Caducidad para secundario, en segundos
                        86400 )         ; Tiempo de Validez para Clientes, en segundos
                NS      ns.linux.bogus.
                NS      ns.friend.bogus.
                MX      10 mail.linux.bogus   ; Intercambiador de Correo Primario
                MX      20 mail.friend.bogus. ; Intercambiador de Correo Secundario

localhost       A       127.0.0.1
ns              A       127.0.0.2
mail            A       127.0.0.4
</verb></tscreen>

Deben de observarse dos cosas sobre los registros <tt>SOA</tt>. 
<tt>ns.linux.bogus</tt> debe ser una máquina actual con un registro
<tt>A</tt>. No es legal tener un registro <tt/CNAME/ para la máquina
mencionada en el registro <tt>SOA</tt>. Su nombre no necesita ser
<tt>ns</tt>, podría ser cualquier nombre legal de máquina. A continuación,
en <tt>hostmaster.linux.bogus</tt> deberá aparecer algo como
<tt>hostmaster&commat;linux.bogus</tt>; esto sería un alias de email, o
una cuenta de correo, donde la(s) persona(s) que realizan el mantenimiento
de DNS deberían leer con frecuencia el correo. Cualquier email respecto
del dominio será mandado a la dirección aquí indicada. El nombre no tiene
por que ser <tt>hostmaster</tt>, puede ser cualquier dirección email
legal, pero la dirección email <tt>hostmaster</tt> funcionará bien. 

Hay un nuevo tipo de <tt>RR</tt> en este archivo, el <tt>MX</tt>, o
<it>Mail eXchanger</it>. Este indica el sistema de correo a donde mandar
el correo dirigido a <tt>alguien&commat;linux.bogus</tt>, pudiendo ser
también <tt>mail.linux.bogus</tt> o <tt>mail.friend.bogus</tt>.  El número
que precede a cada nombre de máquina es la prioridad del <tt>RR MX</tt>.
El <tt/RR/ con el número más bajo (<tt/10/) es aquel al que el correo será
enviado primero.  Si este falla, puede ser mandado a otro con un número
más alto, que será gestor secundario de correo, como
<tt>mail.friend.bogus</tt> que tiene una prioridad <tt/20/ aquí.

Reinicie <tt>named</tt> ejecutando <tt>ndc restart</tt>.  Examine los
resultados con <tt>nslookup</tt>: 

<tscreen><verb>
     $ nslookup
     > set q=any
     > linux.bogus
     Server:  localhost
     Address:  127.0.0.1

     linux.bogus
             origin = linux.bogus
             mail addr = hostmaster.linux.bogus
             serial = 199511301
             refresh = 28800 (8 hours)
             retry   = 7200 (2 hours)
             expire  = 604800 (7 days)
             minimum ttl = 86400 (1 day)
     linux.bogus     nameserver = ns.linux.bogus
     linux.bogus     nameserver = ns.friend.bogus
     linux.bogus     preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
     linux.bogus     preference = 20, mail exchanger = mail.friend.bogus
     linux.bogus     nameserver = ns.linux.bogus
     linux.bogus     nameserver = ns.friend.bogus
     ns.linux.bogus  internet address = 127.0.0.2
     mail.linux.bogus        internet address = 127.0.0.4
</verb></tscreen>

Con un examen cuidadoso podrá descubrir un error. La línea

<tscreen><verb>
       linux.bogus     preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
</verb></tscreen>

está equivocada. Debería ser

<tscreen><verb>
       linux.bogus     preference = 10, mail exchanger = mail.linux.bogus
</verb></tscreen>

Cometí el error de forma deliberada para que aprenda de él <tt/:-)/
Mirando en el archivo de zona podemos ver que la línea

<tscreen><verb>
     @               MX      10 mail.linux.bogus     ; Intercambiador de Correo Primario
</verb></tscreen>

no tiene punto. O tiene demasiados <tt>linux.bogus</tt>.  Si un nombre de
máquina no termina en punto en un archivo de zona, el origen es añadido a
su final. Así, 

<tscreen><verb>
@               MX      10 mail.linux.bogus.    ; Intercambiador de Correo Primario
</verb></tscreen>

o

<tscreen><verb>
@               MX      10 mail                 ; Primary Mail Exchanger
</verb></tscreen>

serán correctos. Yo prefiero la última forma, hay que escribir menos. En
un archivo de zona el dominio debería ser escrito y terminado con un
punto, o no debe ser incluido, en cuyo caso se referirá al origen por
defecto.  Debo hacer hincapié que en el archivo <tt>named.boot</tt> no
debería haber puntos después de los nombres de dominio. No tiene ni idea
de cuantas veces un '.' por estar o por no estar ha hecho fallar toda una
configuración y ha confundido horrorosamente a la gente...

Una vez hecha esta <it/puntualización/, he aquí el nuevo archivo de zona,
con algo de información extra también:

<tscreen><verb>
;
; Archivo de zona para  linux.bogus
;
; minimo indispensable para hacer funcionar un dominio
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199511301       ; Numero de Serie, fecha de hoy + n. de serie de hoy 
                        28800           ; Tasa de Refresco, en segundos
                        7200            ; Tasa de Reintento, en segundos
                        604800          ; Caducidad para secundario, en segundos
                        86400 )         ; Validez para Clientes, en segundos

                NS      ns              ; Direccion de Internet del servidor de nombres
                NS      ns.friend.bogus.
                MX      10 mail         ; Intercambiador de Correo Primario
                MX      20 mail.friend.bogus. ; Intercambiador de Correo Secundario

localhost       A       127.0.0.1
ns              A       127.0.0.2
mail            A       127.0.0.4
;
; Extras
;
@               TXT     "Linux.Bogus, your DNS consultants"

ns              MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "Pentium" "Linux 1.2"
                TXT     "RMS"
richard         CNAME   ns
www             CNAME   ns

donald          A       127.0.0.3
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "i486"  "Linux 1.2"
                TXT     "DEK"

mail            MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "386sx" "Linux 1.0.9"

ftp             A       127.0.0.5
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "P6" "Linux 1.3.59"
</verb></tscreen>

Puede que quiera desplazar los tres primeros registros tipo <tt/A/
(<tt/localhost, ns/ y <tt/mail/) junto con los otros registros de su mismo
tipo (<tt/donald/, <tt/mail/, y <tt/ftp/), en vez de colocarlos separados
al principio como aquí. 

Hay varios registros nuevos aquí: <tt>HINFO</tt> (<it>Host
INFOrmation</it>), tiene dos partes, es una buena costumbre poner comillas
a cada uno. La primera parte es el hardware o CPU de la máquina, y la
segunda parte corresponde al software o Sistema Operativo de la misma. 
<tt/ns/ tiene una CPU Pentium con Linux 1.2. El registro <tt>TXT</tt> es
un texto en formato libre que puede usar para cualquier cosa que le
interese.  <tt>CNAME</tt> (<it>Canonical NAME</it>) es una forma de dar a
cada máquina varios nombres. Por tanto <tt>richard</tt> y <tt>www</tt> son
alias para <tt>ns</tt>.  Es importante observar que los registros
<tt>A</tt>, <tt>MX</tt>, <tt>CNAME</tt> y <tt>SOA</tt> <bf>nunca deben
hacer referencia al registro</bf> <tt/CNAME/, sólo pueden referirse a
registros <tt>A</tt>.

<tscreen><verb>
fulanito  CNAME   richard                 ; ¡¡¡NO!!!
</verb></tscreen>

siendo correcto tener 

<tscreen><verb>
fulanito  CNAME   ns                      ; ¡¡¡SI!!!
</verb></tscreen>

También es importante observar que <tt>CNAME</tt> no es un nombre de
máquina legal para direcciones de correo: 
<tt>webmaster&commat;www.linux.bogus</tt> es una dirección email ilegal
dada en la configuración anterior. Encontrará muy pocos administradores de
correo de Ahí Afuera que recomienden esta regla, incluso si a Vd. le
funciona.  La forma de evitar esto es usar un registro <tt>A</tt> (y
quizás algunos otros también, como un registro <tt>MX</tt>) en su lugar: 

<tscreen><verb>
www     A       127.0.0.2
</verb></tscreen>

Paul Vixie, el principal gurú de <tt>named</tt> recomienda no usar CNAME.
Por tanto considere el no utilizarlo seriamente. 

Cargue la nueva base de datos ejecutando <tt>ndc reload</tt>, esto provoca
la lectura de sus archivos de nuevo.

<tscreen><verb>
     $ nslookup
     Default Server:  localhost
     Address:  127.0.0.1

     > ls -d linux.bogus
</verb></tscreen>

Esto haría que todos los registros fuesen listados.

<tscreen><verb>
     [localhost]
      linux.bogus.       SOA   ns.linux.bogus hostmaster.linux.bogus. (199511301 28800 7200 604800 86400)
      linux.bogus.       NS    ns.linux.bogus
      linux.bogus.       NS    ns.friend.bogus
      linux.bogus.       MX    10   mail.linux.bogus
      linux.bogus.       MX    20   mail.friend.bogus
      linux.bogus.       TXT   "Linux.Bogus, your DNS consultants"
      localhost          A     127.0.0.1
      mail               A     127.0.0.4
      mail               MX    10   mail.linux.bogus
      mail               MX    20   mail.friend.bogus
      mail               HINFO 386sx       Linux 1.0.9
      donald             A     127.0.0.3
      donald             MX    10   mail.linux.bogus
      donald             MX    20   mail.friend.bogus
      donald             HINFO i486        Linux 1.2
      donald             TXT   "DEK"
      www                CNAME ns.linux.bogus
      richard            CNAME ns.linux.bogus
      ftp                A     127.0.0.5
      ftp                MX    10   mail.linux.bogus
      ftp                MX    20   mail.friend.bogus
      ftp                HINFO P6          Linux 1.3.59
      ns                 A     127.0.0.2
      ns                 MX    10   mail.linux.bogus
      ns                 MX    20   mail.friend.bogus
      ns                 HINFO Pentium     Linux 1.2
      ns                 TXT   "RMS"
      linux.bogus.       SOA   ns.linux.bogus hostmaster.linux.bogus. (199511301 28800 7200 604800 86400)
</verb></tscreen>

Esto está bien. Comprobemos qué dice para <tt/www/ sólo:

<tscreen><verb>
     > set q=any
     > www.linux.bogus.
     Server:  localhost
     Address:  127.0.0.1

     www.linux.bogus canonical name = ns.linux.bogus
</verb></tscreen>

...En otras palabras, el nombre real de 
<tt>www.linux.bogus</tt> es <tt>ns.linux.bogus</tt>

<tscreen><verb>
     linux.bogus     nameserver = ns.linux.bogus
     linux.bogus     nameserver = ns.friend.bogus
     ns.linux.bogus  internet address = 127.0.0.2
</verb></tscreen>

y <tt>ns.linux.bogus</tt> tiene la dirección <tt/127.0.0.2/. Parece
correcto también.

<sect1>Relajémonos
<p>

Desde luego, este dominio es falso, y como tal son todas sus direcciones,
y quizás, desafortunadamente sea un poco confuso. Para un ejemplo real
de dominio vea la siguiente sección. 

<sect>Un ejemplo de dominio real
<p>

Donde describiremos algunos archivos de zona reales.

Los usuarios han sugerido que incluya un ejemplo real de dominio que esté
en funcionamiento como explicación de las diferencias entre un dominio en
funcionamiento y el ejemplo falso que no era del todo muy claro.

Una cosa sobre este ejemplo: ¡NO lo introduzca en su servidor de nombres!.
Úselo sólo como lectura de referencia. Si quiere experimentar, hágalo con
el ejemplo falso. Yo uso este ejemplo con permiso de David Bullock y
LAND-5. Estos archivos eran los usados el 24 de Septiembre de 1996, y
podrían diferir de los que encuentre si pregunta ahora al servidor de
nombres LAND-5. También tenga en mente eliminar los espacios iniciales
;-). 

<sect1><tt>/etc/named.boot</tt> (o <tt>/var/named/named.boot</tt>)
<p>

Aquí encontramos la líneas <tt/primary/ para las dos zonas que
necesitamos: la red <tt/127.0.0.0/ y también la subred <tt/206.6.177/ de
<tt>LAND-5</tt>. Una línea <tt>primary</tt> para la zona de redirección
(<tt/forward/) <tt/land-5.com/ de <tt>land-5</tt>. Observe también que en
lugar de situar los archivos en un directorio llamado <tt/pz/, como hago
en este COMO, él los sitúa en un directorio llamado <tt/zone/. 

<tscreen><verb>
;  Fichero de arranque para el servidor de nombres LAND-5
;
directory /var/named
;
; tipo          dominio                         fichero o maquina origen
cache           .                               root.cache
primary         0.0.127.in-addr.arpa            zone/127.0.0
primary         177.6.206.in-addr.arpa          zone/206.6.177
primary         land-5.com                      zone/land-5.com
</verb></tscreen>

<sect1><tt>/var/named/root.cache</tt>
<p>

Tenga en cuenta que este archivo varía con mucha frecuencia, y que el
listado de aquí es viejo. Mejor utilice uno producido ahora.

<tscreen><verb>
; <<>> DiG 2.1 <<>>
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6
;; flags: qr rd ra; Ques: 1, Ans: 9, Auth: 0, Addit: 9
;; QUESTIONS:
;;      ., type = NS, class = IN

;; ANSWERS:
 .       518357  NS      H.ROOT-SERVERS.NET.
 .       518357  NS      B.ROOT-SERVERS.NET.
 .       518357  NS      C.ROOT-SERVERS.NET.
 .       518357  NS      D.ROOT-SERVERS.NET.
 .       518357  NS      E.ROOT-SERVERS.NET.
 .       518357  NS      I.ROOT-SERVERS.NET.
 .       518357  NS      F.ROOT-SERVERS.NET.
 .       518357  NS      G.ROOT-SERVERS.NET.
 .       518357  NS      A.ROOT-SERVERS.NET.

;; ADDITIONAL RECORDS:
H.ROOT-SERVERS.NET.     165593  A       128.63.2.53
B.ROOT-SERVERS.NET.     165593  A       128.9.0.107
C.ROOT-SERVERS.NET.     222766  A       192.33.4.12
D.ROOT-SERVERS.NET.     165593  A       128.8.10.90
E.ROOT-SERVERS.NET.     165593  A       192.203.230.10
I.ROOT-SERVERS.NET.     165593  A       192.36.148.17
F.ROOT-SERVERS.NET.     299616  A       192.5.5.241
G.ROOT-SERVERS.NET.     165593  A       192.112.36.4
A.ROOT-SERVERS.NET.     165593  A       198.41.0.4

;; Total query time: 250 msec
;; FROM: land-5 to SERVER: default -- 127.0.0.1
;; WHEN: Fri Sep 20 10:11:22 1996
;; MSG SIZE  sent: 17  rcvd: 312
</verb></tscreen>

<sect1><tt>/var/named/zone/127.0.0</tt>
<p>

Lo básico, el registro obligatorio <tt>SOA</tt>, y el registro que mapea
<tt>127.0.0.1</tt> a <tt>localhost</tt>. Se requieren ambos. No debería
haber ninguno más en este fichero. Probablemente nunca se necesitará
actualizarlo, salvo que cambien su servidor de nombres o la dirección del
<tt>hostmaster</tt>.

<tscreen><verb>
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609203   ; Numero de Serie
                                28800   ; Tasa de Refresco
                                7200    ; Tasa de Reintento
                                604800  ; Caducidad para secundario
                                86400)  ; Validez para clientes
                        NS      land-5.com.

1                       PTR     localhost.
</verb></tscreen>

<sect1><tt>/var/named/zone/land-5.com</tt>
<p>

Aquí vemos el registro <tt>SOA</tt> y los registros <tt>NS</tt>
necesarios. Podemos observar que dispone de un servidor de nombres
secundario <tt>ns2.psi.net</tt>. Esto es como debe ser, tenga siempre un
servidor secundario de seguridad. También podemos ver que tiene una
máquina principal llamada <tt/land-5/ que se encarga de todos los
diferentes servicios, y que se ha hecho usando <tt>CNAME</tt> (una
alternativa al uso de los registros <tt/A/). 

Como puede ver en el registro <tt>SOA</tt>, el origen del archivo de zona
es <tt/land-5.com/, la persona de contacto es
<tt>root&commat;land-5.com.</tt> <tt/hostmaster/ es otro uso frecuente
para la persona de contacto. El número de serie en el formato habitual
<it/yyyymmdd/ con el número de serie de hoy añadido; esta es probablemente
la sexta versión del archivo de zona del 20 de Septiembre de 1996.
Recuerde que el número de serie debe incrementerse monótonamente, aquí hay
sólo un dígito para las series de hoy, así que después de 9 ediciones
tendrá que esperar hasta mañana antes de poder editar el el archivo de
nuevo. Considere el uso de dos dígitos. 

<tscreen><verb>
@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; Numero de Serie, fecha de hoy + numero de serie de hoy
                        10800           ; Tasa de Refresco, en segundos
                        7200            ; Tasa de Reintento, en segundos
                        10800           ; Caducidad para secundario, en segundos
                        86400 )         ; Validez para Clientes, en segundos
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; Intercambiador Primario de Correo

localhost       A       127.0.0.1

router          A       206.6.177.1

land-5.com.     A       206.6.177.2
ns              CNAME   land-5.com.
ftp             CNAME   land-5.com.
www             CNAME   land-5.com.
mail            CNAME   land-5.com.
news            CNAME   land-5.com.

funn            A       206.6.177.3
illusions       CNAME   funn.land-5.com.
@               TXT     "LAND-5 Corporation"

;
;       Estaciones de Trabajo
;
ws_177200       A       206.6.177.200
                MX      10 land-5.com.   ; Primary Mail Host
ws_177201       A       206.6.177.201
                MX      10 land-5.com.   ; Primary Mail Host
ws_177202       A       206.6.177.202
                MX      10 land-5.com.   ; Primary Mail Host
ws_177203       A       206.6.177.203
                MX      10 land-5.com.   ; Primary Mail Host
ws_177204       A       206.6.177.204
                MX      10 land-5.com.   ; Primary Mail Host
ws_177205       A       206.6.177.205
                MX      10 land-5.com.   ; Primary Mail Host
; {Muchas definiciones repetitivas borradas}
ws_177250       A       206.6.177.250
                MX      10 land-5.com.   ; Primary Mail Host
ws_177251       A       206.6.177.251
                MX      10 land-5.com.   ; Primary Mail Host
ws_177252       A       206.6.177.252
                MX      10 land-5.com.   ; Primary Mail Host
ws_177253       A       206.6.177.253
                MX      10 land-5.com.   ; Primary Mail Host
ws_177254       A       206.6.177.254
                MX      10 land-5.com.   ; Primary Mail Host
</verb></tscreen>

Otra cosa a tener en cuenta es que las estaciones de trabajo no tienen
nombres propios, sino un prefijo seguido por las dos últimas porciones de
los números IP. Usar tal convención puede simplificar el mantenimiento
significativamente, pero puede resultar un poquito impersonal. 

<sect1><tt>/var/named/zone/206.6.177</tt>
<p>

Comentaré este archivo después.

<tscreen><verb>
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206  ; Numero de Serie
                                28800   ; Tasa de Refresco
                                7200    ; Tasa de Reintento
                                604800  ; Caducidad para secundario
                                86400)  ; Validez para Clientes
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servidores
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
3       PTR     funn.land-5.com.
;
;       Estaciones de Trabajo
;
200     PTR     ws_177200.land-5.com.
201     PTR     ws_177201.land-5.com.
202     PTR     ws_177202.land-5.com.
203     PTR     ws_177203.land-5.com.
204     PTR     ws_177204.land-5.com.
205     PTR     ws_177205.land-5.com.
; {Eliminadas muchas definiciones repetitivas}
250     PTR     ws_177250.land-5.com.
251     PTR     ws_177251.land-5.com.
252     PTR     ws_177252.land-5.com.
253     PTR     ws_177253.land-5.com.
254     PTR     ws_177254.land-5.com.
</verb></tscreen>

La <bf>zona de resolución inversa</bf> es la parte de la configuración que
parece crear más dolores de cabeza. <bf>Se usa para encontrar el nombre de
la máquina a partir de su dirección IP</bf>. Ejemplo: suponga que está en
un servidor <tt/irc/ y acepta conexiones de clientes <tt/irc/.  El
servidor <tt/irc/ es noruego y sólo quiere aceptar conexiones de clientes
de Noruega y otros países escandinavos. Cuando se produce una conexión de
un cliente, la librería <it/C/ es capaz de indicar el número IP de la
máquina conectada porque el número IP del cliente está contenido en todos
los paquetes que se pasan a través de la red. Ahora puede llamar a una
función llamada <tt>gethostbyaddr</tt> que busca el nombre de la máquina
dada su dirección IP. 

<tt>gethostbyaddr</tt> interrogará a un servidor DNS el cual efectuará una
búsqueda DNS para la máquina. Suponiendo que la conexión cliente viene de
<tt/ws_177200.land-5.com/, la dirección IP que la librería <it/C/
proporciona al servidor irc será <tt/206.6.177.200/. Para encontrar el
nombre de la máquina necesitamos encontrar
<tt/200.177.6.206.in-addr.arpa/. El servidor DNS primero encuentra los
servidores <tt/arpa./, después los servidores <tt/in-addr.arpa./, a
continuación sigue por <tt/206/, <tt/6/ y al final busca el servidor para
la zona <tt/177.6.206.in-addr.arpa/ en <tt/land-5/. Aquí obtendrá
finalmente que para <tt/200.177.6.206.in-addr.arpa/ tenemos un registro
`<tt>PTR ws_177200.land-5.com</tt>', que significa que el nombre que va
con <tt/206.6.177.200/ es <tt/ws_177200.land-5.com/. Como con la
explicación de cómo buscar <tt/prep.ai.mit.edu/, esto es ligeramente
ficticio. 

Volviendo al ejemplo del servidor irc.  El servidor irc sólo acepta
conexiones de los países escandinavos, osea, <tt/*.no/, <tt/*.se/, y
<tt/*.dk/; el nombre <tt/ws_177200.land-5.com/ claramente no se ajusta a
ninguno de ellos, y el servidor denegará la conexión. Si no hubiese habido
resolución inversa de <tt/206.2.177.200/ mediante la zona
<tt/in-addr.arpa/ el servidor habría sido incapaz de de encontrar el
nombre y habría tenido que comparar <tt/206.2.177.200/ con <tt/*.no/,
<tt/*.se/ y <tt/*.dk/, es decir, cifras con nombres, ninguna de las cuales
concordaría. 

Algunas personas le dirán que la resolución inversa sólo es importante
para los servidores, o que no tienen importancia. No es así;  muchos
servidores de ftp, news, irc e incluso algunos servidores http (WWW) NO
aceptarán conexiones de máquinas de las cuales no son capaces de resolver
el nombre. Por tanto el mapeo inverso de máquinas es de hecho obligatorio. 

<sect>Mantenimiento <label id="mantenimiento">
<p>

Manteniéndolo en funcionamiento.

Hay una tarea de mantenimiento que tiene que realizar con <tt>named</tt>,
además de mantenerlo en funcionamiento. Esta tarea es mantener el archivo
<tt>root.cache</tt> actualizado. La forma más fácil es usar <tt>dig</tt>,
primero ejecute <tt>dig</tt> sin argumentos, conseguirá
<tt>root.cache</tt> de acuerdo con su propio servidor.  Entonces pregunte
a alguno de los servidores raíz listados con

<tscreen><verb>
dig @rootserver 
</verb></tscreen>

Podrá observar que la salida se parece terriblemente al archivo
<tt>root.cache</tt> excepto por un par de números extras. Esos números no
ocasionan problemas. Guárdelo en un archivo

<tscreen><verb>
dig @rootserver . ns > root.cache.new
</verb></tscreen>

y sustituya el antiguo <tt>root.cache</tt> con él. 

Recuerde reiniciar <tt>named</tt> después de sustituir el archivo caché. 

Al Longyear me envió este script que puede ser ejecutado automáticamente
para actualizar <tt>root.cache</tt>, instale una entrada en el
<tt>crontab</tt> para ejecutarlo una vez al mes y olvídese.  El script
supone que trabaja con correo y que el alias de mail <tt/hostmaster/ está
definido. Debe editarlo para ajustarlo a su configuración.

<tscreen><verb>
#!/bin/sh
#
# Actualizacion del cache del servidor de nombres una vez al mes.
# Esto es ejecutado automaticamente mediante una entrada de cron
#
(
 echo "To: hostmaster <hostmaster>"
 echo "From: system <root>"
 echo "Subject: Actualizacion automatica del fichero named.boot"
 echo

 export PATH=/sbin:/usr/sbin:/bin:/usr/bin:
 cd /var/named

 dig @rs.internic.net . ns >root.cache.new

 echo "El fichero named.boot ha sido actualizado para contener la 
siguiente informacion:"
 echo
 cat root.cache.new

 chown root.root root.cache.new
 chmod 444 root.cache.new
 rm -f root.cache.old
 mv root.cache root.cache.old
 mv root.cache.new root.cache
 ndc restart
 echo
 echo "El servidor de nombres ha sido rearrancado a fin de asegurar que la
actualizacion es completa."
 echo "El anterior fichero root.cache se ha renombrado a /var/named/root.cache.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0
</verb></tscreen>

Alguno de ustedes puede haber observado que el archivo <tt>root.cache</tt>
está también disponible mediante ftp en <it>Internic</it>. Por favor NO
utilice ftp para actualizar <tt/root.cache/, el método anterior es mucho
más amistoso con la red. 

<sect>Configuración de Conexiones Automáticas vía telefónica <label
id="timofonicas">.
<p>

Esta sección explica cómo he dispuesto las cosas para automatizarlo todo. 
Mi método puede que no se adapte completamente al suyo, pero puede obtener
ideas de algunas de las cosas que he hecho. También, uso <tt>ppp</tt> para
marcar, mientras que mucha gente usa <tt/slip/ o <tt/cslip/ y por tanto
casi toda su configuración puede ser distinta a la mía.  Pero el programa
de slip <tt>dip</tt> debería poder hacer muchas de las cosas que yo hago.

Normalmente, cuando no estoy conectado a la red tengo un archivo
<tt>resolv.conf</tt> que simplemente contiene la línea

<tscreen><verb>
     domain uio.no
</verb></tscreen>

Eso me asegura que no tengo que esperar a que la librería de resolución de
nombres del sistema intente conectar con un servidor de nombres que no
puede ayudarme.  Pero cuando me conecto quiero arrancar mi <tt>named</tt>
y tener un <tt>resolv.conf</tt> parecido a los descritos anteriormente. He
resuelto esto teniendo dos archivos <tt>resolv.conf</tt> llamados
<tt/resolv.conf.local/ y <tt/resolv.conf.connected/. El último se parece
al <tt/resolv.conf/ descrito anteriormente en este documento. 

Para conectarme automáticamente a la red ejecuto un script llamado
<tt>ppp-on</tt>: 

<tscreen><verb>
#!/bin/sh
echo llamando...
pppd
</verb></tscreen>

<tt>pppd</tt> tiene un archivo llamado <tt>options</tt> que indica las
características de la conexión. Una vez que mi conexión ppp está activa
<tt>pppd</tt> llama a un <it/script/ llamado <tt/ip-up/ (este está
descrito en la página <tt/pppd (8)/ de man). He aquí una parte del
<it/script/:

<tscreen><verb>
#!/bin/sh
interface="$1"
device="$2"
speed="$3"
myip="$4"
upip="$5"
 ...
cp -v /etc/resolv.conf.connected /etc/resolv.conf
 ...
/usr/sbin/named
</verb></tscreen>

Es decir, arranco el <tt/named/ desde aquí. Cuando se corta la conexión
ppp, <tt/pppd/ ejecuta un script llamado <tt/ip-down/: 

<tscreen><verb>
#!/bin/sh
cp /etc/resolv.conf.local /etc/resolv.conf
read namedpid < /var/run/named.pid
kill $namedpid
</verb></tscreen>

Así configuramos las cosas de una forma cuando estamos conectados y las
desconfiguramos cuando nos desconectamos. 

Algunos programas, <tt>irc</tt> y <tt>talk</tt> me vienen a la mente,
hacen algunas suposiciones, y para que en <tt>irc</tt> el comportamiento
de las capacidades <tt>dcc</tt>, y <tt>talk</tt> funcionen bien tiene que
modificar su archivo <tt/hosts/.  Yo he insertado en mi script
<tt>ip-up</tt> lo siguiente:


<tscreen><verb>
cp /etc/hosts.ppp /etc/hosts
echo $myip      roke >>/etc/hosts
</verb></tscreen>

<tt/hosts.ppp/ simplemente contiene

<tscreen><verb>
127.0.0.1       localhost
</verb></tscreen>

y <tt/echo/ inserta la dirección IP que he recibido para mi nombre de host
(<tt/roke/). Vd. deberá usar en su lugar el nombre de su máquina. Este
nombre se puede saber con el comando <tt/hostname/.

Probablemente no sea inteligente ejecutar <tt>named</tt> cuando no esté
conectado a la red, esto es porque <tt>named</tt> intentará enviar
solicitudes a la red y eso consume tiempo, y Vd. tendrá que esperar este
tiempo cada vez que algún programa intente resolver un nombre. Si está
usando conexiones telefónicas debería iniciar <tt>named</tt> cuando se
conecte y matarlo cuando se desconecte. Pero por favor lea la sección de
PUF (<ref id="PUF">) para los trucos.

A algunas personas le gusta usar la directiva <tt>forwarders</tt> para
conexiones de escasa velocidad. Si su proveedor de Internet tiene
servidores DNS en <tt/1.2.3.4/ y <tt/1.2.3.5/ puede insertar la línea

<tscreen><verb>
forwarders 1.2.3.4 1.2.3.5
</verb></tscreen>

en el archivo <tt>named.boot</tt>.  Deje también vacío el archivo
<tt>root.cache</tt>. Esto disminuirá el tráfico IP que origina su máquina.
Esto es especialmente importante si paga por cada byte que circule por el
cable. Tiene el valor añadido de evitarle el deber del mantenimiento; no
tiene porqué actualizar un archivo <tt>root.cache</tt> vacío. 

<sect>PUFs <it>Preguntas de Uso Frecuente (FAQ)</it><label id="PUF">
<p>

En esta sección incluyo algunas de las preguntas más frecuentes realizadas
relativas a DNS y este COMO. Y las respuestas <tt/:-)/ Por favor, lea esta
sección antes de enviarme correo electrónico. 

<sect1>¿Cómo uso DNS desde dentro de un cortafuegos (<it>firewall</it>)?
<p>

Unas cuantas pistas:  `<tt/forwarders/', `<tt/slave/', y echar un vistazo
a la literatura que hay al final de este COMO.

<sect1>¿Cómo hago que DNS rote entre las direcciones disponibles para un
servicio, por ejemplo para <tt>www.siempre.ocupado</tt> para obtener
balanceo de carga o similar?
<p>

Haga varios registros <tt/A/ para <tt/www.siempre.ocupado/ y use <tt/bind
4.9.3/ o posterior. <tt/bind/ hará una rotación tipo <it/round-robin/ de
las respuestas. Esto no funcionará con versiones anteriores de <tt/bind/.

<sect1>Quiero configurar DNS en una intranet (cerrada) ¿qué hago? 
<p>

Elimine el archivo de caché y haga los archivos de zona. Eso también
significa que nunca tendrá que actualizar el archivo de caché. 

<sect1>Mi sistema no tiene el programa <tt>ndc</tt>. ¿Qué hago? 
<p>

El <it/bind/ instalado en su sistema es viejo y de alguna forma obsoleto. 
Si la seguridad es importante para Vd.: actualice <it/bind/
inmediatamente. Si no, de todas formas podrá vivir con ello. En lugar de
ejecutar <tt/ndc start/ ejecute <tt/named/; <tt/ndc reload/ será
<tt/named.reload/ y <tt/ndc restart/ será <tt/named.restart/. Esos
programas probablemente estarán en <tt>/usr/sbin</tt>.

<sect1>¿Cómo configuro un servidor de nombres secundario? 
<p>

Si el servidor primario tiene la dirección <tt/127.0.0.1/, ponga la
siguiente línea en el archivo <tt/named.boot/ de su secundario: 

<tscreen><verb>
      secondary     linux.bogus             127.0.0.1       sz/linux.bogus
</verb></tscreen>

<sect1>Quiero que <it>bind</it> se ejecute cuando me desconecto de la red. 
<p>

He recibido este mail de Ian Clark, <tt><htmlurl
url="mailto:ic@deakin.edu.au" name="ic@deakin.edu.au"></tt> donde explica
la forma de hacer esto: 

``Ejecuto named en la máquina que hace <it/masquerading/ aquí. Tengo dos
archivos <tt/root.cache/, uno llamado <tt/root.cache.real/ que contiene el
servidor de nombres raíz real y el otro llamado <tt>root.cache.falso</tt>
que contiene... 

<tscreen><verb>
          ; root.cache.falso
          ; este archivo no contiene informacion
</verb></tscreen>

Cuando dejo de estar conectado copio el archivo <tt/root.cache.falso/ en
<tt/root.cache/ y reinicio <tt/named/.

Cuando me conecto copio <tt/root.cache.real/ en <tt/root.cache/ y
reinicio <tt/named/. 

Esto se hace desde <tt/ip-down/ &amp <tt/ip-up/ respectivamente. 

La primera vez que efectúo una consulta <it/off line/ sobre un nombre de
dominio del cual <tt/named/ no tiene detalles, éste pone una entrada como
esta en <tt/messages/...

<tscreen><verb>
          Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN
</verb></tscreen>

con la cual puedo convivir sin problemas.

Esto ciertamente parece funcionarme. Puedo usar el servidor de nombres
para máquinas locales mientras no estoy conectado sin el retraso con
nombres de dominio externos, y cuando sí estoy conectado, funciona de
forma normal con dominios externos.''

<sect1>¿Dónde almacena su caché el servidor de nombres? ¿Hay alguna
forma de controlar el tamaño del caché? 
<p>

El caché se almacena en memoria completamente.  No se escribe en disco en
ningún momento. Cada vez que mata a <tt/named/ se pierde el caché. El
caché no es controlable de ninguna forma, <tt/named/ lo maneja de acuerdo
con unas reglas simples. No puede controlar ni el caché ni su tamaño de
ninguna forma ni por ningún motivo. Si quiere, puede cambiar esto tocando
los fuentes de <tt/named/, lo cual no es recomendable.

<sect1> ¿Salva <tt>named</tt> el caché entre reinicios? ¿Puedo guardarlo?
<p>

No, <tt/named/ no salva el caché cuando muere. Esto significa que el caché
se debe reconstruir de nuevo cada vez que mate y reinicie <tt/named/. No
hay forma de hacer que <tt/named/ salve el caché en un archivo. Si quiere,
puede cambiar esto tocando los fuentes de <tt/named/, lo cual no es
recomendable. 

<sect>Cómo hacerse un gran <it>admin</it> DNS.<label id="documentacion">
<p>

Documentación y herramientas.

Existe <it/Documentación Real/. En línea e impresa. Se requiere la lectura
de esta documentación para seguir los pasos de pequeño a gran <it/admin/
DNS. En formato impreso el libro estándar es <it/DNS and BIND/ de C. Liu y
P.  Albitz de <it/O'Reilly &amp Associates/, Sebastopol, CA, ISBN
0-937175-82-X. Lo leí, es excelente. Hay también una sección sobre DNS en
<it>TCP/IP Network Administration</it>, de Craig Hunt de <it/O'Reilly/...,
ISBN 0-937175-82-X. Otros libros necesarios para un Buenos Administradores
DNS (o bueno para cualquier cosa de la materia) es <it/Zen and the Art of
Motorcycle Maintenance/ de Robert M.  Prisig <tt/:-)/ Disponible con ISBN
0688052304 y otros.

Puede encontrar material en línea en <tt><htmlurl
url="http://www.dns.net/dnsrd/"  name="http://www.dns.net/dnsrd/">,
<htmlurl url="http://www.vix.com/isc/bind/" 
name="http://www.vix.com/isc/bind/"></tt>; una <it/PUF/, un manual de
referencia (<it/BOG/;  <it/Bind Operations Guide/) así como <it/papers/ y
definición de protocolos y diversos retoques o <it/hacks/ de DNS (éstos y
la mayoría, si no todas las referencias mencionadas arriba, están también
contenidas en la distribución de <it/bind/).  No he leído la mayoría, pero
tampoco soy un gran admin DNS.  Arnt Gulbrandsen, por otra parte ha leído
el <it/BOG/ y está extasiado con él <tt/:-)/. El grupo de noticias
<tt/comp.protocols.tcp-ip.domains/ es sobre DNS. En suma, hay un gran
número de <tt/RFC/s sobre DNS, las más importantes son probablemente las
siguientes:

<descrip>
<tag/RFC 2052/
A. Gulbrandsen, P. Vixie, <it/A DNS RR for specifying the location of
services (DNS SRV)/, Octubre de 1996

<tag/RFC 1918/
Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, <it/Address
Allocation for Private Internets/, 02/29/1996. 

<tag/RFC 1912/
D. Barr, <it/Common DNS Operational and Configuration Errors/, 02/28/1996. 

<tag/RFC 1713/
A. Romao, <it/Tools for DNS debugging/, 11/03/1994.

<tag/RFC 1712/
C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, <it/DNS Encoding of
Geographical Location/, 11/01/1994. 

<tag/RFC 1183/
R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, <it/New DNS RR
Definitions/, 10/08/1990. 

<tag/RFC 1035/
P. Mockapetris, <it/Domain names - implementation and specification/,
11/01/1987. 

<tag/RFC 1034/
P. Mockapetris, <it/Domain names - concepts and facilities/, 11/01/1987. 

<tag/RFC 1033/
M. Lottor, <it/Domain administrators operations guide/, 11/01/1987. 

<tag/RFC 1032/
M. Stahl, <it/Domain administrators guide/, 11/01/1987.

<tag/RFC 974/
C. Partridge, <it/Mail routing and the domain system/, 01/01/1986.
</descrip>

<sect>Traducción
<p>

Este documento ha sido traducido por

Pedro Pablo Fábrega Martínez, <tt><htmlurl
url="mailto:pfabrega@arrakis.es" name="pfabrega@arrakis.es"></tt>

Si encontráis mejoras, añadidos o fallos, de cualquier tipo, indicádmelo
para mejorar el documento. 

<sect>Anexo: El INSFLUG <label id="Grupos">
<p>

El <em/INSFLUG/ forma parte del grupo internacional 
<it/Linux Documentation Project/, 
encargándose de las traducciones al castellano de los Howtos (Comos),
así como la producción de documentos originales en aquellos casos
en los que no existe análogo en inglés.

En el <bf/INSFLUG/ se orienta preferentemente a la traducción de documentos
breves, como los <em/COMOs/ y <em/PUFs/ (<bf/P/reguntas de
<bf/U/so <bf/F/recuente, las <it/FAQs/. <tt/:)/ ), etc.

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las <bf/últimas/ versiones 
de las traducciones:  <tt><htmlurl url="http://www.insflug.org" 
name="www.insflug.org"></tt>. Asegúrese de comprobar cuál es la última versión 
disponible en el Insflug antes de bajar un documento de un servidor réplica.

Se proporciona también una lista de los servidores
réplica (<it/mirror/) del Insflug más cercanos a Vd.,  
e información relativa a otros recursos en castellano.

Francisco José Montilla, <tt><htmlurl url="mailto:pacopepe@insflug.org"
name="pacopepe@insflug.org"></tt>.
</article>
