CCIE Notes: EIGRP

EIGRP Feature Summary

  • Transport: IP protocol 88.  EIGRP does not use TCP/UDP
  • Metric: Based on constructed bandwidth and delay by default.  Optionally, you can base it on Load, Reliability, and MTU.
  • Hello Timers: Default 5/15 on NBMA and>T1 60/180 seconds.  Used to determine when a neighboring router has failed (3x hello).  Timers do not need to match for routers to become adjacent.  The local router will use the neighbors’ timer settings.
  • Update Destination Address: 224.0.0.10 (All EIGRP routers multicast address); retransmissions are sent to adjacent neighbors’ neighboring IP addresses.
  • Full or Partial Updates: Full when neighbors first become adjacent, partial to already adjacent neighbors
  • Authentication: Supports MD5 with key-chains only
  • VLSM/Classless: Mask included with each route, allowing support for VLSM and discontinuous networks
  • Route Tags: Allows EIGRP to tag routes as they are redistributed into it
  • Next-Hop Field: Supports advertising of routes with a different next-hop IP address
  • Manual Route Summarization:  Done at any point in the EIGRP network
  • Multiprotocol Support: EIGRP supports IPX and Appletalk.  Neighborships always form regardless of link type
  • Must be in the same AS; otherwise, you must redistribute from one EIGRP AS to the other.
  • K values must match; the default is 010100, which matches bandwidth and delay.
  • Must believe that the source IP of a received hello is on that router’s primary connected interface (no standby or secondary addresses)
    • 10.1.1.1/30 –> 10.1.1.2/30, this would work, as they are on the same subnet
    • 10.1.2.1/24 –> 10.1.3.1/24 would not work as they are not on the same subnet

 EIGRP Updates

Once routers are adjacent, they can exchange EIGRP update messages, which follow;

  • Full updates are sent when routers first become adjacent.
  • Once adjacent, updates stop
  • Updates only occur with a routing table change
  • If the neighbor fails and recovers, the process starts over

EIGRP uses Reliable Transport Protocol (RTP) to send multicast EIGRP updates.  EIGRP sends updates and waits for a unicast ACK reply from the neighbor the update was sent.  If an ASK is not received in the Retransmission Timeout (RTO) time interval, the router will send a unicast update to that neighbor

EIGRP Message Summary

  • Hello: Identifies neighbors, exchanges parameters, and used for keepalives.
  • Update: Informs neighbors of routing changes
  • ACK: Acknowledges updates and queries
  • Query: Verify a neighbor route to a subnet
  • Reply: Sent by a neighbor in response to a query
  • Goodbye: Sent by a neighbor because of a graceful restart

The EIGRP Topology Table

There are three tables used in EIGRP

  • Neighbor Table: Keeps state information regarding neighbors
  • Topology Table: Update messages fill the topology table
  • IP Routing Table: The best routes from the topology table go to the IP routing table

An EIGRP router will calculate a metric based on the components of the metric.  When a neighboring router advertises a route, the updates include the metric component values for each route.  The router will use the received metric values and interface settings to calculate its metric for each route.  The default metrics are cumulative delay (in tens of microseconds) and constraining bandwidth in bits per second.  A router considers its interface delay as defined by the command.

R3(config)#interface fastethernet0/1
R3(config-if)#delay 1

So if we take the above and configure a delay of 1, it is 10 microseconds

A router can ejaculate the advertising neighbor metric for the Reported Distance (RD) route.  A router can also establish its metric for a route after adding its interface delay and considering whether it should adjust bandwidth constraints.  If we look at the image below, the steps are;

  • R1 advertises a route where bandwidth is 10,000, and the delay is 100
  • R2 calculates the RD for this route per the K values received.
  • R2 updates the topology table.  Then R2 adds 1ooo for delay (configured on R2). It also uses the new bandwidth because the received bandwidth is > the local bandwidth
  • R2’s update includes the cumulative delay and new constraining bandwidth.

Assuming the default K values, the metric calculation formula is:

Metric=256(107/Bandwidth)+256(delay)

  • Feasible Distance (FD): Best calculated metric across all possible routers to match a particular prefix
  • Successor Route: route with the best FD and is placed in the IP routing table

EIGRP Features Related to Convergence

  • Reported Distance (RD): The metric of a route as reported by the neighboring router
  • Feasible Distance (FD): The metric value for the lowest metric path to each subnet
  • Feasible Condition: When multiple routes to reach one subnet exist, in the case in which one route RD is lower than the FD
  • Feasible Successor (FS): This is not a successor route, but it meets the feasibility condition and can be used when a successor route fails without causing a routing loop.
  • Input Event: Any occurrence that can change the EIGRP topology table on a router
  • Local Computation: EIGRP’s response to an input event, leading to the use of a feasible successor route or going active for that route

For a failed route, local computation does the following;

  • If an FS route exists, actively query neighbors for a new route to be an FS route.  If one is found, it must meet the feasibility conditions
    • RD must be lower than the route’s current FD for the route in question.

Going Active on a Route

When no FS exists for a route, the router “goes active,” which means it is actively looking for a route to replace the lost route.  In an active state, the EIGRP router sends multicast messages to neighbors asking if they have a valid route to that subnet, and the neighbor will respond with a unicast yes or no.  If yes, the router updates his topology table and recalculates the metric.

The neighbors see this as an input event.  Each neighbor behaves in the following way to a query message;

  • If no topology table entry for that subnet exists, EIGRP replies with no route.
  • If the route’s successor for that subnet is unchanged or an FS is found, the neighbor sends a unicast reply with the details of the route.
  • If steps 1 and 2 fail or do not exist, the router becomes active and withdraws its EIGRP response to the original query until all its neighbors reply to his multicast messages.

Step 3’s logic can have a router be SIA or Stuck in Active because the querying process never completes.  Any router in an SIA state for a route must wait to reply to each of its query messages.  A router can wait several minutes because its neighbor might also go active for that route, each withdrawing its reply until it receives a reply from all the replies it sent out.

The active timer limits the amount of time a route can stay active.  If the active time expires before a router receives all replies, it is SIA.  You can disable the active timer with the following command.

R3(config)#router eigrp 100
R3(config-router)#timers active-time disabled
R3(config-router)#timers active-time ?
<1-65535> EIGRP active-state time limit in minutes
disabled disable EIGRP time limit for active state

You can also limit the query scope in one of two ways;

  • Route Summarization: Flapping or down routes in a summary address will not cause the whole summary to trigger an EIGRP update message; as long as one more specific route is still active, nothing will happen
  • Stub Routers: These are not transit routers, so active queries are not sent to them.  There are a few options for stub routers, and they are;
    1. Connected: Advertise connected routes only matched by an EIGRP network command
    2. Summary: Advertise automatic and manual summary routes
    3. Static: Advertise static routes only, assuming you are redistributing static into EIGRP
    4. Redistribute: Advertises only redistributed routes if redistribution is configured.
    5. Receive-Only: Do not advertise any routes; receive them.

Basic EIGRP Configuration

We want to accomplish the following

  • R1
    • Enable EIGRP on all interfaces
    • Configure K values to ignore bandwidth
    • Configure Interface FastEthernet0/1 to have a hello time of 3 and a dead time of 9
      R1(config)#router eigrp 56
      R1(config-router)#no auto-summary
      R1(config-router)#network 172.16.0.0 0.0.0.3
      R1(config-router)#network 192.168.1.0 0.0.0.255
      R1(config-router)#network 1.1.1.1 0.0.0.0
      R1(config-router)#metric weights 0 0 0 1 0 0
      R1(config-router)#exit
      R1(config)#int eth0/0
      R1(config-if)#ip hello-interval eigrp 56 3
      R1(config-if)#ip hold-time eigrp 56 9
      R1(config-if)#end
  • R2
    • Enable EIGRP on all interfaces.
    • Advertise the LAN subnet (Interface FastEthernet0/1) but do not attempt to advertise or receive an update on it
    • Only allow 75% of interface bandwidth for EIGRP updates.
      R2(config)#router eigrp 56
      R2(config-router)#no auto-summary
      R2(config-router)#network 172.16.0.0 0.0.0.3
      R2(config-router)#network 192.168.2.0 0.0.0.255
      R2(config-router)#network 2.2.2.2 0.0.0.0
      R2(config-router)#metric weights 0 0 0 1 0 0
      R2(config-router)#exit
      R2(config)#interface serial 1/0
      R2(config-if)#bandwidth 64
      R2(config-if)#ip bandwidth-percent eigrp 56 150

A LAN subnet might have a single router on it, so attempting to send/receive updates on it is unnecessary.  Passive interfaces stop hello’s, and no hello’s mean no neighborships are formed.

EIGRP Load Balancing

EIGRP allows six equal-cost paths for load balancing.  You can use the variance EIGRP sub-command.  The variance is multiplied by the lowest FD (metric of successor route).  If any other routers have a better or equal metric that is the product of variance x FD, the router routes are considered equal in cost and can be load balanced.

EIGRP Load Balance (Traffic-Share) Commands

  • Variance: Any FS route whose metric is equal to or less than the variance value multiples by the FD is added to the routing table
  • Maximum-Paths: Max paths to the destination; default is 4
  • Traffic-Share Balanced: Balances across routes, more packets given to lower metric routes
  • Traffic-Share Min: Although multiple routes are installed, only use the lowest metric route
  • Traffic-Share Balanced Across-Interfaces: If more paths exist than what was configured with the max-paths command, choose routes with different outgoing interfaces for better load balancing
  • No Traffic-Share Configured: Balance evenly, ignore EIGRP metric

EIGRP Route Filtering

This can be done inbound or outbound and is done with distribute lists.

In the example below, we want to remove route 172.16.55.0/24 from R1’s routing table.

2#show ip route eigrp
Codes: L - local, 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, + - replicated route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
D 1.1.1.1 [90/640000] via 172.16.0.1, 00:03:57, Serial1/0
172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
D 172.16.55.0/24 [90/640000] via 172.16.0.1, 00:00:52, Serial1/0
D 192.168.1.0/24 [90/537600] via 172.16.0.1, 00:01:34, Serial1/0
R2#
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#access-list 1 deny 172.16.55.0 0.0.0.255
R2(config)#access-list 1 permit any
R2(config)#router eigrp 56
R2(config-router)#distribute-list 1 in
R2(config-router)#end
*Mar 23 14:54:00.739: %DUAL-5-NBRCHANGE: EIGRP-IPv4 56: Neighbor 172.16.0.1 (Serial1/0) is resync: route configuration changed
R2#
R2#sh ip route eigrp
Codes: L - local, 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, + - replicated route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
D 1.1.1.1 [90/640000] via 172.16.0.1, 00:04:55, Serial1/0
D 192.168.1.0/24 [90/537600] via 172.16.0.1, 00:02:32, Serial1/0