On 11/5/07, Claudio Jeker <[EMAIL PROTECTED]> wrote: > > On Sun, Nov 04, 2007 at 11:30:20PM +0000, Tony Sarendal wrote: > > On 11/4/07, Tony Sarendal <[EMAIL PROTECTED]> wrote: > > > > > Thanks for all the info. I will have a look at this as well. Currently I > think it is possible that route-reflector is not bug free in cases where > you have route-reflector rings or other very complex setups. I only tested > the easy setups till now. Why you get routing loops and black-holes in > your 3 AS setups is not clear (at least for me) but I guess it may be an > issue with a failed update. I have the feeling that when we get a update > with a routing loop in it we should actually issue a withdraw for the > prefix carried in it so the following code in rde.c is looking suspicious: > /* aspath needs to be loop free nota bene this is not a hard error > */ > if (peer->conf.ebgp && !aspath_loopfree(asp->aspath, conf->as)) { > error = 0; > goto done; > } > > I'm mostly offline in the next days so maybe you beat me in finding a fix > for this. > --
RFC4271: Changing the attribute(s) of a route is accomplished by advertising a replacement route. The replacement route carries new (changed) attributes and has the same address prefix as the original route. That is the reason. When in my tests AS65200 looses direct connectivity with AS65100 it sees AS65300 as a viable path. It sends a WITHDRAW of the AS65100 prefix to AS65300 via the primary peering. On the standby peering no WITHDRAW is sent, instead AS65200 sends an UPDATE with it's new path. Since this update has AS65300 in the AS-PATH AS65300 will discard the update and just missed the fact that AS65200 doesn't have connectivity to AS65100. Handling an incoming UPDATE with a loop as a WITHDRAW, be it as-path, cluster-list or originator-id, sounds pretty good to me right now. I'll sleep on it and see how it feels tomorrow. As I said, I don't see anything here that violates RFC's, but I have never seen this before either. I will try to get the time to check out how IOS and IOS XR handle this. No point in re-inventing the wheel if they happen to have a round one. /Tony