redireccionamientod e puertos con iptables
Miguel Oyarzo O.
admin en aim.cl
Dom Nov 8 12:16:48 CLST 2009
rvr en 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).
Suerte!
=====================================
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
=====================================
Más información sobre la lista de distribución Linux