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 en /etc/iproute2/rt_tables
o puede usar una identificación numérica ...
Esto prácticamente dice que todo el tráfico de 1.2.3.4/24
se enrutará utilizando la tabla de enrutamiento <name>
. IIRC no usa 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 fuentes.