Los que hayan estudiado la 1era, 2da y 3era parte de esta serie se habrán dado cuenta de que hemos tratado de seguir un orden lógico y hacia adelante de forma que no nos perdamos a la hora de instalar y configurar un BIND. Ahora abordaremos la creación de los archivos de las Zonas Locales que son los que en definitiva contienen los registros de datos de nuestro dominio.
Creación del archivo de la Zona Principal Maestra del tipo “Directa” amigos.cu
En named.conf.options declaramos que los archivos de las Zonas estarán en el directorio/var/cache/bind. Tomaremos como plantilla para la creación de nuestra zona el archivo/etc/bind/db.local. A nuestro gusto denominaremos el archivo amigos.cu.hosts:
cp /etc/bind/db.local /var/cache/bind/amigos.cu.hosts
Posteriormente editamos el archivo /var/cache/bind/amigos.cu.hosts el cual deberá quedar de la forma siguiente:
;/var/cache/bind/amigos.cu.hosts ; ; Archivo de datos del BIND para la Zona Maestra (Directa) amigos.cu ; OJO con el punto al final de cada FQDN ; OJO con dejar espacios en blanco al final de cada línea ; OJO con el Copia y Pega ; Este archivo es una base de datos ; Los comentarios Aquí se hacen después de un punto y coma (;) ; Los nombres de host pueden incluir caracteres del alfabeto inglés ; a-z, números 0-9 y el guión o "dash" "-" ; no se distinguen mayúsculas de minúsculas, aunque recomendamos ; el uso de minúsculas todo el tiempo ; $TTL 1W @ IN SOA amigos.cu. root.amigos.cu. ( 2 ; Serial 1W ; Refresh 1D ; Retry 4W ; Expire 1W ) ; Negative Cache TTL ; @ IN NS ns.amigos.cu. @ IN MX 10 mail.amigos.cu. @ IN TXT "Amigos Cubanos. Su Red de Referencia" ns IN A 192.168.10.10 gandalf IN A 192.168.10.1 fedex IN A 192.168.10.100 mail IN A 192.168.10.9 web IN A 192.168.10.20 www IN CNAME web.amigos.cu.
Una explicación detallada de cada registro la puede encontrar en la documentación del paquete bind9-doc o en la Wiki del Grupo Usuarios Tecnologías Libres. Nosotros explicaremos los registros siguientes:
- $TTL 1W: Time To Live o tiempo de vida de la información. 1 semana.
- @ IN SOA: Start of Authority o comienzo de la autoridad del dominio amigos.cu. y el administrador del dominio root.amigos.cu.
- 2 ; Serial: número de serie de la zona el cual se debe incrementar cada vez que la modifiquemos. Si hacemos varios cambios en una misma ocasión, podemos incrementarlo una sola vez antes de reiniciar el BIND o recargar la zona mediante el comando rndc reload.
- @ IN NS: nuestro BIND está en el host ns.amigos.cu. y es OBLIGATORIO que este host tenga un registro tipo A que lo identifique de forma unívoca.
- @ IN MX: el correo del dominio lo maneja el host mail.amigos.cu. con la prioridad más alta la cual corresponde al número más bajo
- @ IN TXT: Comentario aclaratorio
- www IN CNAME: alias www.amigos.cu. al host web.amigos.cu.
- ns IN A 192.168.10.10: al host ns.amigos.cu. le corresponde la dirección IP 192.168.10.10.
- Respetamos los valores por defecto de los tiempos de:
- vida de la información
- refrescar la información
- re-intentar la conexión
- expiración (caducidad) de la validez de la información
- cache negativa o tiempo de almacenamiento de los DNS externos en la caché.
Antes de reiniciar el bind9, comprobemos la sintaxis de la zona creada:
named-checkzone amigos.cu /var/cache/bind/amigos.cu.hosts
La respuesta al comando deberá ser:
zone amigos.cu/IN: loaded serial 2 OK
Reiniciemos el servicio:
service bind9 restart
Comprobemos:
dig amigos.cu ns dig maigos.cu mx dig amigos.cu axfr dig amigos.cu txt
Las respuestas en cada caso deben ser las correctas.
# dig amigos.cu ns ---- ;; ANSWER SECTION: amigos.cu. 604800 IN NS ns.amigos.cu. ---- # dig amigos.cu mx ---- ;; ANSWER SECTION: amigos.cu. 604800 IN MX 10 mail.amigos.cu. ---- ---- ;; ADDITIONAL SECTION: mail.amigos.cu. 604800 IN A 192.168.10.9 ns.amigos.cu. 604800 IN A 192.168.10.10 ---- # dig amigos.cu axfr ; <<>> DiG 9.7.2-P3 <<>> amigos.cu axfr ;; global options: +cmd amigos.cu. 604800 IN SOA amigos.cu. root.amigos.cu. 2 604800 86400 2419200 604800 amigos.cu. 604800 IN NS ns.amigos.cu. amigos.cu. 604800 IN MX 10 mail.amigos.cu. amigos.cu. 604800 IN TXT "Amigos Cubanos. Su Red de Referencia" fedex.amigos.cu. 604800 IN A 192.168.1.100 gandalf.amigos.cu. 604800 IN A 192.168.10.1 mail.amigos.cu. 604800 IN A 192.168.10.9 ns.amigos.cu. 604800 IN A 192.168.10.10 web.amigos.cu. 604800 IN A 192.168.10.20 www.amigos.cu. 604800 IN CNAME web.amigos.cu. amigos.cu. 604800 IN SOA amigos.cu. root.amigos.cu. 2 604800 86400 2419200 604800 ;; Query time: 0 msec ;; SERVER: 192.168.10.10#53(192.168.10.10) ;; WHEN: Fri Jan 4 16:46:01 2013 ;; XFR size: 11 records (messages 1, bytes 307) # dig amigos.cu txt ---- ;; ANSWER SECTION: amigos.cu. 604800 IN TXT "Amigos Cubanos. Su Red de Referencia" ----
Observen en las salidas anteriores como responde a nuestra consulta en la sección “ANSWER SECTION:”. Además, nos dice que la Autoridad, como se indica en el registro SOA (AUTHORITY SECCTION:) y que responde a la consulta hecha al dominio amigos.cu., la tiene el host ns.amigos.cu., tal y como lo declaramos en el archivo de la zona amigos.cu.hosts
Cuando hagamos cambios en las Zona Directa y/o en la Inversa, no será necesario reiniciar el servidor. Sólo necesitaremos aumentar el número de serie “Serial” en uno, y recargar las zonas mediante el comando rndc reload.
Ahhh, ¿Cómo se crea y mantiene una Zona Inversa? Lo veremos en el 5to y último capítulo. Hasta entonces, amigos!
14 comentarios, deja el tuyo
Esperando con ansias el 5to articulo 😀
Saludos!
Gracias!!! y no desesperes que pronto mi amigo y colega @elav lo hará.
Jeejej.. andas bien con iceape :D!
Podrias hacer algun post sobre el mismo?
En internet no hay mucha referencia por lo menos hispanohablante sobre dicha suite de internet.
Gracias!
Excelente! Muchas gracias.
Estaria buenisimo que cuando termines la serie completa armes un solo post con todos los post juntos. Creo que puede ser muy util tenerlo todo en uno.
qué función tienen o que representan estás IP?
gandalf IN A 192.168.10.1
fedex IN A 192.168.10.100
mail IN A 192.168.10.9
web IN A 192.168.10.20
@pablo, son direcciones IP de ejemplo nada más.
Gracias, excelente información en su Web.
Felicitaciones por el único manual bueno que hay en internet de los 20-30 que he consultado. Eres un crack escribiendo artículos.
Como aporte al tutorial se podría poner dos comandos:
ps -ef | grep named //Para ver si bind se ha iniciado tras las instalación
netstat -ltun | grep 53 // Para ver si escucha por el puerto 53
También se podría poner la linea en el fichero /etc/bind/named.conf.options la siguiente línea para ocultar la versión del servidor por seguridad.
version «Texto que queremos mostrar»;
Ahora bien tengo una serie de dudas:
1.- ¿Que diferencias hay al crear los archivos de zona en /var/cache/bind o en /var/lib/bind?
2.- He intentado poner una IP pública en el archivo de zona para ver si el DNS va bien, concretamente la de socialgames.marca.com, y me dice el navegador que no se puede mostrar la página.
$TTL 604800
@ IN SOA marca.com. administrador.marca.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;Servidor DNS del Dominio
@ IN NS debian.marca.com.
;Hosts
socialgames IN A 46.137.72.102
debian IN A 192.168.23.158
ftp IN A 192.168.23.56
Cuando escribo un post o artículo, dejo a los lectores muchas cosas para despertar su curiosidad… Los interesados las buscarán; como tu, que veo que eres un amante de Linux y del servicio DNS en general. Por ejemplo, si ejecutas el comado:
xeon@gandalf:~$ host -a chat
Trying «chat.rpb.sld.cu»
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17908
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;chat.rpb.sld.cu. IN ANY
;; ANSWER SECTION:
chat.rpb.sld.cu. 0 IN A 192.168.10.6
Received 49 bytes from 192.168.10.2#53 in 0 ms
Te darás cuenta de que no es necesario hacer comprobaciones extras pues la línea Received 49 bytes from 192.168.10.2#53 in 0 ms, especifica que estás recibiendo respuesta de un DNS, por el puerto 53, en la IP 192.168.10.2.
Pienso que mientras más fácil nos hagamos nuestra vida, será mejor.
Sobre la ubicación de los archivos de las zonas, Debian recomienda que sea en el directorio /var/cache/bind, mientras que Ubuntu CREO que recomienda sea en /var/lib/bind, sobre todo acorde a los últimos posts que he leído sobre Ubuntu y Samba 4. Personalmente, como soy debianero, recomiendo /var/cache/bind, que es como por defecto se declara en named.conf.options, tanto en Debian como en Ubuntu.
[….]
directory «/var/cache/bind»;
[….]
Sobre que no se muestra correctamente en el navegador, tu registro A «socialgames IN A 46.137.72.102», es lógico pues estás en una subnet 192.168.23.0 y quieres acceder a otra sin el enrutamiento necesario. Para probar puedes poner en modo promiscuo tu tarjeta de red y añadirle una IP de la subnet 46.137.72.0 y probar de nuevo. Existen otras soluciones, pero ésta es la que a mi mente viene ahora mismo. Saludos y Buena Suerte.
Estos post me han servido de mucho, gracias. Pero tengo una duda, estoy configurando un servidor jabber con prosody y necesito agregar los registros SRV necesarios y hasta ahora no encuentro la forma. Mi server(virtual) se llama jabber y estoy agregandolos mas o menos de esta forma _xmpp-client._tcp.jabber.dominio.com.
IN SRV 5 0 5222 jabber
Y el otro lo mismo pero con el puerto 5269 y _xmpp-server. Alguna sugerencia de por que no funciona? Disculpen las tildes pero no tuve tiempo de configurar las entradas de idioma. Gracias de antemano federico.
Me respondo a mí mismo. Buscando en google encontré lo siguiente para los registros SRV a utilizar para xmpp:
Primero si usas una pc llamada jabber tienes que especificar el IP con un registro A:
jabber IN A 192.168.0.X
_xmpp-client._tcp.jabber.amigos.cu. IN SRV 5 0 5222 jabber
_xmpp-server._tcp.jabber.amigos.cu. IN SRV 5 0 5269 jabber
De esta forma funciona el prosody sin problemas, que es para lo que lo necesitaba. Los espacios en los registros recordad que son tabulaciones, el bind9 suele ponerse malo con los espacios! Espero que esto le sirva a alguien.