Configuración de un servidor DNS solo caché
Un servidor DNS solo caché únicamente aporta el servicio de caché y por lo tanto no dispondrá de zonas, ni maestras ni esclava. Cuando le llegue una consulta de un equipo cuya respuesta no está en la caché, realizará una consulta recursiva, y los RR de la respuesta los guardará en la caché (en BIND es la memoria RAM y no un fichero) además de devolvérselos a quien hizo la consulta. Los RR permanecerán en la caché hasta que expire su TTL, y mientras tanto, si llega la misma consulta, se responderá con la información de la caché. La caché se borra completamente cada vez que se reinicie el servidor BIND.
Tras la configuración del servidor tendremos lo siguiente:
- El servidor no tendrá ninguna zona, mas allá de las zonas por defecto (raíz. localhost, etc.).
- Un servidor caché para todos los dominios. Se consigue gracias el estamento recursion yes; y a la zona "." (zona raíz).
- Un servidor que aporta el servicio de consultas recursivas, por lo tanto, el servidor aceptará consultas y él se encargará de conseguir las respuestas; al final se las entregará a los solicitantes. Se consigue con el estamento recursion yes;.
La configuración del fichero named.conf la vamos a distribuir de la misma forma que en la configuración del servidor maestro.
# cat /etc/bind/named.conf
include "/etc/bind/named.conf.acl";
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.logging";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
Como no vamos a utilizar ninguna lista acl, el fichero named.conf.acl lo dejaremos vacío. Y en cuanto al mecanismo de los mensajes log de BIND, mantendremos el mismo sistema.
# cat /etc/bind/named.conf.logging
logging {
category default { mi_canal_log; };
channel mi_canal_log {
file "/var/log/bind/bind.log" versions 3 size 100k;
print-time yes;
print-severity yes;
print-category yes;
};
};
La configuración global de BIND será así:
# cat /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
version "No disponible";
listen-on port 53 { any; }; # valor por defecto, pero es mejor ponerlo para saber que lo hemos tenido en cuenta
recursion yes; # valor por defecto, pero es mejor ponerlo para saber que lo hemos tenido en cuenta
allow-recursion { localnets; }; # valor por defecto, pero es mejor ponerlo para saber que lo hemos tenido en cuenta
allow-transfer { none; };
};
El fichero /etc/bind/named.conf.local lo dejaremos vacío, pues no se creará ninguna zona. Y el fichero /etc/bind/named.conf.default-zones se dejará como está, para que se carguen las zonas por defecto.
Por último reiniciamos el servicio:
# /etc/init.d/bind9 restart
y lo utilizamos en la configuración de los DNS de los equipos (resolv.conf, etc.).
Comprobemos ahora que funciona ejecutando el comando dig desde un equipo de la red del servidor DNS solo cache:
# dig www.rediris.es
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> www.rediris.es
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32490
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.rediris.es. IN A
;; ANSWER SECTION:
www.rediris.es. 7200 IN A 130.206.13.20
;; AUTHORITY SECTION:
rediris.es. 7200 IN NS sun.rediris.es.
rediris.es. 7200 IN NS ns15.communitydns.net.
rediris.es. 7200 IN NS scsnms.switch.ch.
rediris.es. 7200 IN NS ns02.fccn.pt.
rediris.es. 7200 IN NS chico.rediris.es.
;; ADDITIONAL SECTION:
sun.rediris.es. 86400 IN A 130.206.1.2
sun.rediris.es. 7200 IN AAAA 2001:720:418:caf1::2
chico.rediris.es. 86400 IN A 130.206.1.3
chico.rediris.es. 7200 IN AAAA 2001:720:418:caf1::3
;; Query time: 67 msec
;; SERVER: 172.16.0.20#53(172.16.0.20)
;; WHEN: Mon May 15 10:17:48 CEST 2016
;; MSG SIZE rcvd: 276
Si ejecutamos la misma orden a continuación, observamos que la caché está funcionando pues el tiempo de respuesta es mucho menor:
# dig www.rediris.es
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> www.rediris.es
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2892
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 11
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.rediris.es. IN A
;; ANSWER SECTION:
www.rediris.es. 7199 IN A 130.206.13.20
;; AUTHORITY SECTION:
rediris.es. 7199 IN NS ns02.fccn.pt.
rediris.es. 7199 IN NS chico.rediris.es.
rediris.es. 7199 IN NS scsnms.switch.ch.
rediris.es. 7199 IN NS sun.rediris.es.
rediris.es. 7199 IN NS ns15.communitydns.net.
;; ADDITIONAL SECTION:
sun.rediris.es. 86399 IN A 130.206.1.2
sun.rediris.es. 7199 IN AAAA 2001:720:418:caf1::2
ns02.fccn.pt. 86399 IN A 193.136.2.228
ns02.fccn.pt. 299 IN AAAA 2001:690:a80:4001::200
ns15.communitydns.net. 86399 IN A 194.0.1.15
ns15.communitydns.net. 86399 IN AAAA 2001:678:4::f
chico.rediris.es. 86399 IN A 130.206.1.3
chico.rediris.es. 7199 IN AAAA 2001:720:418:caf1::3
scsnms.switch.ch. 86399 IN A 130.59.31.26
scsnms.switch.ch. 86399 IN AAAA 2001:620:0:ff::a7
;; Query time: 2 msec
;; SERVER: 172.16.0.20#53(172.16.0.20)
;; WHEN: Mon May 15 10:17:55 CEST 2016
;; MSG SIZE rcvd: 408
Licencia: licencia de software libre GPL