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 seccion zona del archivo named.conf; 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:
9#9
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:
10#10
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,(pero tras la directiva $TTL ). 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, deberías poner su dirección de correo aquí, qué versión del archivo de zona es (Número 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) usa 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 rndc stop o /etc/init.d/named restart) y usa dig para examinar tu trabajo. -x pregunta por resolución inversa:
11#11
Así gestiona para obtener localhost de 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 4:
;
; 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 rndc reload. Examina los resultados con dig:
12#12
Con un examen cuidadoso puede descubrir fallos. La línea
13#13
está completamente equivocada. Debería ser
14#14
Deliberadamente cometí un error para que pudieras aprender de él. :-) Mirando en el fichero de zona encontramos la línea:
15#15
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 ; Relay de correo primario
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
TXT "El router"
ns A 192.168.196.2
MX 10 mail
MX 20 mail.friend.bogus.
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.
ftp A 192.168.196.5
MX 10 mail
MX 20 mail.friend.bogus.
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 ; Si!
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 ilegaldada en la configuración anterior. Encontrarás 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 considera 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 rndc reload, esto provoca la lectura de sus archivos de nuevo.
16#16
Está bien. Como ves, se parece bastante al propio ficheros de zona. Comprobamos que dice para www solo:
17#17
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.