Forum OpenACS Q&A: Re: Using Pound for loadbalancing on three Public IPs
pound makes for every incoming connection (HTTP over TCP or SSL) and outgoing TCP connection to the backend. In your case, a connection to the external proxy server at the GW. This is a point-to-point connections, where a couple of parameters can be configured (e.g. timeout). If pound is in the middle of a TCP transfer from/to the GW, and the GW goes down, it will hang until the timeout. Pound does not try continue the TCP connection on a different GW (which is more or less impossible due to unknown state of un-flushed buffers, etc). Only retransmits of the failed request will go to a different GW.
The only way to have this work correctly, 100% of the time, is to use BGP. You may wish to ask your ISPs (one or more of them) if they will set up BGP for you.
With BGP you would "announce" your IP address block and the various ways to reach your servers via the 3 different ISP connections. You would have 1 set of IP addresses that all 3 network connections would "know" how to reach.
Traffic would automatically switch to using whichever is closest from a network standpoint while all 3 connections were up. If one or two connections went down, traffic would still reach your server via the connection that was still working.
If you are paying more than 1000 USD or Euros per month in connection charges, then you are paying enough to merit setting up BGP, and your ISP should be able to help you for free or at a low cost. If instead you are having different connections but are using low-cost, low-speed links like DSL, then the ISP will probably not assist you.