Categories R&S

L3 technologies – EIGRP – Path Selection

I will now have a look at EIGRP path selection.

For this I have extended our topology.

 

L3 technologies – EIGRP – Path Selection – Physical network diagram:

L3 technologies – EIGRP - Path Selection

 

L3 technologies – EIGRP – Path Selection – Feasibility Condition:

Here is the definition of the Feasibility condition:

If, for a destination, a neighbor router advertises a distance that is strictly lower than our feasible distance, then this neighbor lies on a loop-free route to this destination. »

This condition must be met in order to consider load balancing.

 

L3 technologies – EIGRP – Path Selection – EIGRP Metrics:

EIGRP uses these formula to determine the total metric to the network:

metric = ([K1 * bandwidth + (K2 * bandwidth) / (256 – load) + K3 * delay] * [K5 / (reliability + K4)]) * 256

Default values are the following:

K1 = 1

K2 = 0

K3 = 1

K4 = 0

K5 = 0

Routing Protocol is "eigrp 10"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Default networks flagged in outgoing updates
  Default networks accepted from incoming updates
  EIGRP-IPv4 Protocol for AS(10)
    Metric weight K1=1, K2=0, K3=1, K4=0, K5=0

 

The EIGRP Wide Metrics feature supports 64-bit metric calculations.

It can only be used with EIGRP named mode.

Link to the Cisco documentation about it:Cisco EIGRP wild metric

Those wide metrics have been introduced to scale correctly for high-bandwidth interfaces or Ethernet channels.

 

The metric weights can be changed using the following command.

R1(config)#router eigrp 10
R1(config-router)#metric weights 0 ?
    K1
R1(config-router)#metric weights 0 2 0 2 0 0

R1#sh ip protocols
SNIP
Routing Protocol is "eigrp 10"
updates
  EIGRP-IPv4 Protocol for AS(10)
    Metric weight K1=2, K2=0, K3=2, K4=0, K5=0

 

Note that the K values must match between EIGRP neighbors. If it doesn’t match the adjacency is dropped and a log message is generated.

EIGRP-IPv4 10: Neighbor 10.10.1.3 (Ethernet0/0) is down: K-value mismatch

 

L3 technologies – EIGRP – Path Selection – Equal Cost Load Balancing:

 

EIGRP has the ability to load balance the traffic between different routes if they have an equal cost.

In our case, from R3, we can see the we have two routes to go the SW1 vlan 10. We can go via R1 or R2. The metric is the same.

R3#sh ip route 10.100.10.129
Routing entry for 10.100.10.128/25
  Known via "eigrp 10", distance 90, metric 307456, type internal
  Redistributing via eigrp 10
  Last update from 10.10.1.1 on Ethernet0/0, 00:00:05 ago
  Routing Descriptor Blocks:
  * 10.10.1.2, from 10.10.1.2, 00:00:05 ago, via Ethernet0/0
      Route metric is 307456, traffic share count is 1
      Total delay is 2010 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2
    10.10.1.1, from 10.10.1.1, 00:00:05 ago, via Ethernet0/0
      Route metric is 307456, traffic share count is 1
      Total delay is 2010 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2

 

R3#sh ip eigrp 10 topology 10.100.10.128 255.255.255.128
EIGRP-IPv4 Topology Entry for AS(10)/ID(192.168.1.3) for 10.100.10.128/25
  State is Passive, Query origin flag is 1, 2 Successor(s), FD is 307456
  Descriptor Blocks:
  10.10.1.1 (Ethernet0/0), from 10.10.1.1, Send flag is 0x0
      Composite metric is (307456/281856), route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 2010 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
  10.10.1.2 (Ethernet0/0), from 10.10.1.2, Send flag is 0x0
      Composite metric is (307456/281856), route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 2010 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2

 

By default EIGRP can put up to 4 routes of equal cost in the routing table to load balance.

 

L3 technologies – EIGRP – Path Selection – Unequal Cost Load Balancing:

EIGRP also have the capacity to load balance over unequal cost links.
The “variance n” command is used in order to instruct the router to include routes with a metric of less than n times the minimum metric route for that destination.

The path must matches the feasibility condition in order to be used for unequal load balancing.

 

By default, the variance value is 1 so only equal-cost paths are used.

 

We will perform unequal cost load balancing between R3 and SW1.

For testing purpose we will make sure that first the path via R1 is preferred.

 

This is the current state, the route to SW1 (10.100.10.1) is preferred via R1.

R3#sh ip route 10.100.10.1
Routing entry for 10.100.10.0/25
  Known via "eigrp 10", distance 90, metric 307456, type internal
  Redistributing via eigrp 10
  Last update from 10.10.1.1 on Ethernet0/0, 00:00:12 ago
  Routing Descriptor Blocks:
  * 10.10.1.1, from 10.10.1.1, 00:00:12 ago, via Ethernet0/0
      Route metric is 307456, traffic share count is 1
      Total delay is 2010 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2

 

In the EIGRP topology, we can see the route via R2, so this means this route match the feasibility condition.

R3#sh ip eigrp topology 10.100.10.0/25
EIGRP-IPv4 Topology Entry for AS(10)/ID(192.168.1.3) for 10.100.10.0/25
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 307200
  Descriptor Blocks:
  10.10.1.1 (Ethernet0/0), from 10.10.1.1, Send flag is 0x0
      Composite metric is (307456/281856), route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 2010 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
  10.10.1.2 (Ethernet0/0), from 10.10.1.2, Send flag is 0x0
      Composite metric is (310016/284416), route is Internal
      Vector metric:
        Minimum bandwidth is 10000 Kbit
        Total delay is 2110 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2

 

Now let’s apply the variance command:

R3(config-router)#variance 4

 

The route to 10.100.10.1 is now seen via R1 and R2.

R3#sh ip route 10.100.10.1
Routing entry for 10.100.10.0/25
  Known via "eigrp 10", distance 90, metric 307456, type internal
  Redistributing via eigrp 10
  Last update from 10.10.1.2 on Ethernet0/0, 00:01:03 ago
  Routing Descriptor Blocks:
    10.10.1.2, from 10.10.1.2, 00:01:03 ago, via Ethernet0/0
      Route metric is 310016, traffic share count is 119
      Total delay is 2110 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2
  * 10.10.1.1, from 10.10.1.1, 00:01:03 ago, via Ethernet0/0
      Route metric is 307456, traffic share count is 120
      Total delay is 2010 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2

 

Here the traffic share ratio is 120:119

 

To improve convergence, you can use the other feasible path into the routing table by using the variance but then just allow one link for traffic share.

I have run before a test when only the path via R1 was in the routing table.

If we bring down the link between R1 and SW1, we lost 8 pings (Success rate is 99 percent (1992/2000) from R3 to SW1.

 

Now with the variance, the path via R2 is already in the routing table but traffic goes only via R1.

R3(config-router)#variance 4
R3(config-router)#traffic-share min across-interfaces
R3#sh ip route 10.100.10.1
Routing entry for 10.100.10.0/25
  Known via "eigrp 10", distance 90, metric 307456, type internal
  Redistributing via eigrp 10
  Last update from 10.10.1.1 on Ethernet0/0, 00:00:04 ago
  Routing Descriptor Blocks:
    10.10.1.2, from 10.10.1.2, 00:00:04 ago, via Ethernet0/0
      Route metric is 310016, traffic share count is 0
      Total delay is 2110 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2
  * 10.10.1.1, from 10.10.1.1, 00:00:04 ago, via Ethernet0/0
      Route metric is 307456, traffic share count is 1
      Total delay is 2010 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2

 

Let’s do the same test.

We now have only 1 packet lost after bringing down the link between R1 and SW1.

From R3, Success rate is 99 percent (1999/2000).

 

So this technique is a real improvement for EIGRP convergence.

Here is a good post about OSPF unequal cost load balancing: http://blog.ine.com/2009/05/01/understanding-unequal-cost-load-balancing/

 

This will conclude this post about EIGRP path selection.

Stay tune for the last post on EIGRP.

Tomorrow I will have a look at EIGRP summarization and filtering.

 

 

Thank you for reading.

 

Have a look at my previous L3 technologies – EIGRP posts:

L3 technologies – EIGRP – Authentication

L3 technologies – EIGRP – Initialization

 

 

L3 technologies – EIGRP – Path Selection

 

Leave a Reply

Your email address will not be published.