[eside-ghost] Duda sobre rutado en GNU/Linux

Alvaro Uría fermat en rigel.deusto.es
Mar Mar 6 13:45:08 CET 2007


Aupi,

Tengo una máquina conectada por 2 redes distintas (red A y red B) y un
servicio escuchando por una de esas redes (red B). En principio, está
funcionando todo bien salvo cuando intento acceder a dicho servicio desde
la propia máquina, a través de la red A (no a través de localhost).

Elaborando un poco más el problema, la máquina tiene 2 IPs privadas (y 2
tarjetas de red) en distintos rangos de red, y la interfaz donde escucha el
servicio está conectada a un router que enmascara la IP destino, pero no la
origen.

Entonces, intento conectar desde 192.168.1.2 a 192.168.1.30:80, que en
realidad es un router que redirije la conexión a 192.168.2.2.

Mi problema es que no encuentro la conexión de vuelta, ni esnifando la
interfaz "lo" (localhost) ni las interfaces reales :(

Haciendo un "netstat" en la máquina, veo un SYN_SENT desde 192.168.1.2 (red
A, con puerto >1024) a 192.168.1.30:80 (router que redirije la conexión).

Cuando esnifo la interfaz de la red B, ésta muestra las conexiones que van
a 192.168.2.2:10080, y nada más (o sea, no muestra la vuelta).

¿Quizás por ser la dirección origen, que luego pasa a ser la dirección
destino, de la misma máquina, no se "baja" a mirar la tabla de rutas?
Aún así tendría que ver algo en la interfaz de "lo", tal como veo si hago
un "telnet 192.168.2.2 10080", ¿no?

Ni el "-j LOG" de iptables, ni probando a marcar los paquetes entrantes con
la tabla "mangle" para luego enrutar según la regla "ip rule add fwmark
<numero> table router" me han funcionado :-/

Gracias de antemano por la ayuda :-)

Saludos,
  Alvaro Uría


Más información sobre la lista de distribución eside-ghost