On Wed, Aug 17, 2005 at 12:15:55PM -0700, Pedro Roque Marques wrote:
> As for the issue of consistently selecting one of multiple paths... take
> one unicast routing advertisement from AS X. If there is multipath
> downstream and a consistent path is not selected for a given 5-tuple
> (src,dst,proto,port#s), plain IP features like PATH MTU discovery may
> not work correctly.
>
> The problem exists independently of "anycast".
It's even simpler than that. Mechanisms like path mtu have to deal
with a topology change where the path has a different mtu.
The scenario I had in mind is this:
_____
( )
( a a )
( )
0___0
| |
1 1
\ /
2
Two anycast instances exist in AS 0. Each border router advertises
the prefix for a. 2, in the above example, is the first chance for
ecmp. As long as 2 deterministically sends its traffic for a given
flow to the same peer, we don't have a problem. If we don't send
them deterministically, we have a problem.
If there's just one instance of a, then the traffic iwill
consistently end up at that a regardless of the path. Most vendors
will be sane enough to insist that the bgp paths are otherwise
identical. You not only have to have them be identical, you must
have the flow directed deterministically. You can skip this last
step if a wont have multiple instances.
In the cases where a is present from multiple origin ASes, I'm not aware
of a BGP ecmp implementation that will load balance the traffic.
While I'm sure you can say your implementation "does the right thing"
and the $OTHER_LARGE_VENDOR "does the right thing", it's hard to say
that everyone does the right thing. If anyone doesn't, there's a problem.
Honestly, just given normal Internet topology changes, relying on
a given path to a given anycast instance being stable for a large
traffic flow seems somwehat unlikely. But I'll leave it to those who
keep such statistics to speak on the subject.
> There is no reason why BGP needs or should treat "anycast" different
> from unicast... in fact it MUST NOT know whether there is more than one
> advertisement for a prefix. This kind of text is harmful.
Yet you've already suggested that people's implementations have been
written in such a way as to deal with this problem.
I would agree that bgp shouldn't differentiate unicast and anycast,
but I'd be shocked if there aren't people who have asked for per-packet
load balancing that ignores flow determinism. I think Dean was alluding
to that. In those cases, one needs to be aware of what you're load
balancing and why it might be a Bad Thing to do so.
> Pedro.
--
Jeff Haas
NextHop Technologies
_________________________________________________________________
web user interface: http://darkwing.uoregon.edu/~llynch/grow.html
web archive: http://darkwing.uoregon.edu/~llynch/grow/