Not easy, first remember that commits and charges are based on the 95% of the larger incoming or outgoing sample. Most hosting providers outgoing traffic is higher (serving web pages etc) most normal companies incoming is larger (downloading files etc.)
With BGP there is no magic to load balance your traffic over multiple links the path chosen is normally the one that traverses the fewer providers. You do have more control over your outgoing traffic than incoming traffic. Normally you control your outgoing traffic by setting a LOCAL_PREFERENCE so provider A is preferred over B for certain internet destinations (nets). For incoming traffic you normally prepend your AS number several times when sending your networks to the provider you would not want to use. Doing either of these could penalize your traffic as it may now take a slower route to the destination.
One solution (if your traffic is mainly outgoing) is to use a route optimization platform like Internaps FCP this measures latency on the outgoing paths and forces traffic down the fastest path. It can also be configured to use provider A over B if both routes are about the same performance.
All in all BGP load balancing can get very complex, often it is simpler, cheaper and better to simply get a redundant feed from a single provider that has a good routing mix. (that $40K for an FCP box + 40K for a good BGP capable router could buy many years of 100Meg-1G bandwidth!!!).
Umm, this is fairly crude, at a quick glance it looks like it take the first 1/2 of the address space (0.... -> 127....) and shoves it down provider A and the other half down provider B.
It is probably better to choose some of the bigger super nets from each prover (for example prover A and its customers) go to A (provider B and its customers) go to B. The others go to the path with the least providers.
does using an FCP box require that you use their providers, or does this work with your existing providers?
No you can use it with any providers. In fact it makes no sense to use it with Internap bandwidth as their network already uses a souped up version to manage its blend of providers to give the best performance.
Look at the section called: Two links to different ISPs
Announce /19 aggregate on each link
• Split /19 and announce as two /20s, one on each link basic inbound loadsharing
• When one link fails, the announcement of the /19 aggregate via the other ISP ensures continued connectivity
• Loadsharing in this case is very basic
• But shows the first steps in designing a
load sharing solution
Start with a simple concept
And build on it…!
• Vary the subprefix size and AS PATH length
until “perfect” loadsharing achieved
• Still require redundancy!
• This example is more commonplace
• Shows how ISPs and end-sites subdivide
address space frugally, as well as use the
AS-PATH prepend concept to optimise the
load sharing between different ISPs
• Notice that the /19 aggregate block is