nanog mailing list archives

Re: question about traffic eng/ Cisco CEF.


From: Lincoln Dale <ltd () interlink com au>
Date: Wed, 09 Aug 2000 00:50:50 -0400


At 16:47 08/08/00, Jaideep Chandrashekar wrote:
When I enable cef and set it to share load on a per destination mode, for
some reason, all the traffic to a destination takes a single route
.. though the route table shows two equal cost paths.

CEF (by default) will load-balance based on a hash of the src/dst ip-addresses for a flow ("per-destination load balancing").

this means that a single ip flow will always take the same [pre-determined] path. (actually, strictly speaking, it'll always take the path that is reflected by the hash index).

this is generally considered to be 'a good thing<tm>' as it help avoid out-of-order packets and the like. due to the fact that a link typically has hundreds/thousands/millions of flows/sec across it, you will find that the load-balancing is very even under normal [internet] traffic loads.

you can make CEF perform "per packet" load-balancing using the interface command "ip load-sharing per-packet".

Also ... is there any way to clear the routing table so that when a new
link comes up, (and a new route is added to a list of equal cost
paths)  all the connections are again redistributed across the
links. Couldn't seem to be able to make existing connections switch
paths. With fast switching ... was able to do this by flushing the
routecache .. but cef doesn't use a cache (says the documentation)....

if you use per-packet load balancing this will occur automatically (without any requirement to clear the route-cache).

for per-destination load balancing, this will also occur, but with 'some' of the flows picking the new path if the hashing determines it that way.

under normal 'internet' traffic-patterns, you can happily keep load-balancing at per-destination. only if your traffic patterns are such that you have a small number of long-duration flows does per-packet load-balancing become necessary.


cheers,

lincoln.




Current thread: