Configuración de un servidor DNS solo autoritario
Un servidor DNS solo autoritario únicamente responde autoritariamente a consultas sobre zonas de las que es maestro o esclavo. No soporta el servicio de caché ni el de consultas recursivas.
El estamento fundamental para la configuración de este tipo de servidores es el siguiente:
recursion no;
con el cual, desactivamos la caché y las consultas recursivas.
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 no;
allow-query { localnets; };
allow-transfer { none; };
minimal-responses yes;
};
Las líneas nuevas que se han introducido son las siguientes:
recursion no;
Con el anterior estamento se desactiva la caché y las consultas recursivas. Si BIND recibe una consulta de un dominio que no tiene definido ni como maestro ni como esclavo, responderá rechazando la consulta con el estado REFUSED.
También se ha utilizado el estamento minimal-responses:
minimal-responses yes;
con el objetivo de mejorar el rendimiento del servidor al dar respuestas más cortas.
Definiremos ahora las zonas directa e inversa del dominio asir.com en el fichero /etc/bind/named.conf.local tal como se hizo en la configuración del servidor DNS maestro, al igual que los ficheros de zona db.master.asir.com y db.master.17.16.0.rev.
zone "asir.com" in {
type master;
file "db.master.asir.com";
allow-transfer { dns-secundarios; };
};
zone "0.16.172.IN-ADDR.ARPA" in {
type master;
file "db.master.172.16.0.rev";
allow-transfer { dns-secundarios; };
};
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 nuestro servidor funciona ejecutando el comando dig, desde un equipo, con una consulta sobre el dominio asir.com:
# dig ftp.asir.com
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> ftp.asir.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62440
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.asir.com. IN A
;; ANSWER SECTION:
ftp.asir.com. 172800 IN A 172.16.0.12
;; Query time: 1 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jun 15 20:45:58 CEST 2016
;; MSG SIZE rcvd: 57
Podemos ver la rapidez de la respuesta, y también que la brevedad de esta, pues si no hubiésemos utilizado minimal-responses, el resultado hubiese sido el siguiente:
# dig ftp.asir.com
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> ftp.asir.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35801
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.asir.com. IN A
;; ANSWER SECTION:
ftp.asir.com. 172800 IN A 172.16.0.12
;; AUTHORITY SECTION:
asir.com. 172800 IN NS ns1.asir.com.
asir.com. 172800 IN NS ns2.asir.com.
asir.com. 172800 IN NS ns3.asir.com.
;; ADDITIONAL SECTION:
ns1.asir.com. 172800 IN A 172.16.0.1
ns2.asir.com. 172800 IN A 172.16.0.2
ns3.asir.com. 172800 IN A 172.17.0.20
;; Query time: 3 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jun 15 21:40:30 CEST 2016
;; MSG SIZE rcvd: 159
Por último, si consultamos un dominio distinto a asir.com, no obtenemos respuesta:
# dig www.ies-mardecadiz.com
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> www.ies-mardecadiz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 39557
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.ies-mardecadiz.com. IN A
;; Query time: 5 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jun 15 21:42:57 CEST 2016
;; MSG SIZE rcvd: 51
Licencia: licencia de software libre GPL