The features of EIGRP routing protocol are shown in Table 8.1.
Features | EIGRP Values |
---|---|
Protocol type | Hybrid |
Subnet information | Classless |
Routing updates | Sends routing updates when there is a change in topology |
Metric | Composite (bandwidth, delay, reliability, load) |
Count to infinity | 224 |
Routing updates mode | Multicast; uses address 224.0.0.10 |
Algorithm | DUAL |
EIGRP uses different data packets during the routing process. They are:
Hello: Sent by a router to its neighbor during the discovery process. These packets are sent using the multicast unreliable delivery method.
Acknowledgment: Sent by an EIGRP router on receipt of Hello packets. The Unicast delivery protocol is used to send Acknowledgment packets back to the sender of Hello packets.
Routing Updates: Sent in the form of Reliable Transport Protocol (RTP) when there is a change in the network topology. They are sent using multicast or unicast, depending upon the number of routers to which data is to be sent.
Queries: Sent by EIGRP using multicast or unicast reliable delivery protocol.
Replies: Sent by EIGRP using unicast.
These terms and concepts will help you understand EIGRP:
Adjacency: Virtual link between two routers over which the routing information is sent and received. Adjacency is formed by exchanging Hello packets between neighboring routers. Routers exchange routing updates after adjacency is established. A router adds the distance metric to the network as advertised by its neighbor to the cost of the link. This enables the router to access its neighbor. Routers perform this calculation for every route to a destination network.
Feasible Distance: The lowest calculated metric among the different alternate paths to reach a destination network.
Advertised Distance: Distance advertised by a neighboring router.
Feasible Successor: Neighboring router that has an advertised distance that is less than the feasible distance. The feasible successor is closer to the destination than the router. A router can have multiple feasible successors for reaching a destination network.
Successor: The feasible successor that has the lowest metric to reach a destination.
There are a number of commands available in the Cisco IOS, to isolate problems in EIGRP networks. The basic TCP/IP troubleshooting commands like ping, traceroute, and show ip route are also used in problem isolation in EIGRP environments. Table 8.2 lists the various show command options for EIGRP.
Command | Explanation |
---|---|
show ip eigrp interfaces | Shows list of interfaces in which EIGRP is enabled |
show ip eigrp neighbors | Shows the EIGRP enabled routers that are on directly connected networks of a router |
show ip eigrp topology | Shows topology of the entire EIGRP routing domain, including all the networks that are declared by the EIGRP routers |
show ip eigrp traffic | Shows statistics pertaining to the traffic generated by EIGRP |
Consider the example shown in Figure 8.1. Part of an EIGRP network with routers B1, B2, and B3 is shown. The show commands are issued at B2.
Figure 8.1: Part of an EIGRP network with show commands at B2.
We will discuss the output of the show commands at B2. Listing 8.1 displays the output of the show ip eigrp interfaces command.
Listing 8.1 Output for show ip eigrp interfaces Command in B2
B2#show ip eigrp interfaces IP-EIGRP interfaces for process 10 Xmit Queue Mean Pacing Time Multicast Pending Interface Peers Un/Reliable SRTT Un/Reliable Flow Timer Routes Se0 1 0/0 214 10/380 1232 0 Et0 1 0/0 3 0/10 50 0 Et1 0 0/0 3 0/10 50 0
Listing 8.2 displays the output of the show ip eigrp neighbors command in B2.
Listing 8.2 Output of show ip eigrp neighbors Command in B2
B2#show 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.16.2 Se0 14 1w6d 48 288 0 3471 0 192.168.15.1 Et0 14 1w6d 3 200 0 8558
Listing 8.3 displays the output of the show ip eigrp topology command in B2.
Listing 8.3 Output of show ip eigrp topology Command in B2
B2#show ip eigrp topology IP-EIGRP Topology Table for AS(10)/ID(192.168.16.1) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - Reply status P 192.168.2.0/24, 1 successors, FD is 281600 via Connected, Ethernet1 P 192.168.15.0/24, 1 successors, FD is 281600 via Connected, Ethernet0 P 192.168.3.0/24, 1 successors, FD is 2195456 via 192.168.16.2 (2195456/281600), Serial0 P 192.168.3.0/24, 1 successors, FD is 2195456 via 192.168.15.1 (2195456/2169856), Ethernet0
Listing 8.4 displays the output of the show ip eigrp traffic command in B2.
Listing 8.4 Output of show ip eigrp traffic Command in B2
B2#show ip eigrp traffic IP-EIGRP Traffic Statistics for process 300 Hellos sent/received: 1210064/1207881 Updates sent/received: 4914/3832 Queries sent/received: 1849/774 Replies sent/received: 775/1819 Acks sent/received: 5830/6697 Input queue high water mark 8, 0 drops
Table 8.3 lists different debug command options for EIGRP along with the explanation for each command.
Command | Explanation |
---|---|
debug eigrp neighbors | Monitors the status of EIGRP neighbors and reflects when a neighbor router comes up or goes down |
debug eigrp packets | Monitors all EIGRP packets and reports each time an EIGRP routing packet is sent or received by the router |
debug eigrp transmit | Tracks all EIGRP transmission events, such as ack, packetize, startup, peerdown, link, build, strange, sia, and detail |
debug eigrp fsm | Displays EIGRP DUAL algorithm functioning and the various stages involved in building the topology table |
Different types of EIGRP packets can be monitored using the debug eigrp packets command. Different EIGRP packets are Update, Request, Query, Reply, Hello, Ipxsap, Probe, Ack, Stub, SIAquery, and SIAreply. Each type of EIGRP packet can be monitored separately using the commands:
debug eigrp packets SIAquery: Monitors EIGRP SIA-Query packets
debug eigrp packets SIAreply: Monitors EIGRP SIA-Reply packets
debug eigrp packets ack: Monitors EIGRP ack packets
debug eigrp packets hello: Monitors EIGRP hello packets
debug eigrp packets ipxsap: Monitors EIGR ipxsap packets
debug eigrp packets probe: Monitors EIGRP probe packets
debug eigrp packets query: Monitors EIGRP query packets
debug eigrp packets reply: Monitors EIGRP reply packets
debug eigrp packets request: Monitors EIGRP request packets
debug eigrp packets retry: Monitors EIGRP retransmissions
debug eigrp packets stub: Monitors EIGRP stub packets
debug eigrp packets terse: Monitors all EIGRP packets except Hello packets
debug eigrp packets update: Monitors EIGRP update packets
debug eigrp packets verbose: Displays all EIGRP packets
Consider part of an EIGRP network showing routers B1, B2, B3, B4, B5, B6, and B7. The debug commands are issued at router B2. This scenario is depicted in Figure 8.2.
Figure 8.2: Part of an EIGRP network with debug commands at B2.
First, the debugging of EIGRP neighbor is carried out. We are considering a stable network. The B2#cle ip eigrp neighbors 172.18.1.52 command is issued to simulate the going down of one of the EIGRP networks. EIGRP neighbor debugging is
enabled with the B2#debug eigrp neighbors command. Listing 8.5 displays the output of the debug command as observed in B2.
Listing 8.5 Output of debug eigrp neighbors Command at B2
B2#cle ip eigrp neighbors 172.18.1.52 B2#debug eigrp neighbors 5w5d: EIGRP: Holdtime expired 5w5d: EIGRP: Neighbor 172.18.1.52 went down on Ethernet1 5w5d: EIGRP: New peer 172.18.1.52
Second, the EIGRP packets are debugged. Listing 8.6 displays the movement of EIGRP hello packets in particular across the EIGRP network, as observed at B2.
Listing 8.6 Output of debug eigrp packets hello Command at B2
B2#debug eigrp packets hello EIGRP Packets debugging is on (HELLO) 5w6d: EIGRP: Sending HELLO on Ethernet1 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Serial1 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Serial0 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Received HELLO on Serial1 nbr 172.18.45.10 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 5w6d: EIGRP: Received HELLO on Serial0 nbr 172.18.45.2 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 5w6d: EIGRP: Received HELLO on Ethernet1 nbr 172.18.1.52 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 1/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Ethernet1 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Serial1 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Serial0 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Received HELLO on Serial1 nbr 172.18.45.10 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 5w6d: EIGRP: Received HELLO on Serial0 nbr 172.18.45.2 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 5w6d: EIGRP: Received HELLO on Ethernet1 nbr 172.18.1.52 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Ethernet1 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Serial1 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 5w6d: EIGRP: Sending HELLO on Serial0 5w6d: AS 300, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0
All EIGRP transmission events are tracked across the EIGRP network, as displayed in Listing 8.7. The command clear ip eigrp 300 neighbors is used to trigger flow of transmission events.
Listing 8.7 Output of the debug eigrp transmit Command at B2
B2#debug eigrp transmit B2#clear ip eigrp 300 neighbors EIGRP Transmission Events debugging is on (ACK, PACKETIZE, STARTUP, PEERDOWN, LINK, BUILD, STRANGE, SIA, DETAIL) 5w5d: Peer 172.18.1.52 going down 5w5d: DNDB QUERY 192.9.201.0/24, serno 17692 to 17751, refcount 3 5w5d: Anchoring Serial1, starting Serial1 timer 5w5d: Anchoring Serial0, starting Serial0 timer 5w5d: Anchoring Ethernet1, starting Ethernet1 timer 5w5d: DNDB QUERY 192.9.212.0/24, serno 17714 to 17752, refcount 3 5w5d: DNDB QUERY 192.9.214.0/24, serno 17674 to 17753, refcount 3 5w5d: Last peer deleted from Ethernet1 5w5d: Dropping refcount on 192.9.201.0/24, refcount now 2 5w5d: Dropping refcount on 192.9.212.0/24, refcount now 2 5w5d: Peer 172.18.45.2 going down 5w5d: DNDB QUERY 172.18.6.0/24, serno 15520 to 17829, refcount 2 5w5d: Last peer deleted from Serial0 5w5d: Dropping refcount on 172.18.6.0/24, refcount now 1 5w5d: Peer 172.18.45.10 going down 5w5d: Last peer deleted from Serial1 5w5d: Dropping refcount on 172.18.6.0/24, refcount now 0 5w5d: Packetizing timer expired on Serial1 5w5d: Packetizing timer expired on Serial0 5w5d: Packetizing timer expired on Ethernet1 5w5d: New peer 172.18.45.2 on Serial0 5w5d: No IIDB anchor 5w5d: Packetized serno 1-15519 5w5d: New peer 172.18.45.10 on Serial1 5w5d: No IIDB anchor 5w5d: Packetized serno 1-15519 5w5d: Building STARTUP packet for 172.18.45.2, serno 1-15519 5w5d: Items: 1 15518 S15519 5w5d: Building STARTUP packet for 172.18.45.10, serno 1-15519 5w5d: Items: 1 S15518 15519 5w5d: DNDB UPDATE 172.18.9.0/24, serno 0 to 17830, refcount 2 5w5d: Anchoring Serial1, starting Serial1 timer 5w5d: Anchoring Serial0, starting Serial0 timer 5w5d: Packetizing timer expired on Serial1 5w5d: Packets pending on Serial1 5w5d: Intf Serial1 packetized UPDATE 17830-17830 5w5d: Interface is now quiescent 5w5d: Packetizing timer expired on Serial0 5w5d: Packets pending on Serial0 5w5d: Intf Serial0 packetized UPDATE 17830-17830 5w5d: Interface is now quiescent 5w5d: Building STARTUP packet for 172.18.45.2, serno 1-15519 5w5d: Items: 1 15518 S15519 5w5d: Building STARTUP packet for 172.18.45.10, serno 1-15519 5w5d: Items: 1 S15518 15519 5w5d: Packet acked from 172.18.45.10 (Serial1), serno 1-15519 5w5d: Startup update acked from 172.18.45.10, serno 1-15519, thread ends 15519 5w5d: Building MULTICAST UPDATE packet for Serial1, serno 17830-17830 5w5d: Items: U17830 5w5d: Packet acked from 172.18.45.10 (Serial1), serno 17830-17830 5w5d: Flow blocking cleared on Serial1 5w5d: Multicast acked from Serial1, serno 17830-17830 5w5d: Found serno 17830, refcount now 1 5w5d: New peer 172.18.1.52 on Ethernet1 5w5d: No IIDB anchor 5w5d: Packetized serno 1-17830 5w5d: Building STARTUP packet for 172.18.1.52, serno 1-17830 5w5d: Items: S1 15518 15519 17830 5w5d: DNDB UPDATE 172.18.6.0/24, serno 0 to 17831, refcount 3 5w5d: Anchoring Ethernet1, starting Ethernet1 timer 5w5d: Anchoring Serial0, starting Serial0 timer 5w5d: Anchoring Serial1, starting Serial1 timer 5w5d: Packetizing timer expired on Ethernet1 5w5d: Packets pending on Ethernet1 5w5d: Intf Ethernet1 packetized UPDATE 17831-17831 5w5d: Interface is now quiescent 5w5d: Packetizing timer expired on Serial0 5w5d: Packets pending on Serial0 5w5d: Interface not flow-ready 5w5d: Packetizing timer expired on Serial1 5w5d: Packets pending on Serial1 5w5d: Intf Serial1 packetized UPDATE 17831-17831 5w5d: Interface is now quiescent 5w5d: Building MULTICAST UPDATE packet for Ethernet1, serno 17831-17831 5w5d: Items: 17831 5w5d: Building MULTICAST UPDATE packet for Serial1, serno 17831-17831 5w5d: Items: 17831 5w5d: DNDB UPDATE 192.9.19.0/24, serno 0 to 17832, refcount 3 5w5d: Anchoring Serial1, starting Serial1 timer 5w5d: Anchoring Ethernet1, starting Ethernet1 timer 5w5d: DNDB UPDATE 192.9.214.0/24, serno 0 to 17833, refcount 3 5w5d: Packet acked from 172.18.45.10 (Serial1), serno 17831-17831 5w5d: Packets pending on Serial1 5w5d: Interface not flow-ready 5w5d: Flow blocking cleared on Serial1 5w5d: Multicast acked from Serial1, serno 17831-17831 5w5d: Found serno 17831, refcount now 2 5w5d: Packets pending on Serial1 5w5d: Intf Serial1 packetized UPDATE 17832-17857 5w5d: Interface is now quiescent 5w5d: Packetizing timer expired on Serial1 5w5d: Packetizing timer expired on Ethernet1 5w5d: Packets pending on Ethernet1 5w5d: Interface not flow-ready 5w5d: Building MULTICAST UPDATE packet for Serial1, serno 17832-17857 5w5d: Items: 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 1784 2 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 5w5d: Packet acked from 172.18.45.10 (Serial1), serno 17832-17857 5w5d: Flow blocking cleared on Serial1 5w5d: Multicast acked from Serial1, serno 17832-17857 5w5d: Found serno 17832, refcount now 2 5w5d: Found serno 17833, refcount now 2 5w5d: Building STARTUP packet for 172.18.1.52, serno 1-17830 5w5d: Items: S1 15518 15519 17830 5w5d: Packet acked from 172.18.1.52 (Ethernet1), serno 1-17830 5w5d: Startup update acked from 172.18.1.52, serno 1-17830, thread ends 17830 5w5d: Packets pending on Ethernet1 5w5d: Interface not flow-ready 5w5d: DNDB UPDATE 172.19.2.0/24, serno 0 to 17858, refcount 3 5w5d: Anchoring Serial1, starting Serial1 timer 5w5d: Building MULTICAST UPDATE packet for Ethernet1, serno 17831-17831 5w5d: Items: 17831 5w5d: Packetizing timer expired on Serial1 5w5d: Packets pending on Serial1 5w5d: Intf Serial1 packetized UPDATE 17858-17887 5w5d: Interface is now quiescent
Finally, Listing 8.8 displays the working of DUAL algorithm as captured by the debug eigrp fsm command. The command clear ip eigrp neighbors serial 1 is used to initiate some activity on the DUAL front.
Listing 8.8 Output of debug eigrp fsm Command at B2
B2#debug eigrp fsm B2#clear ip eigrp neighbors serial 1 EIGRP FSM Events/Actions debugging is on 5w5d: DUAL: linkdown: start - 172.18.45.10 via Serial1 5w5d: DUAL: Destination 192.9.201.0/24 5w5d: DUAL: Destination 192.9.212.0/24 5w5d: DUAL: Destination 192.9.214.0/24 5w5d: DUAL: Destination 172.16.46.0/30 5w5d: DUAL: Destination 172.16.46.4/30 5w5d: DUAL: Destination 172.16.46.8/30 5w5d: DUAL: Destination 172.18.9.0/24 5w5d: DUAL: Find FS for dest 172.18.9.0/24. FD is 2195456, RD is 2195456 5w5d: DUAL: 172.18.45.10 metric 4294967295/4294967295 not found Dmin is 4294 967295 5w5d: DUAL: Dest 172.18.9.0/24 entering active state. 5w5d: DUAL: Set reply-status table. Count is 2. 5w5d: DUAL: Not doing split horizon 5w5d: DUAL: Destination 172.18.6.0/24 5w5d: DUAL: linkdown: finish 5w5d: DUAL: dest(172.18.9.0/24) active 5w5d: DUAL: rcvreply: 172.18.9.0/24 via 172.18.45.2 metric 4294967295/4294967295 5w5d: DUAL: reply count is 2 5w5d: DUAL: Clearing handle 0, count now 1 5w5d: DUAL: Removing dest 172.18.9.0/24, nexthop 172.18.45.2 5w5d: DUAL: dest(172.18.9.0/24) active 5w5d: DUAL: rcvquery: 172.18.9.0/24 via 172.18.1.52 metric 4294967295/4294967295, RD is 4294967295 5w5d: DUAL: send REPLY(r1/n1) about 172.18.9.0/24 to 172.18.1.52 5w5d: DUAL: rcvreply: 172.18.9.0/24 via 172.18.1.52 metric 4294967295/4294967295 5w5d: DUAL: reply count is 1 5w5d: DUAL: Clearing handle 2, count now 0 5w5d: DUAL: Freeing reply status table 5w5d: DUAL: Find FS for dest 172.18.9.0/24. FD is 4294967295, RD is 4294967295 found 5w5d: DUAL: Removing dest 172.18.9.0/24, nexthop 172.18.45.10 5w5d: DUAL: Removing dest 172.18.9.0/24, nexthop 172.18.1.52 5w5d: DUAL: No routes. Flushing dest 172.18.9.0/24 5w5d: DUAL: dest(172.18.9.0/24) not active 5w5d: DUAL: rcvupdate: 172.18.9.0/24 via 172.18.45.10 metric 2195456/281600 5w5d: DUAL: Find FS for dest 172.18.9.0/24. FD is 4294967295, RD is 4294967295 found 5w5d: DUAL: RT installed 172.18.9.0/24 via 172.18.45.10 5w5d: DUAL: Send update about 172.18.9.0/24. Reason: metric chg 5w5d: DUAL: Send update about 172.18.9.0/24. Reason: new if