# yum install bind
La instalación por defecto del servidor BIND viene configurado para hacer de caché a la máquina local. Editamos el fichero de configuración, en /etc/named.conf, e introducimos los siguientes cambios dentro de la sección options {...};:
listen-on para que incluya la IP de la interfaz de la red interna (192.168.128.3):
listen-on port 53 { 127.0.0.1; 192.168.128.3; };
listen-on-v6 port 53 { none; };allow-query para que sirva a las máquinas de la red local, determinada por la expresión 192.168.128.0/24:
allow-query { localhost; 192.168.128.0/24; };forwarders { 80.58.61.250; 80.58.61.254; };
Las direcciones a poner aquí dependerán de tu ISP. En mi caso pude conocerlas simplemente consultando los servidores que el dispositivo conectado a Internet ha recibido desde el anfitrión mediante el comando:
# cat /etc/resolv.confEn otros casos puede ser necesario consultar los servidores DNS directamente del router ADSL.
query-source address * port 53; transfer-source * port 53; notify-source * port 53;
Aún queda por configurar las “zonas” del servidor DNS. La zona podemos verla como el .xxx en que se agrupan las máquinas. Por ejemplo, si contrato un dominio pública, tal que example.com, deberé configurar un servidor DNS (generalmente este servicio nos lo ofrecerá el mismo ISP que nos vendió el dominio) que gestione los nombres de la máquina. Por tanto, la zona de ese servidor DNS será .example.com. Será misión de ese servidor resolver los nombres tales como smtp.example.com o makina.example.com. Como los servidores DNS configuran un sistema jerárquico, en algún lugar del mundo existirán los servidores DNS que gestionen los nombres de la zona .com.
Debemos crear dos ficheros con la configuración de las zonas directas e inversa. En la zona directa hay que incluir las asociaciones entre nombre e IP, y el zona inversa el mapa para encontrar el nombre asociado a la IP.
$TTL 172800 ; 2 days
oceano. IN SOA caistro.oceano. hostmaster.oceano. (
2013020800 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS caistro.oceano.
MX 10 caistro.oceano.
$ORIGIN oceano.
caistro A 192.168.128.3
dns CNAME caistro
mail CNAME caistro
vbhost A 192.168.128.1
Este ejemplo lo puedes bajar con la dirección fichero en http://www.anadebreuil.org/man/RedVirtual/oceano.zone para usarlo como plantilla. Por ejemplo, con el comando
# wget http://www.anadebreuil.org/man/RedVirtual/oceano.zoneEn Fedora el fichero debe pertenecer al usuario named y al grupo named, con los permisos suficientes. Por eso cambiamos la configuración de seguridad:
# chown named:named oceano.zone # chmod 640 oceano.zoneA continuación voy a tratar de explicar el sentido de algunos elementos del fichero de configuración:
caistro A 192.168.128.3el término caistro se interpreta como caistro.oceano. puesto que no termina con un punto y $ORIGIN tiene el valor oceano.
A modo de resumen, los registros de la zona oceano definen dos máquinas caistro.oceano y vbhost.oceano. La primera es la propia máquina que estamos configurando y la otra se corresponde con la IP que configuramos para conectar con el anfitrión. Además creamos los alias dns.oceano y mail.oceano para tener definidos estos nombres asociados a servicios específicos dentro de la zona.
Puedes verificar la sintaxis del fichero de zona mediante el comando named-checkzone, por ejemplo:
# cd /var/named # named-checkzone oceano. oceano.zone
$TTL 172800 ; 2 days
128.168.192.in-addr.arpa. IN SOA caistro.oceano. hostmaster.oceano. (
2013020800 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS caistro.oceano.
$ORIGIN 128.168.192.in-addr.arpa.
1 PTR vbhost.oceano.
3 PTR caistro.oceano.
Puedes bajarte este ejemplo en la dirección http://www.anadebreuil.org/man/RedVirtual/oceano.rev, pero acuérdate de ponerle los permisos de forma adecuada.
La sintaxis del fichero es la misma que antes, pero ahora la zona es 128.168.192.in-addr.arpa., que es a la correspondiente a una red 192.168.128.0/24. Puedes distinguir dos partes: por una parte figura parte de la IP de la subred puesta en orden inverso y de otra la zona in-addr.arpa., que es una zona estándar para la resolución inversa de direcciones.
# host 192.168.128.3la aplicación host lo que realmente hace es resolver contra DNS el nombre 3.128.168.192.in-addr.arpa., y nuestro servidor DNS responderá con el nombre caistro.oceano.. Puedes consultar más información en http://en.wikipedia.org/wiki/.arpa.
De nuevo, puedes verificar la sintaxis del fichero de la zona inversa puedes utilizar de nuevo el comando named-checkzone:
# named-checkzone 128.168.192.in-addr.arpa. oceano.rev
#!/bin/bash
while [ $# -gt 0 ]
do
keyname="$1" && shift
keyfile=$(dnssec-keygen –a HMAC-MD5 –b 128 –p 3 –n HOST ${keyname})
test -r ${keyfile}.key || exit 1
keyconf="${keyfile}.named.conf"
key=$(awk '{print $7}' ${keyfile}.key)
cat > ${keyconf} <<EOF
key ${keyname} {
algorithm HMAC-MD5;
secret "${key}";
};
EOF
chown root:named ${keyconf}
chmod 0640 ${keyconf}
done
y lo ejecutamos como root:
# bash named.key.sh caistro # mv named.caistro.conf /etc
include "/etc/named.caistro.conf";
zone "oceano" in {
type master;
notify no;
file "oceano.zone";
allow-update { key caistro; };
};
zone "128.168.192.in-addr.arpa" in {
type master;
notify no;
file "oceano.rev";
allow-update { key caistro; };
};
De nuevo, el fichero http://www.anadebreuil.org/man/RedVirtual/named.oceano.conf contiene este fichero para que lo descargues y personalices a tu caso.
Sin profundizar en detalles, se configura el servidor DNS como servidor maestro de las zonas directa e inversa, como no hay servidores inferiores y es una red privada no hay nada que notificar a los servidores de rango superior, se indican los ficheros con los registros de zona y le indicamos que los servidores que le pasen la clave caistro están autorizados a modificar las zonas de forma dinámica.
include "/etc/named.oceano.conf";
Con eso podemos iniciar el servicio
# systemctl start named # systemctl status named # grep named /var/log/messages | less -S
Podemos probar el funcionamiento del servidor con las direcciones que hemos metido en las zonas con estos comandos:
# host caistro.oceano # host vbhost.oceano # host www.anadebreuil.org # host 192.168.128.3 # host 192.168.128.1 # host 82.194.64.60
Si todo está correcto puedo habilitar el inicio del servicio al arrancar la máquina:
# systemctl enable named
Referencia: Fedora 17 System Administrators Guide. Chapter 12. DNS Servers.