上記のip route ... table localメソッドを試しました。うまくいかないか、何か間違ったことをしています。
トリックは、一連のダミー IP アドレスを使用して、カーネルに強制的にワイヤを介してルーティングさせ、NAT を使用してそれを実際の IP アドレスに戻すことです。
eth0 と eth1 を 2 枚のイーサネット カードとします。IP0 と IP1 はその IP アドレスです。MAC0 と MAC1 はそれぞれその MAC アドレスです。IP00 と IP11 の 2 つのダミー IP アドレスを使用します。
arp -s IP00 MAC0
arp -s IP11 MAC1
ip route add IP00 dev eth1
ip route add IP11 dev eth0
iptables -t nat -A POSTROUTING -d IP11 -j SNAT --to-source IP00
iptables -t nat -A POSTROUTING -d IP00 -j SNAT --to-source IP11
iptables -t nat -A PREROUTING -d IP00 -j DNAT --to-destination IP0
iptables -t nat -A PREROUTING -d IP11 -j DNAT --to-destination IP1
実際の IP アドレスではなく、ダミーの IP アドレス IP00 と IP11 を使用します。