EIGRP is easy to configure, but has a lot of options and can end up being very complex. Keep in mind that even though it looks and feels like a link state protocol, it is a distance vector protocol.
Here’s the network for the next few examples (pardon the hand drawing):
In addition, R2 and R4 will be having some /24 networks hanging off of them to demonstrate summarization at a later time.
The configuration of the routers is remarkably simple, as described in Configuring Enhanced EIGRP:
router eigrp 1 network 0.0.0.0 no auto-summary
EIGRP uses the concept of an Autonomous System, which is a grouping of EIGRP routers. It is not like an OSPF area, since routes aren’t passed between ASes without explicit redistribution. All routers must belong to the same AS (in this case, it is specified as 1).
Next, all the networks are specified. The network command(s) (there can be many) select the interfaces that will participate in EIGRP. The command takes a network, and wildcard bits. Thus, to turn EIGRP on for all interfaces, “network 0.0.0.0 0.0.0.0″ does the trick. If you only want it on interfaces in the 10/8 network, it would be “network 10.0.0.0 255.0.0.0″. This command does not tell EIGRP what to advertise! It gets that information from the interface itself.
By default EIGRP summarizes all networks into their major components. Since we generally want to do summarization manually, “no auto-summary” turns this behaviour off.
The first thing EIGRP must do is establish adjacencies. It sends out HELLO packets
r0#debug eigrp packets hello
EIGRP Packets debugging is on
(HELLO)
r0#
1d18h: EIGRP: Received HELLO on Ethernet0 nbr 192.168.1.136
1d18h: AS 1, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
1d18h: EIGRP: Received HELLO on Ethernet0 nbr 192.168.1.93
1d18h: AS 1, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
1d18h: EIGRP: Sending HELLO on Ethernet0
1d18h: AS 1, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0
The adjacencies are established:
r0#show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq Type
(sec) (ms) Cnt Num
1 192.168.1.136 Et0 12 07:11:55 21 200 0 77
0 192.168.1.93 Et0 12 07:11:58 19 200 0 84
A couple of things to watch out for here are the uptime and sequence number. A low uptime and increasing sequence number shows that you have flapping.
Finally, you have routes in the table:
r0#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is 192.168.1.1 to network 0.0.0.0
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback99
172.16.0.0/24 is subnetted, 1 subnets
D 172.16.0.0 [90/2211584] via 192.168.1.136, 00:00:03, Ethernet0
[90/2211584] via 192.168.1.93, 00:00:03, Ethernet0
172.19.0.0/24 is subnetted, 1 subnets
D 172.19.0.0 [90/2195456] via 192.168.1.93, 00:00:03, Ethernet0
172.18.0.0/24 is subnetted, 1 subnets
D 172.18.0.0 [90/2195456] via 192.168.1.136, 00:00:09, Ethernet0
10.0.0.0/24 is subnetted, 2 subnets
D 10.0.1.0 [90/2339584] via 192.168.1.136, 00:00:04, Ethernet0
[90/2339584] via 192.168.1.93, 00:00:04, Ethernet0
D 10.0.4.0 [90/2339584] via 192.168.1.136, 00:00:04, Ethernet0
[90/2339584] via 192.168.1.93, 00:00:04, Ethernet0
C 192.168.1.0/24 is directly connected, Ethernet0
S* 0.0.0.0/0 [254/0] via 192.168.1.1
A few notes… The D in the left column indicates that the route is learned from EIGRP. The Administrative Distance is 90, and for the 10 networks on R4, and the 172.16/24 network on the token ring, we can see two ways to get there from R0. By default, EIGRP load balances routes with equal metrics (if you want to do it for routes with different metrics, see How Does Unequal Cost Path Load Balancing (Variance) Work in IGRP and EIGRP?)
Looking closer at the 172.19.0.0/24 route requires diving into the EIGRP topology table (remember from before that EIGRP has multiple tables)
r0# show ip eigrp topology 172.19.0.0/24
IP-EIGRP (AS 1): Topology entry for 172.19.0.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2195456
Routing Descriptor Blocks:
192.168.1.93 (Ethernet0), from 192.168.1.93, Send flag is 0x0
Composite metric is (2195456/2169856), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 21000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
Some more helpful information that will let us reverse-engineer the composite metric:
r3#show int s0.121 | include BW MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, r3#show int e0 | include BW MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, r0#show int e0 | include BW MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,
The minimum bandwidth along the R0->R3->172.19.0.0 is 1544Kbit, which is the default value for a serial interface on R3. The total delay is 21,000usec from R1:s0.121 and r0:e0 (the delay is added by the end that receives the route, not the one that originates it)
Using the formula metric = ((1E7/minbw)+(sum of delays))*256
= (1E7/1544 + 2100)*256 = 2195456.
172.16/24 shows up twice because the metric is the same. I said in a previous article that if the
r3(config)#int s0.121 r3(config-subif)#delay 2001
r0#show ip route 172.16.0.0
Routing entry for 172.16.0.0/24, 1 known subnets
Redistributing via eigrp 1
D 172.16.0.0 [90/2211584] via 192.168.1.136, 00:00:37, Ethernet0
The topology table shows two entries, though:
r0#show ip eigrp topology 172.16.0.0/24
IP-EIGRP (AS 1): Topology entry for 172.16.0.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2211584
Routing Descriptor Blocks:
192.168.1.136 (Ethernet0), from 192.168.1.136, Send flag is 0x0
Composite metric is (2211584/2185984), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 21630 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
192.168.1.93 (Ethernet0), from 192.168.1.93, Send flag is 0x0
Composite metric is (2211840/2186240), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 21640 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
To get it to fall out of the routing table, I know I’ll have to make the feasible distance of the second route greater than the advertised distance of the good route, ie 2185984. Only using delay, I have to increase it by (2211840-2185984)/256, or 101 tens of microseconds, or 102 above the default:
r3(config)#int s0.121
r3(config-subif)#delay 2103
r0#show ip eigrp topology 172.16.0.0/24
IP-EIGRP (AS 1): Topology entry for 172.16.0.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2211584
Routing Descriptor Blocks:
192.168.1.136 (Ethernet0), from 192.168.1.136, Send flag is 0x0
Composite metric is (2211584/2185984), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 21630 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
With a feasible successor in place, EIGRP will use it immediately if it loses the primary route. Without one, it has to “go active” on the route by running the DUAL algorithm. I’ll pull R3’s S0 to demonstrate:
r0#show debugging IP routing: IP-EIGRP Route Events debugging is on IP-EIGRP Event notification debugging is on EIGRP: EIGRP FSM Events/Actions debugging is on 2d02h: IP-EIGRP: Processing incoming QUERY packet 2d02h: IP-EIGRP: Int 172.18.0.0/24 M 4294967295 - 0 4294967295 SM 4294967295 - 0 4294967295 2d02h: DUAL: rcvquery: 172.18.0.0/24 via 192.168.1.136 metric 4294967295/4294967295, RD is 2195456 2d02h: DUAL: Find FS for dest 172.18.0.0/24. FD is 2195456, RD is 2195456 2d02h: DUAL: 192.168.1.136 metric 4294967295/4294967295 not found Dmin is 4294967295 2d02h: DUAL: Dest 172.18.0.0/24 (Split Horizon) not entering active state. 2d02h: DUAL: send REPLY(r1/n1) about 172.18.0.0/24 to 192.168.1.136 2d02h: IP-EIGRP: 172.18.0.0/24 routing table not updated 2d02h: IP-EIGRP: Int 10.0.1.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: DUAL: rcvquery: 10.0.1.0/24 via 192.168.1.136 metric 4294967295/4294967295, RD is 2339584 2d02h: DUAL: Find FS for dest 10.0.1.0/24. FD is 2339584, RD is 2339584 2d02h: DUAL: 192.168.1.136 metric 4294967295/4294967295 not found Dmin is 4294967295 2d02h: DUAL: Dest 10.0.1.0/24 (Split Horizon) not entering active state. 2d02h: DUAL: send REPLY(r1/n1) about 10.0.1.0/24 to 192.168.1.136 2d02h: IP-EIGRP: 10.0.1.0/24 routing table not updated 2d02h: IP-EIGRP: Int 10.0.4.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: DUAL: rcvquery: 10.0.4.0/24 via 192.168.1.136 metric 4294967295/4294967295, RD is 2339584 2d02h: DUAL: Find FS for dest 10.0.4.0/24. FD is 2339584, RD is 2339584 2d02h: DUAL: 192.168.1.136 metric 4294967295/4294967295 not found Dmin is 4294967295 2d02h: DUAL: Dest 10.0.4.0/24 (Split Horizon) not entering active state. 2d02h: DUAL: send REPLY(r1/n1) about 10.0.4.0/24 to 192.168.1.136 2d02h: IP-EIGRP: 10.0.4.0/24 routing table not updated 2d02h: IP-EIGRP: Int 172.16.0.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: DUAL: rcvquery: 172.16.0.0/24 via 192.168.1.136 metric 4294967295/4294967295, RD is 2211584 2d02h: DUAL: Find FS for dest 172.16.0.0/24. FD is 2211584, RD is 2211584 2d02h: DUAL: 192.168.1.136 metric 4294967295/4294967295 not found Dmin is 4294967295 2d02h: DUAL: Dest 172.16.0.0/24 (Split Horizon) not entering active state. 2d02h: DUAL: send REPLY(r1/n1) about 172.16.0.0/24 to 192.168.1.136 2d02h: IP-EIGRP: 172.16.0.0/24 routing table not updated 2d02h: IP-EIGRP: 172.18.0.0/24 - not in IP routing table 2d02h: IP-EIGRP: Int 172.18.0.0/24 metric 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: 10.0.1.0/24 - not in IP routing table 2d02h: IP-EIGRP: Int 10.0.1.0/24 metric 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: 10.0.4.0/24 - not in IP routing table 2d02h: IP-EIGRP: Int 10.0.4.0/24 metric 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: 172.16.0.0/24 - not in IP routing table 2d02h: IP-EIGRP: Int 172.16.0.0/24 metric 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: Processing incoming UPDATE packet 2d02h: IP-EIGRP: Int 172.18.0.0/24 M 2733824 - 1657856 1075968 SM 2708224 - 1657856 1050368 2d02h: DUAL: dest(172.18.0.0/24) not active 2d02h: DUAL: rcvupdate: 172.18.0.0/24 via 192.168.1.93 metric 2733824/2708224 2d02h: DUAL: Find FS for dest 172.18.0.0/24. FD is 4294967295, RD is 4294967295 found 2d02h: DUAL: RT installed 172.18.0.0/24 via 192.168.1.93 2d02h: IP-EIGRP: 172.18.0.0/24 routing table not updated 2d02h: DUAL: Send update about 172.18.0.0/24. Reason: metric chg 2d02h: DUAL: Send update about 172.18.0.0/24. Reason: new if 2d02h: IP-EIGRP: Int 10.0.1.0/24 M 2365952 - 1657856 708096 SM 2340352 - 1657856 682496 2d02h: DUAL: dest(10.0.1.0/24) not active 2d02h: DUAL: rcvupdate: 10.0.1.0/24 via 192.168.1.93 metric 2365952/2340352 2d02h: DUAL: Find FS for dest 10.0.1.0/24. FD is 4294967295, RD is 4294967295 found 2d02h: DUAL: RT installed 10.0.1.0/24 via 192.168.1.93 2d02h: IP-EIGRP: 10.0.1.0/24 routing table not updated 2d02h: DUAL: Send update about 10.0.1.0/24. Reason: metric chg 2d02h: DUAL: Send update about 10.0.1.0/24. Reason: new if 2d02h: IP-EIGRP: Int 10.0.4.0/24 M 2365952 - 1657856 708096 SM 2340352 - 1657856 682496 2d02h: DUAL: dest(10.0.4.0/24) not active 2d02h: DUAL: rcvupdate: 10.0.4.0/24 via 192.168.1.93 metric 2365952/2340352 2d02h: DUAL: Find FS for dest 10.0.4.0/24. FD is 4294967295, RD is 4294967295 found 2d02h: DUAL: RT installed 10.0.4.0/24 via 192.168.1.93 2d02h: IP-EIGRP: 10.0.4.0/24 routing table not updated 2d02h: DUAL: Send update about 10.0.4.0/24. Reason: metric chg 2d02h: DUAL: Send update about 10.0.4.0/24. Reason: new if 2d02h: IP-EIGRP: Int 172.16.0.0/24 M 2237952 - 1657856 580096 SM 2212352 - 1657856 554496 2d02h: DUAL: dest(172.16.0.0/24) not active 2d02h: DUAL: rcvupdate: 172.16.0.0/24 via 192.168.1.93 metric 2237952/2212352 2d02h: DUAL: Find FS for dest 172.16.0.0/24. FD is 4294967295, RD is 4294967295 found 2d02h: DUAL: RT installed 172.16.0.0/24 via 192.168.1.93 2d02h: IP-EIGRP: 172.16.0.0/24 routing table not updated 2d02h: DUAL: Send update about 172.16.0.0/24. Reason: metric chg 2d02h: DUAL: Send update about 172.16.0.0/24. Reason: new if 2d02h: DUAL: Removing dest 172.18.0.0/24, nexthop 192.168.1.136 2d02h: DUAL: Removing dest 10.0.1.0/24, nexthop 192.168.1.136 2d02h: DUAL: Removing dest 10.0.4.0/24, nexthop 192.168.1.136 2d02h: DUAL: Removing dest 172.16.0.0/24, nexthop 192.168.1.136 2d02h: IP-EIGRP: Processing incoming UPDATE packet 2d02h: IP-EIGRP: Int 172.18.0.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: Int 10.0.1.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: Int 10.0.4.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: Int 172.16.0.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: Int 172.18.0.0/24 metric 2733824 - 1657856 1075968 2d02h: IP-EIGRP: Int 10.0.1.0/24 metric 2365952 - 1657856 708096 2d02h: IP-EIGRP: Int 10.0.4.0/24 metric 2365952 - 1657856 708096 2d02h: IP-EIGRP: Int 172.16.0.0/24 metric 2237952 - 1657856 580096
Filtering that out a bit for 172.16/24
2d02h: IP-EIGRP: Int 172.16.0.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: DUAL: rcvquery: 172.16.0.0/24 via 192.168.1.136 metric 4294967295/4294967295, RD is 2211584 2d02h: DUAL: Find FS for dest 172.16.0.0/24. FD is 2211584, RD is 2211584 2d02h: DUAL: 192.168.1.136 metric 4294967295/4294967295 not found Dmin is 4294967295 2d02h: DUAL: Dest 172.16.0.0/24 (Split Horizon) not entering active state. 2d02h: DUAL: send REPLY(r1/n1) about 172.16.0.0/24 to 192.168.1.136 2d02h: IP-EIGRP: 172.16.0.0/24 routing table not updated 2d02h: IP-EIGRP: 172.16.0.0/24 - not in IP routing table 2d02h: IP-EIGRP: Int 172.16.0.0/24 metric 4294967295 - 1657856 4294967295 2d02h: DUAL: dest(172.16.0.0/24) not active 2d02h: DUAL: rcvupdate: 172.16.0.0/24 via 192.168.1.93 metric 2237952/2212352 2d02h: DUAL: Find FS for dest 172.16.0.0/24. FD is 4294967295, RD is 4294967295 found 2d02h: DUAL: RT installed 172.16.0.0/24 via 192.168.1.93 2d02h: IP-EIGRP: 172.16.0.0/24 routing table not updated 2d02h: DUAL: Send update about 172.16.0.0/24. Reason: metric chg 2d02h: DUAL: Send update about 172.16.0.0/24. Reason: new if 2d02h: DUAL: Removing dest 172.16.0.0/24, nexthop 192.168.1.136 2d02h: IP-EIGRP: Processing incoming UPDATE packet 2d02h: IP-EIGRP: Int 172.16.0.0/24 M 4294967295 - 1657856 4294967295 SM 4294967295 - 1657856 4294967295 2d02h: IP-EIGRP: Int 172.16.0.0/24 metric 2237952 - 1657856 580096
While a lot of the debug information doesn’t make sense, it shows how EIGRP goes through the DUAL process to find the new route.
More on manipulating EIGRP next…




3 users commented in " Configuring EIGRP "
Follow-up comment rss or Leave a TrackbackYour explanation of feasible distance and advertised distance with regard to choosing feasible successors is incorrect.
If the advertised distance of a non-successor route is less than the feasible distance of the successor, then it can be a feasible successor.
Thanks for the correction, I got it backward in this article.
Sean
Hello,
I am very satisfied for this summary.
Thanks, because it is very interrest but the Layout is not draw very well.
Kindest Regard;
Johnny
Leave A Reply