Anterior Siguiente Inicio
Servidor DNS
Servidor Básico
Para montar un servidor dns básico instalaremos el paquete
bind9, y posteriormente editaremos /etc/bind/named.conf
Si queremos que nuestro dns reenvíe a otros servidores las
peticiones que no tenga en su base de datos, nos aseguraremos de tener
unas líneas como estas.
forwarders {
195.235.113.3;
62.36.220.77;
};
Ahora agregaremos nuestra zona dns:
zone
"midominio.com" {
type master;
file "/var/cache/bind/midominio.com";
};
Y editamos /var/cache/bind/midominio.com
;Zone
file for midominio.com
$ttl 38400
$ORIGIN midominio.com
@
IN SOA
ns.midominio.com. administrador.midominio.com. (
604800 ;
Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
; We can use host.midominio.com. or
host
;If we use host.midominio.com without
the end period, named will extend it to host.midominio.com.midominio.com
;ns.midominio.com.
NS ns
;mail.midominio.com.
MX 10 mail
localhost
A 127.0.0.1
ns
A 192.168.0.1
pluto
A 192.168.0.1
NULL
TXT Servidor
Resolución
inversa
La resolución inversa es necesaria en muchos casos, ya
que muchos servidores de ftp,
news, irc e incluso algunos servidores http
no
aceptarán conexiones de máquinas de las cuales no son
capaces de resolver el nombre.
Crearemos un archivo para cada subred. Por ejemplo así:
;
BIND reverse data file for 192.168.100.0
; /var/cache/bind/192.168.100.db
;
@ IN
SOA foo.org. root.foo.org. (
1998121401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
IN NS
dns.foo.org.
10 IN
PTR www.foo.org.
20 IN
PTR news.foo.org.
30 IN
PTR mail.foo.org.
El . al final de cada nombre de dominio es obligatorio, pues de lo
contrario bind hará cosas raras.
Ahora añadiremos este dominio en el fichero de
configuración de bind:
zone
"100.168.192.in-addr.arpa" {
type master;
file "192.168.100.rev";
};
Transferencias
de zona
Para montar un dns secundario, debemos transferir los ficheros
de zona desde el dns primario. Para ello permitimos a los dns
secundarios acceder a bind en el primario, añadiendo esto en las
secciones de zona:
Si especificamos la ip dentro de allow-transfer, se permitirá a
esta ip copiar los ficheros de zona para esta zona. Pero si queremos
tener varios secundarios, es más sencillo definir una acl, en
este caso "
common-allow-transfer",
y al final de named.conf especificaremos las ip's permitidas mediante
esta acl.
allow-transfer
{
65.143.132.173;
common-allow-transfer;
};
----------------------------------------------------------
acl common-allow-transfer {
213.60.165.90;
212.40.162.80;
};
Además, es recomendable que el maestro notifique a los
secundarios cuando se realicen cambios en sus registros. Para ello
podemos añadir la línea:
notify
yes;
en la sección de opciones del
fichero de configuración de bind, de forma que serán
notificados todos los servidores dns que figuren en los ficheros de
zona con el tipo
NS
Pero si tenemos servidores secundarios que no están entre los
registros de cada dominio, podemos usar lo siguiente para que sean
notificados los dns que queramos cuando cambie cualquier zona.
also-notify
{
213.60.165.90;
212.40.162.80;
};
Por último y muy importante, para que los dns secundarios
actualicen sus zonas, no llega con que en los maestros se añada
o cambie algún registro, sino que es especialmente importante
que cambie el nº de serie de la zona. Una buena práctica es
poner la fecha en el campo para el número de serie, seguida de
dos cifras que definirán el nº de cambio realizado en dicha
fecha. Por ejemplo, este sería el segundo cambio realizado el 18
de agosto de 2005:
2005081802
; Serial
Ahora en los servidores secundarios definiremos una zona tal cual la
definimos en los maestros, pero con algún cambio:
zone
"midominio.com" {
type slave;
file "/var/cache/bind/midominio.com";
masters { 65.143.132.171; };
allow-query { a.b.c.d;
}; # opcional, para especificar a quienes permitimos
realizar consultas
};
Si bind tiene permisos de escritura en
/var/cache/bind, ya no tendremos
que hacer nada más. En cuanto reiniciemos bind, se
copiarán los ficheros de zona y nuestro secundario
comenzará a funcionar.
NOTA: Para que funcionen
correctamente las transferencias, debemos dejar abierto el puerto tcp
53 del dns maestro.
Para poder configurar un subdominio, debemos
crear su zona tal y como se hizo con su dominio padre. Además,
en el dominio padre debemos especificar el servidor de nombres para
dicho subdomionio, de este modo (agregamos esta línea al final
de la zona del dominio principal):
;podemos
usar hermes.vigowireless.wl. o lo siguiente, ya que bind
autocompletará el FQDN:
hermes
IN NS
ns.hermes.vigowireless.wl.
ns.hermes.vigowireless.wl.
IN A
10.34.92.2
Errores
comunes:
1.- Si tenemos habilitados forwarders, puede que nuestro bind mande las
consultas sobre subdominios a los forwarders. Simplemente
desactivándolos ya funcionará correctamente
2.- Si se da el caso de que consultando desde una red ajena a al dns
acerca de un dominio/subdominio que esté en otro servidor dns,
es posible que no obtengamos respuesta, aunque sí un "authority
section". Ello se soluciona permitiendo "allow recursion" en la
configuración de bind.
Ejemplo práctico: Consultar
desde 10.34.93.0/28 al DNS ubicado en 10.34.92.2 (vigowireless.wl)
acerca del subdominio hermes.vigowireless.wl. Dicho subdominio
está definido en otro servidor DNS, por lo que si no permitimos
recursividad, 10.34.92.2 no nos dará ninguna respuesta, aunque
sí nos dirá quien es el DNS encargado.
Anterior Siguiente Inicio