[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: shim6 @ NANOG (forwarded note from John Payne)
On 28-feb-2006, at 16:34, Todd Vierling wrote:
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.
In my experience, if anything, AS path prepending is TOO effictive:
just one prepend can make a 60/40 split that you're trying to get to
50/50 into 25/75 instead. So I agree that it's not as useful as it
used to be, but I blamed this on the flattening of the AS
interconnection hierarchy. But maybe it's the routing/TE boxes that
are responsible.
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.
Right. That would be hard to accomplish with shim6.
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.
This kind of thing is, as far as I can see, pretty much impossible to
replicate in shim6. Mind you, even if we end up with PI in IPv6, it's
unlikely that you get to do this with IPv6 because the address space
and the provider aggregates are so large, that deagregating becomes a
hazard rather than a nuisance. Deaggregating a /32 into /48 makes for
upto 65536 additional routes, which is a third of the current IPv4
routing table (and several dozen times the current IPv6 routing
table). So I think most people will use strict prefix length filters
to avoid this. At least, after it has happened for the first time.
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.
I'm not too worried about what happens on both ends: since both ends
implement the shim protocol and the two ends communicate with each
other, we can build in whatever is required. The challenges are:
- getting site wide policies into the individual hosts or apply side
wide policies in middleboxes in a secure way
- come up with a reasonable way to have information "in the middle"
taken into account
And we have to figure out which capabilities must be present as a
mandatory part of the specification on day one, and which can be
optional and/or added later. (Ideally, all TE is kept outside of the
base spec because modularity makes everything easier, but some stuff
is only useful if it's everywhere so it either has to be mandatory or
forget it, and other stuff is so important that we need it from day
one.)