lunes, 25 de julio de 2011

Dos conexiones a internet

Pues eso, como Ono me da 12 megas pero no me da IP fija, y Tele$ónica (ahora la llaman Movistar) me da 1 mega pero con IP estática, pues me he abonado a ambas y aprovecho las dos tarjetas de red de mi ordenador, una para navegar, etc. y la otra para mis servidores al exterior. Es bastante sencillo.

Para empezar, identifiquemos las tarjetas: eth0 es la de navegar, 12 megas con IP dinámica, eth1 es la de los servidores, 1 mega con IP fija.

Para seguir, identifiquemos las redes y asignemos direcciones IP internas: eth0 tiene la IP 192.168.2.25 con pasarela en 192.168.2.1, mientras que eth1 tiene la IP 192.168.1.25 con pasarela en 192.168.1.1.
Así los unos coinciden, y no hay pérdida: la red 1 en la tarjeta 1.

Ahora es cuando viene el problema: si pongo una pasarela (gateway) todos mis paquetes saldrán por ahí, así que los que hayan entrado por la otra tarjeta saldrán con una dirección IP errónea: o no navego, o no sirvo. Y si pongo dos pasarelas el núcleo hará salir cada paquete por donde le apetezca: ni navego ni sirvo.

Así que mirando la documentación y teniendo (esto es muy importante) una idea clara de lo que quería, descubrí la solución: necesitaba una tabla de enrutamiento distinta.

Manos a la obra:

ip permite tener más de una tabla de enrutamiento, y van por número, así que creé la tabla 1 (para no variar, los unos con los unos):

ip route add table 1 192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.25 
ip route add table 1 default via 192.168.1.1 dev eth1

Ahora una regla que haga que todos los paquetes que salen de 192.168.1.25 usen esa tabla de enrutamiento y no otra:

ip rule add from 192.168.1.25 lookup 1

Pónganse las tres líneas juntas, hágase que se ejecuten al levantar eth1, y listo.