iproute multiple ADSL load balancer through VM
Solution 1:
I realize the original poster is no longer in need of a solution, but here's my take on the best solution for this issue. I also realize the poster would prefer to use Ubuntu, but configuring the routing rules manually like that isn't great for transferring ownership to others or even referencing yourself years later.
I personally would suggest a more robust setup using a PFSense VM to load balance the connections. I'd probably also suggest performing NAT on the PFSense box itself rather than on the modems. I have something similar to this configured in a VM and it works well.
For the connections between the modems and the PFSense VM, I use a vlan capable switch to connect 3 separate VLans to the VM, and break those out to 3 separate ports on the switch. This in effect provides a direct (virtual) cable from each modem to the pfsense box and another cable out to the lan. You can then configure the modems for passthrough, which varies from provider to provider.
It's true that this sidesteps the problem rather than addressing it directly, but putting the NAT on the modems themselves seems to me like just asking for trouble. Also, PFSense is specifically designed as a prepackaged router solution, so it supports and will continue to be tested with configurations like this, ensuring better reliability through upgrades.