EIGRP K Values Configuration

EIGRP is able to use the bandwidth, delay, load, reliability and MTU as input for its metric calculation. The metric is calculated using some weighting constants called the K values.

By default only bandwidth and delay are used for the metric calculation and Cisco recommends not to use load and reliability. The bandwidth and delay are both static values while load and reliability are dynamic, they change all the time.

For labs it might be useful to disable bandwidth as it simplifies the metric calculation. By default, EIGRP will use the lowest bandwidth in the path while the delays of all interfaces in the path are accumulated.

The formula to calculate the metric is quite complicated as I explained here. In this lesson we’ll take a look how we can configure these K values. This is the topology I will use:

R1 R2 FastEthernet

Let’s start by enabling EIGRP:

R1 & R2#
(config)#router eigrp 12
(config-router)#network 192.168.12.0

With the default configuration EIGRP will use these K values:

R1#show ip protocols | include K   
  EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0

K1 and K3 are set to one, with these two enabled the routers will include bandwidth and delay in the metric calculation. Let’s change the K values so that our router will only use K3:

R1(config)#router eigrp 12
R1(config-router)#metric weights ? 
  <0-8>  Type Of Service (Only TOS 0 supported)

We use the metric weights command to change the K values. The first value is for the TOS byte but as you can see it only supports a value of 0. The next values are for the actual K values:

R1(config-router)#metric weights 0 ?
  <0-255>  K1

This one is for K1, let’s set it to zero. If you increase the weight here then bandwidth will be more of an influence for the metric calculation. Let’s continue:

R1(config-router)#metric weights 0 0 ?
  <0-255>  K2

K2 is disabled by default so let’s keep it that way:

R1(config-router)#metric weights 0 0 0 ?
  <0-255>  K3

K3 is enabled by default, let’s keep it enabled:

R1(config-router)#metric weights 0 0 0 1 ?
  <0-255>  K4

K4 is also disabled by default, let’s keep it disabled. Last but not least is K5:

R1(config-router)#metric weights 0 0 0 1 0 ?
  <0-255>  K5

This one refers to the MTU which isn’t really used in the metric calculation. Our final command will be:

R1(config-router)#metric weights 0 0 0 1 0 0

As soon as you change the weight values you will see this on your console:

R1#
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.2 (FastEthernet0/0) is down: metric changed
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.2 (FastEthernet0/0) is down: K-value mismatch
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 12: Neighbor 192.168.12.2 (FastEthernet0/0) is down: Interface Goodbye received

The EIGRP neighbor adjacency is resetted since the K values changed. R2 is still using the default setting so you will get a notification about the K values mismatch. Let’s configure R2 as well:

R2(config)#router eigrp 12
R2(config-router)#metric weights 0 0 0 1 0 0

That’s it, our routers will become EIGRP neighbors again:

R1#show ip eigrp neighbors 
IP-EIGRP neighbors for process 12
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.12.2            Fa0/0             13 00:10:36   75   450  0  6
R1#show ip protocols | include K
  EIGRP metric weight K1=0, K2=0, K3=1, K4=0, K5=0

 

Table of Content

Unit 1: Introduction to EIGRP

Unit 2: EIGRP Neighbor Adjacency

Unit 3: EIGRP Filtering

Unit 4: EIGRP Advanced Features