Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Cómo montar una caché de dns en tu Mandrake

Redes
Por man ls
departamento especificidades bizantinas , Sección Internet
Puesto a las Tue Dec 9th, 2003 at 06:23:25 PM CET
En mi última entrada de diario pedía ayuda para montar un servidor DNS local. Varios libertonios me respondieron con sugerencias, y esta historia es mi forma de daros las gracias.

Aquí sólo pretendo mostrar qué opciones hay en una Mandrake para resolver nombres sin depender de un solo proveedor, y explicar la instalación de djbdns en una distro. Me gustaría que fuera más genérico; pero para eso ya tenemos mi vida con djbdns, aunque esté un poco desactualizado (sobre todo la parte de istalación). Si sabéis cómo montárselo con otras distribuciones, y no os importa tomaros la molestia de añadirlo como comentario, seguro que alguien en algún sitio os lo agradecerá.

 


Recapitulemos: los servidores dns de mi proveedor se caen a menudo, y quería instalar un dns que haga de caché. No me fío de BIND (named), porque parece que no es muy seguro ni estable.

Primera opción: resolv.conf

jamarier y atopos me recomendaban endiñar más servidores en /etc/resolv.conf, en particular dos de Telefónica Data y dos de Auna. No es mala idea, pero sigues dependiendo de tres servidores para resolver nombres (el resto son ignorados). Además, mi idea era aprender a istalar algo que vaya en mi red local.

A vueltas con named

ridiculum me invitaba a probar con BIND, a pesar de los problemas de seguridad. Esta opción no me atrae demasiado; es posible que en mis condiciones actuales no tenga que preocuparme mucho por la seguridad, pero para qué aprender algo que es complejo y poco fiable. También ha usado pdnsd, aunque veo en la página de Bernstein sobre la competencia un buffer overflow.

De güiner is...

melenas recomienda tinydns, parte de djbdns, de Dan J Bernstein. Como quiera que melenas es mi ídolo, y siempre me trago lo que me cuenta, me decidí a probarlo. Y, ¡oh desgracia!, los RPMs son sólo para RedHat, y las instrucciones que nos apuntó están anticuadas. Así que paso a contaros mis experiencias con Mandrake 9.1.

Mini-HowTo: dnscache en Mandrake

Para empezar, el tal Bernstein parece que es un tipo peculiar. Tiene una guerra declarada contra la mitad de la internés, incluyendo BIND, sendmail, Verisign, IETF, y los Estados Unidos. En particular, y lo que nos interesa aquí, es su guerra contra el Filesystem Hierarchy Standard. Resulta que el tío tiene sus propias ideas sobre dónde colocar los paquetes que uno se instala, porque el sistema de /usr/local y demás es inconsistente: a veces actualizas una aplicación y la versión antigua se te queda en /usr/share. No me veo cualificado para saber si tendrá razón, el caso es que según sus instrucciones tienes que instalar sus herramientas en /package.

Según la licencia, el software en sí es modificable, pero no puedes distribuir las modificaciones. Cualquier distribución binaria debe dejar los mismos ficheros que si se realiza una instalación manual. (En esa página, Bernstein no explica sus motivos, sino que se lanza a una de sus diatribas contra un tal Rick Moen.) Es decir, que no es software libre, pero se podría parecer (siempre puedo distribuir su paquete y mis propios parches).

Istalación oficial

Las istrucciones de istalación dicen que primero hay que istalar daemontools, donde está svscan: el programa que va a mantener el servicio corriendo. (Casi se me olvida decir que a Bernstein no le gustan inittab ni init.d.) Os cuento los pasos que seguí:

  • Como root, creo un directorio /package:
    mkdir -p /package
    chmod 1755 /package
    cd /package
  • Descargo daemontools-0.76.tar.gz en /package. Descomprimo el paquete daemontools:
    gunzip daemontools-0.76.tar
    tar -xpf daemontools-0.76.tar
    rm daemontools-0.76.tar
    cd admin/daemontools-0.76
  • Compilo e istalo los programas daemontools:
    package/install
  • y a tomal pol culo la bicicleta, obtengo múltiples errores
    undefined reference to 'errno'
Veo por ahí que parece ser un problema en glibc, algo evidentemente fuera de mis posibilidades de arreglo.

Mandrake al rescate

Es hora de darles caña a mis superpoderes investigatorios. Algún alma caritativa de MandrakeSecure mantiene una versión RPMizada, lo que nos va a venir muy bien. Hay que decir que esta versión viola flagrantemente la licencia de djbdns, ya que no istala todo en /package. Espero que a Bernstein no le importe demasiado, a mí personalmente me da igual.

El enlace que viene en la página de Mandrake Secure no funciona; tenemos que irnos a esta otra página de rpmhelp, elegir nuestra versión de Mandrake (9.2 incluida) y bajarnos los paquetes a mano. Es una gozada, ninguno llega a los 100k: son daemontools, ucspi-tcp y djbdns. Encontramos tres variantes del último:

  • djbdns-localcache istala y configura dnscache para responder a peticiones sólo de nuestra máquina local,
  • djbdns-extcache es igual, pero permite consultas desde cualquier máquina que esté en la subred 255.255.255.0,
  • y djbdns es el servidor tinydns completo.
Yo me decido por la segunda opción, ya que tengo una cutre-red local de 2 ordenadores. Istalo los tres RPMs: primero daemontools, luego ucspi-tcp y por fin djbdns-extcache; y ¡voilá!, automáticamente
  • se crean los usuarios dnscache y dnslog, bajo los que correrá el servicio de dns;
  • se crea el directorio /service donde svscan (parte de daemontools) busca servicios que mantener andando;
  • una entrada en /service que apunta a djbdns,
  • y los enlaces en /etc/rc.d/rcX.d que arrancan svscan.
Ahora sólo queda modificar /etc/resolv.conf para que apunte a la máquina local; y, en mi caso, abrir el puerto de resolución de nombres (53) en el shorewall para que deje pasar las consultas del iMac.

Por algún extraño motivo, si hago consultas de nombres a localhost

host www.yahoo.com 127.0.0.1
no me responde; pero si utilizo la dirección IP local sí. Como no es mayor problema, lo dejaré así.

El funcionamiento de dnscache

¿Por qué es mejor tener dnscache que trastear el resolv.conf? El paquete incluye una lista de trece servidores en los que busca por defecto, en

/var/djbdns/dnscachex/root/servers/@;
son servidores de Verisign, la universidad de Tokio... supuestamente los servidores root de internet. ¿Qué puede ser más fiable?

La configuración es inexistente. Los registros de nombres que recibe dnscache traen un TTL, tiempo de vida, que es lo que utiliza para mantener la caché; tras una semana máximo, los descarta.

Despedida

Bueno, amigos, ya vale por hoy de dar la paliza. Sólo nos queda esperar a que Google indexe esta página para que el próximo pardillo que le haga caso al melenas lo tenga un poco más fácil :)

< Estudiando japonés en Linux (12 comments) | Experimentando con IPv6 en Linux (15 comments) >
Enlaces Relacionados
· escomposlinux.org
· mi última entrada de diario
· mi vida con djbdns
· la página de Bernstein sobre la competencia
· los RPMs son sólo para RedHat
· las instrucciones que nos apuntó
· dnscache
· Bernstein
· BIND
· sendmail
· Verisign
· IETF
· los Estados Unidos
· su guerra contra el Filesystem Hierarchy Standard
· dónde colocar los paquetes
· la licencia
· istrucciones de istalación
· istalar daemontools
· no le gustan inittab ni init.d
· daemontools-0.76.tar.gz
· parece ser un problema en glibc
· superpoderes investigatorios
· alma caritativa de MandrakeSecure
· esta otra página de rpmhelp
· More on Redes
· Also by man ls

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Cómo montar una caché de dns en tu Mandrake | 14 comentarios (14 temáticos, editoriales, 0 ocultos)
Sobre escuchar desde múltiples ips (3.00 / 1) (#1)
por melenas a las Tue Dec 9th, 2003 at 08:53:11 AM CET
(Información Usuario)

Por algún extraño motivo, si hago consultas de nombres a localhost
host www.yahoo.com 127.0.0.1
no me responde; pero si utilizo la dirección IP local sí. Como no es mayor problema, lo dejaré así.


El problema es (perdona si no contesto exactamente pero es que tengo un Hasefroch delante) que en un archivo que indica por donde debe escuchar las peticiones sólo tendrás la dirección ip local, en el propio documento de "Mi vida con DJBDNS" dan dos soluciones:
  • Poner el valor de la IP a 0.0.0.0, no lo recomiendan pero yo lo hago y me va bien, aunque era en el resolutor y NO en el caché que sólo monté una vez y de prueba (aunque con resultados satisfactorios).
  • Otra solución es mandar varias instancias por cada interfaz, aunque dice que ocupa poca memoria (y es cierto) a mí no me gusta, así que, tú decides ;-)


Ah, y gracias por considerarme tu "ídolo" ;-), en la próxima Hispalinux te pago la cerveza que te debo ;-D


FDO. ER_MELENAS No te preguntes sólo que puede hacer el S.L. por ti sino también que puedes hacer tú por él.


Otro documento interesante (3.00 / 1) (#3)
por Sevein a las Wed Dec 10th, 2003 at 12:24:59 PM CET
(Información Usuario)

Es muy aplicadito: http://www.bandaancha.st/documentos.php?docid=66

--
Jesús García Crespo (aka Sevein)
http://www.sevein.com



 
Ejem, ejem :P (3.00 / 1) (#4)
por isaac a las Thu Dec 11th, 2003 at 08:02:42 PM CET
(Información Usuario)

El funcionamiento de dnscache

¿Por qué es mejor tener dnscache que trastear el resolv.conf? El paquete incluye una lista de trece servidores en los que busca por defecto, en
/var/djbdns/dnscachex/root/servers/@;
son servidores de Verisign, la universidad de Tokio... supuestamente los servidores root de internet. ¿Qué puede ser más fiable?
¿Por que crees que tu ISP te da varios servidores DNS? Entre algunas cosas, para minimizar trafico y para que tus consultas sean mas rapidas.
Es bastante mas lento consultar esos DNS's raiz que el DNS de tu ISP (o alguno cercano), ¿por que crees que el DNS sigue un esquema jerarquico?
Yo uso BIND, pero aparte de los servidores raiz tengo unos cuantos "Forwarders".

Un saludo



Esto... "istalar" e "istalación&quo (2.00 / 1) (#6)
por NoP a las Fri Dec 12th, 2003 at 01:56:37 PM CET
(Información Usuario)

Hola... es que no sé si te falla la tecla o si es un simple error, pero ... ¿porqué en lugar de "Instalar" e "Instalación" pones "Istalar" e "Istalación" en todo el documento? (le falta la N).

Siento hacer un comentario así, pero me ha dolido enormemente a los ojos. :(

saludos.




Cómo montar una caché de dns en tu Mandrake | 14 comentarios (14 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda