O de como reemplazar 4 aplicaciones por una sola:

Prefacio:

Le tengo que dedicar al menos una mención de honor a Dnsmasq, este pequeño DNS Forwarder que con tan solo 269Kb (de código fuente en un .tar.gz) me ha cambiado la vida.

Como bien dicen en su página web oficial, «Dnsmasq is a lightweight, caching DNS proxy with integrated DHCP server«. Osea, un pequeñísimo proxy para cachear peticiones DNS que no resuelve por su cuenta -como lo haría BIND, por ejemplo- si no que se interpone entre la red y el verdadero DNS server almacenando los requests en memoria para servirlos rápidamente y ahorrar minúsculas cantidades de ancho de banda por petición.

Ya con eso solo me bastaría y sobraría si no fuera por que además hace de DHCP server!

Con un archivo de configuración tan bien comentado que ni hace falta leer el manual, además de proxy DNS, puede servir de DHCP server compitíendole a los mejores de su rubro sin ningún esfuerzo en lo que a configurabilidad se refiere, y la cosa no acaba ahi…

Además puede servir de PXE server! De nuevo, sin ningún esfuerzo mas que descomentar dos o tres líneas, puede servir peticiones PXE a la red para hacer arrancar thin clients de cualquier tipo…

No contento con todo esto, su desarrolador además le ha incorporado TFTP Server! No solo puede servir a clientes PXE con su configuración inicial, además puede servir por TFTP la imagen de arranque necesaria!

Todo esto lo he ido descubriendo de a poco, leyendo el archivo de ocnfiguración y haciendo algunas pruebas.

Para mis necesidades, ha reemplazado 4 aplicaciones diferentes que usaba antes con una sola que es tan (o mas) configurable que las anteriores y mucho mas estable en algunos casos… (Por ejemplo, no he vuelto a tener problemas desde que sirvo imagenes por TFTP usando Dnsmasq, cosa que si me pasaba al servirlas con tftp-hpa, un port del TFTP server de OpenBSD para linux)

Resumiendo, Dnsmasq te cambia la vida. En una sola aplicación:

  • DNS Proxy con caché (y control de TXT records si fuera necesario)
  • DHCP Server altamente configurable
  • PXE Server para diskless clients
  • TFTP Server de alta estabilidad y muy buena velocidad de operación.

Una joyita realmente. ¿Que mas se puede pedir de la vida?

Próxima entrega: Como encadené Dnsmasq para que sirva grldr, el bootloader de grub4dos por la red el cual a su vez encadena pxelinux y que me permiten arrancar de todo un poco, livecd de linux, windows, imagenes de diskette y archivos ISO…

Eliminando todos los comentarios del archivo de configuración antes de postear su contenido:

Supongamos que mi viejo amigo y proxy-caché de cabecera un día deja de funcionar y tengo que ir a preguntar a un foro a ver si alguien me da una mano. Sería una locura pedirle a alguien que encuentre la falla entre las 4775 líneas de configuración de mi archivo /etc/squid/squid.conf, (contadas con wc), dejo constancia:

~ # wc -l /etc/squid/squid.conf

4775 /etc/squid/squid.conf

De paso, por si alguien no conocía el comando, wc -Por las siglas en inglés de Word Count- cuenta palabras, lineas, caracteres e inclusive bytes.

Volviendo al tema, puedo eliminar todo lo que sean comentarios de un archivo de configuración ejecutando el siguiente comando:

grep -vh '^[[:space:]]*\(#\|$\)' /ruta/al/archivo_de_configuración

Poco amigable, imposible de recordar al primer intento. Bash de por medio, puedo crear un script que lea el archivo de configuración de 4000 y tantas líneas y me lo devuelva sin comentarios:

#!/bin/bash # Código para quitar todos los comentarios y líneas en blanco

grep -vh '^[[:space:]]*\(#\|$\)' "$@"

Y guardar ese script como /usr/bin/nocomentarios.sh, por ejemplo, de forma de tenerlo siempre a mano.

El archivo tiene que ser ejecutable:

chmod +x /usr/bin/nocomentarios.sh

Por último, cada vez que quiera eliminar los comentarios de un archivo, poniendo de nuevo el ejemplo del archivo de configuración de Squid, basta con hacer:

nocomentarios.sh /etc/squid/squid.conf

Y para muestra basta un botón dicen; Después de limpiar todos los comentarios, la cantidad de líneas no comentariadas de mi squid.conf son únicamente 47:

~ # grep -vh '^[[:space:]]*\(#\|$\)' /etc/squid/squid.conf | wc -l

47

Lo robé tomé prestado de los foros de Gentoo en su momento, y desde entonces lo uso siempre, no solo a la hora de postear algo, ayuda mucho también a depurar en caso de que algo salga mal….