This lab includes the following topics:
Ø IGRP packet/message
types;
Ø EIGRP terminologies;
Ø EIGRP Data Structures;
Ø EIGRP summarization,
load balancing, authentication;
Ø EIGRP parameter tunning;
Ø EIGRP trouble shooting
and miscellaneous topics;
The configuration of this lab is show as in the following diagram.
Router R1 is the Head quarter R2 and R3 are connected to R1 using
Frame-Relay. R4 is redundant link between R1 and R3 with ppp connection. R1 is
connected with LAN 10.1.1-3.0/24 and R2 and R3 are connected to LAN
192.168.1.0/24.
Configuration
Steps:
Step 1:
Configure the routers as the diagram shows, also note that in
order to simulate a LAN environment on R1, I used loopback interface. So you
need to configure the loopback interface from 0 to 2. Also, don't forget to
issue the "no shutdown command". In this lab, the Frame-Relay configuration
is the one I want to note here. In order to ease the effort of configuration, I
used Point-To-Point sub-interfaces on routers R1, R2 and R3.
Step 2:
Configure the EIGRP routing protocol on all the routers which you
want to participate in the EIGRP process. Example, for Router R1, you need to
issue the following command on the router.
router eigrp 1
network 10.0.0.0
network 190.16.0.0
network 220.1.100.0
no auto-summary
|
After that, EIGRP should work. This can be verified with the
following commands.
Check the Routing table.
R1#show ip route
Codes: C - connected, S - static, 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
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 not set
16.0.0.0/30 is subnetted, 1 subnets
C 16.1.3.0 is directly connected,
Serial0/0.103
220.1.100.0/30 is subnetted, 1 subnets
C 220.1.100.0 is directly connected,
Serial0/0.102
190.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
C 190.16.8.2/32 is directly connected,
Serial0/1
C 190.16.8.0/30 is directly connected,
Serial0/1
D 190.16.0.0/16 [90/3196416] via
220.1.100.2, 00:01:12, Serial0/0.102
172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
D EX 172.16.1.1/32 [170/2684416] via 220.1.100.2, 00:01:12,
Serial0/0.102
D 172.16.0.0/16 [90/2681856] via
190.16.8.2, 00:01:28, Serial0/1
D 172.16.1.0/30 [90/2684416] via
220.1.100.2, 00:01:12, Serial0/0.102
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.1.3.0/24 is directly connected, Loopback2
C 10.1.2.0/24 is directly connected, Loopback1
C 10.1.1.0/24 is directly connected, Loopback0
D 10.1.0.0/22 is a summary, 00:01:41, Null0
D 192.168.1.0/24 [90/2172416] via 220.1.100.2, 00:01:13,
Serial0/0.102
|
Check EIGRP
neighbors
R1# show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H Address Interface
Hold Uptime SRTT
RTO Q Seq
(sec) (ms) Cnt Num
1 220.1.100.2 Se0/0.102
13 00:04:12 32
200 0 7
0 190.16.8.2 Se0/1
10
00:04:27 413 2478 0 10
|
Check EIGRP topology
data structure.
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(10.1.3.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 10.1.3.0/24, 1 successors, FD is 128256
via Connected, Loopback2
P 10.1.2.0/24, 1 successors, FD is 128256
via Connected, Loopback1
P 10.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 10.1.0.0/22, 1 successors, FD is 128256
via Summary (128256/0), Null0
P 16.1.3.0/30, 0 successors, FD is Inaccessible
via 220.1.100.2 (2684416/2172416), Serial0/0.102
via 190.16.8.2 (3193856/2681856), Serial0/1
P 192.168.1.0/24, 1 successors, FD is 2172416
via 220.1.100.2 (2172416/28160), Serial0/0.102
P 190.16.8.2/32, 1 successors, FD is 2169856
via Rconnected (2169856/0)
P 190.16.8.0/30, 1 successors, FD is 2169856
via Connected, Serial0/1
P 190.16.8.1/32, 0 successors, FD is Inaccessible
--- OMITTED FOR CONCISE ---
|
Step 3:
We will investigate the process of how EIGRP neibhbors are formed.
This can be done using the debug command. Also note that if you can't see the
debug messages you need to enable console monitoring and logging under the
configuration mode. In this step we also want to see EIGRP hello, update,
query, reply and ack messages with the help of the debug command.
We first go to router R1 and issue the "debug eigrp
neighbor" command, then go to router R4 and shutdown interface Serial0/0.
When hold-down timer expires on R1, we can see the neighbor going down.
R1#debug eigrp neighbors
*Mar 1
00:18:38.895: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 190.16.8.2
(Serial0/1) is down: holding time expired
*Mar 1
00:18:38.911: EIGRP: Neighbor 190.16.8.2 went down on Serial0/1
*Mar 1
00:30:15.163: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 190.16.8.2
(Serial0/1) is down: holding time expired
|
After that, we bring up the Serial 0/0 interface on R4 and will notice
the process of how the neighbors are formed.
*Mar 1
00:30:26.623: IP-EIGRP: Callback: redist frm connected AS 0 190.16.8.2/32
*Mar 1
00:30:26.623: into: eigrp AS
1 event: 2
*Mar 1
00:30:26.691: IP-EIGRP: Callback: redist frm connected AS 0 190.16.8.2/32
*Mar 1
00:30:26.695: into: eigrp AS
1 event: 1
*Mar 1
00:30:26.695: IP-EIGRP(Default-IP-Routing-Table:0): Callback: redist
connected (config change) Serial0/1
*Mar 1
00:30:28.723: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 190.16.8.2
(Serial0/1) is up: new adjacency
|
Next we will investigate EIGRP messages.
R1#debug eigrp packets
hello
EIGRP Packets debugging is on
(HELLO)
R1#
*Mar 1
00:40:31.991: EIGRP: Sending HELLO on Serial0/1
*Mar 1
00:40:31.991: AS 1, Flags 0x0, Seq
0/0 idbQ 0/0 iidbQ un/rely 0/0
*Mar 1
00:40:31.995: EIGRP: Sending HELLO on Loopback2
*Mar 1
00:40:31.995: AS 1, Flags 0x0, Seq
0/0 idbQ 0/0 iidbQ un/rely 0/0
*Mar 1
00:40:31.995: EIGRP: Received HELLO on Loopback2 nbr 10.1.3.1
*Mar 1
00:40:31.995: AS 1, Flags 0x0, Seq
0/0 idbQ 0/0
*Mar 1
00:40:32.239: EIGRP: Received HELLO on Serial0/0.102 nbr 220.1.100.2
*Mar 1
00:40:32.239: AS 1, Flags 0x0, Seq
0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
*Mar 1
00:40:34.015: EIGRP: Received HELLO on Serial0/1 nbr 190.16.8.2
|
In order to see QUERY, REPLY and ACK messages, we need to simulate
a real world link outage. Here, we again shut down the Serial 0/0 interface of
R4 and then bring it back up.
*Mar 1 00:46:12.867: EIGRP: Received QUERY on
Serial0/0.102 nbr 220.1.100.2
*Mar 1
00:46:12.867: AS 1, Flags 0x0, Seq
153/101 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
*Mar 1
00:46:12.871: EIGRP: Enqueueing ACK on Serial0/0.102 nbr 220.1.100.2
*Mar 1
00:46:12.871: Ack seq 153 iidbQ
un/rely 0/0 peerQ un/rely 1/0
*Mar 1
00:46:12.875: EIGRP: Sending ACK on Serial0/0.102 nbr 220.1.100.2
*Mar 1
00:46:12.879: AS 1, Flags 0x0, Seq
0/153 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
*Mar 1
00:46:12.883: EIGRP: Enqueueing QUERY on Serial0/1 iidbQ un/rely 0/1 serno
86-86
*Mar 1
00:46:12.883: EIGRP: Enqueueing QUERY on Serial0/0.102 iidbQ un/rely 0/1
serno 86-86
*Mar 1
00:46:12.887: EIGRP: Enqueueing QUERY on Serial0/1 nbr 190.16.8.2 iidbQ
un/rely 0/0 peerQ un/rely 0/0 serno 86-86
*Mar 1
00:46:12.891: EIGRP: Enqueueing QUERY on Serial0/0.102 nbr 220.1.100.2 iidbQ
un/rely 0/0 peerQ un/rely 0/0 serno 86-86
*Mar 1
00:46:12.899: EIGRP: Sending QUERY on Serial0/1 nbr 190.16.8.2
*Mar 1
00:46:12.899: AS 1, Flags 0x0, Seq
103/101 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1 serno 86-86
*Mar 1
00:46:13.155: EIGRP: Sending QUERY on Serial0/1 nbr 190.16.8.2, retry 1, RTO
369
*Mar 1
00:46:25.055: EIGRP: Sending QUERY on Serial0/1 nbr 190.16.8.2, retry 8, RTO
5000
*Mar 1
00:46:25.059: AS 1, Flags 0x0, Seq
103/101 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1 serno 86-86
*Mar 1
00:46:26.643: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 190.16.8.2
(Serial0/1) is down: holding time expired
*Mar 1
00:46:26.663: EIGRP: Enqueueing REPLY on Serial0/0.102 nbr 220.1.100.2 iidbQ
un/rely 0/1 peerQ un/rely 0/0 serno 87-87
*Mar 1
00:46:26.671: EIGRP: Sending REPLY on Serial0/0.102 nbr 220.1.100.2
*Mar 1
00:46:26.675: AS 1, Flags 0x0, Seq
105/153 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1 serno 87-87
*Mar 1
00:46:26.707: EIGRP: Received ACK on Serial0/0.102 nbr 220.1.100.2
|
We can show the EIGRP traffic statistics with the show ip eigrp
traffic command.
R1#show ip eigrp traffic
IP-EIGRP Traffic Statistics for AS 1
Hellos
sent/received: 3265/3166
Updates
sent/received: 72/75
Queries sent/received: 73/11
Replies sent/received: 12/27
Acks
sent/received: 89/89
Input
queue high water mark 3, 0 drops
SIA-Queries sent/received: 0/0
SIA-Replies sent/received: 0/0
Hello
Process ID: 134
PDM Process
ID: 133
|
Step 4:
We will get familiar with FD, AD, successor, feasible successor.
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(10.1.3.1)
Codes: P - Passive, A - Active, U - Update, Q
- Query, R - Reply,
r
- reply Status, s - sia Status
P 10.1.3.0/24, 1 successors, FD is 128256
via Connected, Loopback2
P 10.1.2.0/24, 1 successors, FD is 128256
via Connected, Loopback1
P 10.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 10.1.0.0/22, 1 successors, FD is 128256
via Summary (128256/0), Null0
P 16.1.3.0/30, 0 successors, FD is
Inaccessible
via 190.16.8.2 (3193856/2681856), Serial0/1
via 220.1.100.2 (2684416/2172416), Serial0/0.102
P 192.168.1.0/24, 1 successors, FD is 2172416
via 220.1.100.2 (2172416/28160), Serial0/0.102
P 190.16.8.2/32, 1 successors, FD is 2169856
via Rconnected (2169856/0)
P 190.16.8.0/30, 1 successors, FD is 2169856
via Connected, Serial0/1
P 190.16.8.1/32, 0 successors, FD is
Inaccessible
via 190.16.8.2 (2681856/2169856), Serial0/1
|
Step 5:
We will investigate summarization, authentication and load
balancing.
I am going to configure R1 so that it only advertise the
summarized address of networks 10.1.1-3.0/24 to router R4.
interface Serial0/1
ip
address 190.16.8.1 255.255.255.252
encapsulation ppp
ip
summary-address eigrp 1 10.1.0.0 255.255.252.0 5
serial
restart-delay 0
end
|
Then under R4, let's check the result.
R4#show ip route
-- Omitted for Simplicity. --
10.0.0.0/22 is subnetted, 1 subnets
D
10.1.0.0 [90/2297856] via 190.16.8.1, 00:01:22, Serial0/0
|
Authentication of EIGRP neighbors utilizes key chain. So, first we
need to define key chain.
key chain R1TOR4
key 1
key-string cisco
accept-lifetime 10:00:00 Mar 8 2010 11:00:00 Mar 8 2010
send-lifetime 11:00:00 Mar 8 2010 12:00:00 Mar 8 2010
key 2
key-string simon
accept-lifetime 11:00:00 Mar 8 2010 12:00:00 Mar 8 2010
send-lifetime 11:00:00 Mar 8 2010 12:00:00 Mar 8 2010
|
After that we need to configure the authentication under the
interface of the neighbor.
ip authentication key-chain eigrp 1 R1TOR4
|
Also please note, we have to define the same configuration on the
other side of the neighbor relationship. And in order for authentication to
work, the two neighbors should have synchronized system clock. This can be done
with the ntp service. For more information, please check related documents.
Next let's work on load-balancing. By default, EIGRP will load
balance 4 equal cost routes. We can change this number by tunning the maximum-paths parameter.
More importantly, we can configure to let EIGRP do unequal cost load-balancing
with the variance command.
We can show the current path number by the following command
R3#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: 2
Routing for Networks:
16.0.0.0
172.16.0.0
192.168.1.0
Routing Information Sources:
Gateway Distance Last Update
192.168.1.1 90 00:00:03
172.16.1.1 90 00:00:03
Distance: internal 90 external 170
|
Then, let's evaluate the unequal cost load balancing on router R3.
Variance = 1
D
10.1.0.0 [90/2300416] via 192.168.1.1, 00:00:03, FastEthernet1/0
Variance = 2
D
10.1.0.0 [90/2300416] via 192.168.1.1, 00:00:03, FastEthernet1/0
[90/2809856] via 172.16.1.1, 00:00:03,
Serial0/1
|
Step 6:
Finally, let's tune the timers, metrics and other miscellaneous
parameters of EIGRP.
In order to change timers, we need to go to the specific interface,
and issue: "ip hello-interval eigrp 1 10" or "ip hold-time eigrp
1 40".
Metrics are lated to the K value of eigrp routing protocol. It can
be tuned with "metric weights 0 1 0 1 0 0"
Setting default network is always very helpful sometimes. Under
EIGRP, we can use the default network command to do this. This doesn't work on
my lab environment.
Also, we can use the classic "ip route 0.0.0.0 0.0.0.0 "
command to do this.
First, let's set the default route under router R1 and the default route is to
interface loopback 3. Then we propogate this default route to R1' neighbor R4.
Then we can check the result using the "show ip route" command.
conf t
ip route 0.0.0.0 0.0.0.0 lo 3
router eigrp 1
network 0.0.0.0
R1#show ip route
Gateway of last resort is 0.0.0.0 to network
0.0.0.0
S*
0.0.0.0/0 is directly connected, Loopback3
R4#show ip route
Gateway of last resort is 190.16.8.1 to
network 0.0.0.0
D*
0.0.0.0/0 [90/2297856] via 190.16.8.1, 00:10:48, Serial0/0
|