|
EIGRP
The Enhanced Interior Gateway Routing Protocol (EIGRP) is the
successor of IGRP, it is more scalable and offers faster convergence.
Unlike IGRP, EIGRP is a classless routing protocol, hence it
supports VLSM. It is developed by Cisco and is supported on
Cisco equipment only. In addition to IP, EIGRP can also be used
to route IPX and AppleTalk. In contrary to IGRP, EIGRP is consider
to be a hybrid routing protocol, because it has distance vector
as well as link-state characteristics. EIGRP is a distance vector
protocol with link-state characteristics, routing updates can
be partial, they do not need to contain the complete routing
table such as with RIP and IGRP. Also, updates are not send
periodically, but only when necessary, and only to those neighboring
routers that need to know. This results in low bandwidth and
CPU usage, and makes EIGRP a fast routing protocol suitable
for large networks. The maximum hopcount in EIGRP is 224. EIGRP
allows for secure routing updates using authentication, to prevent
unauthorized or false routing messages, although this is disabled
by default. EIGRP updates use the multicast address 224.0.0.10.
Besides maintaining a routing table, EIGRP maintains a topology
table based on the information it receives in hello packets,
and a neighbor table listing the directly connected neighbors.
The neighbors are discovered using hello packets, which
are send out periodically to check if the connection to the
neighbor is still available. EIGRP uses five packet types: Hello/Acks,
Updates, Queries, Replies, and Requests. When an EIGRP router
stops receiving hello packets from a neighbor for a configurable
amount of time, it will consider the router as unreachable.
The topology database will be searched for backup route known
as a feasible successor, if there isn't one, a multicast
will be send out to find a new route. If another router responds
with an alternative route, a change will be made to the topology
table and a new route will be added to the routing table.
EIGRP uses the Diffusing Update Algorithm (DUAL) for route calculation
and to prevent routing loops. The best route is determined based
on 2 metrics by default, bandwidth and delay, but others can
be used as well:
| bandwidth
|
Minimum
bandwidth of the route in kbps * 256 |
| delay |
Sum
of route delay (in tens of microseconds) * 256. |
| reliability |
The value 255 means 100 percent reliability; 0 means no
reliability. |
| load |
Effective
bandwidth of the route expressed as a number from 0 to
255 (255 is 100 percent loading). |
| MTU |
Maximum
transmission unit (MTU) size of the route in bytes. It
can be 0 or any positive integer. |
The formula used to calculate the composite metric
is: metric = [K1 * bandwidth + (K2 * bandwidth)
/ (256 - load) + K3 * delay] * [K5 / (reliability + K4)]
By default K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0. You can change
these values, and hence the outcome of the formula by using
the metric weights command in router
configuration mode: Router(config-router)#metric
weights tos k1 k2 k3 k4 k5
Tos is short for Type of Service and must be 0
(zero). Note that the default bandwidth for an interface is
T1 speed, you can change this by using the bandwidth
command in Interface Configuration mode.
To configure EIGRP on a router, use the following command:
Router(config)#router eigrp as-number
The as-number value is the
Autonomous System (AS), also known as domain
and process. This must be a positive decimal number.
Routes from routers in one AS are not injected into another
AS by default. Through a process called route tagging,
a router is able to be part of more than one AS, which for example,
can be used to route IPX and IP over the same network simultaneously.
If a route from one AS is injected into another AS using route
redistribution, the route will be tagged as external,
which influences the administrative distance. The administrative
distance for Internal EIGRP is 90 and for External EIGRP 170.
These default values can be changed by using the following command:
Router(config-router)#distance eigrp internal
external
The internal and external value can be an integer from 0 to
255, remember that routes with an administrative distance of
255 are marked unknown, and will not be used.
The network command is used to specify which networks are directly
connected to the router, and to allow the interface of this
network to be advertised in EIGRP routing updates. The following
is an example of a simple EIGRP configuration:
Router(config)#router eigrp 22
Router(config-router)#network 10.0.0.0
Router(config-router)#network 192.168.10.0
Optionally, since IOS 12.0, the network command supports a network
mask.
As mentioned earlier EIGRP sends routing updates to its neighbors
only. A system using hello packets is used to discover,
identify and built relationships with neighboring routers. The
hello packets are sent periodically to determine if a neighbor
(and its interfaces) is still available. The default hello packets
interval is 60 seconds for low-speed (bandwidth T1 or slower)
nonbroadcast multiaccess (NBMA) networks such as ATM and such
as multipoint Frame Relay, and 5 seconds for all other networks.
You can change the hello interval by using the following command
in interface configuration mode:
Router(config-if)#ip hello-interval eigrp
as-number seconds
After a hello packet is send, a router will wait until the hold
timer expires for a response before it considers a router to
be unreachable. The hold time default to 3 times the hello interval,
you can change this by using the following command in interface
configuration mode:
Router(config-if)ip hold-time eigrp as-number
seconds
EIGRP supports load balancing over unequal paths, this means
adding multiple primary routes for a single destination to the
routing table even if the metrics are not the equal. For example,
if you want to load balance between connection A and B, you
can use the variance command to allow
connection B to be included in the routing table as a feasible
route to the same destination, even if it has a greater metric
than connection A. Use the following command in router configuration
mode:
Router(config-router)#variance multiplier
The multiplier value can be a integer from 1-128, the default
is 1, which means equal-cost load balancing. If the value is
set to 3, routes with a metric with 3 times greater than the
local best metric are considered equal.
Another useful feature of EIGRP is automatic route summarization,
this summarizes subnets to the classful network boundary. This
is enabled by default, you can turn this off per AS by using
the following command in router configuration mode:
Router(config-router)#no
auto-summary
(and turn it on again with: Router(config-router)#auto-summary
)
EIGRP summary routes have an administrative distance value of
5.
You can also configure a summary aggregate address for a specific
interface by using the following command in Interface configuration
mode:
Router(config-if)#ip summary-address eigrp
as-number network-address subnet-mask [admin-distance]
Static routers and routes from other routing protocols such
as RIP, IGRP, and OSPF can be redistributed into the EIGRP Autonomous
System by using the redistribute command. For example if you
want to redistribute OSPF process 10 into EIGRP AS 20:
Router(config)#router eigrp 20
Router(config-router)#redistribute ospf 10
Router(config-router)#default-metric 10000 100 255 1 1500
The default-metric command is used
to configure a default metric for external routes being redistributed
into the AS. The syntax for EIGRP is: Router(config-router)#default-metric
bandwidth delay reliability loading mtu
IGRP routes can be automatically redistributed into EIGRP and
vice versa, as long as the autonomous system is the same.
Troubleshooting
First a very useful command which is often used to troubleshoot
routing, show ip protocols. Per routing
protocol and AS it displays the parameters such as the value
of the K0-K5 metrics, the networks involved, timers, hop count,
outgoing filters, redistributed networks and more. Use the command
in EXEC mode:
Router#show ip
protocols
To show all routes in the routing table, learned by EIGRP:
Router#show ip
route eigrp
Show all ip routes in the routing table by omitting the eigrp
option.
To display information about neighboring routers discovered
using hello packets, including the interface type and number,
the smooth round-trip timer (SRTT), and the hold time (the latter
can be used to determine the hello interval if it is not manually
configured), use the following command:
Router#show ip eigrp neighbors
The following command displays entries in the EIGRP topology
table:
Router#show ip eigrp topology
If the command is used without any options, only routes that
are feasible successors are displayed. The following command
would display only the active entries in the topology
table and less detailed:
Router#show ip eigrp topology active summary
You can also specify an IP address and subnet mask to display
a detailed description of the entry, for example:
Router#show ip eigrp topology 192.168.1.0
255.255.255.0
Shows the packet count for the five different types of EIGRP
packets sent and received.
Router#show ip eigrp traffic
Use the following command in EXEC mode to display information
about the interfaces configured with EIGRP. You can use this
to determine on which interfaces EIGRP is active, if you do
not specify an interface and/or AS, all interfaces running EIGRP
and/or from all ASs will be displayed.
Router#show ip eigrp interfaces [interface-type
interface-number] [as-number]
EIGRP References
- Introduction
to EIGRP
- Enhanced
Interior Gateway Routing Protocol white paper
- EIGRP
Commands
- Redistributing
Routing Protocols
|