On Mon, 26 Jun 2006, John Smith wrote:
Replying to what most of the offline replies that i received said:
We wish to load balance the traffic for a block/range of IP addresses that we learn via BGP4 from our two upstream providers. The problem is that my favorite vendor does not let me install ECMP routes in case of routes learnt from extrnal BGP peers. Assuming that we are able to
you could leak from BGP to 'igp' and make sure you have both paths in the IGP. NOTE: this is possibly very dangerous... you've been warned sorta :) (why dangerous? something breaks in your leak mechanism and you drop 'full internet routes' on ospf/eigrp/isis... network go boom! it is fun to watch though.)
install EBGP ECMP routes, how do we advertise this information to our downstream peers? As far as my working knowledge of BGP4 goes, it wouldnt let me do this.
correct... BGP selects 'best path' and sends that along to it's neighbors. There is a flag on one vendor I believe to force it to send 'all paths', but this is also dangerous, or could be if misused. Perhaps someone who's used that feature could speak up?
I wish to understand how other network operators do this?
You don't, not usually anyway. You advertise the best path to your downstreams. If you want to 'load balance' per packet or otherwise to one or more upstreams that's an internal/your AS decision only. There's nothing to tell the downstreams about from BGP's point of view.
I think there is a need to tell my downstream peers about ASes the traffic is gonna go through.
There isn't a facility in bgp to tell a neighbor more than one possible aspath... or not one that most network folk use currently. I suppose for a subset of routes you might hack up some community based solution, but it'd be a horrible hack, and it'd cause you to keep churning your router configs on a very regular basis as things up stream changed. If the downstream has a connection only to you does it matter where they send packets? everything has to go through your AS to get anywhere... right? If they have a multihomed solution (you and another isp) they are going to have to decide on some other internal metric (interal to them based perhaps on non-routing-table information, like 'john has a oc-12 to provider-Y, Jim only has a T1.... send to John!') whete to send traffic.
I'm thinking wildly, and it may not make a lot of sense but heres the scenario i have in mind: You load balance (per stream which is usually
per flow... is the normal terminology I think, but sure.
what most of the vendors do) and you distribute your traffic through ASes 10 and 20. Now you are advertising only one BGP path, say the one through AS 10. Isnt this a problem? Isnt "Advertise what you yourself use" one of the basic shibboleths of BGP or routing for that matter?
BGP will only pick 'one best path', So, unless you did some local static or IGP based thing (see the leak suggestion above) you'll only really be using one path to AS10 or AS20, and only be sending internally (then externally on the other side of the network) one path. If you were sending to AS10 initially and that link failed or otherwise became 'worst path' you churn on your edge then ship an update with new path info along to your ebgp peers... They have to then churn and decide which path is 'best' and move forward. What benefit is there in sending them 2 paths? They still must remove a path and re-converge, eh? (if you could even send them 2 paths of course) Oh, and to throw in another monkey wrench... if you really wanted to do this for some reason you COULD provide ebgp-multihop peers to your border routers to all customers (ebgp neighbors) that wanted this 'service'... again, this is messy and ugly, but it'd get them multiple copies of the same route, they could then decide on 'best path' based on this information. (this also is not recommended, just a thought) (glad someone atleast replied offline :) ) -Chris