EIGRP Unequal Cost Load Balancing

Hello Diessi

If you have unequal EIGRP load balancing across three Ethernet links, and you are using CEF, the default behaviour is to load balance based on destination. This will indeed function, but it is not always the best choice.

Let’s say you have load balancing on these three links with a ratio of 3:2:1. Let’s say you have 60 destinations being routed in a particular period of time. You will have 30 destinations going through one route, 20 going through another and 10 through the third regardless of what the actual traffic for each destination eventually becomes. Once each destination IP is encountered by the router for the first time, it will be routed based on this load balancing algorithm. This is how CEF functions by default. The more destinations there are, the more efficient this process is. You can also see that this is not very effective for traffic with very few destination IP addresses such as two or three.

You can of course modify this default behaviour of CEF by implementing per-packet load balancing as you suggested as well.

1 Like

Hi Rene,

I didn’t understand why the Topology table makes those decisions.
I followed until the point where both the Feasible Successor with a metric * variance > FD and the Successor makes it into the Routing Table.
Why is it then the Topology tables work to loadbalance?

I thought that the metric which is installed as the actual metric of that route into the Routing.
From there the proportional Loadbalancing happens.

Best regards,
Marcel

Hello Marcel

All routes learned via EIGRP are contained within the topology table, whether they are actively being used (in the routing table) or not. These routes are examined by EIGRP and only the route with the best metric is placed within the routing table. The rest of the routes still exist in the topology table however.

So, the routing table will only have a single route to a particular destination by default (unless two routes have an equal metric of course). In order to determine if a route can be used for unequal load balancing, the variance value is used and the calculation as described above is implemented on the metrics found in all routes within the topology table. If the metric of the route fulfills the metric * variance > FD condition, then it is then installed in the routing table as well, as a secondary, unequally load balanced route.

So the topology table is used in this whole evaluation of routes because it is there that all the available routes and their metrics are found.

I hope this has been helpful!

Laz

1 Like

Isn’t it less than or equal to the cost ?

" This configuration increases the minimum metric to 40 (2 * 20 = 40). EIGRP includes all routes that have a metric of less than or equal to 40 and satisfy the feasibility condition. In the configuration in this section, EIGRP now uses two paths to get to Network X, E-C-A and E-B-A, because both paths have a metric of under 40. EIGRP does not use path E-D-A because that path has a metric of 45, which is not less than the value of the minimum metric of 40, because of the variance configuration. Also, the reported distance of neighbor D is 25, which is greater than the feasible distance (FD) of 20 through C. This means that, even if variance is set to 3, the E-D-A path is not selected for load balancing because Router D is not a feasible " https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/13677-19.html

Hello Shashank

I was doing some more research to find out if it is actually “less than” or “less than or equal to” the cost. I found that the Cisco IOS command reference for variance states that it must be “less than”. However, the documentation you linked to shows “less than or equal to”. So i decided to lab it up.

I created two paths to destination 10.10.10.0/24 and using the “bandwidth” command on one of the interfaces, adjusted it so that the metric of one path was exactly twice that of the other. You can see this in the topology table below:
image

Note that via one path, the metric is 131072 and via the other, the metric is 262144 which is exactly double. Looking at the routing table, only the best route is installed. Next I issued a variance of 2 on the EIGRP configuration, and looked at the routing table:
image

I found that both routes were installed.

So it is indeed “less than or equal to”. I will let @ReneMolenaar know to clarify this in the lesson.

I hope this has been helpful!

Laz

Thanks for the clarification!

It’s all over the place with documentation, I was hoping to lab it too… haven’t had a chance yet, so thanks for that!

1 Like

@shashank.mohan89 Thanks for sharing this, it’s indeed less or equal. And @lagapidis, thanks for labbing this up :+1: I just fixed it :slight_smile:

Rene

2 Likes

@ReneMolenaar no probs, happy to pitch in!

1 Like

Hi Guys,

Do you have any lessons on EIGRP Equal load-balancing? It’s listed in the Blueprint for ENARSI and CCIE Enterprise Infrastructure 1.0

image

image

Hello Joseph

You are correct in that there is no specific lesson that covers equal cost load balancing for EIGRP. However, within the content of the following lessons, the concept is covered to a certain extent:

Having said that, it may be worth creating a separate lesson specifically on this topic. I will pass your suggestion on to Rene…

Thanks for your suggestions!

Laz

Ok thanks very much Laz

Hi @joseph,

Since it’s on the blueprint, I’ll create a separate item for this.

When EIGRP has two routes that have the exact same metric, it’ll use both. When they are unequal, we could still make them equal with some manipulation so that might be interesting to look at.

Rene

Excellent, Thanks Rene

Q-Even if we configure the unequal cost load balancing in EIGRP by using the variance , Still the actual traffic sharing proportion is based on CEF …Right ??..

Does CEF count the EIGRP share count into calculation when it does the actual switching the traffic ?

@lagapidis in your above answer you wrote something like interface type relation with CEF load balancing algorithm ,May i know what is the relation between interfaces type and load balancing algorithm ?..i did not understand …

Hello Narad

EIGRP, as a routing protocol, is responsible for determining the best next-hop IP addresses for particular destinations and placing those addresses as entries in the routing table. EIGRP’s load balancing capabilities simply allow it to place two or more entries in the routing table based on equal or unequal load balancing configurations (varience etc…). Strictly speaking, EIGRP’s role is to create the routing table.

CEF is the forwarding process that is used to act upon the existing routing table in a router. It takes the information there and uses various algorithms to efficiently forward packets as they arrive. One of its responsibilities is indeed to determine the method of load balancing. By default, CEF uses per-destination load balancing, but it can also be configured to use per-packet load balancing.

The point here is that EIGRP’s responsibility is to create the routing table, and CEF’s responsibility as a packet-switching technology, is to apply the routing table in the most efficient way, including any load balancing that may arise from it.

Yes it does. It takes into account the variance so that the right proportion of packets is sent over the right link. More info on CEF can be found here:

Yes. The type of physical interface used in each routing option may affect the way that CEF does load balancing. As stated in the above link by Cisco:

In order to utilize all the parallel paths in CEF and load balance the traffic, you must enable per-packet load balancing when you have different physical interfaces like serial and tunnel. So, on the basis of the configuration and topology (serial or tunnel), load sharing can fail to work correctly with the default CEF load balancing mode.

I hope this has been helpful!

Laz

1 Like

@lagapidis

i could not understand these(BOLD) lines exactly "When the interfaces through which the paths are of the same type, the hash algorithm determines the path to be chosen. When the load sharing interfaces are of different types, such as a serial port and an Ethernet port, CEF chooses a single path .

However, if you are using interfaces of different types, using per-packet load sharing with CEF will allow load balancing to function correctly."

Do u mean that , The load balancing will not work if we have ECLB and we have 2 different type of interface like Seriel and Ethernet , ?..Lets say i have per destination load balancing , in this case if i have 2 different type of interface like Seriel and Ethernet , will not it work ?

Hello Narad

In a case where you have two different types of interfaces, the default per-destination load balancing will not work. Indeed, the Cisco documentation that I shared in my post above states that:

CEF takes the single path in cases when load sharing is done simultaneously on interfaces of different physical types, such as serial and tunnel. The hash algorithm determines the path to be chosen. In order to utilize all the parallel paths in CEF and load balance the traffic, you must enable per-packet load balancing when you have different physical interfaces like serial and tunnel. So, on the basis of the configuration and topology (serial or tunnel), load sharing can fail to work correctly with the default CEF load balancing mode.

I hope this has been helpful!

Laz

Hi All,
I just want to clarify that what can traffic−share min across−interfaces and traffic-shared balance do.

FYI, i did a test and seems “traffic-shared balance” is enabled default for equal cost load balance

Hello Heng

These commands are used to further refine the EIGRP load balancing behavior. When the variance command is used, by default, the traffic-share balanced feature is active. In this case, the router distributes traffic proportionately to the ratios of the metrics that are associated with the different routes.

For example, if an EIGRP router is configured with the variance command, and has two routes to the 1.1.1.0/24 network with metrics of 5 and 15, for example, then the traffic-share balanced command will cause the traffic to be distributed with a ratio of 15:5 or 3:1 across the two possible paths. Remember, the metric is used to determine the ratio for the traffic distribution and not the variance value.

The traffic-share min command causes the traffic to be sent only across the minimum cost path, even if there are multiple paths installed in the routing table. If there is more than one path with an identical minimum cost, load balancing will take place. Now, this is identical to the forwarding behavior without the use of the variance feature. So why is it useful? Because if you use the traffic-share min command and the variance command, all feasible routes get installed into the routing table, which decreases convergence times in the event that there is a failure in the minimum cost path.

Finally, the traffic-share min across-interfaces command further refines this. If more than one route has the same metric, then the router chooses routes with different outgoing interfaces for better balancing.

More information about these commands and features can be found here:

I hope this has been helpful!

Laz

Hey Rene and team,
To tbe cler, what exactly does it mean " traffic will be shared in a 5:1" I understood it like the traffic would be flowing from both routes? Does it make sense what I said?