[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Duda sobre policy-based routing.



Un saludo a la lista:

Tengo una duda acerca de cómo establece una máquina linux la ip de
origen de los paquetes que genera y cómo escoge la interfaz de salida.
Obviamente me estoy refiriendo al caso de que tengamos varias
interfaces.

Supongamos el siguiente caso:

             +--------+
   -- eth0 --+ ROUTER +--eth2--
   -- eth1 --+  LINUX +--eth3--
             +--------+

O sea, hay cuatro interfaces eth0 (172.16.0.2), eth1 (172.17.0.2). eth2
(192.168.0.1) y eth4 (192.168.1.1).

Supongamos además que en 172.16.0.1 y 172.17.0.1 hay sendos routers que
permiten salir a internet, y que eth2 y eth3 conectan con redes
internas. La intención es que la red conectada a eth2 salga por
172.16.0.1 y la red conectada a eth1 salga por 172.17.0.1.

Todo esto lo tengo más o menos estudiado y sé resolverlo, pero me asalta
una duda. En vez de seguir el LARC, he tomado como guía este documento:

http://www.cyber.com.au/~twb/doc/dual-uplink.txt

que me parece que da una solución más limpita. De todos modos, esto no es
importante, porque mi duda está en algo que hacen ambos documentos. Es
la siguiente. Llego a la siguiente política de rutas:

0:      from all lookup local
10:     from all lookup main
249:    from 172.16.0.2 lookup TABLA1
250:    from 172.17.0.2 lookup TABLA2
999:    from 192.168.0.0/24 lookup TABLA1
1000:   from 192.168.1.0/24 lookup TABLA2
32767:  from all lookup default

En "main" sólo están las entradas correspondientes a las redes
directamente conectadas, en TABLA1 una entrada que indica que la puerta
predeterminada es 172.16.0.1, en TABLA2 una entrada que indica que la
puerta predeterminada es 172.17.0.1  y en "default" una entrada que
indica que la puerta predeterminada es 172.16.0.1 (o 172.17.0.1,
dependiendo de por dónde quiera que salga el tráfico que origina mi
máquina).

La pregunta es, ¿para qué están exactamente la política 249 y 250?
Sospecho que sirven para responder por la misma interfaz a
comunicaciones que se han establecido por eth0 y eth1, es decir, si
recibí una comunicación por eth0, respondo por eth0; y si la recibí por
eth1, respondo por eth1. Y esto me lleva a pensar que, cuando una
aplicación de mi máquina inicia una comunicación con el exterior, no se
establece la dirección de origen (172.16.0.2 ó 172.17.0.2), hasta que no
se ha decidido por qué interfaz va a salir. En el ejemplo que he puesto,
esto viene determinado por la tabla "default" y como ahí indiqué que
172.16.0.1 era la puerta de enlace, se sale por eth0 y la ip de origen
es 172.22.0.2. En cambio, cuando una aplicación responde a una
comunicación externa lo que hace es copiar como ip de origen la ip de
destino del paquete que recibió. De ahí que tengan utilidad las reglas
249 y 250. ¿Es esto así? Si no lo es, ¿cómo se trabaja exactamente?

Gracias de antemano.

-- 
   Harto sabe, si me sabe bien.
                  --- Francisco de Quevedo ---


Reply to: