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.