Mit iproute2 können Sie so etwas tun:
echo "1 admin" >> /etc/iproute2/rt_tables
echo "2 users" >> /etc/iproute2/rt_tables
ip rule add from 192.168.122.40/32 dev eth0 table admin
ip rule add from 192.168.123.41/32 dev eth1 table users
ip route add default via 192.168.122.1 dev eth0 table admin
ip route add default via 192.168.123.1 dev eth1 table users
Jetzt haben Sie zwei Routing-Tabellen mit zwei Gateways.
Dieses Phänomen wird als Unicast-rpf (Reverse Path Forwarding) als Standard-Rückwärtspfadfilter in Linux bezeichnet. Sie können dies ohne wichtige negative Folgen deaktivieren (es sei denn, Sie sind ein Internetanbieter und ein Router).
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
Dann sollte Ihr Beispiel wie gewünscht funktionieren.