On Tue, 28 Feb 2006, Iljitsch van Beijnum wrote:
A --- B / \ X Y \ / C --- D
C's link to D may be low capacity or expensive, so D would prefer it if X would send traffic to Y over another route if possible. C can make this happen in BGP by prepending its AS one or more times so X will see the following AS paths:
A B Y C C C D Y
All else being equal, X will choose the path over A to reach Y.
There's plenty of route mangler technologies out there that provide overriding BGP information to borders that trumps path length. "All else" is often not as equal as you seem to expect. It's time to wake up and smell the intelligent routing trend. The usefulness of prepending is rapidly dwindling. Don't try to push it as a future-compatible solution; it is not. Prepending is not a tool; it is a hack that has outlived its usefulness.
Another capability that would be hard to replicate with shim6 is selective announcement.
Now, selective announcement is something completely different -- but it's still a historical hack for lack of better mechanisms in BGP[34]. If the route isn't there at all, it won't be selected in today's world. But also consider this: - C does not advertise the prefix for Y, but it does have the next superprefix for Y (and C is "transit", so the superprefix must be considered valid); - X's link to A dies. So X will still try to push packets over C to reach Y, and per the existence of the superprefix on C, that route should[!] be valid. Don't think this will forever be a rare circumstance, either. The route mangling technologies I mentioned above are now starting to offer the ability for traffic to go out a "transit" neighbor so long as some containing prefix is advertised (even if it's not the most specific). Traffic engineering is happening on both ends of the BGP mesh *today*, so you should present any proposed solution in that context. -- -- Todd Vierling <tv@duh.org> <tv@pobox.com> <todd@vierling.name>