Servidor DNS Caché | Práctica guiada

Un servidor DNS Caché no tiene autoridad sobre ninguna Zona. Se dedica a reenviar la consulta y luego memorizar la respuesta para no tener que volver a preguntarla.

 
Lo primero que hemos de hacer es instalar el servicio Bind (en LINUX). Existen otros servidores de nombres, pero el bind es el más famoso.
 
INFO COMPLEMENTARIA SOBRE DNS: Ver cómo Instalar y configurar un Servidor DNS con Bind
 
Lo instalaremos así:

1
sudo apt - get install bind9

Descargar Ejemplos de archivos del Bind Configurados


 

Como ya sabemos, el fichero de configuración de Bind DNS es el /etc/bind/named.conf.local.
 
En este archivo es donde configuraremos las opciones principales del servidor DNS, como las zonas (caché, primaria, secundaria o de reenvío) .
 

 

En este caso, como hemos dicho, vamos a configurar un servidor DNS caché con Bind.


 

Un servidor DNS caché es una zona, que indica que actúa como caché. Cuando recibe una consulta DNS , reenvía la consulta al servidor con autoridad para responder sobre la zona solicitada, y guarda la información recibida  acerca de las consultas DNS para utilizarla en posteriores consultas.
 
Es fundamental que para reenviar las consultas DNS, en el archivo /etc/bind/named.conf.options, debe constar la IP del servidor DNS al que se reenviarán todas las consultas (forwarder) que posteriormente el Server DNS Caché guardará:

1
2
3
forwarders {
192.168.0.1; 
};

 
En este punto hemos de recordar que el servidor DNS al que se van a reenviar las consultas, ha de permitir las consultas del servidor DNS caché (igual ocurre cuando configuramos un servidor esclavo o secundario).

 
Es importante recordar que debemos configurar un nameserver (o servidor de nombres) en el archivo /etc/resolv.conf, que es el archivo dónde configuraremos los Servidores DNS que nos proporcionarán la información de las consultas.

 
Así que el servidor que actuará de forwarder debe contener en su named.conf.options la línea:

1
allow-query { 192.168.0.0/24; };

 
En este caso incluimos la red 192.168.0.0/24 que casualmente es la red en la que se encuentran los dos servidores, pero hemos de poner aquí la red donde se encuentra el servidor DNS Caché.

 

 
Como en este caso nuestro Servidor DNS caché va a ser el servidor DNS que responderá las consultas (reenviando al forwarder las consultas que no conoce), el nameserver que aparecerá en el archivo /etc/resolv.conf, será el propio servidor, con su interfaz loopback:

1
nameserver 127.0.0.1

 
dns cache resolv.conf nameserver
 

 
Pero también hemos de configurar la zona caché, así que entramos al archivo /etc/bind/named.conf.local
 

1
nano named.conf.local

 
Y hemos de añadir esto en el archivo:

1
2
3
4
5
6
7
 
zone "." {
 
type hint;
 
file "/etc/bind/db.root";
};

 
Y ahora mostraré un ejemplo del archivo de dicha zona “.” que se menciona.
 
Este archivo (db.root) contiene la información en los servidores de nombres raíz necesarios para inicializar la caché de los servidores de nombres de dominio.
 

 
Aquí tenemos un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
;       This file is made available by InterNIC
 
;       under anonymous FTP as
 
;           file                /domain/named.root
 
;           on server           FTP.INTERNIC.NET
 
;       -OR-                    RS.INTERNIC.NET
 
;
 
;       last update:    Dec 12, 2008
 
;       related version of root zone:   2008121200
 
; formerly NS.INTERNIC.NET
 
;
 
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
 
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
 
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30
 
;
 
; FORMERLY NS1.ISI.EDU
 
;
 
.                        3600000      NS    B.ROOT-SERVERS.NET.
 
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
 
;
 
; FORMERLY C.PSI.NET
 
;
 
.                        3600000      NS    C.ROOT-SERVERS.NET.
 
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
 
;
 
; FORMERLY TERP.UMD.EDU
 
;
 
.                        3600000      NS    D.ROOT-SERVERS.NET.
 
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
 
;
 
; FORMERLY NS.NASA.GOV
 
;
 
.                        3600000      NS    E.ROOT-SERVERS.NET.
 
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
 
;
 
; FORMERLY NS.ISC.ORG
 
;
 
.                        3600000      NS    F.ROOT-SERVERS.NET.
 
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
 
F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2F::F
 
;
 
; FORMERLY NS.NIC.DDN.MIL
 
;
 
.                        3600000      NS    G.ROOT-SERVERS.NET.
 
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
 
; FORMERLY AOS.ARL.ARMY.MIL
 
;
 
.                        3600000      NS    H.ROOT-SERVERS.NET.
 
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
 
H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::803F:235
 
;
 
; FORMERLY NIC.NORDU.NET
 
;
 
.                        3600000      NS    I.ROOT-SERVERS.NET.
 
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
 
;
 
; OPERATED BY VERISIGN, INC.

 

 

COMPROBAR EL FUNCIONAMIENTO DEL SERVIDOR CACHÉ

 


Para comprobar nuestro servidor caché, utilizaremos el propio equipo como cliente; Nosotros mismos seremos nuestro servidor DNS.
 
Es decir, como decíamos antes, en el archivo /etc/resolv.conf, ha de constar la línea:

1
nameserver 127.0.0.1

De forma que nuestra interfaz loopback resolverá las peticiones DNS.
 

Hecho esto , ya podemos utilizar la herramienta dig para resolver los nombres de Dominio .
Así que ejecutamos un dig a google y observamos que el tiempo de respuesta es de 366 milisegundos.

 

En este momento, tras mostrar los resultados, la caché del servidor DNS Caché ha comenzado a funcionar y ha guardado la consulta que acabamos de hacer, por si se necesita de nuevo:


 

tiempo de respuesta sin caché

 
Así que vamos a ver si es verdad; hacemos una nueva petición de resolución de nombre para google.es:
 

1
dig google.es

 
Y comprobamos que el tiempo de respuesta ha disminuido hasta 0 milisegundos .

caché dns activada

 
Cómo podéis ver, es bastante recomendable instalar un servidor cachéDNS en en nuestra red siempre que nos sea posible.
 
Los que utilicéis Linux lo tenéis facil, simplemente tenéis que instalar el Bind y seguir las indicaciones de este artículo.
 
Los que utiliceis Windows, podéis descargar e instalar una de estas dos aplicaciones :

 
Espero que os haya gustado.
Sigue El Taller del Bit y suscríbete para recibir los artículos directamente.