The following three commands are used to verify and troubleshoot EIGRP:

  • show ip route
  • show ip protocols
  • show ip eigrp neighbors
  • show ip eigrp topology
  • debug eigrp packets and debug ip eigrp notifications

The show ip route command has been covered in the previous section and earlier in this chapter. Eventually a complete and correct routing table across the network is the best verification of a routing table. The other two commands are covered below.

Using show ip protocols command to verify and troubleshoot EIGRP 

The show ip protocols command helps verify routing protocols running on the router. An example of the output of this command from RouterA of our network is shown below:

RouterA#show ip protocols
Routing Protocol is “eigrp 10”
  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 255
  EIGRP maximum metric variance 1
Redistributing: eigrp 10
EIGRP NSF-aware route hold timer is 240s
  Automatic network summarization is not in effect
  Maximum path: 6
  Routing for Networks:
    192.168.1.0
    192.168.4.0
  Routing Information Sources:
    Gateway         Distance      Last Update
    192.168.4.4           90      05:17:45
    192.168.1.2           90      05:17:45
  Distance: internal 90 external 170 

The show ip protocols commands shows the operational information for EIGRP. From the above output you can gather that the EIGRP AS is 10 and it is advertising the 192.168.1.0 and 192.168.4.0 networks. You can also learn that it is using default metrics (K1 and K3) and the maximum hop count has been configured as 255. The output also shows that auto summary is disabled and maximum path is set to 6. As before, this output helps confirm the configuration of EIGRP.

Using show ip eigrp neighbors command to verify adjacencies 

It is important to see which routers EIGRP has formed adjacencies with and how stable the adjacencies are. The show ip eigrp neighbors command helps do this. The output from RouterE in our network is shown below:

RouterE#sh ip eigrp neighbors
IP-EIGRP neighbors for process 10
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
(sec)         (ms)       Cnt Num
1   192.168.6.3             Se0/0             10 06:07:05    6   200  0  38
0   192.168.5.4             Fa0/0             10 06:07:07   33   200  0  39 

The various fields in the output are discussed below:

  • The H field indicates the order in which the neighbors were discovered.
  • The Address indicates the IP address of the neighbor.
  • The Interface indicates the interface via which the neighbor is reachable.
  • The hold time shows how long this router will wait for a Hello packet to arrive from the neighbor.
  • The uptime indicates the time since the adjacency was established.
  • The SRTT or the smooth round-trip timer indicates the time it takes for a round-trip from this router to its neighbor and back. This value determines the amount of time router will wait after a multicast for a reply from this neighbor. If a reply isn’t received in time, the router will switch to using unicasts.
  • The RTO or Retransmission Time Out field indicates the amount of time EIGRP waits before retransmitting a packet from the retransmission queue to a neighbor.
  • The Q value indicates whether there are any messages in the queue waiting to be sent to the particular neighbor. Consistently high values would indicate a problem in communication between the neighbors.
  • The Seq, or sequence, field indicates the sequence number of the last update from the neighbor. As you know, EIGRP uses sequence numbers to keep track of updates and replies received to updates.

The various fields in the output help keep track of EIGRP adjacencies and their health. For example, high value in the SRTT, RTO or Q fields would indicate problems in communication.

Using show ip eigrp topology command to verify and troubleshoot EIGRP

Since EIGRP stores all routes learned in a topology table, looking at the topology table can give you indications about the functioning of EIGRP as well as the stability of the network. The show ip eigrp topology command shows the topology table. An example from RouterC in our network is shown below:

RouterC#sh ip eigrp topology
IP-EIGRP Topology Table for AS(10)/ID(192.168.6.3)

Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
r – reply Status, s – sia Status

P 10.2.0.0/16, 1 successors, FD is 2195456
via 192.168.2.2 (2272256/358400), Serial0/1
via 192.168.6.5 (26137600/281600), Serial0/0
P 10.1.0.0/16, 1 successors, FD is 2195456
via 192.168.2.2 (2195456/281600), Serial0/1
via 192.168.6.5 (26214400/358400), Serial0/0
P 192.168.1.0/24, 1 successors, FD is 2195456
via 192.168.2.2 (2195456/281600), Serial0/1
via 192.168.6.5 (26188800/332800), Serial0/0
P 192.168.2.0/24, 1 successors, FD is 2169856
via Connected, Serial0/1
P 192.168.3.0/24, 1 successors, FD is 281600
via Connected, FastEthernet0/0
P 192.168.4.0/24, 1 successors, FD is 2221056
via 192.168.2.2 (2221056/307200), Serial0/1
via 192.168.6.5 (26163200/307200), Serial0/0
P 192.168.5.0/24, 1 successors, FD is 2195456
via 192.168.2.2 (2246656/332800), Serial0/1
via 192.168.6.5 (26137600/281600), Serial0/0
P 192.168.6.0/24, 1 successors, FD is 26112000
via Connected, Serial0/0
via 192.168.2.2 (2758656/2246656), Serial0/1

Notice that a P precedes all routes. This means that the routes are in a passive state. A route in passive state means it is currently known about and stable. On the other hand, a route in active state (preceded by A) means that the route has lost the route and is searching for a replacement. Each route also shows the Feasible Distance (FD) and the next hop address towards the destination. The two numbers in the parenthesis are the feasible and advertised distances. For routes such as 192.168.4.0/24 notice that there are two next hops. The first one is the successor and will be seen in the routing table of the router while the second one is the feasible successor. The second route will be used if the first one is lost. If the feasible distance of two routes is displayed as the same, EIGRP will load balance between the two routes.

Using debugs to troubleshoot EIGRP

As with RIP, there are some debugs for EIGRP and then help troubleshoot. The most important of all EIGRP debugs is the debug eigrp packets. Using this debug you can see EIGRP packets as they come into and go out of a router. On a router where EIGRP is working normally and has established adjacencies, you should only see hello packets coming in and going out in the debug output as shown below:

RouterC#debug eigrp packets
EIGRP Packets debugging is on
(UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)

*Mar  3 01:25:30.519: EIGRP: Sending HELLO on Serial0/0
*Mar  3 01:25:30.523:   AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0
*Mar  3 01:25:31.027: EIGRP: Sending HELLO on Serial0/1
*Mar  3 01:25:31.031:   AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0

*Mar  3 01:25:31.755: EIGRP: Sending HELLO on FastEthernet0/0
*Mar  3 01:25:31.759:   AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0

*Mar  3 01:25:32.991: EIGRP: Received HELLO on Serial0/1 nbr 192.168.2.2
*Mar  3 01:25:32.991:   AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
*Mar  3 01:25:33.839: EIGRP: Received HELLO on Serial0/0 nbr 192.168.6.5
*Mar  3 01:25:33.839:   AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0

In the above output you can see hello packets being sent out every interface with the AS number shown. You can also see hello packets received from neighbors 192.168.2.2 and 192.168.6.5. The received packets also show the AS number. If the AS numbers in the updates do not match the AS number configured in the router, the packets will be dropped.

Another important debug for EIGRP is the debug ip eigrp notifications. During normal operations, you will not see any outputs for this debug but if there is change in the network. To generate the output below, I shutdown the s0/0 interface on RouterE, causing RouterC to loose the adjacency with that router.

RouterC#
*Mar  3 01:31:54.803: IP-EIGRP(Default-IP-Routing-Table:10): Callback: route_adjust Serial0/0
*Mar  3 01:31:54.811: IP-EIGRP(Default-IP-Routing-Table:10): Callback: callbackup_routes 192.168.6.0/24 

When the s0/0 interface on RouterE is brought back up, the following debugs are seen on RouterC:

RouterC#
*Mar  3 01:32:34.799: IP-EIGRP(Default-IP-Routing-Table:10): Callback: lostroute 192.168.6.0/24
*Mar  3 01:32:34.799: IP-EIGRP(Default-IP-Routing-Table:0): Callback: redist connected (config change) Serial0/0
*Mar  3 01:32:34.799: IP-EIGRP(Default-IP-Routing-Table:10): Callback: route_adjust Serial0/0 

You can use this debug to verify that your network is stable and there are no constant changes in the network. No output for this debug command is good news!