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
>> 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 )