EIGRP

toc

=Forming adjacencies=

Once EIGRP comes up, Hellos are sent. When neighbors see each other's hellos then they become adjacent if the following are met:


 * Authentication must pass
 * Must use the same AS number
 * Must believe the source IP of the hello is directly connected on the received interface (Must not be secondary)
 * K values must match

The hello messages also serve as a keepalive, and if hellos aren't received within the Hold Time interval, all routes for that neighbor are considered to have failed. Another interesting point to note is that neighbors use each others time values as exchanged in the Hello messages. These values do not need to match to form an adjacency.

=Exchanging Updates=

Updates follow the standard process:


 * 1) Initially, full updates are exchanged (All routes except those omitted due to split horizon)
 * 2) Once the updates are exchanged, they cease
 * 3) Partial updates are exchanged for future transactions when a route changes
 * 4) If a neighbor fails and recovers, full updates are again exchanged



EIGRP uses RTP to exchange updates. The sending routers requires that its updates are ACKd, and if it does not here an ACK from the initial multicast updates are resent to just that host in unicast. You can also use the //**#neighbor**// statement under eigrp to force it to send update in unicast the its neighbors, same as RIP.

=Topology Table=

EIGRP uses 3 tables to calculate routes: Neighbor Table, Topology Table, and the IP routing table. The neighbor table keeps only state information about the neighbors and this is whats displayed when running the //**>sh ip eigrp neighbors**// command. When a router receives an update from an EIGRP neighbor, the information from that updates populates the topology table. When these are populated, each router chooses the best route and adds them to the IP routing table. The **>sh ip eigrp topology** command is used to list the information in the topology table.


 * RD** = Reporting distance. The calculated metric for an advertising neighbors route.
 * FD** = Feasible distance. The best calculated metric among all possible routes for that prefix. The route with the best metric is called the successor route and is installed in the routing table. This is the metric that shows up in the **>sh ip route** command output.

=Convergence=



When a route failure occurs, the router has two options (Local computation):


 * 1) If a FS route exists, it chooses that route and installs it as a replacement into the routing table.
 * 2) If no FS route exists, the router will actively query its neighbor to provide a replacement route. This is done via a multicast EIGRP query. The neighbors will respond if they do, or do not have a route. If there is no route, the queried router will withhold response and query its neighbors to see if a replacement route exists. This can cause routers to wait a significant amount of time for replies, called "stuck-in-active". There is a timer to resolve this edge case, but it can be disabled with the //**#timers active-time disabled**// command. If an active query reaches a router that has a summarized version of the request route, it will immediately reply that it does not have a route to the subnet. Routers will also not send active queries to stub routers.

=Configuration=

To configure metrics: //**#metric weights 0 0 0 1 0 0**// Advertising a network: //**#network **// Changing bandwidth allowed for eigrp: //**#ip bandwidth-percent eigrp 1 150**// Setting a passive interface: //**#passive-interface Fa0/1**// Changing the hello interval: //**#ip hello-interval eigrp **// Configuring a stub router: //**#eigrp stub **// (Options below, connected and summary are default)

The delay metric is determined by the delay interface subcommand with is recored in units of microseconds

=Load Balancing=

EIGRP allows up to 6 equal cost routes to be installed into the routing table. The //**#variance **// command can be used to allow other routes closely matching the best route to also be considered equal. Any routes that have a metric better than //variance * FD// are considered equal and installed into the routing table. EIGRP will only allow routes that are FS routes to be installed as a result of the variance command.

The following commands can be used (under //**#router eigrp**//) to affect load balancing.

=Similarities to RIP=

The following aspects of EIGRP can be considered and configured the same as or similar to RIP:


 * Authentication
 * Route Filtering - The one difference here is that an incoming route filter will prevent information from entering the topology table instead of the routing table.
 * Offset Lists - Affects the delay metric
 * Auto-summarization
 * Split Horizon
 * Clearing Route tables - #clear ip route *, #clear ip eigrp neighbors

=Metrics=

EIGRP normally uses the bandwidth and delay for calculating the total cost to a route. The total cost is calculated by scaling the bandwidth and delay according to the following formulas:

bandwidth = (10000000/bandwidth(i)) * 256 where bandwidth(i) is the least bandwidth of all outgoing interfaces on the route to the destination network represented in kilobits.

delay = delay(i) * 256 where delay(i) is the sum of the delays configured on the interfaces, on the route to the destination network, in tens of microseconds.

The metric is then calculated with the formula: metric = [K1 * bandwidth + (K2 * bandwidth) / (256 - load) + K3 * delay] * [K5 / (reliability + K4)]

K1 and K3 are the only value set, and default to 1.

K1 = Bandwidth K2 = Load K3 = Delay K4 = Reliability K5 = MTU

=Bandwidth pacing = 

The bandwidth that eigrp can use can be restricted with the interface command //**#ip bandwidth-percent eigrp**//