Hello world! ;)
Hola a todos, este es mi primer artículo, osea que sed buenos conmigo.
Voy a tratar de explicar de la forma más precisa y concisa, los pasos que seguí para configurar una Debian con 4 interfaces de red, para hacer balanceo de carga y redirección en base al puerto de destino.
En realidad esta máquina podria realizar las mismas funciones con 2 interfaces a base de binds, pero lo hice de este modo por si algún día tuviese que hacerlo con más de 2.
Situación:
Local de ocio sin ánimo de lucro, unos 20 usuarios, 3 salidas a internet. Un cable modem (300Kbps),
y dos cable routers cisco ubr954, uno de ellos de 512Kbps y el otro un 300Kbps.
En un principio los cable routers estaban en la misma red que la LAN, 172.31.0.0. Los usuarios podían
cambiar su puerta de enlace dependiendo de lo que quisieran hacer. A veces un cable router tenía una
ruta (asignada por ono) que favorecía a los juegos on line, en este caso quake3. Se que os sonara
extraño esto último, pero es cierto, en el caso de los cable modem, ono, en funcion de la mac de tu
tarjeta de red te asignaba una IP, y asociada a esa IP una determinada ruta. Entonces, verificamos que
si cambiabamos de tarjeta de red, nuestra latencia respecto a los servidores de quake3, aumentaba o
disminuía en función de la ruta que ono había asignado a esa IP.
Con los routers sólo cabía esperar que nos cambiasen la IP y con ello la ruta.
Dado que los usuarios del local, no todos son unos expertos informáticos, a veces esto generaba
dolores de cabeza (sobre todo a mi) ;), la solución, hacerlo de una manera transparente para ellos.
Los usuarios obtienen su ip por dhcp, siempre la misma, en funcion de la MAC de su tarjeta de red:
option routers 172.31.0.254;
option domain-name-servers 62.42.230.135, 62.42.230.136;
host gravis {
hardware ethernet 00:c0:26:26:21:40;
fixed-address 172.31.0.8;
}
¿Por qué?
En un principio era para aprovechar las 3 ips públicas, así 6 usuarios simultáneamente podrían
conectarse al irc. Pero una vez conseguido este objetivo, ves que es tan fácil, que empiezas a
redireccionarlo TODO!!!
¿Qué necesitamos?
Imprescindibles:
Iptables
Ip (paquete iproute2)
Kernel compilado con soporte de target MARK para iptables.
Una vez tenemos todo lo necesario, nos ponemos manos a la obra. |