Linux network packet load balancing
I wrote a quick script for work that allows you to use multiple connections to handle load balancing (from the lartc website). This script does a few extra things, for example it takes a backup of your current ip route and ip rules and dumps them into a file for you - but it leaves the nasty business of removing any rules that are currently on the system to you.

The way this works is that you create two tables each with a default route to get out to the internet, you then share the load across the two by pumping packets through the tables. Unfortunately this solution wasn't good for me because in my case I want to connect to a remote site which only has a couple of IP addresses - it seems like it would work well if you wanted to use it for connecting the default route though. The problem is that ip route caches the route that it uses, this means that in my case it would always use the same connection to get to the same IP, as most of the traffic is to only one or two IP addresses this means that one link would be saturated and the other would be used minimally. However, if you were going to random sites (such as the default route would use) you could expect it to randomly select one route in a reasonably fair manner.
Be aware that this method will not increase the total bandwidth that you have by "bonding" (I know, that's something completely different, but bear with me) the two links together to aggregate the bandwidth, but rather it handles redundant links and trying to use two links equally.
The script listed below works for me but your mileage may vary. Be careful with this as it changes the routes on the system which can leave you without a connection to the machine (especially with remote machines).
You may need to delete your default route prior to running this script - I strongly urge you to understand what is in this script before simply running it, especially on mission critical machines!
