ipcef per destination load balancing w/ unequal eigrp variance cmd

Answered Question
Jul 15th, 2009

Looking to do load balancing on a 2801.

I would like it to do per destination load balancing, not per packet. This is easy enough with cef as per destination is the defuault.

The question arises when I also want to run eigrp with unequal cost routes using the variance command. From what I read about load balancing with variance the load balancing method is not per destination but is more like per packet.

Which method would override the other if I had cef enabled for per destination lb and eigrp set up with a variance?

Correct Answer by Jon Marshall about 7 years 7 months ago

Adam

It's my understanding that CEF takes precedence. From Cisco doc on load balancing -

"When you work with CEF, you could ask: Who does the load balancing, CEF or the routing protocol used? The way in which CEF works is that CEF does the switching of the packet based on the routing table which is being populated by the routing protocols such as EIGRP. In short, CEF performs the load-balancing once the routing protocol table is calculated."

Full doc - http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008009437d.shtml

So from the above EIGRP will install the routes into the routing table based on your variance and then CEF determines whether to use per-packet or per-destination load balancing.

Jon

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
Loading.
Correct Answer
Jon Marshall Wed, 07/15/2009 - 10:45

Adam

It's my understanding that CEF takes precedence. From Cisco doc on load balancing -

"When you work with CEF, you could ask: Who does the load balancing, CEF or the routing protocol used? The way in which CEF works is that CEF does the switching of the packet based on the routing table which is being populated by the routing protocols such as EIGRP. In short, CEF performs the load-balancing once the routing protocol table is calculated."

Full doc - http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008009437d.shtml

So from the above EIGRP will install the routes into the routing table based on your variance and then CEF determines whether to use per-packet or per-destination load balancing.

Jon

Giuseppe Larosa Wed, 07/15/2009 - 12:22

Hello Adam,

there was another thread about this some mounths ago where Harold Ritter provided an explanation of how CEF can deal with EIGRP unequal load balancing.

Usually per destination CEF load balancing uses an exor of IP SA and IP DA with a seed hash that changes at each reload.

so with two links is enough the exor of last significant bits of IP SA and IP DA to decide out what link to send out the packet.

Same IP SA/DA same exit interface.

Then the variance concept comes to play: it associates a relative weight to each path (1 to 128).

Instead of having simply a list of physical paths, it should build a longer list where the two links appear n1 and n2 times so that the ratio of real metrics is respected with best path used more.

For supporting this CEF needs to use more bits instead of only the last one in the exor operation.

The real implementation can be different for efficiency reasons

Hope to help

Giuseppe

Istvan_Rabai Wed, 07/15/2009 - 10:58

Hi Adam,

Let's say you have 2 eigrp routes in the routing table to a destination with traffic share count of the following:

s1/0, traffic share count 2

s1/1, traffic share count 1

If you configure per destination load sharing on both serial interfaces the following happens:

1. Packets belonging to 2 different source-destination ip address pairs are sent through s1/0

2. Packets belonging to the next 1 (different) source-destination ip address pair is sent through s1/1

3. Packets belonging to the next 2 (different) source-destination ip address pair are sent through s1/0

4. Packets belonging to the next 1 (different) source-destination ip address pair is sent through s1/1

...etc.

The point: packets belonging to the same source-destination address pair are always transmitted over the same interface.

Per destination load sharing really means per source-destination ip address pair load sharing.

If you configure per packet load sharing on both serial interfaces the following happens:

1. 2 packets are sent through s1/0

2. 1 packet sent through s1/1

3. 2 packets are sent through s1/0

4. 1 packet is sent through s1/1

...etc.

In this case packets can belong to any flow or source-destination pair, it doesn't matter.

You can check the ip cef load sharing with the "show ip cef x.x.x.x internal" command, where x.x.x.x is the destination address.

EDIT:

In short, CEF takes precedence, as Jon says.

Cheers:

Istvan

Actions

This Discussion