¿Cómo habilito el almacenamiento en caché de DNS en dnsmasq controlado por NetworkManager?

8

Ubuntu Desktop 12.04 usa dnsmasq para realizar búsquedas de DNS, pero no está configurado para almacenar en caché estos resultados. (He comprobado esto usando dig para resolver nombres y no veo una gran mejora en el tiempo de respuesta después de la primera búsqueda). ¿Cómo configuro el dnsmasq controlado por NetworkManager para almacenar en caché los resultados de las búsquedas DNS?

Comunidad
fuente

Respuestas:

10

En Ubuntu 12.10 puede habilitar el caché de la instancia dnsmasq controlada por NetworkManager poniendo la línea

cache-size=1000

(con su número preferido de nombres en lugar de 1000) en un nuevo archivo en /etc/NetworkManager/dnsmasq.d/. Para activar este cambio, debe hacer

sudo stop network-manager
sudo killall dnsmasq
sudo start network-manager

o reiniciar.

jdthood
fuente
Gracias por tu información. Para Ubuntu 16.04 (y 15.10 desde que se introdujo systemd), use "sudo service network-manager stop / start" en lugar de "sudo stop / start network-manager"
Fumisky Wells
Aunque eso todavía funciona, usando la herramienta systemd debería ser:sudo systemctl stop NetworkManager
goetzc
4

Pude habilitar el almacenamiento en caché de DNS en Linux Mint 13 (basado en Ubuntu 12.04) usando el método descrito en la primera respuesta. Creé un archivo que /etc/NetworkManager/dnsmasq.d/cachednscontiene la línea cache-size=100, luego reinicié el administrador de red. Aunque dnsmasq es ejecutado por el administrador de red con un código fijo --cache-size=0en su línea de comando, establecer el tamaño de caché en un archivo de configuración anula ese valor. Puede verificar que funciona haciendo esto:

sudo killall -USR1 dnsmasq
tail /var/log/syslog

Debería ver una línea que se ve así en el registro del sistema, que muestra el tamaño de la memoria caché:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
bloovis
fuente
Me preguntaba cómo se vio afectado el código rígido del administrador de red --cache-size = 0, pero su publicación me deja claro. ¡Gracias!
Fumisky Wells
1

No quería actualizar desde 12.04, pero aún quería dnsmasq administrado por NetworkManager con el almacenamiento en caché habilitado, pero como decía la otra respuesta, --cache-size = 0 está codificado y no se puede cambiar con la configuración.

Entonces, lo que terminé haciendo fue lo siguiente, como root:

mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.real

y luego creando un nuevo archivo, / usr / sbin / dnsmasq con el siguiente contenido:

#!/bin/bash
args=$(echo "$@" | sed 's/--cache-size=0/--cache-size=1000/')
/usr/sbin/dnsmasq.real $args

asegúrese de que chmod +x /usr/sbin/dnsmasq, y cambie el tamaño de caché de 1000 a lo que quiera, ¡disfrute de su lanzamiento LTS con un caché DNS!

moparisthebest
fuente
0

en 12.04 dnsmasq es iniciado por NetworkManager con el parámetro codificado (es decir, no configurable) --cache-size = 0 .

Las páginas de manual de dnsmasq dicen que establecer el tamaño de caché en cero deshabilita el almacenamiento en caché. Si desea habilitar el almacenamiento en caché, probablemente tendrá que deshabilitar el complemento dnsmasq para NetworkManager para evitar que NetworkManager inicie dnsmasq e inicie su propia instancia de dnsmasq con un tamaño de caché mayor que cero.

aquí puede leer cómo deshabilitar dnsmasq-plugin para NetworkManager: https://askubuntu.com/a/131422/71057

Yevgeniy M.
fuente
0

Para volver a habilitar el caché (con una versión de NetworkManager que tenga el directorio /etc/NetworkManager/dnsmasq.d), en realidad es suficiente colocar un archivo en ese directorio con contenido "cache-size = X" (con X siendo 150 para el predeterminado dnsmasq tendría). Los archivos allí anulan los parámetros codificados en la línea de comandos.

incase1
fuente
0

En Ubuntu 14.04, tuve que editar /etc/default/dnsmasqy configurarENABLED=1

También puse cache-size=1000allí y en todos los demás archivos de configuración de dnsmasq que encontré.

Arthur F
fuente