Pues sí, es fácil montar tu propio router. O rúter, o enrutador, o router, o... como quieras llamarlo. El propósito que nos hemos fijado es añadir a la funcionalidad de un router ADSL estándar, para añadir control de tráfico (traffic shaping) y pijadas de ese estilo. Además, el NAT lo haremos desde aquí, que es más fácil de configurar (por ssh) que el demonio de 3Com que te da la Timofónica. Y viene muy bien para cuando tenemos un módem USB (suponiendo que tengas los drivers adecuados).
No es que vaya a descubriros el mundo, pero para mí todo esto es nuevo, y flipante. Ni siquiera sabía que se podía hacer traffic shaping con Linux -- creía que hacía falta un *BSD. Y estoy muy contento de que sea tan fácil. Así puedes evitar que el tráfico que va por un puerto (digamos, bajarse la última edición de Mandrake en DVD via web) se te coma todo el ancho de banda y te fastidie la administración remota. O que, al estar saturando la conexión de subida, la latencia de bajada sea tan grande que no te vaya el DNS. Cosas de las que fastidian de verdad.
Tú, colega novato, sí que apreciarás esta entrada. Que sepas que, con un poco de esfuerzo, te puede quedar de lo más coquetón. Sólo necesitas:
- Un pecé viejo. Los requisitos mínimos son: Pentium a 100 MHz (de ésos con botón de "turbo"), 16 MB de RAM y 1 GB de disco duro. Usaremos un PII a 400 MHz, con 64 MB de RAM y 6 GB de disco duro para ir sobraos.
- Dos tarjetas de red. Se recomienda que sean Ethernet 10/100 base T, las pareadas y contrachapadas (ésas con un pincho que sale pa fuera) dan un poco de grima.
- Un switch, con tantas bocas como te haga falta.
- Un canuto a la internés gordo.
- Visitar los HOWTOs: online o en tu distro favorita. Por desgracia, de los dos que vamos a usar (Linux Advanced Routing & Traffic Control HOWTO y Linux IP Masquerade HOWTO) sólo el segundo está traducido al castellano. Y aviso de que además son de los HOWTOs más gordos.
Bueno, pues ya está todo. Primero se instala una Debian testing, luego se eliminan todos los servicios superfluos; el consumo de memoria final es de 7 MB. La caña. Por supuesto, dejamos corriendo sshd para administración remota, aunque el objetivo es que la máquina no sea accesible directamente -- habrá que primero entrar en el servidor web, y desde ahí conectarse al router. Así hay una capa más de seguridad y se entretienen los "juáquers".
Luego se enchufan los servidores de la red interna al switch, éste al router por una de las tarjetas, y la otra al router ADSL. Este bonito arte ASCII os lo explicará, o cuando menos os entrarán ganas de vomitar de tan cutre:
=== router ADSL
|
---
| |
| | router Debian
| |
---
|
=== switch
|||
\\\ a los otros servidores
Nos queda establecer el enrutado de paquetes y, para pijotear, el control de ancho de banda. En cada uno de los HOWTOs viene un script muy útil: el de "Masquerade" hace NAT (se recomienda la versión rc.firewall-2.4-stronger) y el otro el control de tráfico (se recomienda la versión HTB, o Hierarchical Token Bucket).
Ah, pero nos falta un pequeño detalle: estamos haciendo NAT para tener salida desde los servidores internos; pero no vamos a poder acceder desde fuera a ninguna máquina. De hecho, el router se papea todos los intentos de conexión, así que es un router un poco idiota.
Afortunadamente, estoy currándome una solución. Además muy fonita, porque puede configurarse desde un fichero aparte. En cuanto lo tenga listo, os lo cuento; por ahora, sigo tirando del antiguo firewall.
Para los administradores de pelo en pecho que hay por aquí: ¿qué os parece el cotarro? ¿Muy inestable, vulnerable o petardeable? Es mi primer router chispas, así que responded a la encuesta, porfiii...