EIGRP Lab Experiments

EIGRP Lab Experiments

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

No comments:

Post a Comment