Raspberry Pi: Internet más rápido con almacenamiento en caché de DNS

Mientras que la resolución del DNS es un tema del que la mayoría de las personas probablemente no se preocupan, el proceso de resolución de una dirección IP de un dominio tiene un impacto significativo en la velocidad de navegación. Un poco de alivio puede ser proporcionado por un caché de DNS en un Pi de frambuesa.

Después de que cambié mi proveedor de Internet y ahora tengo una línea VDSL con una sincronización de 51.4 Mbps de bajada y 10 Mbps de subida empecé a soltar los últimos frenos.

Logotipo del Pi de Frambuesa
Logotipo del Pi de Frambuesa
Al principio me di cuenta de que después de introducir una URL se tarda un breve segundo de recordatorio hasta que se inicia la carga de la página web.

Un enfoque: un Pi de frambuesaconectado directamente al Fritzbox (yo uso un Fritz!Box 7490) funciona como Caché de DNS y Servidor DHCP (ya que no se puede introducir ningún servidor DNS alternativo en el Fritzbox para su distribución a través del DHCP).

Pi de frambuesa como caché del DNS

Si estás usando raspbian (Debian) y no quieres usar un servidor DNS completo como bind, el paquete pdnsd es una buena opción. pdnsd tiene la ventaja de que los datos de la caché no sólo se almacenan en la RAM sino también en la tarjeta SD de los Pi. Por lo tanto, las entradas del DNS almacenadas en memoria intermedia se conservan incluso después de un reinicio de los Pi. La configuración del pdnsd es fácil, los ajustes más importantes en el /etc/pdnsd.confHe dejado la mayoría de los valores en sus normas:

perm_cache=8192; // Tamaño de la caché en kilobytes (aquí: 8 megabytes)
cache_dir="/var/cache/pdnsd"; // Directorio de la caché
server_ip = 0.0.0.0.0; // IP en la que se escucha: 0.0.0.0.0 significa en todas las IPs

Para poder responder a las consultas que aún no están en el caché, también se deben configurar los servidores DNS pdnsd. Por defecto, el programa resolvconf los servidores de nombres deben ser accedidos a través del archivo /etc/network/interfaces puede ser configurado. Allí, una entrada de la interfaz contiene la línea dns-nameservers 8.8.8.8 8.8.4.4 añadió:

auto eth0
iface eth0 inet static
dirección 192.168.0.10
máscara de red 255.255.255.0
red 192.168.0.0
pasarela 192.168.0.1
dns-nameservers 217.0.43.161 217.0.43.177 8.8.8.8.4.4

Con esta configuración el Pi de Frambuesa obtiene la dirección IP 192.168.0.10, utiliza el Fritzbox (192.168.0.1) como puerta de enlace y el Telekom-DNS-Server 217.0.43.161 y 217.0.43.177 y los servidores públicos de DNS de Google (8.8.8.8 y 8.8.4.4). Dirige pdnsdpuedes usar sudo /etc/init.d/pdnsd status aprender cuál es el estado de la memoria caché:

Estado de la caché:
=============
8192 kB de tamaño máximo de caché de disco.
613647 de 8398848 bytes (7,31%) de memoria caché utilizados en 2275 entradas.

DHCP en el Pi de frambuesa

Para asegurarse de que los ajustes son adoptados por todos los clientes sin esfuerzo de configuración adicional, tiene que desactivar el servidor DHCP de la Fritzbox y configurar un servidor DHCP alternativo en la Pi de frambuesa instalar:

sudo aptitude install isc-dhcp-server

La configuración se guarda entonces usando el archivo /etc/dhcp/dhcpd.conf se dio cuenta. Como esto también está bien documentado con comentarios, sólo vuelvo a entrar en los puntos más importantes:

option domain-name-servers 192.168.0.10; // IP de nuestra caché DNS
subred 192.168.0.0 máscara de red 255.255.255.0 {
rango 192.168.0.70 192.168.0.100;
opción nombre-dominio-servidores 192.168.0.10;
opción nombre-dominio "fritz.box";
routers de opción 192.168.0.1;
opción broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}

Esto le da a todos los clientes del DHCP una IP entre 192.168.0.70 y 192.168.0.100 y los datos correctos necesarios para usar el caché DNS en el Pi de Frambuesa. La resolución DNS de los dominios ya visitados funciona en 2 milisegundos (lo que es básicamente el doble de ping en mi red).

Caché de DNS en el Pi de frambuesa - Conclusión

Puede no parecer importante para la mayoría de la gente, pero para un gran usuario como yo, la diferencia es que la resolución del DNS es unos pocos milisegundos más rápida. La mayor ventaja: la navegación se siente "más nítida", especialmente en los sitios web que se visitan más a menudo y donde los datos del DNS se almacenan de forma segura. Establecí la duración mínima del cacheo en un día y la máxima en una semana. Si un sitio web cambia ahora la dirección IP, que es el caso, por ejemplo, cuando se mueve un servidor. En tal caso, la caché del pdnsd debe ser reseteada.

Una nota al margen: el Pi de Frambuesa puede funcionar de forma estable en el puerto USB del Fritz!Box 7490, por lo que no se necesita una fuente de alimentación separada para el pequeño ordenador para esta configuración. Otra posibilidad de usar o ampliar esta configuración es la Usando el Pi de Frambuesa como un servidor Privoxy en la red doméstica.

[amazon box="B07ZV9C6QF"]

12 comentarios

  1. ¿Es posible sobrescribir las entradas individuales del DNS? Me gustaría que la Frambuesa resolviera ciertos dominios con IPs locales. Las cajas de Fritz! luchan con problemas de rendimiento cuando el objetivo les apunta de nuevo (NAT loopback).

  2. Gracias por las breves instrucciones. El ADN funciona muy bien. ¿Qué hay del DHCP? ¿Todavía tengo que conectarme al router? ¿Cómo reconoce el Pi de Frambuesa que debo usar DHCP cuando me conecto al router (tengo un antiguo puerto de velocidad)?

    1. Necesitas configurar el router para distribuir el Pi de Frambuesa como un servidor DNS en la respuesta DHCP para los clientes. Yo no pasaría el Pi por el DHCP, sino que asignaría una dirección IP fija como el propio router.

      La dirección IP de "afuera" siempre es dinámica de todos modos, no puedes configurarla. Pero no importa con esta configuración.

  3. ¿Tu router tiene la opción de usar el software Fritz!Box? Probablemente funciona con algunos modelos antiguos. Entonces podrías ajustarlo. Esa fue una de las cosas que me llevó del router Telekom Speedport alquilado al Fritzbox 😉

  4. ¡Hola!

    He establecido la PSDN como se especifica. Sin embargo, he observado el siguiente fenómeno.
    Si disparo una resolución dns con "dig domain", normalmente obtengo un resultado entre 150-300ms como primer valor. Si luego resuelvo el mismo dominio de nuevo con "dig domain", el valor es de 5-10ms, como se esperaba.
    ¡Hasta ahora todo bien!
    Pero si introduzco un nombre de dominio en el navegador y luego lo resuelvo con "dig domain", el valor es de nuevo 150-300ms. ¿Por qué esto? La resolución del navegador debe haber sido almacenada en la memoria caché...

    TIA

    1. Así es, en realidad las consultas del navegador también deberían pasar por el servidor DNS. ¿Qué más podría ser: "digst" domain.de, pero en el navegador que llamas http://www.domain.de en - técnicamente hablando estas son dos cosas diferentes, http://www.domain.de podría apuntar a una IP diferente.

  5. ¿Cuál es exactamente el punto? Las entradas DNS en el servidor de nombres tienen TTLs de mayormente 3600 segundos (1h). Como la mayoría de la gente no vacía su caché de DNS más a menudo (como reiniciando el sistema), un caché en la tarjeta SD no ayuda en absoluto. Y si ignoras el TTL y lo guardas en caché por más tiempo, corres el riesgo de guardar en caché direcciones IP obsoletas. El objetivo de los TTL es darte una fecha de caducidad para las entradas del DNS.
    Si tienes un enrutador medio moderno, también tendrás un caché de DNS con él, y si mides el tiempo de resolución una vez, verás que una segunda solicitud idéntica es respondida bajo/igual a 1 mseg, es decir, directamente desde el caché del enrutador.
    La única razón por la que querrías usar un servidor DNS en el Pi de Frambuesa sería para tener un resolver habilitado para DNSSEC en casa o para manejar tu propia zona DNS, que ciertamente no usaría un Pi de Frambuesa para 😉

Deje una respuesta

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *