Acelerar la velocidad de Internet bajo GNU/Linux / BSD con DNSmasq (Dns Cache)
July 4th, 2008 by BusindreEl programa Dnsmasq es un servidor minimalista de bajo consumo que funciona como "DNS Cache" y "DHCP" (Todo en uno). Se encargará entre otras cosas de memorizar las resoluciones de nombres de los sitios que visitamos, de esta forma las próximas solicitudes a esos DNS no es necesario que salgan a la Internet publica, re resolverán en local. Al ahorrarnos esas conexiones para preguntar por la ip del dominio a visitar, notaremos una navegación más fluida, podemos comprobarlo con la herramienta "dig" que muestra entre otras cosas, los tiempos de respuesta de los DNS, que usando DNSmasq debería ser "0" ya que la resolución en local es inmediata.
Otra funcionalidad de esta aplicación es usarlo como servidor DNS para la totalidad de nuestras redes, tanto caseras como de medianas oficina. Dnsmasq se apoya en el fichero /etc/resolv.conf para preguntar por las IP de los dominios que se le solicitan, una vez obtenida la respuesta de alguno de esos servidores listados en resolv.conf, la cachea, ya sea una solicitud realizada desde el propio equipo (Servidor) o de los clientes de la red que le usen como DNS. De ahí la importancia de tener buen listado de servidores DNS en el fichero resolv.conf.
Web del proyecto: http://www.thekelleys.org.uk/dnsmasq/doc.html
Descargar: http://www.thekelleys.org.uk/dnsmasq/
Compilar / Instalar
$ tar -zxvf dnsmasq-2.42.tar.gz
$ cd dnsmasq-2.42/
$ make
# make install ó checkinstall
Configuración / Opciones: Debemos editar el fichero /etc/dnsmasq.conf
listen-address=192.168.2.33 -> Interfaz donde escuchara las peticiones.
addn-hosts=/etc/banner_add_hosts -> Si queremos que el contenido de /etc/hosts pertenezca a su base de datos y así repartirlos a quien se lo colicite mediante peticiones DNS.
resolv-file=/etc/resolv.conf_2 -> Si tenemos el fichero /etc/resol.conf en otro path debemos indicarlo.
no-dhcp-interface=192.168.2.33 -> Si solo queremos usar su funcionalidad de DNS cache y NO la de servidor de DHCP.
cache-size=250 -> Tamaño de la cache usada por DNSmasq.
alias=91.200.143.20,192.168.2.33 -> Si se pregunta por un dominio que tiene esa primera dirección IP dada (91.200.143.20), su respuesta a ese dominio sera la segunda dirección (192.168.2.33).
NOTA: En el fichero de configuración encontraremos otras muchas opciones interesantes, también pueden ser "machacadas o completadas mediante la linea de comando, el cual ofrece las mismas opciones que el fichero de configuración dnsmasq.conf.
Para hacer uso de DNSmasq vamos a tener que poner la dirección ip de la opción "listen-address" en nuestro fichero /etc/resolv.conf si queremos disfrutar de el de forma local, pero podemos añadirlo como es lógico a cualquier otro ordenador de la red al que permitamos realice peticiones de DNS a DNSmasq.
Veamos una prueba de concepto, ejecutemos el comando dig sobre un dominio cualquiera para ver si DNSmasq está cacheando las resoluciones de nombres. Si ejecutamos el comando con un dominio no visitado anteriormente, fijémonos en que salida obtenemos:
; <<>> DiG 9.4.1 <<>> www.fsf.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61684
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.fsf.org. IN A
;; ANSWER SECTION:
www.fsf.org. 266 IN CNAME fsf.org.
fsf.org. 266 IN A 199.232.41.5
;; Query time: 48 msec <----------------------------------------------------
;; SERVER: 192.168.2.33#53(192.168.2.33)
;; WHEN: Thu Jul 3 03:55:33 2008
;; MSG SIZE rcvd: 59
Ahora, de funcionar correctamente debería de haber cacheado el dominio fsf.org con la ip 99.232.41.5, volvemos a ejecutar el comando "dig" sobre el mismo dominio y veremos que la resolución tardo 0 segundos.
; <<>> DiG 9.4.1 <<>> www.fsf.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62415
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.fsf.org. IN A
;; ANSWER SECTION:
www.fsf.org. 265 IN CNAME fsf.org.
fsf.org. 265 IN A 199.232.41.5
;; Query time: 0 msec <----------------------------------------------------
;; SERVER: 192.168.2.33#53(192.168.2.33)
;; WHEN: Thu Jul 3 03:55:34 2008
;; MSG SIZE rcvd: 66
Listado de DNS (/etc/resolv.conf)
nameserver 192.168.2.33 <--- dnsmasq
nameserver 80.58.61.254
nameserver 80.58.67.250
nameserver 80.58.0.33
nameserver 80.58.32.97
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 86.109.99.129
nameserver 86.109.98.129
nameserver 62.151.2.8
nameserver 62.151.4.21
nameserver 195.130.224.18
nameserver 195.130.225.129
nameserver 194.179.1.100
nameserver 194.179.1.101
nameserver 192.168.1.1
Posted in Linux |
July 4th, 2008 at 2:59 am
[...] o bien, debemos buscar en otro lado. Una aplicación que ayuda a tener una Internet más rápida es DNSmasq, encargada de cachear las respuestas de los DNS ahorrándonos consultarlas a posteriori. Es [...]
July 4th, 2008 at 9:25 pm
Muy bueno tu artículo!
Espero algún día tener los conocimientos que tu tienes, igualmente sigo estudiando :)
Abrazo!
Sebas
July 4th, 2008 at 9:32 pm
Gracias por el comentario, así da gusto escribir jejeje, se agradece. Estamos para lo que necesites, sigue estudiando,.. sabes que no hay otro camino ;D
Saludos
July 7th, 2008 at 2:37 pm
Estoy co la idea de dar el lpi, tienes algún consejo para darme capo? :D
Abrazo!
Sebas
July 8th, 2008 at 3:56 am
Consejo: No seas seas vago y aplícate estudiando :D
Saludos
July 10th, 2008 at 2:41 pm
jeje, okis entendido totalmente :D
sirve el concejo!
Abrazo!
sebas
July 10th, 2008 at 6:08 pm
perdón *consejo quise decir :D
Saludos!
September 17th, 2008 at 7:47 am
hola
intente lo de dnsmasq pero tengo unas dudas...
primero, la ip que colocaste (198.168.2.33) es la ip de tu maquina? o es una ip ke tu invevtaste?, porke no se si tambien tengo ke colocar mi ip o la ke esta aqui o no se si tambien funcione si coloco 127.0.0.1... espero me puedas decir porfavor
tambien en la parte de alias=91.200.143.20,192.168.2.33, tengo ke colocar mi ip? o cualquiera o esta?, tambien me aparece diferente alias... 1.2.3.4.5.0.1.2.3.4.5.0.127.0.0.1, bueno algo asi es ke lo tuve ke kitar porke ya no podia entrar a la red, como ke desconfiguraba mi internet...
espero me puedas ayudar, y felicidades por este blog esta muy completo y tiene muchas cosas interesantes... :)
salu2
September 20th, 2008 at 1:49 pm
Puedes poner 127.0.0.1 para usarlo solo en tu ordenador.Sí.
Antes de poner un alias debes entender para que sirve,..:
alias=91.200.143.20,192.168.2.33Si se pregunta por un dominio (www.XXX.com) que tiene esa primera dirección IP como resultado (91.200.143.20), su respuesta a la ip de ese dominio (www.XXX.com) sera la segunda dirección, su alias, en el caso del ejemplo (192.168.2.33) y NO 91.200.143.20.
Esto sirve para modificar un poco el servicio y ajustar ciertas resoluciones a determinadas IP como nosotros queramos, por ejemplo para engañar algunos usuarios y realizar phising de webs de bancos si ofrecemos el ordenador como servidor DNS. No es obligatorio que las uses si no lo necesitas, pero debes entender su funcionamiento.
Saludos