Monday, November 10, 2014

EIGRP Overview

Back when I took my CCNA and subsequently my CCNP, I really liked working with EIGRP. I found it easier to configure and understand than OSPF, but still with a lot more stability and features than RIPv2. I haven't ever come across an installation where it was used in the real world, though, so my experience with EIGRP is only from the lab and a short period where I used it for my own routing protocol at home (with a DMVPN connection to a few other routers over the big web).

Cisco opened up the protocol to the public back in 2013 - but I haven't heard of any vendor supporting it yet. It was also not released in full - Cisco keeps all the fancy features locked up tight. I hope the protocol will gain some traction, but I do not think it is going to happen any time soon.

Quick sidenote: EIGRP got a "facelift" in IOS release 15.0(1)M and introduced a new cli structure for configuring EIGRP parameters. This new method was called "Named Mode" and the previous method of configuring EIGRP was retroactively renamed Classic Mode. The new Named Mode collects all the configuration elements of EIGRP under the process configuration - no more EIGRP interface sub-commands and stuff like that. I will have a separate post about the new Named Mode soon.

This is to be a (somewhat) quick overview of Cisco's routing protocol the Enhanced Interior Gateway Routing Protocol (EIGRP).
  • Classless distance vector routing protocol (sometimes referred to as a hybrid routing protocol)
  • Cisco proprietary
  • IETF Draft draft-savage-eigrp-02
  • Uses IP protocol 88
  • Sends Hello messages
    • Used to form neighbor adjacencies
    • Used as a keepalive between neighbors
    • Default Hello interval is 5 seconds
      • Default on slow (1544kbps and slower) NBMA link is 60 seconds
    • Hello messages are sent unreliably
  • Uses a Holddown timer
    • Default Holddown timer is set to 15 seconds
      • Default on slow NBMA link is 180 seconds
  • Sends partial and full updates
    • Updates are triggered
    • Uses reliable transport protocol (RTP)
  • Uses multicast address 224.0.0.10 for IPv4 and FF02::A for IPv6
    • Retransmissions are sent to each neighbor's unicast address
  • Default administrative distance
    • Internal: 90
    • External: 170
  • Uses a composite metric
    • Defaults to using bandwidth and delay to determine the best path
    • The composite metric can be weighted by tuning the K values 1 through 5
    • The K values must match on all routers
  • Supports a maximum hop count of 255 with the default set to 100
    • The hop count is mainly used as a loop-prevention mechanism
  • EIGRP defaults to using a maximum of 50% of the bandwidth on a link for exchanging hello and updates
    • This can be tuned using the interface level sub-command ip bandwidth-percent eigrp <as#> <seconds>
  • Supports authentication using MD5 (SHA is supported when using Named Mode)
  • Supports route tags
  • Supports next-hop advertisement
  • Supports manual route summarization in any arbitrary point in the network
  • Supports IPv4 and IPv6
  • Supports unequal cost load-sharing
  • Supports split-horizon with poison reverse
  • Uses Diffusing Update Algorithm (DUAL) to control diffusing computations of the topology
Things that have to match for adjacencies to form in EIGRP:
  • Authentication (if used)
  • K values
  • Autonomous System (AS) number
  • Primary addresses on interfaces configured in the same common subnet
The last item warrants a little more explanation and I have made a post that goes into more detail regarding this point here

The EIGRP composite metric is calculated using these five K values:
  1. Bandwidth
  2. Load
  3. Delay
  4. Reliability
  5. Maximum Transmission Unit (MTU)
By default, EIGRP uses only K values 1 and 3. This means that bandwidth and delay are the only values used in the composite metric. When manually tweaking EIGRP metrics it is recommended only to use the delay because the bandwidth is also used by other features such as QoS - whereas delay is only used by EIGRP.

EIGRP uses passive to show a route as stable and active to show a route that is in trouble - meaning a route that has been lost and it is now actively trying to find a new path to the network.

When a router loses reachability to a network it will send out queries to its adjacent neighbors to see if they have a path to the lost network. When this happens, the route is marked as active until replies are heard back from all the neighbors queried or the active timer runs out.
If a reply is not heard within 90 seconds, the local router will send an SIA-query (SIA meaning stuck-in-active) in an attempt to ascertain the reason for the missing reply - or more specifically, is the neighbor still working on the query request or did it not receive the initial query at all. Failure to respond to the SIA-query will result in the local router deleting routes through the non-responsive neighbor and resetting the adjacency. If the neighbor responds to the SIA-query, the active timer will be reset and another SIA-query will be sent again at half the active timer (90 seconds). This allows for an extension of the active timer if the reason behind the slowdown is the neighbors waiting for the active process to complete. A maximum of 3 SIA-queries will be sent before the neighbor adjacency will be reset.

EIGRP supports a graceful shutdown function, where the router sends a hello packet to its neighbor with all the K values set to 255. This happens when an interface running EIGRP is shutdown or the EIGRP process itself is shutdown. It enables the router to signal its neighbors to terminate the adjacency and allows the neighbors to initiate the process of finding an alternate route to the networks advertised by the router shutting down immediately instead of having to wait for the holddown timer to expire.

Below are a few nifty show commands for EIGRP.
The command show ip eigrp traffic gives a statistic of packets sent and received for the EIGRP proces.
The command show ip eigrp neighbors gives a view of the EIGRP adjacency table.
The command show ip route eigrp shows the EIGRP routes currently installed into the routing table.
The command show ip eigrp timers gives a view of the current hello and holddown timers for the EIGRP enabled interfaces.
The command show ip eigrp topology will show the EIGRP topology and will also display the EIGRP process router-id. With the keyword all-links it is possible to view the entire topology as advertised by neighbors (including feasible successor links).

No comments:

Post a Comment