Shortest-exit is the default because of the BGP decision process.
This tends to favor heavy-content providers because the bulk of
the data travels shorter distances out of the AS sending content
to the AS receiving the content to their eyeballs.
Shortest-exit is caused by IGP metrics (which shouldn't ever be
the same for two paths, unless you actually want that to happen).
IGP metrics are generally set by length of fiber paths or delay
values. Provider backbones set these manually with ISIS or OSPF
There are many ways to do best-exit. People are always coming
up with strange ways to do routing (ToS routing, MPLS-TE, DS-TE),
and they can sometimes apply these techniques to best-exit.
For those looking for something simple and standard, the two
ways were made known in the first email -> outbound MED's and
delay-based routing from `traceroute' information. There are
quite a few problems with this as well, documented in many
various papers on the matter e.g.:
For MED's, Avi spoke to the methods used in the following talks:
One thing Avi mentioned here, I never quite understood..
He says "set MED's in one direction only", but he doesn't say
which direction or why.
As to solving the aggregation problem making outbound MED's
insignficant, there is some work trying to be solved using
Communities (NO-PEER, supercommunities, redistribution, cost
communities, link-bw, et al). Some of which is believed (and
probably rightly so) to be overcomplicated and possibly even
oscillatory just like the other methods.
I enjoy the simple approach that RFC 3272 takes (surprisingly
simple Inter-Domain traffic engineering coming from the super
complex Intra-Domain TE based on MPLS/etc that the authors
recommend). They have some suggestions on setting local_pref
and inbound MED's that I found to be very clueful.
http://www.ietf.org/rfc/rfc3272.txt (Section 7.0)
"Inter-domain TE is inherently more difficult than intra-domain TE
under the current Internet architecture. The reasons for this are
both technical and administrative."
So maybe best practice today for doing best-exit is simply having
the technical data (communities, tags, traffic, etc) and talking
directly with the administrators of your peer-AS to find a solution
(or reading their minds without their data, or inferring it, or
I guess the final question is -- why is anyone concerned about
best-exit at all? Doesn't shortest-exit still get the traffic
there? I'm willing to bet there are a lot of different answers
to all these questions.