I have a server communicating with a cluster of machines and the bottleneck is the network bandwidth. The good news is there are 2 interfaces, while the server can only make use of one. Without changing the code of the server, the utilization of the two interfaces are 100% vs. 0%.
What I want is a transparent round-robin scheduling on the two interfaces with minimal change, and the program should not be altered. This is because I have no physical access to the server, any configuration errors would be painful to recover from. The best solution I thought is like setting up a virtual interface that handles all traffic in a round-robin manner using the two underlying interfaces.
How can I do this without employing the "bonding" technique?
Why bonding is not an option? Because I have only remote ssh access of the server, any configuration errors on the existing interface will put the server down for a few days until the local administrator thousand-miles away takes over. Therefore a lightweight, i.e. "transparent", solution would be best.