Lecture #9 - Enhanced Interior Gateway Routing Protocol (EIGRP)

A Cisco® proprietary routing protocol...

Before EIGRP there was IGRP!

Once upon a time, far far away...^A^KPrior to EIGRP, Cisco created the Interior Gateway Routing Protocol or IGRP. IGRP is a distance vector routing protocol, effectively being Cisco's propietary derivative of RIP. A single metric is used to compare routes, however unlike RIP this metric is calculated from several parameters (recall that RIP uses the single Hop Count metric).

IGRP has been discontinued and is no longer available in current versions of IOS. However, it is still interesting to us as it forms the basis for EIGRP. Also, legacy networks may still make use of IGRP (although one would hope that you never have to work with these!).

IGRP aimed to resolve some of the problems that exist with RIP, including:

  • Single hop-count based metric.
  • RIP cannot be used with networks that have more than 15 hops (due to our definition of infinity).
  • Reduce traffic and network overhead caused by routing protocol operation (RIP is very chatty!).

IGRP Metric

The IGRP metric is a composite of several measures which the system administrator can configure for each link:

IGRP Metric
Bandwidth (BW)
107 divided by the smallest assigned data rate in Kbps from all the outgoing interfaces along the path to the destination network.
Delay
The sum of all the outgoing delays along the path to the destination expressed in "tens of microseconds".
Reliability (Rel)
The reliability of the least reliable link in the path to the destination on a scale of 1...255 (where 255 equals 100%). Each router calculates a weighted 5 minute average.
Load
The load of the most heavily loaded link in the path to the destination on a scale of 1...255 (where 255 equals 100%). Each router calculates a weighted 5 minute average.
MTU
The smallest MTU (in bytes) in the path to the destination. Not actually used, but it is carried in update messages.

The default values for the coefficients are:

  • k1 = k3 = 1
  • k2 = k4 = k5 = 0

As a result, only Bandwidth and Delay affect the metric in the default configuration.

IGRP Process Domains

IGRP allows a network to be broken into administrative areas known as Process Domains. These areas may consist of one or more subnets (of the one network) or multiple networks. In other words, there may be one or multiple process domains within a single autonomous system.

Routers within each domain share routing information amongst themselves (like RIP does). However, routers do not normally share information between areas.

IGRP routes are classified into one of three types - interior routes, system routes or exterior routes. Interior routes are those to a subnet on the network to which the update is being broadcast. System routes are routes to network addresses, as summarised by a network boundary router. Exterior routes are routes to networks that have been marked as a default network - the equivalent to a default route if a more specific match is not found.

Routing between domains can be handled by sysadmins configuring default routes although this becomes an administrative nightmare for big networks.

Inter-area routing can also be handled by configuring routers to distribute routing information from other routing protocols (or processes). This information may be filtered to select only some of the available routes.

IGRP packets

Features of IGRP packets:

  • Like RIPv1 they have no subnet field, hence IGRP is a classful protocol.
  • Unlike RIP, they are directly carried in IP datagrams using a value of 0x09 in the IP protocol field.
  • The IP address field is only 3 bytes long. Some tricks are used to infer the missing byte. For interior routes, the first byte is assumed the same as the interface on which the update was received. For exterior and other routes, the last byte is assumed zero.

Processing Updates

Generally similar to RIP with the exception that updates are accepted only from within the IGRP Process Domain.

  1. If the destination network is unknown, install the route, providing the route is reachable.
  2. If the destination network is known and the new metric is smaller, install the new route.
  3. If the destination network is known, the new metric is larger and the next-hop is different, ignore the update.
  4. If the destination network is known, the new metric is larger and the next-hop is the same, update the metric.
  5. If the destination network is known, the new metric is the same and the next-hop is different, keep up to 6 paths for load balancing.

Managing Routing Updates

This is very similar to the process used by RIP - IGRP implements the same four timers, split horizon, poisoned reverse and triggered updates. However, IGRP default timers are significantly longer than those implemented by RIP:

  1. Update Timer - default of 90 seconds.
  2. Invalid Timer - default of 270 seconds.
  3. Hold Down Timer - default of 280 seconds.
  4. Flush Timer - default of 630 seconds.

This has the advantage of reducing the amount of traffic being generated by the routing protocol. However, it can significantly increase the convergence time for the network (ie. it takes three times as long for IGRP to detect a dead peer, than it does for RIP).

Default Interface Characteristics

In setting the path metrics, Cisco® have assigned default values for Bandwidth and Delay. These values may be overridden to coerce traffic to flow along particular circuits.

Media type Default Bandwidth Default Delay
Fast Ethernet 100Mbps 100μs
FDDI 100Mbps 100μs
HSSI 45045Kbps 20,000μs
Ethernet 10Mbps 1,000μs
T1 (serial) 1544Kbps 20,000μs
56Kbps serial 56Kbps 20,000μs

EIGRP Overview

EIGRP started as an attempt to make a classless version of EIGRP, however it ended up implementing a completely different set of algorithms, whilst retaining several of IGRP's features. EIGRP has been described as a distance vector protocol that acts like a link state protocol - it makes use of features from both designs...

Similarities with IGRP

  • Routing metric uses same rules, but the result is multiplied by 256, giving finer grained control.
  • EIGRP allows subdivision a network into smaller administrative areas by using multiple instances of a routing protocol on a router. Routing information is usually not shared between instances.

Differences

  • EIGRP keeps both a Routing Table and a Topology Table that contains a router's own knowledge of the network plus that of its immediate neighbours. This table doesn't have information about the complete network, unlike OSPF, which we meet later.
  • EIGRP sends messages to its neighbours only when something changes, not at regular intervals. It uses small HELLO packets to discover when a neighbour fails.
  • EIGRP uses reliable delivery to its neighbours.
  • Unlike IGRP, routing updates carry the subnet mask, thus making it a classless protocol.

Discovering Neighbours

Upon receiving a HELLO packet from a "new" neighbour, a router will reply with a copy of its topology table and an invitation to reply. The neighbour will then reply with its own topology table.

After that a router will periodically (typically every 5 seconds) send a HELLO packet advising that it is still alive and that it expects to send another packet within (typically) 15 seconds (normally three times the HELLO period).

If HELLO packets fail to arrive, the router assumes that the neighbour is dead and deletes the neighbour's routing information from its topology table.

EIGRP uses Reliable Transport Protocol (RTP) to perform reliable delivery of its topology table to its neighbours (a lot like TCP, using sequence numbers and numbered ACKs with timeouts). However unlike TCP, EIGRP insists on receiving an ACK from ALL of its neighbours before proceeding to send the next packet. This has obvous problems when a neighbour is overloaded or a link is flooded.

The topology table is carried in IP packets (protocol type 88 or 0x58) and multicast to address 224.0.0.10.

The ACKS are unicast back (specifically addressed) unreliably.

HELLO packets are multicast to 224.0.0.10 unreliably.

Routing Algorithm

EIGRP maintains both a Topology Table and a Routing Table.

The Topology Table contains knowledge about destinations known to the router and all its neighbours together with a routing metric for each destination.

A rather complicated algorithm, known as the Diffusing Update Algorithm or DUAL, is used to determine the best path to a destination. Diffusing computations are used to determine the shortest-path route in a distributed manner, whist avoiding routing loops. This path is installed in the Routing Table.

Routing Convergence

Backup routes may be held in the local topology table or may have to be acquired from neighbours (or even further afield). This has the potential to cause a storm of requests. (In "small" networks, the required backup route will often be found in the topology table, so a routing reconfiguration may be almost instantaneous unlike RIP or IGRP).

Convergence may be slow if there is a routing storm and/or some routers are slow to return ACKs.

Configuring EIGRP

(Commands entered in Configuration Mode:)

Configuring an Interface

R1(config)#
R1(config)#interface Ethernet0/0
R1(config-if)#ip address 192.168.1.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#bandwidth 1...10000000  Bandwidth in kilobits
R1(config-if)#delay     1...16777215  delay in tens of microseconds
R1(config-if)#exit
R1(config)#

Enabling Routing of IP

R1(config)#ip routing

Enabling Routing Protocol

R1(config)#
R1(config)#router eigrp 10               10 is the "process" number
R1(config-router)#network 192.168.1.0
R1(config-router)#network 192.168.4.0
R1(config-router)#exit
R1(config)#

Saving Configuration to NVRAM

copy running-config startup-config