Respuestas:
Debe utilizar el enrutamiento basado en políticas. Algo así como
ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>
<name>
es el nombre de la tabla especificado /etc/iproute2/rt_tables
o puede usar la identificación numérica ...
Esto prácticamente dice que todo el tráfico 1.2.3.4/24
se enrutará utilizando la tabla de enrutamiento <name>
. IIRC no utiliza la tabla predeterminada después de pasar por esto, por lo que si necesita otras rutas (es decir, puerta de enlace predeterminada), también debe agregarlas a la tabla.
http://wiki.wlug.org.nz/SourceBasedRouting
Este sitio tiene un buen ejemplo de enrutamiento basado en fuente.
ip route add default dev eth4 table <name>
(table
creo que la directiva debe ir al final, al igual que en el primer comando ... tambiéndefault
se puede reemplazar por una subred, como en su ejemplo )