The subtlety of defining EIGRP Feasible Distance

EIGRP is a distance vector routing protocol originally developed by Cisco. One of the key differences from its predecessor, IGRP, is the use of DUAL, an algorithm that eliminates persistent routing loops in the topology. However, finding the correct definition of one of the main DUAL parameters, feasible distance (FD), is sometimes a difficult task. Let's refer to the definition on the official website :





“Feasible distance is the best metric along a path to a destination network, including the metric to the neighbor advertising that path.“





Translation: feasible distance is the best metric value to the destination network, including the metric value to the neighbor who advertises the corresponding route.





This definition is true for most cases, but, unfortunately, not for all. Despite the fact that the correct definition can be found on the Internet, let's try to find out what exactly is wrong with the definition above. Below is a lab diagram:





A corresponding loopback is configured on each of the routers (for example, on R1 - with the address 1.1.1.1/32). The network obviously uses EIGRP as the routing protocol without any fancy configuration:





R3#sho run | section router eigrp
router eigrp 1
 network 0.0.0.0
      
      



Within the framework of this article, the main interest is the route to 3.3.3.3/32 from the point of view of R1:





R1#deb eigrp fsm
EIGRP Finite State Machine debugging is on

R1#sho ip eigrp topology 3.3.3.3/32
EIGRP-IPv4 Topology Entry for AS(1)/ID(1.1.1.1) for 3.3.3.3/32
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 158720
  Descriptor Blocks:
  192.168.12.2 (FastEthernet0/0), from 192.168.12.2, Send flag is 0x0
      Composite metric is (158720/156160), route is Internal
      Vector metric:
        Minimum bandwidth is 100000 Kbit
        Total delay is 5200 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
        Originating router is 3.3.3.3
      
      



2 EIGRP: . . R2 R3:





R2(config-if)#delay 100
      
      



, R1 3.3.3.3/32 Active:





R1#
*Mar  2 20:17:07.655: EIGRP-IPv4(1): rcvupdate: 3.3.3.3/32 via 192.168.12.2 metric 181760/179200 on tid 0
*Mar  2 20:17:07.659: EIGRP-IPv4(1): Find FS for dest 3.3.3.3/32. FD is 158720, RD is 158720 on tid 0
*Mar  2 20:17:07.659: EIGRP-IPv4(1): 	192.168.12.2 metric 181760/179200 not found Dmin is 181760
*Mar  2 20:17:07.659: DUAL: AS(1) Peer total 1 stub 0 template 1 for tid 0
*Mar  2 20:17:07.659: DUAL: AS(1) Dest 3.3.3.3/32 entering active state for tid 0.
*Mar  2 20:17:07.659: EIGRP-IPv4(1): Set reply-status table. Count is 1.
*Mar  2 20:17:07.659: EIGRP-IPv4(1): Not doing split horizon
*Mar  2 20:17:07.759: EIGRP-IPv4(1): rcvreply: 3.3.3.3/32 via 192.168.12.2 metric 181760/179200 for tid 0
*Mar  2 20:17:07.759: EIGRP-IPv4(1): reply count is 1
*Mar  2 20:17:07.759: DUAL: AS(1) Clearing handle 0, count now 0
*Mar  2 20:17:07.759: DUAL: AS(1) Freeing reply status table
*Mar  2 20:17:07.759: EIGRP-IPv4(1): Find FS for dest 3.3.3.3/32. FD is 72057594037927935, RD is 181760 on tid 0 found
*Mar  2 20:17:07.759: DUAL: AS(1) RT installed 3.3.3.3/32 via 192.168.12.2
      
      



FD – 3.3.3.3/32:





R1#sho ip eigrp topology 3.3.3.3/32
EIGRP-IPv4 Topology Entry for AS(1)/ID(1.1.1.1) for 3.3.3.3/32
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 181760
  Descriptor Blocks:
  192.168.12.2 (FastEthernet0/0), from 192.168.12.2, Send flag is 0x0
      Composite metric is (181760/179200), route is Internal
      Vector metric:
        Minimum bandwidth is 100000 Kbit
        Total delay is 6100 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
        Originating router is 3.3.3.3
      
      



, . f0/1 R2:





R2#sho int f0/1
FastEthernet0/1 is up, line protocol is up 
  Hardware is i82543 (Livengood), address is ca02.0ebd.0006 (bia ca02.0ebd.0006)
  Internet address is 192.168.23.2/24
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,
<output omitted>
      
      



, 1000 ( ), . 110 :





R2(config-if)#delay ?     
  <1-16777215>  Throughput delay (tens of microseconds)

R2(config-if)#delay 11
      
      



, : ‘?’ , ; , ( – ). , R1:





R1#
*Mar  2 20:25:40.227: EIGRP-IPv4(1): rcvupdate: 3.3.3.3/32 via 192.168.12.2 metric 158976/156416 on tid 0
*Mar  2 20:25:40.231: EIGRP-IPv4(1): Find FS for dest 3.3.3.3/32. FD is 158720, RD is 158720 on tid 0
*Mar  2 20:25:40.231: EIGRP-IPv4(1): 	192.168.12.2 metric 158976/156416 found Dmin is 158976
*Mar  2 20:25:40.239: DUAL: AS(1) RT installed 3.3.3.3/32 via 192.168.12.2
      
      



. FD?





R1#sho ip eigrp topology 3.3.3.3/32
EIGRP-IPv4 Topology Entry for AS(1)/ID(1.1.1.1) for 3.3.3.3/32
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 158720
  Descriptor Blocks:
  192.168.12.2 (FastEthernet0/0), from 192.168.12.2, Send flag is 0x0
      Composite metric is (158976/156416), route is Internal
      Vector metric:
        Minimum bandwidth is 100000 Kbit
        Total delay is 5210 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
        Originating router is 3.3.3.3
      
      



FD ! ? . , :









Delay 1100





Delay 110





1





R1 3.3.3.3/32





2





R1 feasible successor for 3.3.3.3/32





3





R1 FS, DUAL





R1 FS





4





DUAL R1









R1 DUAL. R2 (100) , feasibility condition, , , R1 DUAL. feasibility condition ( R1-R2), DUAL. FD, feasible successor ; FD DUAL . , FD – ; , Active.





Cisco Community FD:





“Feasible Distance is the lowest distance to the destination experienced since the last time the route went from Active to Passive state”





Translation: FD is the minimum metric value to the destination network since the last transition of the prefix from the Active to Passive state.





While the practical benefits of this knowledge may seem insignificant, having strict definitions avoids confusion, which positively affects the understanding of the technology used.





Assisted in editing the article: Anastasia Kuralyova, Maxim Klimanov.








All Articles