I''m using a 2.6.20-15-ubuntu (shipped with feisty) kernel with Julian''s patches applied and it''s my 3rd day with tc, ip, ifconfig and the rest ;). Got 2 ADSL uplinks. What I need is an ability to manually configure uplink usage, so nothing like bonding by default. Failover is meant to be provided via a shell script at the next step. Here is my config: =# no need for default route for now ip rule add prio 50 table main ip route del default table main # table and default route for gt ip rule add prio 201 from 101.64.106.28/30 table gt ip route add default via 101.64.105.29 dev eth2 src 101.64.105.30 proto static table gt ip route append prohibit default table gt metric 1 proto static # table and default route for ut ip rule add prio 202 from 192.168.1.0/30 table ut ip route add default via 192.168.1.1 dev eth3 src 192.168.1.2 proto static table ut ip route append prohibit default table ut metric 1 proto static # no interface specified ip rule add prio 222 table 222 ip route add default table 222 proto static nexthop via 192.168.1.1 dev eth3 nexthop via 101.64.105.29 dev eth2 = The prob is that in case I set iptables -t nat -A POSTROUTING -o eth3 -j SNAT --to 192.168.1.2, client machines can access inet w/o probs, while iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to 101.64.105.30 would lead to a non-functional connection. Could anyone please give a hint on what am I doing so wrong? TIA.