Instalación de ipfw/dummynet en Debian Wheezy
¿dummynet? ¿qué es dummynet?
Según su sitio web: “dummynet es una herramienta de simulación de redes en vivo diseñada originalmente para probar protocolos de red, y que desde entonces se utiliza para una variedad de aplicaciones entre las que se incluye el manejo de ancho de banda. Simula/impone limitaciones de encolado y ancho de banda, retrasos, pérdida de paquetes y otros efectos. Implementa también varios algoritmos de planificación. dummynet puede utilizarse en el mismo equipo donde se ejecuta la aplicación a probar o en cajas externas que actúan como enrutadores o puentes.
La selección de tráfico se realiza mediante el firewall ipfw, que es la interfaz de usuario principal para dummynet. ipfw permite seleccionar con precisión el tráfico y la dirección a trabajar, simplificando su configuración y uso.”
Para más información los dirijo al completo artículo Dummynet Revisited de los autores Marta Carbone y Luigi Rizzo.
Procedimiento
Con la colaboración de varios compañeros de trabajo surgió la siguiente receta para construirlo en Debian Wheezy (en este caso para amd64, pero es similar en i386). No es la única ni la mejor manera, pero es una que funciona. Si alguno encuentra una mejor, será bienvenida.
- Bajar la versión de ipfw compatible con kernels 3.x (20130607 o superior) y descomprimirla
wget http://info.iet.unipi.it/~luigi/doc/20130607-ipfw3.tgz tar xvzf 20130607-ipfw3.tgz
- Instalar los paquetes necesarios para Debian
apt-get install build-essential linux-headers-`uname -r` linux-source-3.2
- Desempaquetar el código fuente completo del kernel linux. Esto requiere al menos 700 MB de espacio en disco libres, así que estén preparados.
cd /usr/src tar xvjf linux-source-3.2.tar.bz2
- Copiar la configuración del kernel que se está ejecutando y las versiones de los módulos instalados
cd /usr/src/linux-source-3.2 cp -v /boot/config-`uname -r` .config cp -v /usr/src/linux-headers-`uname -r`/Module.symvers .
- Preparar el entorno de compilación del kernel
cd /usr/src/linux-source-3.2 make prepare make scripts
- Compilar ipfw indicando la ruta a los fuentes del kernel
cd /ruta/a/ipfw3-2012 make KSRC=/usr/src/linux-source-3.2
- Si no tiró errores, probar la carga y descarga del modulo ipfw_mod
insmod kipfw-mod/ipfw_mod.ko dmesg rmmod ipfw_mod
- (Opcional) Instalar los binarios de ipfw y el modulo del kernel
mkdir /lib/modules/`uname -r`/updates cp -v kipfw-mod/ipfw_mod.ko /lib/modules/`uname -r`/updates depmod cp -v ipfw/ipfw /usr/local/sbin chmod +x /usr/local/sbin/ipfw
- (Opcional) Verificar la instalación del modulo y agregarlo para cada inicio del equipo
modprobe ipfw_mod dmesg echo ipfw_mod >> /etc/modules
- Listo!
Dejo un breve script para los haraganes que, como yo, prefieren ejecutar todo el procedimiento de un saque: build-ipfw.sh
Suerte y saludos!
You must be logged in to post a comment.