- Protocol Attributes
- Packet Types
- Hello timers
- Metric calculation
- EIGRP reliability
- Initial route discovery
- EIGRP DUAL
- Configuring EIGRP on an IOS based router (Cisco)
- EIGRP Tables
- Configuration verification
- Route Queries
- Route Summarization
- Route Types
- Unequal-cost load balancing
- EIGRP stub routing
EIGRP is an advanced distance vector protocol. Advantages include the following:
- VLSM support
- Rapid convergence thanks to DUAL algorithm
- Low CPU utilization - with typically only hellos and partial updates being sent on a link
- Incremental updates
- Ease of configuration
- Automatic route summarization (which is not preferable), or manual route summarization
- MD5 route authentication
EIGRP uses IP protocol 88, It uses a multicast address of 184.108.40.206 for hellos and routing updates.
|Protocol Type||Distance vector|
|Algorithm||Diffusing Update Algorithm (DUAL)|
|Supported Protocols||IPv4, IPv6, IPX, Appletalk|
|Hello Timers||5 seconds (LAN), 60 seconds (WAN)|
|Hold Timers||15 seconds (LAN), 180 seconds (WAN)|
- Hello - Identifies neighbors and forms adjacencies, sent as periodic multicasts
- Update - Advertises routes, only sent when there is a change. It multicasts at 220.127.116.11 only when there is a change in link cost. When a new neighbour is discovered, an update packet is sent as a unicast.
- Ack - Acknowledges receipt of an update
- Query - Used to query routes from neighbors (multicast; unicast attempted up to 16 times if multicast gets no response)
- Reply - Used to answer a query (unicast)
The address used for hello packets is 18.104.22.168.
Hello timers are sent:
- Every 5 seconds on broadcast links and point-to-point serial links, point-to-point subinterfaces links, and multipoint circuits greater than T1.
- Every 60 seconds on other link types.
- The hold time default to 3 times the hello time.
- bandwidth - Defined as 107 divided by the speed of the slowest link in the path, in Kbps
- load - 8-bit value, not considered by default
- reliability - 8-bit value, not considered by default
- delay - constant value associated with interface type; EIGRP uses the sum of all delays in the path
K values are constants used to distribute weight to different path aspects.
- K1 = 1
- K2 = 0
- K3 = 1
- K4 = 0
- K5 = 0
K values can be manipulated by an administrator, but routers must have matching K values to become neighbors. Manipulation of the default K values is generally not recommended, as it may lead to unpredictable metric calculations.
Packets that require acknowledgment are as follows:
Packets that do not are as follows:
Neighbor reset after retry limit of 16 is reached. Slow neighbors are sent unicast packets instead.
Initial route discovery
Router discovery and route exchange happens simultaneously as follows:
- Router comes up and send hellos
- Reply from a neighbor includes update
- Ack packets are sent
- Update process occurs in the opposite direction
There are some parameters that must match for the routers to become adjacent:
- AS number
- Must believe that the source IP address of the hello packet is the primary IP address of the source interface, secondary IP addresses will not allow the adjacency to form.
- K values
I would like to clarify the third point more, the word primary is implied by ip address command on interface level that does not contain the keyword secondary.
Notice that the timers are not mandatory to be matched for the adjacency to form, yet it is very important to have all timers on all neighbors equal. The adjacency may be flapping if the timers do not match.
EIGRP conversion components
Advertised Distance (AD) is the metric as reported from the neighboring router; also referred to as Reported Distance (RD)
Feasible Distance (FD) is the metric of the nearest path (Best path)
Successor basically the best path
Feasible successor the path that is not a successor and meet the feasibility condition
Feasibility condition this condition must be met for a route to be considered feasible successor, when multiple paths to the same subnet exist and where the AD is lower than FD that path is said to be meeting the feasibility condition
All computations to calculate these component, are made by DUAL algorithm
The lowest-cost route is calculated by adding the cost between the next-hop router and the destination (advertised distance [AD]), and the cost between the local router and the next hop. This sum is referred to as the feasible distance (FD).
A successor is a neighboring router that the local router has selected to forward packets to the destination. Multiple successors can exist if they have equal-cost paths.
The next-hop router for a backup path is called the feasible successor. To qualify as a feasible successor, a next-hop router must have an AD less than the FD of the current successor route. More than one feasible successor can exist.
The feasible successor means that a new path can be selected without recalculation and is a major advantage in EIGRP for convergence.
Remember, EIGRP acts classful by default and automatically summarizes on major network boundaries. You typically want to disable this feature with the no auto-summary router configuration command as mentioned above.
Configuring EIGRP on an IOS based router (Cisco)
To enable EIGRP, use the following global configuration command:
router eigrp autonomous-system-number
To identify the interfaces participating in EIGRP, use the following router configuration command:
network network-number [wildcard-mask]
Using the default-network command
Using the default-network command, you can configure a default route for the EIGRP process so that it propagates to other EIGRP speakers within the same autonomous system. A router configured with the command considers the network listed in that command as the last-resort gateway. You should define the default route using a static route to ensure it is advertised
The neighbor table stores information about neighboring EIGRP routers:
- Network address (IP)
- Connected interface
- Holdtime - how long the router will wait to receive another HELLO before dropping the neighbor; default = 3 * hello timer
- Uptime - how long the neighborship has been established
- Sequence numbers
- Retransmission Timeout (RTO) - how long the router will wait for an ack before retransmitting the packet; calculated by SRTT
- Smooth Round Trip Time (SRTT) - time it takes for an ack to be received once a packet has been transmitted
- Queue count - number of packets waiting in queue; a high count indicates line congestion
The topology table holds all routes received from neighbors, is built from updates, calculated by DUAL, and contains all the information required to construct the EIGRP routing table.
It is so important to verify your configuration, a command that deserves some elaboration is the show ip eigrp topology. The codes in the output are as follows:
- Passive - This network is available, and installation can occur in the routing table
- Active - This network is currently unavailable
- Update (U) - Applies if a network is being updated (placed in an update packet); this code also applied if the router is waiting for an acknowledgment for this update packet.
- Query (Q) - Applied if an outstanding query packet exists for this network other than being in the active state; also applies if the router is waiting for an acknowledgment for a query packet.
- Reply (R) - Applies if the router is generating a reply for this network or is waiting for an acknowledgment for the reply packet.
- Stuck in active (SIA) status - Signifies an EIGRP convergence problem for the network with which it is associated.
When a router loses its successor and has no feasible successors (see DUAL), it will query all remaining neighbors for a new route. Queries are recursive and will be forwarded to other neighbors until either a route is found, or a summarization boundary is reached.
An EIGRP process is considered "stuck in active (SIA)" and must be reset when one or more queries to a neighbor do not return a route before the active timer expires (typically 3 minutes).
EIGRP performs auto-summarization by default. You can enable manual summarization. Keep the following in mind about manual summarization:
- Summarization is configurable on a per-interface basis in any router within the network
- When summarization is configured on an interfaces, the router immediately creates a route pointing to null0. This is a loop-prevention mechanism
- When the last specific route of the summary goes away, the summary is deleted
- The minimum metric of the specific routes is used as the metric of the summary route
Use the ip summary-address eigrp interface command to manually create a summary route at an arbitrary network boundary within an EIGRP domain.
Route types include:
- Internal - Paths directly within EIGRP
- Summary - Internal paths which have been summarized
- External - Routes redistributes into EIGRP
Unequal-cost load balancing
The degree to which EIGRP performs load balancing is controlled with the variance command.
You set the variance to a number from 1 to 128. The default is 1, which indicates equal-cost load balancing. The multiplier defines the range of metric values that are accepted for load balancing by the EIGRP process.
EIGRP stub routing
Often used in a hub-and-spoke topology. Only routes you specify are propagated from the stub router. The stub router responds to all queries with the message "inaccessible". A router that is configured as a stub sends a special peer information packet to all neighboring routers to report its status as a stub router. Non-stub routers do not query stub routers. The stub routing feature by itself does not prevent routes from being advertised to the stub router. You must configure the summarization or default route behavior. To configure the stub router, use the following router configuration command:
eigrp stub [receive-only | connected | static | summary]
The optional keywords with this command control which routes the router advertises to its non-stub peers.
receive-only is very dangerous, if you use it, your router will lose its adjacency with the neighboring router causing the link to disconnect.