Buenas,
No soy un experto en Linux, pero segun tengo entendido es capaz de hacer load-balancing, lo cual quiere decir que puede utilizar dos o mas conexiones al tiempo, y combinado con su capacidad nativa de enrutar deberia ser suficiente para servirte como proxy para las dos conexiones. Ademas, lo puedes utilizar para discriminar ancho de banda, es decir, que la gente no chupe de programas P2P o similares, dejando a los demas a 1 k/s.... :)
El load-balancing que yo programaba en routers se puede configurar de manera que una de las dos conexiones este en espera (en caso de fallo) o que las dos funcionen al tiempo, repartiendo paquetes, que es lo que te interesa. Supongo que la implementacion en Linux sera parecida
Igual en el foro de Linux saben algo del tema....... :)
Saludetes