DNS Maestro Primario para una LAN en Debian 6.0 (IV)

Los que hayan estudiado la 1era2da 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

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   st0rmt4il dijo

    Esperando con ansias el 5to articulo 😀

    Saludos!

  2.   federico dijo

    Gracias!!! y no desesperes que pronto mi amigo y colega @elav lo hará.

    1.    st0rmt4il dijo

      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!

  3.   Santiago dijo

    Excelente! Muchas gracias.

  4.   pablo dijo

    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.

  5.   Pablo dijo

    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

  6.   federico dijo

    @pablo, son direcciones IP de ejemplo nada más.

    1.    Pablo dijo

      Gracias, excelente información en su Web.

  7.   Jesús Fenández Toledo dijo

    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

    1.    Federico Antonio Valdés Toujague dijo

      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.

    2.    Federico Antonio Valdés Toujague dijo

      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»;
      [….]

    3.    Federico Antonio Valdés Toujague dijo

      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.

  8.   pedrop dijo

    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.

    1.    pedrop dijo

      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.