Estimados, tengo una duda sobre como implementar un ruteo por múltiples
interfaces de forma balanceada. Paso a explicarles un poco mejor, para
lo cual primero les muestro como es el esquema actual (espero se
entienda mi "ASCII Art"):
/-----------\ /-----------\
/ \ ------------------------ ----------------------
/ \
| | | | |
| |--- Router_Cisco_A --- | |
|Redes locales| --- |if3 Router_Cisco_C if1| ---- |if1 Router Linux if2|
--- Switch ---| | Red Externa |
| | | | |
| |--- Router Cisco_B --- | |
\ / ------------------------ ----------------------
\ /
\-----------/ \-----------/
Sin entrar en detalles engorrosos de porque el esquema es así, créanme
que así es en este caso. El ruteo que tengo que modificar es
exclusivamente en el Router Linux, en el cual actualmente tengo lo
siguiente:
Para el tráfico de <Red_Externa> hacia <Red_Locales> (llamémosle
"tráfico de bajada"):
ip route add <Red_Local_1> via <IP_if1_Router_Cisco> dev <if1_Router_Linux>
ip route add <Red_Local_2> via <IP_if1_Router_Cisco> dev <if1_Router_Linux>
ip route add <Red_Local_3> via <IP_if1_Router_Cisco> dev <if1_Router_Linux>
Para el tráfico desde <Redes_Locales> hacia <Red_Externa>, usando de
forma balanceada las <if3> e <if4> de <Router_Linux> (llamémosle
"tráfico de subida"):
ip route replace default src <IP_Router_Linux> nexthop via <IP_Equipo_A>
nexthop via <IP_Equipo_B>
Lo anterior funciona a la perfección, es decir, todas las redes locales
son perfectamente "alcanzables" y el tráfico de subida hacia la red
externa se "reparte" de forma pareja ("mitad y mitad") entre el
<Router_Cisco_A> y el <Router_Cisco_B>.
Ahora bien, debo modificar el esquema para que quede de la siguiente manera:
/-----------\ /-----------\
/ \ ------------------------ ----------------------
/ \
| | | if1| ---- |if1
| |--- Router_Cisco_A --- | |
|Redes locales| --- |if3 Router_Cisco_C | | Router Linux if2|
--- Switch ---| | Red Externa |
| | | if2| ---- |if3
| |--- Router Cisco_B --- | |
\ / ------------------------ ----------------------
\ /
\-----------/ \-----------/
Es decir, conectar <Router_Linux> y <Router_Cisco_C> mediante dos
interfaces de red en lugar de una sola como está actualmente. La duda
que tengo es si se puede lograr el balanceo en el tráfico de bajada de
manera similar a como se hace con el tráfico de subida (aunque aquí el
caso no es el mismo, para la subida entra en juego una sola interfaz de
<Router_Linux> y en este caso entran en juego dos interfaces), de forma
tal de dejar balanceado tanto el tráfico de subida como el de bajada.
Lo primero que se me ocurrió es rutear la mitad de las <Redes_Locales>
por <if1> de <Router_Linux> y la otra mitad por <if3>, pero esto claro
está no me asegura que el tráfico se reparta equitativamente. El hecho
de que se reparta por igual entre una interfaz y la otra no es
obligatorio, pero si sería realmente muy bueno, y por eso quiero ver si
se puede lograr.
Espero que se entiendan mis esquemas y lo que quiero lograr.
Desde ya les agradezco mucho por cualquier ayuda que me puedan dar.
Saludos y muchas gracias!
Mauro.