Rodrigo Valenzuela escribió:
On Sun, 08 Nov 2009 16:16:48 +0100
"Miguel Oyarzo O." <ad...@aim.cl> wrote:

r...@vtr.net escribió:
Estimados:

El cuento es el siguiente, tengo un proveedor (Telmex) el cual vamos a dar de baja a fin de mes. Todo me funciona bien, mi red interna (usuarios y servidores) sales por mi linux con iptables, cuento corto, ningún problema.

El proveedor nuevo instalo el cablerio nuevo y su aparato (obviamnete hay IP nueva GTD ) y ahí viene el problema.

Acá alojamos varios sitios y mientras no se haga el cambio de todos los sitios a la IP nueva no podemos llegar y cambiar el enlace, por lo que monté otro equipo con Linux + iptables, y lo que quería hacer era redireccionar todas las peticiones al puerto 80 en la IP nueva hacia mi servidor apache.

La ip interna del servidor web es 192.168.0.1, y el Linux + iptables nuevo tiene la 192.168.0.3., por lo que entre ellos se ven sin problemas. El problema viene cuando llega la petición a la IP nueva y la reenvía bien hacia adentro con una regla PREROUTING, pero el server viejo 192.168.0.1 ve que le llego una peticion desde la IP nueva, puerto 80 y por ende trata de contestar usando el GW del proveedor viejo (gateway por defecto) , por lo que la conexión se queda esperando eternamente.

Cuál es el mejor enfoque para tratar este problema? Creo que no me enrede mucho

Gracias!!!

Es mas facil de lo que piensas  (no requieres redirigir puertos)

1) Agrega una nueva interfaz de red a tu maquina y ponle la IP de tu nuevo proveedor (tendras 2 IP, pero un solo GW, el de tu antiguo ISP)
entonces,
2) mediante el comando "ip" crea una segunda tabla de rutas (TABLAX) que tenga el gateway nuevo o el que tu quieras

usa esto si quieres:
#ip route flush table TABLAX
#ip route show table main | grep -Ev ^default | while read ROUTE ; do $RUTA table TABLAX $ROUTE ; done
#ip route add default dev eth1 via $GW_GDT table TABLAX

Esto te creara una nueva tabla de rutas llamada TABLAX.

3) usando iptables --set-mark y la tabla "mangle" marca cada paquete que entre por esa nueva intefaz, con un numero X

4) Asocia todos los paquetes marcados con X a la nueva tabla TABLAX
Algo como #ip rule add fwmark X table TABLAX

Es todo, el kernel hara lo demas, peticiones por la interfaz vieja se iran por la tabla de rutas default "main" (TELMEX) y peticiones que entren por la nueva interfaz se iran por la tabla de rutas TABLAX (GTD).


Exactamente esa es la solución que me interesó en una primera instancia pero me 
surgieron muchas dudas, por lo que empecé a leer más, espero tener más tiempo 
en la semana para centrarme en esto.

La duda que tenía es que según este enfoque mi servidor tendría que estar 
expuesto directamente a inet, y lo que tengo en la oficina es un tarro que hace 
de FW delante de mi red. De hecho por acá estoy partiendo 
http://linux-ip.net/html/adv-multi-internet.html

Suerte!

y mucha lectura, gracias!!


En realidad el tema de si las IPs son publicas o privadas es irrelevante en esta solucion. El trafico entrará por una u otra interfaz y eso es lo que mangle marcara y el kernel re-enrutará al gw deseado.


=====================================
Miguel A. Oyarzo O.
Ingeniería en Redes y Telecomunicaciones
Austro Internet S.A.  &  INALAMBRICA S.A.
Teléfono: [+05661] 710030
Punta Arenas - Chile
Linux User: # 483188 - counter.li.org
=====================================




Responder a