¿La mejor manera de configurar el almacenamiento en caché de DNS?


28

Para acelerar las búsquedas de DNS, quiero instalar un caché o proxy DNS.

Puedo ver al menos tres programas que creo que harán el trabajo: bind9, pdnsd o dnsmasq.

Me gustaría asegurarme de que si instalo uno de ellos, no lo deje mal configurado desde el punto de vista del rendimiento o la seguridad. Entonces, ¿qué recomendaría la gente? ¿Hay algún cambio de configuración que deba hacer inmediatamente después de la instalación?


Para una estación de trabajo, ¿verdad? ¿O estamos hablando de LAN / ISP?

Sí, esto es para acelerar estaciones de trabajo individuales, no para una LAN.

Respuestas:


15
  1. Instalar bind9
  2. Apunte resolv.conf a 127.0.0.1

Para hacer esto, siga estos pasos:

Para instalar Bind9

  1. Abra el "Centro de software de Ubuntu" (Aplicaciones-> Centro de software de Ubuntu)
  2. Buscar bind9
  3. Marque para mostrar "Elementos técnicos"
  4. Marque bind9 e instálelo

Actualizar /etc/resolv.conf

  1. Abra Network Manager (Sistema-> Preferencias-> Network Manager)
  2. Encuentre su conexión y edítela (por cable o inalámbrica)
  3. Alternar la pestaña "Configuración de IPV4"
  4. En el campo "Servidores DNS" escriba 127.0.0.1

¡Está hecho!

Probar

Abra gnome-terminal (Aplicaciones> Accesorios> Terminal) y escriba

dig ubuntu.com 

(si no lo tiene, instale el paquete dnsutils como se explica en bind9)

Verifique las últimas respuestas, como ejemplo:

Mi primera consulta en ubuntu.com

;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE  rcvd: 196

Mi segunda consulta:

;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE  rcvd: 156

El servidor 127.0.0.1 significa que está resolviendo localmente. Eche un vistazo al tiempo de consulta (rodeado por **), el segundo se almacena en caché.


Gracias Igor Intenté este enfoque y funciona bien para las búsquedas de nombres, pero no parece cachear las búsquedas de direcciones IP inversas. ¿Cómo haría esto usando bind9?

Esto no hizo nada en mi configuración. El tiempo de consulta sigue siendo ~ 100 ms
Ashfame

Ambos: si parece que no funciona, verifique de qué servidor dig dice que obtuvo la respuesta. Si no dice 127.0.0.1, entonces no lo ha configurado correctamente. Nota: Las instrucciones para configurar resolv.conf pueden ser diferentes para diferentes versiones de Ubuntu.
thomasrutter

Entonces, ¿está ejecutando un servidor de nombres de almacenamiento en caché en la caja de la interfaz gráfica de usuario? Sí, es posible, por supuesto. Es muy probable que la mayoría de las personas que lo lean tengan una instalación de servidor, y la GUI es opcional. Un simple sudo apt install bind9y sudo nano /etc/resolv.confdebe agregarse a su respuesta como alternativas.
bshea

Hice todo pero la configuración no funciona. Lo hice resolv.confa 127.0.0.1 por fin. ¿Esto puede fallar? dig ubunut.comdice "se agotó el tiempo de espera de la conexión; no se pudo llegar a ningún servidor"
Satya Prakash

9

Yo recomendaría dnsmasq,

Vea un buen tutorial aquí; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

Es posible que desee leer una comparación aquí;

http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software


Yo uso dnsmasq para el almacenamiento en caché de DNS. También proporcionó asignaciones locales de / etc / hosts y DHCP (opcionalmente usando / etc /
ethers

Intenté dnsmasq y funciona tan bien como bind9 para almacenar en caché las búsquedas de nombres, pero tampoco parece almacenar en caché las búsquedas de direcciones IP. ¿Es esto posible usando dnsmasq?

1
Tenga cuidado con Network Manager sobrescribiendo su resolv.conf cada vez que se inicia.
daithib8

6

"Para acelerar las búsquedas de DNS, quiero instalar un caché o proxy DNS".

Okay. Pero también hay una manera más fácil. El uso de servidores de nombres OpenDNS y / o Google será más rápido que su propio caché local para los nombres que ya existen en los cachés OpenDNS / Google. Usar 208.67.222.222, 208.67.220.220 y / o 8.8.8.8 como servicio de nombres será más rápido casi todo el tiempo. Puede probar esto con la time nslookup www.google.com 208.67.222.222velocidad de prueba en uno de los servidores de nombres OpenDNS, time nslookup www.google.com 8.8.8.8para Google, o time nslookup www.google.com 127.0.0.1en su caché local. Cuando digo más rápido, me refiero técnicamente más rápido y no tanto que una persona podría notar fácilmente una diferencia.

"Puedo ver al menos tres programas que creo que harán el trabajo: bind9, pdnsd o dnsmasq".

¿Estás abierto a la parte de dnscache de djbdns? Instrucciones a continuación. Sin embargo, no guarda el caché sin un parche ...

sudo apt-get remove bind9 dnsmasq-base
sudo apt-get install djbdns dnscache-run
sudo killall -9 dnsmasq
sudo update-rc.d -f bind9 remove

Entonces necesitaremos decirle al sistema que use nuestro caché.

sudo gedit /etc/resolv.conf

Edite el archivo para que se vea como este ejemplo. Este archivo define qué servidores de nombres usar, el dominio predeterminado y el sufijo de búsqueda. El sufijo de búsqueda permite ejecutar consultas utilizando solo la parte del nombre de host de un nombre de dominio completo. Por ejemplo, 'nslookup www' se convierte automáticamente en 'nslookup www.example.com' cuando example.com es el valor del parámetro "buscar".

nameserver 127.0.0.1      # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8        # Google
domain example.com
search example.com

Esto es un poco sofisticado, pero necesitamos obtener los últimos servidores de nombres raíz.

sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | sudo tee /etc/dnscache/root/servers/@

Creo que el archivo resolv.conf se sobrescribe cuando usamos DHCP. Elijo darme una dirección IP estática y eliminar el software que la aplasta, editando el archivo de interfaces para configurar la dirección IP estática. Pero podría intentar trabajar con Network Manager si así lo desea.

sudo apt-get purge network-manager network-manager-gnome
sudo gedit /etc/network/interfaces

Mi archivo de interfaces tiene el siguiente aspecto, pero modifica el tuyo a tu configuración.

# Loopback
#
auto lo
iface lo inet loopback

# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Ahora solo reiniciemos.

sudo reboot

Ahora está utilizando una resolución local y los últimos servidores raíz. Pero notará si intenta que OpenDNS y Google respondan más rápido (para los nombres que están en sus cachés, que son todos los dominios más populares). No hay una configuración adicional que pueda hacer que el software sea más seguro de lo que ya es.


Gracias christopher ¿Puedes explicar por qué Google DNS es más rápido que mi caché local? Creo que es rápido, pero ¿cómo podría ser más rápido ir hasta su servidor que ir a mi caché local?
Eric Johnson el

Porque es muy probable que ya tenga la respuesta sin tener que buscarla nuevamente.

@ Christopher: Pero una vez que su caché local lo tiene, las búsquedas son instantáneas. Si usa Google DNS, debe esperar 80 ms cada vez que realiza una consulta.
Zan Lynx

@Zan Lynx Sí ... así que haz que tu caché local le pregunte a Google. Woo-hoo!

66
Aunque @ user8290 tiene un punto, no diría que usar GoogleDNS es más rápido que uno local. Sí, Google tiene los resultados en caché, pero vamos, si su velocidad internacional es mala, no importa, incluso si Google tuviera todos los resultados de DNS en el mundo. Las redes locales generalmente tienen 100 Mbps o más, por lo que pedirle una respuesta al servidor dns de su red local será al menos 10 veces más rápido que preguntar 8.8.8.8/8.8.4.4 (dependiendo de su velocidad internacional). Por supuesto, esto es en términos de que tiene el resultado en caché en su servidor DNS.
tftd

3

Estoy usando " dnscache " ( paquete "dnscache-run" ) y es muy simple. No es necesario configurar nada.
Captura las peticiones de DNS ( puerto 53 ) y almacena en caché las respuestas, la próxima vez que Linux solicite ese dominio, dnscache devuelve la IP de inmediato.
Aunque hay dos parámetros que se pueden cambiar para mejorar este programa:

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT

0

Independientemente de la herramienta que utilice, asegúrese de que el puerto 53 no esté habilitado en su firewall. Es posible que desee permitir solo el host con acceso saliente a la memoria caché.

DNSMasq es fácil de configurar y está bien documentado. Si lo instala en un cortafuegos, especifique las interfaces a vincular para excluir la interfaz de Internet.

Bind es más difícil de configurar y puede ser excesivo como caché para una red pequeña. Creo que la configuración predeterminada es solo el almacenamiento en caché. Es posible que desee agregar una ACL para restringir qué direcciones pueden usar su servidor.


0

El paquete dnscache-run ha tenido los menores conflictos con otros paquetes, como libvirt, que usan bridge networking y dnsmasq.

sudo apt-get install dnscache-run

Este paquete elimina resolvconf (/etc/resolv.conf), y deberá usar / etc / network / interfaces o network manager para ver su configuración.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.