A small LAN (15-20 users) has 3-4 internet connections on a mix of DSL / Cable / EVDO modems. All internet connections are connected to a unique interface on a linux box, which is in turn connected to all the devices on the LAN. I need to setup a proxy server solution such that the proxy binds its outgoing connections to whichever internet interface is currently available.
Availability needs to be checked in semi-real time, I was thinking a small app that pings each of the interface's respective DNS servers through that interface to determine connectivity would work fine.
What sort of proxy solution would allow dynamic routing through different interfaces - depending on whichever one is available at any given time? I suppose it's ok if existing connections are dropped when the proxy switches to a different interface, but the required behaviour is that each new connection established through the proxy should be through an interface that is working at the time.
As an added bonus, is there a solution that would allow the proxy server to round robin its outgoing connections through all the available interfaces (if more than one is available), or do any smarter form of load balancing.