Página siguiente Página anterior Índice general

5.1 Nuestro propio dominio

Ahora vamos a definir nuestro propio dominio. Vamos a crear el dominio 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.

Una cosa más antes de empezar: No se permiten todos los caracteres en nombres de máquina. Estamos restringidos a los caracteres del alfabeto inglés: a-z, números 0-9 y el carácter '-' (guión). Manténte en estos caracteres. Las mayúsculas y minúsculas son indistintas para el DNS, así pat.uio.no es idéntico a Pat.UiO.No.

Ya hemos comenzado esta parte con la siguiente línea en named.conf:


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

Por favor, observa la ausencia de `.' al final de los nombres de dominio en este fichero. Esto dice que ahora vamos a definir la zona 0.0.127.in-addr.arpa, de la que somos servidor principal ("master") y que está definida en un fichero llamado pz/127.0.0. Ya hemos configurado este fichero, en el que podemos leer:


$TTL 3D
@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serie
                                8H      ; Refresco
                                2H      ; Reintento
                                4W      ; Expira
                                1D)     ; Minimo TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.

Por favor observa los `.' al final de los nombres de dominio completo en contraste con el archivo named.conf anterior. A algunas personas les gusta iniciar cada zona del archivo con una directiva $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 dominio del archivo named.boot; en este caso es 0.0.127.in-addr.arpa.

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

0.0.127.in-addr.arpa.   IN      SOA ...

NS es el RR Name Server (Servidor de Nombres). No hay '@' al comienzo de esta línea; es implícita ya que la línea previa comenzaba con '@'. Eso ahorra algo de tecleo. Así la línea NS se podría haber escrito también como:

0.0.127.in-addr.arpa.   IN      NS      ns.linux.bogus

Esto le indica a DNS qué máquina es el servidor de nombres del dominio 0.0.127.in-addr.arpa, este es ns.linux.bogus. 'ns' es un nombre habitual para servidores de nombres, pero como con los servidores web que habitualmente se llaman www.loquesea el nombre puede ser cualquiera.

Y finalmente el registro PTR (Domain Name Pointer, Puntero de nombre de dominio) le dice que el host con dirección 1 (igual a 1.0.0.127.IN-ADDR.ARPA, esto es, 127.0.0.1) es el llamado localhost.

El registro SOA es el preámbulo de todos los archivos de zona y debe haber uno exactamente en cada archivo de zona. El registro SOA describe la zona, de dónde proviene (una máquina llamada linux.bogus), quién es el responsable de su contenido (hostmaster@linux.bogus), qué versión del archivo de zona es (Numero de Serie, 1), y otras cosas que tienen que ver con el caché y los servidores secundarios DNS. Para el resto de los campos (Tasa de Refresco, Tasa de Reintento, Caducidad para secundario y Tiempo de Validez para Clientes) use los valores que aparecen aquí para mayor seguridad. Antes de SOA viene una línea obligatoria, la línea $TTL 3D Ponla en todos tus ficheros de zona.

Ahora reinicia tu named (la orden es ndc restart) y usa dig para examinar tu trabajo. -x pregunta por resolución inversa:

$ dig -x 127.0.0.1

; <<>> DiG 8.2 <<>> -x
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;      1.0.0.127.in-addr.arpa, type = ANY, class = IN

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.  1D IN PTR  localhost.

;; AUTHORITY SECTION:
0.0.127.in-addr.arpa.   1D IN NS        ns.penguin.bv.

;; Total query time: 5 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 01:13:48 2000
;; MSG SIZE  sent: 40  rcvd: 110

Así gestiona pra obtener localhost from 127.0.0.1, bien. Ahora para nuestro tarea principal, el dominio linux.bogus, inserta una nueva sección 'zone' en named.conf:


zone "linux.bogus" {
        notify no;
        type master;
        file "pz/linux.bogus";
};

Observa de nuevo la ausencia de `.' final en el nombre de dominio en el fichero named.conf.

En el fichero de zona linux.bogus pondremos datos totalmente ficticios

N del T
Por si no lo has notado todavía, bogus en inglés significa precisamente falso.
: :


;
; Fichero de zona para  linux.bogus
;
; El fichero de zona completo
;
$TTL 3D
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serie, fecha de hoy + serie de hoy #
                        8H              ; refresco, segundos
                        2H              ; reintento, segundos
                        4W              ; expira, segundos
                        1D )            ; mínimo, segundos
;
                NS      ns              ; Dirección Inet del servidor de nombres
                MX      10 mail.linux.bogus     ; Relay de correo primario
                MX      20 mail.friend.bogus.   ; Relay de correo secundario
;
localhost       A       127.0.0.1
ns              A       192.168.196.2
mail            A       192.168.196.4

Deben de observarse dos cosas sobre los registros SOA. ns.linux.bogus debe ser una máquina actual con un registro A. No es legal tener un registro CNAME para la máquina mencionada en el registro SOA. Su nombre no necesita ser ns, podría ser cualquier nombre legal de máquina. A continuación, en hostmaster.linux.bogus deberá aparecer algo como hostmaster@linux.bogus; 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 hostmaster, puede ser cualquier dirección email legal, pero la dirección email hostmaster funcionará también.

Hay un nuevo tipo de RR en este archivo, el MX, o Mail eXchanger. Este indica el sistema de correo a donde mandar el correo dirigido a alguien@linux.bogus, pudiendo ser también mail.linux.bogus o mail.friend.bogus. El número que precede a cada nombre de máquina es la prioridad del RR MX. El RR con el número más bajo (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 mail.friend.bogus que tiene una prioridad 20 aquí.

Reinicia named ejecutando ndc restart. Examina los resultados con dig:

$ dig any linux.bogus +pfmin
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23499
;; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 1
;; QUERY SECTION:
;;      linux.bogus, type = ANY, class = IN

;; ANSWER SECTION:
linux.bogus.            3D IN MX        10 mail.linux.bogus.linux.bogus.
linux.bogus.            3D IN MX        20 mail.friend.bogus.
linux.bogus.            3D IN NS        ns.linux.bogus.
linux.bogus.            3D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum

Con un examen cuidadoso puede descubrir fallos. La línea

linux.bogus.            3D IN MX        10 mail.linux.bogus.linux.bogus.

está completamente equivocada. Debería ser

linux.bogus.            3D IN MX        10 mail.linux.bogus.

Deliberadamente cometí un error para que pudieras aprender de él. :-) Mirando en el fichero de zona encontramos la línea:

                MX      10 mail.linux.bogus     ; Relay de correo primario

Falta un punto. O tiene demasiados 'linux.bogus'. Si una nombre de máquina no termina en punto, en un fichero de zona, se le añade el origen al final ocasionado el doble linux.bogus.linux.bogus. Entonces, o bien


                MX      10 mail.linux.bogus.    ; Relay de correo primario

o


                MX      10 mail                 ; Primary Mail Exchanger

es correcto. Prefiero la última forma, hay que teclear menos. Hay algunos expertos den BIND que no están de acuerdo con esto y otros que sí. En un fichero de zona el dominio debería de escribirse bien finalizado con un `.' o no debería incluirse, en cuyo caso toma como valor predeterminado el origen.

Tengo que insistir que en el fichero named.conf no se tiene que poner `.'s tras los nombres de dominio. No tienes ni idea de cuantas veces un `.' por ponerlo o por no ponerlo ha estropeado todo y ha vuelto loca a la gente.

Y habiendo incluido mi punto,aquí está el nuevo fichero de zona, con alguna información extra también:


;
; Fichero de zona para linux.bogus
;
; Fichero de zona completo
;
$TTL 3D
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; seriel, fecho de hoy + serie de hoy #
                        8H              ; refresco, segundos
                        2H              ; reintento, segundos
                        4W              ; expira, segundos
                        1D )            ; mínimo, segundos
;
                TXT     "Linux.Bogus, sus consutas DNS"
                NS      ns              ; Inet Address of name server
                NS      ns.friend.bogus.
                MX      10 mail         ; Relay primario de correo
                MX      20 mail.friend.bogus. ; Relay secundario de correo

localhost       A       127.0.0.1

gw              A       192.168.196.1
                HINFO   "Cisco" "IOS"
                TXT     "El router"

ns              A       192.168.196.2
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "Pentium" "Linux 2.0"
www             CNAME   ns

donald          A       192.168.196.3
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "i486"  "Linux 2.0"
                TXT     "DEK"

mail            A       192.168.196.4
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "386sx" "Linux 1.2"

ftp             A       192.168.196.5
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "P6" "Linux 2.1.86"

Hay varios registros nuevos aquí: HINFO (Host INFOrmation), 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. La máquina llamada ns tiene una CPU Pentium con Linux 2.0. El registro TXT es un texto en formato libre que puede usar para cualquier cosa que le interese. CNAME (Canonical NAME) es una forma de dar a cada máquina varios nombres. Por tanto www es un alias para ns.

El uso de registros CNAME es controvertido. Pero es más seguro seguir la norma de que los registros MX, CNAME y SOA nunca deben hacer referencia a un registro CNAME, sólo deben referirse a registros A, en consecuencia es desaconsejable tener


foobar          CNAME   www                     ; NO!

lo correcto sería tener


foobar          CNAME   ns                      ; Yes!

También es mejor suponer que un CNAME no es un nombre de máquina legal para direcciones de correo: webmaster@www.linux.bogus 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 te funciona. La forma de evitar esto es usar un registro A (y quizá algunos otros también, como un registro MX) en su lugar:


www             A       192.168.196.2

Algunos gurús de named recomiendan no usar CNAME. Por tanto considere el no utilizarlo seriamente. Pero la discusión de por qué o no está más allá de los objetivos de este documento.

Pero como puede ver, en este COMO y en muchos sitios no siguen esta regla.

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

$ dig linux.bogus axfr

; <<>> DiG 8.2 <<>> linux.bogus axfr
$ORIGIN linux.bogus.
@                       3D IN SOA       ns hostmaster (
                                        199802151       ; serie
                                        8H              ; refresco
                                        2H              ; reintento
                                        4W              ; expira
                                        1D )            ; minimo

                        3D IN NS        ns
                        3D IN NS        ns.friend.bogus.
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN TXT       "Linux.Bogus, sus consutas DNS"
gw                      3D IN TXT       "The router"
                        3D IN HINFO     "Cisco" "IOS"
                        3D IN A         192.168.196.1
localhost               3D IN A         127.0.0.1
mail                    3D IN HINFO     "386sx" "Linux 1.2"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.4
www                     3D IN CNAME     ns
donald                  3D IN TXT       "DEK"
                        3D IN HINFO     "i486" "Linux 2.0"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.3
ns                      3D IN HINFO     "Pentium" "Linux 2.0"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.2
ftp                     3D IN HINFO     "P6" "Linux 2.1.86"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.5
@                       3D IN SOA       ns hostmaster (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum

;; Received 29 answers (29 records).
;; FROM: lookfar to SERVER: 127.0.0.1
;; WHEN: Sat Dec 16 01:35:05 2000

Está bien. Como puedes ver, se parece un montón al propio fichero de zona Verifiquemos lo que dice sólo para www:

$ dig www.linux.bogus +pfmin
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27345
;; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1
;; QUERY SECTION:
;;      www.linux.bogus, type = A, class = IN

;; ANSWER SECTION:
www.linux.bogus.        3D IN CNAME     ns.linux.bogus.
ns.linux.bogus.         3D IN A         192.168.196.2

En otras palabras, el nombre real de www.linux.bogus es ns.linux.bogus, y te da parte de la información que tiene de ns también, suficiente si fueras un programa.

Ahora estamos a mitad de camino.


Página siguiente Página anterior Índice general