(SOLUCIONADO) Re: redireccionamientod e puertos con iptables

2009-11-10 Por tema Rodrigo Valenzuela
On Mon, 09 Nov 2009 22:00:50 +0100
Miguel Oyarzo O. ad...@aim.cl wrote:

 
 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.

Lo probé y así fue, excelente solución pero no es lo que implementaré ya que al 
final lo hice primero con iptables, además que es una solución temporal no más. 
Eso lo voy a tratar después cuando veamos el tema de la conexión redundante ;)

Al final quedó así

# HTTP 10.0.0.1
$IPT -t nat -A PREROUTING -d $GTD_IP -p tcp --dport 80 -j DNAT --to-destination 
10.0.0.1
$IPT -t nat -A POSTROUTING -o eth3 -p tcp -j SNAT --to-source 10.0.0.3

#MAIL
$IPT -t nat -A PREROUTING -d $GTD_IP -p tcp --dport 25 -j DNAT --to-destination 
10.0.0.2
$IPT -t nat -A PREROUTING -d $GTD_IP -p tcp --dport 993 -j DNAT 
--to-destination 10.0.0.2

Por su puesto que hay que habilita el bit de reenvío en el kernel

Como se comentó anteriormente esta solución llena los logs del apache con 
peticiones locales obviamente, así que ojo para el que implemente algo 
parecido.

Gracias a todos!!!

saludos
 
 
 =
 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
 =
 
 
 
 


-- 
Rodrigo Valenzuela r...@vtr.net



Re: redireccionamientod e puertos con iptables

2009-11-09 Por tema Miguel Oyarzo O.


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
=






Re: redireccionamientod e puertos con iptables

2009-11-08 Por tema Miguel Oyarzo O.

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).


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
=








Re: redireccionamientod e puertos con iptables

2009-11-08 Por tema Rodrigo Valenzuela
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!!
 
 =
 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
 =
 
 
 
 
 
 


-- 
Rodrigo Valenzuela r...@vtr.net



Re: redireccionamientod e puertos con iptables

2009-11-07 Por tema Rodrigo Valenzuela
On Sat, 7 Nov 2009 02:34:40 -0300
Aldrin Martoq amar...@dcc.uchile.cl wrote:

 2009/11/6  r...@vtr.net:
  On Fri, 06 Nov 2009 10:53:34 -0300
   Yonathan Dossow ydos...@inf.utfsm.cl wrote:
  On Fri, 2009-11-06 at 00:55 -0300, Aldrin Martoq wrote:
  No no no: la _tabla_ es PREROUTING, probablemente estás usando DNAT
  para redirigir a tu servidor en su IP interna.
  PREROUTING es una cadena, las tablas son filter, nat, mangle y raw
 
 Me equivoqué, Yonathan tiene razón.
 
  No no no: en realidad ve que la petición llega desde una IP de
  internet (y el puerto origen no es 80). Si la IP de origen dice
  internet, la respuesta se irá por TELMEX en vez de volver por la IP
  interna, y por eso el DNAT no funciona como una espera... Una solución
  para tu configuración es cambiar la IP de origen... algo como esto:
  iptables -N MITABLA
  iptables -A PREROUTING -p tcp --dport 80 -j MITABLA
  iptables -A PREROUTING -p tcp --dport 25 -j MITABLA
  [... etc con el resto de los servicios ...]
  iptables -A MITABLA -j DNAT --to-destination 192.168.0.1
  iptables -A MITABLA -j SNAT --to-source 192.168.0.3
  esto deberia ir en la tabla nat... en filter eso no deberia funcionar.
 
  lo probé en la tabla nat y tampoco me funciona..
 
 Bien, Yonatham tiene razón nuevamente. Debiera ser algo así:
 
 iptables -N MICHAIN
 iptables -t nat -A PREROUTING - tcp --dport 80 -j MICHAIN
 
 iptables -A MICHAIN -j DNAT --to-destination 192.168.0.1
 iptables -A MICHAIN -j SNAT --to-source 192.168.0.3
 
 
 A menos que esté nuevamente equivocado...

El lunes lo probaré en la oficina, ;)


 
 -- 
 Aldrin Martoq
 http://aldrin.martoq.cl/
 


-- 
Rodrigo Valenzuela r...@vtr.net



Re: redireccionamientod e puertos con iptables

2009-11-05 Por tema Felipe
2009/11/5 r...@vtr.net

 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!!!
 --
 Rodrigo Valenzuela r...@vtr.net
 Rodrigo Valenzuela


Rodrigo,

Considerando este escenario podrias considerar el usar un reverse proxy
cache. Personalmente recomiendo Varnish, que se puede encontrar en
http://varnish.projects.linpro.no/. Tambien viene empaquetado en algunas
distros.

Saludos,
Felipe


redireccionamientod e puertos con iptables

2009-11-05 Por tema rvr

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!!!
--
Rodrigo Valenzuela r...@vtr.net
Rodrigo Valenzuela


Re: redireccionamientod e puertos con iptables

2009-11-05 Por tema rvr

On Thu, 5 Nov 2009 16:25:49 -0300
 Felipe kelt...@gmail.com wrote:

2009/11/5 r...@vtr.net


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!!!
--
Rodrigo Valenzuela r...@vtr.net
Rodrigo Valenzuela



Rodrigo,

Considerando este escenario podrias considerar el usar un reverse proxy
cache. Personalmente recomiendo Varnish, que se puede encontrar en
http://varnish.projects.linpro.no/. Tambien viene empaquetado en algunas 
distros.


Había visto esa posible solución, pero, como nunca falta, necesito hacer el 
mismo redireccionamiento de puertos para otros servicios (smtp, dns, etc.), se 
me había olvidado comentar eso.


gracias!









Saludos,
Felipe


Rodrigo Valenzuela


Re: redireccionamientod e puertos con iptables

2009-11-05 Por tema Juan Manuel Doren
y si le agregas una nueva ip al servidor viejo, y le haces llegar por
esas las peticiones del proveedor nuevo?


El día 5 de noviembre de 2009 15:09,  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!!!
 --
 Rodrigo Valenzuela r...@vtr.net
 Rodrigo Valenzuela




-- 
Juan Manuel Doren
Santiago, Chile



Re: redireccionamientod e puertos con iptables

2009-11-05 Por tema Rodrigo Valenzuela
On Thu, 5 Nov 2009 20:36:43 -0300
Juan Manuel Doren jmdo...@ok.cl wrote:

 y si le agregas una nueva ip al servidor viejo, y le haces llegar por
 esas las peticiones del proveedor nuevo?
 
 
Ahí justamente está el problema, porque actualmente si hago eso no salen las 
peticiones por la interfaz por donde llegó la petición porque el gw por defecto 
es el del proveedor antiguo. En fin, averiguando creo que lo que necesito es 
iproute2

http://linux-ip.net/html/adv-multi-internet.html

algo por el estilo, si alguien ha trabajado sobre el mismo escenario unas pocas 
luces no estaría mal. A documentarse no más.

Gracias

 El día 5 de noviembre de 2009 15:09,  r...@vtr.net escribió:
  Estimados:
 
  Rodrigo Valenzuela
 
 
 
 
 -- 
 Juan Manuel Doren
 Santiago, Chile
 


-- 
Rodrigo Valenzuela r...@vtr.net



Re: redireccionamientod e puertos con iptables

2009-11-05 Por tema Aldrin Martoq
2009/11/5  r...@vtr.net:
 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,

No no no: la _tabla_ es PREROUTING, probablemente estás usando DNAT
para redirigir a tu servidor en su IP interna.

 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.

No no no: en realidad ve que la petición llega desde una IP de
internet (y el puerto origen no es 80). Si la IP de origen dice
internet, la respuesta se irá por TELMEX en vez de volver por la IP
interna, y por eso el DNAT no funciona como una espera... Una solución
para tu configuración es cambiar la IP de origen... algo como esto:

iptables -N MITABLA
iptables -A PREROUTING -p tcp --dport 80 -j MITABLA
iptables -A PREROUTING -p tcp --dport 25 -j MITABLA
[... etc con el resto de los servicios ...]

iptables -A MITABLA -j DNAT --to-destination 192.168.0.1
iptables -A MITABLA -j SNAT --to-source 192.168.0.3


El problema de esta configuración es que todo el tráfico parecerá
venir desde el linux con IP 192.168.0.3 en GTD, para efecto de los
logs y tal vez de tu aplicación; pero la conectividad funcionará.



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

Yo sacaría el linux extra y agregaría las IP's a tu conexión nueva con
un switch. Algo como esto:

GTD - switch
TELMEX - switch
switch - SERVIDOR

y en el servidor,
eth0 - IP de GTD
eth0:1 - IP de TELMEX
ruta default - la de GTD.

Cuando se muera TELMEX, le quitas las IP correspondientes.

-- 
Aldrin Martoq
http://aldrin.martoq.cl/