nanog mailing list archives
Re: Load balancing in routers
From: Tony Tauber <ttauber () genuity net>
Date: Mon, 8 Apr 2002 14:03:17 -0400 (EDT)
On Mon, 8 Apr 2002, Chris Woodfield wrote:
If by "round-robin" you mean by destination only, then this is correct.
The term "round-robin" refers to a schedule which cycles through some number of things in a fixed order. A packet arrives and the router makes a forwarding decision. The things that it can cycle through are entries in a forwarding table. Those entries can be either physical paths (ie. one packet goes over this link, next packet over the next and so forth). Call that "per-packet load-sharing" The entries could be cached destinations. Call that "per-destination load-sharing" The entries could be based on source/destination pairs. Call that "flow-based" or "src/dst-based". The entries could be based on the whole "5-tuple" of source and destination address, IP protocol, source and destination port numbers (and ToS value)? Call that "full-flow". Now, how effective any of these schemes are at sharing load at a bit level (how links operate) vs. packet level (how forwarding decisions are made) has been the subject of debate for some time.
However, if you [mean] strict per-packet load sharing regardless of flow, then CEF does have this capability, although the default behavior is the flow-based load sharing you describe. http://www.cisco.com/univercd/cc/td/doc/product/software/ios120/12cgcr/switch_c/xcprt2/xccefc.htm#33184 However, IIRC, code stability issues have plagued this feature in many IOS releases; I recall Intermedia selling a "bonded T1" product that used this feature, and supporting it was...not pleasant. -C
I'm not sure about stability, I think it's been stable. However, there's a fundamental issue with the GSR architecture which affects it's applicability there. On the GSR, forwarding decisions are made on ingress to the router; but, per-packet is configured on the outbound interface. The ingress interface has no way to keep track of which outbound interface a packet was last sent to; that would require some kind of counter. I believe, some kind of workaround may have been coded for this problem recently, but it might have significant performance impact and/or negate other "extended" feature sets. Tony
We used CEF in 11.x and it behaved the same way. It was never round-robin in any way we could observe.
Current thread:
- Re: packet reordering at exchange points, (continued)
- Re: packet reordering at exchange points Stephen Sprunk (Apr 10)
- Re: packet reordering at exchange points Paul Vixie (Apr 10)
- RE: packet reordering at exchange points Jim Forster (Apr 10)
- Re: packet reordering at exchange points Craig Partridge (Apr 11)
- Re: packet reordering at exchange points Jesper Skriver (Apr 09)
- Re: packet reordering at exchange points Stephen Sprunk (Apr 08)
- Re: packet reordering at exchange points Iljitsch van Beijnum (Apr 09)
- Re: packet reordering at exchange points Valdis . Kletnieks (Apr 08)
- Re: packet reordering at exchange points Jesper Skriver (Apr 08)
- Re: Load balancing in routers Chris Woodfield (Apr 08)
- Re: Load balancing in routers Tony Tauber (Apr 08)