È necessario utilizzare il routing basato su criteri. Qualcosa di simile
ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>
<name>
è il nome di una tabella specificato in /etc/iproute2/rt_tables
oppure puoi utilizzare un id numerico ...
Questo praticamente dice che tutto il traffico da 1.2.3.4/24
verrà instradato utilizzando la tabella di instradamento <name>
. IIRC non utilizza la tabella predefinita dopo aver attraversato questo, quindi se hai bisogno di altri percorsi (ad es. Gateway predefinito), devi aggiungerli anche alla tabella.
http://wiki.wlug.org.nz/SourceBasedRouting
Questo sito ha un bell'esempio di routing basato sulla sorgente.