Re: Links on the blink - what will/should mci & sprint do?
[Sorry for being late in responding, I've been on vacation...] Let me start by pointing out that the global problem here is to maintain and grow a routing infrastructure at exponential rates and at "interesting" flap rates. Using a level 2 switching infrastructure as a means of bandwidth control is clearly not a comprehensive solution as it does not provide the necessary level 3 routing [hopefully this is trivially obvious to anyone reading this, but...]. Is a level 2 infrastructure a cost effective means of doing bandwidth control? Possibly, but the exact economics vary widely depending on the level of intra-POP bandwidth necessary and the prices that each ISP is able to obtain. Using a level 2 architecture clearly does nothing to avoid the "brick wall". This becomes quite clear as we can easily demonstrate brick wall phenomena at any interconnect, regardless of the router (or make of router) and the fabric behind it. The question then focuses on the maintainability of the routing infrastructure. We know that we have two limits: perfectly stable routing, and completely unstable routing. Neither is interesting. Perfectly stable routing is simply utopian thinking. Completely unstable routing is unusable even given arbitrarily fast technology. In between, we have an enormous gray area, with no good way to quantify it: routes that flap, and packets that interact with that flap. Clearly if a route flap does not affect any packets, that should not perturb the infrastructure. [We're pleased to say that extensive testing of a 7000 and 7500 points out that in fact, it doesn't. ;-)] For the sake of brevity, let's call this "uninteresting flap." What then is the response of the routing system to intesting flap? We can start by characterizing the flap by T_{down}, the period of time that a route is withdrawn, measured from the "down edge" of the withdrawl of the route to the "up edge" of the installation of the replacement. Subsequent to the "up edge", we have a further T_{recover}, which is the time that it takes for the infrastructure to forward at peak rate again. Using this, we can begin to characterize the behaviors that we'd like. Clearly, during T_{down}, we have a problem: we have no route and (as the interesting part of the problem is in the default-free portion of the net), we have no other shorter prefix for it. One can then either drop packets or forward them along the old route anyhow. The Internet philosophy has always been to drop packets as quickly as possible, as close to the source as possible. The alternative is to forward the packet anyhow, hoping that the packet is not forwarded into a sustained forwarding loop. As the routing protocols aren't truly architected to protect against such a forwarding loop, the latter behavior seems risky. The implication is that during T_{down}, the infrastucture will drop packets from all sources to the destination. Next, consider T_{recover}. As no one has invented FTL hardware (yet ;-), T_{recover} is non-zero on all interesting architectures that I know of. Further, during T_{recover}, packet loss should also be expected. This includes the case of a router which fully distributes the routing table, as the distribution itself takes finite time. What then are interesting values for T_{recover}? Clearly, \infinity is unacceptable. If T_{recover} << T_{down}, it hardly seems relevant. What then is an acceptable upper bound? And what is the sensitivity of this value? I leave this as an open question for discussion... Selective packet discard (a new method we're putting in for prioritizing routing protocol packets over transit packets) will insure that T_{recover} is finite, and based on our lab tests, what I consider to be acceptable. I should note in fairness that credit for driving selective discard should be given to both Sprint and ANS. The former for demonstrating the need in the real world, the latter for focusing cisco's management on the subject. I'd also like to correct some misperceptions that have been distributed: - Distributing the full routing table is not the only way to achieve acceptable response to interesting flap. If someone has a technical argument suggesting that this is the only true way, then we have missed hearing it, and we'd really apprecaite it if you could tell us again. In detail. - Distributing the full routing table to the SSE is not a logical way to proceed. For both obvious and non-obvious reasons, spending significant resources developing software for the 7000 at this point makes little sense, and without some convincing argument that it would move T_{recover} from the unacceptable to the acceptable, is beyond the bounds of rationality. - The interesting flap rate introduced by end users can be controlled by deployment of CIDR. I trust no one on this list remains to be convinced. - Certain statements about communications of problems to cisco mentioned in this forum have been patently incorrect. Sending a mail message to your favorite engineer saying "when will you do XYZ" is not a reasonable way to insure that you're mission critical business feature is being implemented. Still, if you believe you've attempted to communicate with us and you don't think we got the message, then we can only ask that you have patience, increase your retry count, and retransmit. We can't neccessarily do what you might like, but we can hear you and acknowledge your concerns. Finally, I'd like to echo what Dennis said: we're all behind the eight ball, and we all know it. Recriminations are much less interesting than solutions. What should MCI & Sprint do? Well, let's just say that we've privately offered them our opinions, and they don't seem to object too strenuously. Assuming that things actually go that way, well, "You ain't seen nothing yet, baby." Tony p.s. I'm not on the mailing list, so please cc me if you wish me to respond.
This is not a critique at Tony's points, but there is one dangerous thought: On Mon, 27 Nov 1995, Tony Li wrote:
[Sorry for being late in responding, I've been on vacation...]
Let me start by pointing out that the global problem here is to
... stuff deleted
Using this, we can begin to characterize the behaviors that we'd like. Clearly, during T_{down}, we have a problem: we have no route and (as the interesting part of the problem is in the default-free portion of the net), we have no other shorter prefix for it. One can then either drop packets or forward them along the old route anyhow. The Internet philosophy has always been to drop packets as quickly as possible, as close to the source as possible. The alternative is to forward the packet anyhow, hoping that the packet is not forwarded into a sustained forwarding loop. As the routing protocols aren't truly
well, this is not really an alternative, I would say. It will certainly go into a routing loop for the first some packets until a sink route (if implemented at all) takes over: talk about potentially a whole T1 bandwidth go for max ttl: that's a blackout fo reverything else. I would realy not argument here with hopes, but with sanity, and not flood meetpoints or distant distribution POPs with packets. The stratey to drop as near to the source as possible should be made a must in all implementations. I would even say, nobody may forward otherwise, since I would not like to have a ring full of trashing packets when a customer goes down.
architected to protect against such a forwarding loop, the latter
the loop will occur at least for a transition time until a sink route takes effect (like loopback pullup or else). Mike
behavior seems risky. The implication is that during T_{down}, the infrastucture will drop packets from all sources to the destination.
Next, consider T_{recover}. As no one has invented FTL hardware (yet ;-), T_{recover} is non-zero on all interesting architectures that I know of. Further, during T_{recover}, packet loss should also be expected. This includes the case of a router which fully distributes the routing table, as the distribution itself takes finite time. What then are interesting values for T_{recover}? Clearly, \infinity is unacceptable. If T_{recover} << T_{down}, it hardly seems relevant. What then is an acceptable upper bound? And what is the sensitivity of this value? I leave this as an open question for discussion...
Selective packet discard (a new method we're putting in for prioritizing routing protocol packets over transit packets) will insure that T_{recover} is finite, and based on our lab tests, what I consider to be acceptable. I should note in fairness that credit for driving selective discard should be given to both Sprint and ANS. The former for demonstrating the need in the real world, the latter for focusing cisco's management on the subject.
I'd also like to correct some misperceptions that have been distributed:
- Distributing the full routing table is not the only way to achieve acceptable response to interesting flap. If someone has a technical argument suggesting that this is the only true way, then we have missed hearing it, and we'd really apprecaite it if you could tell us again. In detail.
- Distributing the full routing table to the SSE is not a logical way to proceed. For both obvious and non-obvious reasons, spending significant resources developing software for the 7000 at this point makes little sense, and without some convincing argument that it would move T_{recover} from the unacceptable to the acceptable, is beyond the bounds of rationality.
- The interesting flap rate introduced by end users can be controlled by deployment of CIDR. I trust no one on this list remains to be convinced.
- Certain statements about communications of problems to cisco mentioned in this forum have been patently incorrect. Sending a mail message to your favorite engineer saying "when will you do XYZ" is not a reasonable way to insure that you're mission critical business feature is being implemented. Still, if you believe you've attempted to communicate with us and you don't think we got the message, then we can only ask that you have patience, increase your retry count, and retransmit. We can't neccessarily do what you might like, but we can hear you and acknowledge your concerns.
Finally, I'd like to echo what Dennis said: we're all behind the eight ball, and we all know it. Recriminations are much less interesting than solutions. What should MCI & Sprint do? Well, let's just say that we've privately offered them our opinions, and they don't seem to object too strenuously. Assuming that things actually go that way, well, "You ain't seen nothing yet, baby."
Tony
p.s. I'm not on the mailing list, so please cc me if you wish me to respond.
---------------------------------------------------------- IDT Michael F. Nittmann --------- Senior Network Architect \ / (201) 928 1000 xt 500 ------- (201) 928 1888 FAX \ / mn@ios.com --- V IOS
Mike, If we were to seriously adopt the strategy of forwarding even when the destination appears down, it would be necessary to support this in the routing protocols to insure loop avoidance. This is not out of the realm of theoretical possibility. However, we're NOT there today. Tony
On Mon, 27 Nov 1995, Tony Li wrote:
Mike,
If we were to seriously adopt the strategy of forwarding even when the destination appears down, it would be necessary to support this in the routing protocols to insure loop avoidance. This is not out of the realm of theoretical possibility. However, we're NOT there today.
I hope we never get there. Mike
Tony
---------------------------------------------------------- IDT Michael F. Nittmann --------- Senior Network Architect \ / (201) 928 1000 xt 500 ------- (201) 928 1888 FAX \ / mn@ios.com --- V IOS
cookreport.com? you're kidding, right? that's right up there with batmanforever.com in its wholesale wastage of .COM symbol table space. i rant. anyway:
If we were to seriously adopt the strategy of forwarding even when the destination appears down, it would be necessary to support this in the routing protocols to insure loop avoidance. This is not out of the realm of theoretical possibility. However, we're NOT there today.
the only reason this would be of value is if we think we're having a flap and that this destination will in the near future be reachable over the old path. to the extent that this "flappage assumption" is valid, we ought to solve it with more and better flap dampening, or extended holddowns, or something else at the routing protocol layer. right now bgp's route withdrawal is implemented without any timer since that's what the spec says to do. given the number of false withdrawals i think we can declare that the protocol spec did not anticipate the diameter of the net in 1995 or the average intelligence of NSP operators in 1995. therefore let us retire to IDRP where we can take appropriate steps to make sure that "BGP 5" (ne IDRP) takes our operational experience into account. but please let's stop arguing about it on NANOG.
In message <199511271834.KAA00275@greatdane.cisco.com>, Tony Li writes:
Mike,
If we were to seriously adopt the strategy of forwarding even when the destination appears down, it would be necessary to support this in the routing protocols to insure loop avoidance. This is not out of the realm of theoretical possibility. However, we're NOT there today.
Tony
Good thing too. Sounds like one of the worst ideas you've had in a very long time. Curtis
If we were to seriously adopt the strategy of forwarding even when the destination appears down, it would be necessary to support this in the routing protocols to insure loop avoidance. This is not out of the realm of theoretical possibility. However, we're NOT there today.
Good thing too. Sounds like one of the worst ideas you've had in a very long time. Thank you, I'm honored. Just in case anyone else is equally confused, I certainly don't advocate that as a solution. It is, however, certainly one point in the solution space. Tony
participants (4)
-
Curtis Villamizar
-
Mike
-
Paul A Vixie
-
Tony Li