You can use policy routing, marking all packets coming from your desired network as to be routed through gateway1 (adsl) and marking all packets coming from the other networks as to be routed through gateway2 (cable modem). You need to use IP MANGLE to mark packets and IP ROUTE to specify the right gateway based on the routing mark provided by MANGLE.
I’m having the same problem, i had policy based routing working fine on 2.8.17 then v2.9.x came and it all changed.
can someone please help describe the process in steps of how to mark packets with connection marks, then packet marks and then routing marks and in what respective chains. I used the logic from 2.8.x and it doesn’t work in new version, i can get traceroutes to go through different interfaces working great, but no established traffic.
i notice this is a common problem, so any help would be appreciated by alot of members.