Você pode fazer isso usando uma combinação de iptables / netfilter com os módulos conntrack e (conn-) mark e o roteamento de políticas.
na tabela MANGLE do iptables:
-A PREROUTING -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark -A OUTPUT -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark -A PREROUTING -i eth0 -m state --state NEW -j CONNMARK --set-mark 1 -A PREROUTING -i eth1 -m state --state NEW -j CONNMARK --set-mark 2 -A PREROUTING -m connmark --mark 1 -j MARK --set-mark 1 -A PREROUTING -m connmark --mark 2 -j MARK --set-mark 2 -A PREROUTING -m state --state NEW -m connmark ! --mark 0 -j CONNMARK --save-mark
Eu suponho que você tem uma rota padrão na eth0, então precisamos apenas configurar uma rota "mágica" para os pacotes que entram via eth1.
Usando o pacote iproute2:
ip rule add fwmark 2 table eth1 ip route add default via 192.168.132.1 table eth1
O que isto faz é: Toda conexão que chega via eth1 será marcada pelo iptables com um "2", então cada pacote nessa conexão tem uma marca, que pode ser lida fora do código do iptables. Em seguida, uma rota de política é adicionada, que encaminha cada pacote com uma marca "2" através da tabela de roteamento "eth1", que tem uma rota padrão para o roteador, mas envia os pacotes via eth1.
Voila.
Essa configuração acima pressupõe que você tenha o mesmo IP nas duas interfaces. Se você tem IPs diferentes em ambos, você pode simplificar a configuração usando somente uma rota de política no ip de origem (eu assumo 192.168.132.3 em eth1):
ip rule add from 192.168.132.3 table eth1 ip route add default via 192.168.132.3 table eth1
Não há necessidade de conmarcar via iptables então.