DNS Optimization · 5 min read · Oct 01, 2025
Acelerando el Acceso DNS en Regiones con Infraestructura Muy Baja
Acelerando el Acceso DNS en Regiones con Infraestructura Muy Baja
Introducción
Supongamos que estás en un enlace satelital caro que apenas puede proporcionar suficiente ancho de banda para el acceso a Internet de tu empresa y querrás hacer todo lo posible para obtener lo máximo de este enlace. Además, ocasionalmente pierdes energía de la compañía de servicios públicos, el tiempo suficiente para que tu UPS se agote. Hay algunas cosas que podrías hacer para obtener mucho más de tu enlace. En este artículo, veremos cómo acelerar tus solicitudes DNS manteniendo una caché de respuestas a tus solicitudes DNS en tu disco duro. Las solicitudes DNS subsiguientes se sirven desde la caché y, dado que una copia está en el disco, no la pierdes cuando hay un corte de energía o un reinicio.
La versión actualizada de este documento está en: www.httpcompression.net.
Análisis
¿Necesito esto? Bueno, veamos. Desde tu Linux emite el siguiente comando:
dig www.httpcompression.netEntre otras cosas, obtengo el siguiente resultado:
;; Tiempo de consulta: 583 msecDespués de unos segundos, emití el comando nuevamente y obtuve:
;; Tiempo de consulta: 612 msecObviamente, los servidores DNS de mi ISP simplemente reenvían las solicitudes a los EE. UU. (Estoy en Accra, Ghana, África Occidental, conectándome a Internet a través del cable de fibra óptica submarino SAT3). Aparentemente, los resultados de la primera solicitud no fueron almacenados en caché. Si lo fueron, había caducado para el momento de la segunda solicitud. Ciertamente, tal entorno es un candidato perfecto para esta configuración.
Cómo Hacerlo
Estoy trabajando en un servidor Ubuntu. El software que utilizaremos es pdnsd. El sitio web dice lo siguiente sobre pdnsd:
“pdnsd es un servidor DNS proxy con caché permanente (el contenido de la caché se escribe en el disco duro al salir) que está diseñado para hacer frente a servidores DNS inalcanzables o caídos (por ejemplo, en redes de acceso telefónico). Desde la versión 1.1.0, pdnsd admite caché negativa.”
Desde tu Ubuntu o cualquier otra distribución basada en Debian, emite el siguiente comando:
apt-get install pdnsdApareció una página de configuración con tres opciones “resolvconf / Usar servidores raíz / Manual”. Seleccioné “Manual” y continué con la instalación.
La instalación predeterminada tiene un archivo de configuración, partes del cual han sido comentadas. Una línea está comentada con “//“ mientras que las múltiples líneas están comentadas con “/ /“. Ej:
// Esta es una línea comentada en el archivo de configuración.
/*
Estas son líneas comentadas
en el archivo de
configuración.
*/Usa tu editor de texto favorito para editar los siguientes archivos de configuración:
- /etc/default/pdnsd Edita la línea con START_DAEMON de la siguiente manera:
START_DAEMON=yes - /etc/pdnsd.conf En el bloque global, es posible que desees cambiar la siguiente configuración: server_ip = 127.0.0.1; Esta es la IP a la que se puede acceder a pdnsd. Si la dirección se deja en el valor predeterminado de 127.0.0.1, solo los programas en el servidor mismo pueden acceder al servidor pdnsd. Sin embargo, si deseas que otros servidores y PC utilicen esta instalación de pdnsd como su servidor DNS, entonces deberías cambiar la dirección IP a la dirección IP apropiada en tu servidor que deseas que tus clientes utilicen. Usa el bloque de servidor para establecer los servidores DNS que pdnsd consultará para resolver nombres de dominio. Hay dos bloques de servidor que están comentados por defecto. Los servidores de opendns son muy confiables y populares, podrías querer usarlos:
server { label="opendns"; ip = 208.67.220.220,208.67.222.222; }Asegúrate de que el bloque del servidor no esté comentado. Si tu ISP tiene un servidor DNS confiable, puedes usarlo en su lugar. Tanto como sea posible, ahorra los servidores raíz. - /etc/resolv.conf Este archivo contiene los servidores DNS que los programas en tu servidor (digamos squid, apache) normalmente consultarán para la resolución de nombres. Ahora, querrás consultar el servidor pdnsd local que acabas de instalar, así que ingresas la dirección IP de tu interfaz de bucle invertido (lo) es decir 127.0.0.1. Esta debería ser la única entrada en este archivo.
127.0.0.1
Pruebas y Conclusión
Ahora inicia tu servidor pdnsd:
/etc/init.d/pdnsd startAhora emite el siguiente comando y observa el Tiempo de consulta: en la respuesta para determinar qué tan bien lo estás haciendo:
dig www.httpcompression.net; DiG 9.4.2-P2 www.httpcompression.net
;; Tiempo de consulta: 3323 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; CUANDO: Lun Nov 3 20:02:37 2008
;; TAMAÑO MSG recibido: 71Después de un tiempo, emite el comando nuevamente:
dig www.httpcompression.net; DiG 9.4.2-P2 www.httpcompression.net
;; Tiempo de consulta: 1 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; CUANDO: Lun Nov 3 20:03:07 2008
;; TAMAÑO MSG recibido: 71De los dos resultados anteriores, la primera consulta tomó 3323 msecs mientras que la segunda, 30 segundos después, tomó solo 1 msec para resolverse. Ahora, después de un reinicio del servidor:
dig www.httpcompression.net;; Tiempo de consulta: 3 msec
;; SERVIDOR: 127.0.0.1#53(127.0.0.1)
;; CUANDO: Lun Nov 3 20:06:38 2008
;; TAMAÑO MSG recibido: 71Después del reinicio, la consulta tomó solo 3 ms para resolverse. No perdimos nuestra caché. Puede que desees leer el manual y cambiar algunas configuraciones para adaptarlas a tu situación. Algunas de estas configuraciones son:
- min_ttl: El tiempo mínimo predeterminado que una respuesta en caché debe mantenerse es de 15 minutos. Puede que desees aumentar esto para reducir la frecuencia con la que contactas a los servidores padres. El efecto secundario es que, si la dirección de un sitio cambia, tomará un tiempo para que tu qdnsd contacte a los servidores padres para la nueva dirección. Si el tiempo mínimo no es lo suficientemente largo, también perderás tu caché después de un corte de energía prolongado.
- perm_cache: Este es el tamaño del espacio en disco para tu caché. Dependiendo del tráfico en tu red, puede que desees aumentar esto a un valor que pueda almacenar cómodamente al menos una semana de datos. Podrías estar monitoreando el tamaño del archivo de caché durante un período de tiempo para tener una idea de lo que debería ser adecuado para ti.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.