EIGRP uses different K values to determine the best path to each destination:
- K1
- K2
- K3
- K4
- K5
These K values are only numbers to scale numbers in the metric calculation. The formula we use for the metric calculation looks like this:
If K5 is not equal to 0:
If you look at the formula, you can see that the bandwidth, load, delay, and reliability influence the metric. We can see what K values are enabled or disabled by default:
Router#show ip protocols
Routing Protocol is "eigrp 1"
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 metric weight K1=1, K2=0, K3=1, K4=0, K5=0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: eigrp 1
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
1.1.1.0/24
192.168.12.0
Routing Information Sources:
Gateway Distance Last Update
192.168.12.2 90 00:14:30
Distance: internal 90 external 170
In this example where I used the show ip protocols
command, you can see which K-values are enabled by default. Only K1 and K3 are enabled by default.
Let’s walk through the different metric components to see what they are:
Bandwidth:
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
If you use the show interface FastEthernet 0/0 command you can see the interface information. The example above only shows part of the output. You can see the bandwidth is 100000 Kbit which is a 100Mbit interface. We can change the bandwidth of an interface:
Router(config)#interface fa0/0
Router(config-if)#bandwidth ?
<1-10000000> Bandwidth in kilobits
inherit Specify that bandwidth is inherited
receive Specify receive-side bandwidth
Router(config-if)#bandwidth 500
Bandwidth is a static value which can be changed by using the bandwidth command. Keep in mind this doesn’t change the actual bandwidth of the interface! This command is ONLY used to influence routing protocols like EIGRP. It’s not like you can slow down electric signals through a wire…if you want to limit the traffic on an interface you’ll need QoS (Quality of Service) which is a story for another day!
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 500 Kbit, DLY 100 usec,
Here you see the result of changing the bandwidth on the interface. Something to remember is that EIGRP will use the lowest bandwidth in the path from A to B (since this is the bottleneck).
Load:
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 500 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
The load will show you how busy the interface is based on the packet rate and the bandwidth on the interface. This is a value that can change over time so it’s a dynamic value.
Delay:
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 500 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
Delay reflects the time it will take for packets to cross the link and is a static value. Cisco IOS will have default delay values for the different types of interface. A FastEthernet interface has a default delay of 100 usec.
Router(config)#interface fa0/0
Router(config-if)#delay ?
<1-16777215> Throughput delay (tens of microseconds)
Router(config-if)#delay 50
If you use the delay command you can change this value to influence routing protocols like EIGRP. It doesn’t actually change the delay for this interface but it is only used to influence routing protocols.
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 500 Kbit, DLY 500 usec,
Above you see the delay that I changed. EIGRP will accumulate all the delay values in the path from A to B.
Reliability:
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 500 Kbit, DLY 500 usec,
reliability 255/255, txload 1/255, rxload 1/255
Reliability at 255/255 is 100%. This means that you don’t have issues on the physical or data-link layer. If you are having issues this value will decrease. Since this is something that can change it’s a dynamic value.
MTU:
Router#show interfaces fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is AmdFE, address is cc02.58a9.0000 (bia cc02.58a9.0000)
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 500 Kbit, DLY 500 usec,
reliability 255/255, txload 1/255, rxload 1/255
MTU or Maximum Transmission Unit is being exchanged between EIGRP neighbors but not used for the metric calculation.
By default, only K1 and K3 are enabled and we don’t use K2 or K4. This means that only bandwidth and delay are used in the formula.
Why not? Because loading and reliability are dynamic values and they can change over time. You don’t want your EIGRP routers calculating 24/7 and sending updates to each other just because the load or reliability of an interface has changed. We want routing protocols to be nice and quiet and only base their routing decisions on static values like bandwidth and delay. If you only use those two static values our EIGRP routers don’t have to do any recalculation unless an interface goes down or a router died.
Since only K1 and K3 are enabled we can simplify the EIGRP formula:
- Bandwidth: [107 / minimum bandwidth in the path] * 256.
- Delay: sums of delays in the path multiplied by 256 (in tens of microseconds).
So the formula looks like:
The multiplication of 256 is done so EIGRP is compatible with IGRP (the predecessor of EIGRP).
Let me show you an example so we can break down this formula:
... Continue reading in our forum
Hello Quinton
The feasible distance is the overall metric of the best route to a specific destination from the point of view of a particular router.
Take a look at this Cisco documentation that explains feasible distance, reported distance and feasible successor quite well. You may find it useful.
https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/16406-eigrp-toc.html#anc7
I hope this has been helpful!
Laz
Nice explanation Lazaros thank you very much.
@ReneMolenaar
It looks like the formatting on the first 2 code boxes of this lesson are misaligned.
-Bartley
Thanks Laz - just knowing that it doesn’t really relate to anything specific is good.