Indeed.
Not necessarily. There are at least two other possibilities here, both of which allow for connections to multiple providers:
- NAT in use, and load balancing on a per-connection basis. This automatically balances the return traffic as well, as everyone on the net thinks you're actually two separate independent IP nodes.
- You're a big company and you can afford to arrange BGP peering with the ISPs and inject routes into the backbone.
There are others as well that involve just living with the fact that you'll appear to be separate nodes on the net, and remaining multihomed -- this is what you'd probably do if you were doing this for (say) a web server with multiple A records.
Doing it on a per-packet basis ("round robin") is a mistake. It causes poor performance by reordering packets and often causes trouble with various middleboxes. Instead, you want to hash based on flow identification, which some systems can do.
James Carlson, KISS Network Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084 MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677