FernandezSanSalvador

Desarrollo web, frameworks, wordpress, linux y mas.

Sistemas y redes

Acelerar el navegador: cache dns en local

Acelerar el navegador: cache dns en local
5 (100%) 1 voto

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 un comentario