Acelerar el navegador: cache dns en local
Introducción
Una manera muy sencilla de cargar mas rapido las paginas que visitamos en debian es instalar un caché de dns en local. Puedes ver el articulo ¿que es y como funciona las dns?.
Básicamente lo que nos permite es generar una caché para almacenar la resolución de dominios a su ip equivalente. Esta caché será consultada en las siguientes peticiones, por lo que no hará falta volver a realizar la petición dns a nuestro router o servidor dns de nuestra conexión.
Esto nos permitirá ahorrar tiempo en cargar la página web, descargar el fichero, etc.
Instalación del cache dns: pdnsd
Lo primero que debemos hacer es ser usuario root:
sudo -s
A continuación instalamos el servidor dns pdns:
apt-get install pdnsd
Configuración de pdnsd
Una vez instalado, debemos modificar el fichero de configuracion /etc/pdnsd.conf
en caso de ser necesario:
- cache_dir: directorio donde se almacenará la caché de dns
- perm_cache: tamaño del caché de dns (en bytes)
- min_ttl: tiempo mínimo que permanecerá un registro en caché
- max_ttl: tiempo máximo que permanecerá un registro en caché
También debemos modificar el fichero /etc/pdnsd
para poder arrancar el cache dns, modificando:
START_DAEMON=no
por
START_DAEMON=yes
Y en el último paso, debemos modificar el orden de los servidores de nombres, indicando que utilice en primer lugar nuestro servidor local.
Editamos el fichero /etc/resolv.conf
y añadimos en la primera línea:
nameserver www.fernandezsansalvador.es
Por último iniciamos el servidor dns cache:
/etc/init.d/pdnsd start
Y con esto ya tendremos instalado nuestro propio servidor caché dns en local.
Comprobar que está funcionando correctamente
Podemos realizar una sencilla comprobación con el comando dig
, que nos permite resolver un dominio a su dirección ip.
# dig google.com ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26847 ;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 900 IN A 173.194.34.225 google.com. 900 IN A 173.194.34.233 google.com. 900 IN A 173.194.34.226 google.com. 900 IN A 173.194.34.224 google.com. 900 IN A 173.194.34.238 google.com. 900 IN A 173.194.34.229 google.com. 900 IN A 173.194.34.231 google.com. 900 IN A 173.194.34.228 google.com. 900 IN A 173.194.34.232 google.com. 900 IN A 173.194.34.230 google.com. 900 IN A 173.194.34.227 ;; Query time: 413 msec ;; SERVER: www.fernandezsansalvador.es#53(www.fernandezsansalvador.es) ;; WHEN: Mon May 26 19:58:15 2014 ;; MSG SIZE rcvd: 204
Como podemos ver en el resultado que nos devuelve, esta petición ha tardado 413 milisegundos y se ha resuelto desde el servidor local (www.fernandezsansalvador.es). Este a su vez ha realizado una petición a un servidor externo ya que no se tenía cacheado.
La segunda petición que hacemos para resolver el dominio google.com:
#dig google.com ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29161 ;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 865 IN A 173.194.34.230 google.com. 865 IN A 173.194.34.227 google.com. 865 IN A 173.194.34.225 google.com. 865 IN A 173.194.34.233 google.com. 865 IN A 173.194.34.226 google.com. 865 IN A 173.194.34.224 google.com. 865 IN A 173.194.34.238 google.com. 865 IN A 173.194.34.229 google.com. 865 IN A 173.194.34.231 google.com. 865 IN A 173.194.34.228 google.com. 865 IN A 173.194.34.232 ;; Query time: 0 msec ;; SERVER: www.fernandezsansalvador.es#53(www.fernandezsansalvador.es) ;; WHEN: Mon May 26 19:58:50 2014 ;; MSG SIZE rcvd: 204
En esta ocasión al tener la correspondencia dns/ip cacheada, ha sido instantánea la resolución, por lo que no hará falta llamar al servidor dns externo para resolverla, ahorrandonos ese tiempo de la consulta.
Aunque el tiempo de cada consulta no es muy grande (normalmente menos de 1 segundo), hay que tener en cuenta la gran cantidad de peticiones que se pueden realizar al cargar una página. Esto nos permite que el tiempo que nos podemos ahorrar es considerable.
Además, el sistema dns no es utilizado solo por las páginas web, sino para actualizaciones del sistema, descarga de ficheros, etc.
En resumen, en unos pocos pasos podemos acelerar considerablemente nuestra navegación por internet.
Deja una respuesta