Enhanced Interior Gateway Routing Protocol (EIGRP) is a routing protocol developed by Cisco.
This
article takes up the basics of its operation and configuration.
Introduction:
Enhanced Interior Gateway Routing Protocol (EIGRP) is an
Advanced Distance (distance vector) routing protocol (or hybrid depending on
the point of view). Although its overall
functioning resembles very much a protocol of the "distance vector"
type, it has a series of characteristics that one finds for example in OSPF
which is a "link state protocol" Such as the establishment of
adjacency relations.
Characteristics
- Supports the VLSM (Variable Length Subnet Mask), so it's a "classless" routing protocol.
- Operates on the basis of the DUAL algorithm for efficient selection of roads while avoiding loops.
- Adjacency relations with neighboring routers.
- Transmissions of messages in multicast (224.0.0.10) and unicast
- Supports several network layer protocols: IPv4, IPv6, AppleTalk, IPX, ...
- Load-balancing and especially on roads having different metrics.
- Summarization "anywhere on the network.
- "Auto-summarization", by default, between major networks (between two classfull networks).
- Message exchange between routers provided by RTP (Reliable Transfer Protocol).
- Metric taking into account the bandwidth and the delay of the interfaces. Other parameters can be configured in addition (reliability and load of the interface).
- Administrative distance for internal routes: 90 (default)
- Administrative distance for external routes: 170 (default)
Operation
First,
EIGRP operates on the basis of an Autonomous System Number ("ASN").
That
is, it can only communicate with routers where EIGRP is configured for the same
DSC.
Then, once it has
been activated on an interface, either dynamically or statically, EIGRP tries
to discover potential neighbors for it to send "HELLO" messages.
When
two routers receive HELLO messages from each other, they then check the
adjacency conditions to decide whether or not they will become EIGRP
(neighbors) neighbors.
For two routers to
become EIGRP neighbors they must fulfill the following conditions:
- Operate in the same AS (Autonomous System), so be configured with the same ASN.
- Both routers must be able to send and receive IP packets.
- The interfaces must be configured with an IP address in the same subnet.
- The interface must not be configured as passive.
- The values K (values that define the calculation of the metric) must match.
- EIGRP authentication (if configured) must be passed successfully.
If these different
conditions are verified, the two routers then consider themselves as neighbors
EIGRP, add this relation in their neighbor table, and start exchanging
information.
When a neighbor
relationship has been established, each router begins by sending all its known
routes for which it has an active interface AND configured in EIGRP. Subsequently, only changes
will be sent.
In order to
guarantee a certain stability, routers exchange HELLO messages permanently.
These
HELLO messages are sent at regular intervals and have a lifetime.
If
one of the two routers has not received a new HELLO before the previous one has
elapsed, the neighboring router is considered faulty, the adjacency is broken
and the routes received by that neighbor are removed from the routing.
Each router keeps
all the information about routes received from its neighbors in memory and
stores it in its topology table. EIGRP then uses the DUAL
algorithm to select the best route to each subnet, calculates the metric to be
associated with it, and places the result in its routing table.
The metric:
By default,
EIGRP calculates the metric of a subnet taking into account the bandwidth and
the delay of the interfaces. Other elements can be
configured to enter the calculation: the reliability of the interface and the
load of the interface.
The metric (with the
default parameters) is calculated as follows:
Metric = ((10,000,000 / PPBP) + S [delays]) x 256
PPBP: Smallest
bandwidth to subnet in kbps
S
[delays]: Sum of the delays of the interfaces towards the subnet expressed in
10 μs (ten μs)
"Feasible Distance" and "Reported
Distance" :
The
"Feasible Distance" (FD) is the metric for a subnet from the point of
view of the router itself, used to choose the best route to that subnet.
Reported Distance
(RD) is the metric for a subnet from the point of view of the neighboring
router. (The metric announced by the neighboring router).
When two routers
exchange their topology, they send "Update" messages containing a
series of information (concerned subnet, delay, bandwidth, interface load,
interface reliability, MTU and number of jumps ).
The router that
receives the information integrates it into its topology table and then
computes the RD of the subnet with this information and the FD for that subnet.
Here
is an example:
R1 is connected to
the 192.168.0.0 / 24 subnet via its FastEthernet0 / 0 interface
R1
and R2 are connected via their respective Serial 0/0 interfaces. (172.16.0.0
/ 30)
The
following diagram shows the update sent by R1 to R2 concerning its subnet
192.168.0.0
EIGRP TOPOLOGY |
"Successor"
and "Feasible Successor":
One of the special features of EIGRP is that it
maintains in its topology table all information received from its neighbors,
including routes that have not been integrated into the routing table.
This is where we meet the terms "Successor" and
"Feasible Successor".
When several possible routes exist, the "Successor"
is the route that has the smallest metric towards the subnet ... so that has
the smallest "Feasible Distance". The
router that announces this route will then be the next hop, the next jump to
this subnet. This route will be placed in the
routing table.
Under certain conditions, other routes may be considered
valid but not the best. These are the "Feasible
Successors". These routes are, in a default
configuration, not laced in the routing table. However,
if the current "Successor" were to fall, EIGRP would then directly
search for an alternative in its topology table among the "Feasible
Successors".
For a route to be considered as "Feasible
Successor", the RD of that route must be strictly lower than the FD of the
best route. Example: (the values FD and RD
are here simplified and not realistic in order to make understanding easier).
A router has, in its topology, three routes to subnet
192.168.0.0 / 24:
Route 1: via 10.0.0.1, RD = 1000, FD = 2000
Route 2: via 10.0.1.1, RD = 1500, FD = 2750
Route
3: via 10.0.2.1, RD = 2500, FD = 3000
Route 1 will be the "Successor", since it is the
smallest FD.
Route
2 will be a "Feasible Successor" because RD (route2)
Route
3 will not be a "Feasible
Successor", RD (cost3)> FD (route1)
What happens during an
accident on the network?
Of course, a router loses a connection for a reason
x or y. Whether it is because of a faulty interface, a neighbor who
no longer responds, ... EIGRP will try to find a solution ...
- EIGRP analyzes its topology. If one or more "Feasible Successor" exists, it replaces the route with that of the FS with the smallest FD.
- If EIGRP does not have an FS in its topology, it enters a query process. He sends queries to his neighbors in search of a new route to the lost subnet. These neighbors, if they have no immediate solution to propose, in turn send requests to their own neighbors ... etc.
In other words, the presence of an FS in the topology makes
it possible to improve substantially the convergence of the network.
Basic configuration
Let's move on to the basic configuration of EIGRP,
so we will:
- Configure EIGRP to work in an ASN. (Router eigrp )
- Enable EIGRP dynamically on the different interfaces of the router (network [inverse mask])
The example illustrated above is repeated here.
R1 connected to a subnet 192.168.0.0/24 via its interface Fa0
/ 0 (ip address 192.168.0.1 / 24), also connected to R2 via its interface S0 /
0 (ip address 172.16.0.1/30). R2 having its S0 / 0 interface
configured with an ip address 172.16.0.2/30.
R1> enable
R1 # configure terminal
R1 (config) #router eigrp 10
R1 (config-router) # network 192.168.0.0
R1 (config-router) # network 172.16.0.0 0.0.0.3
R1 (config-router) #exit
R1 (config) #exit
R1 #
On R2: R2> enable
R2 # configure terminal
R2 (config) #router eigrp 10
R2 (config-router) # network 172.16.0.0
R2 (config-router) #exit
R2 (config) #exit
R2 #
Some explanations…
Thus,
EIGRP has been activated here on both routers for ASN 10.
On
R1 the interface Fa0 / 0 and S0 / 0 have been activated via the network commands.
On
R2, EIGRP is enabled for the S0 / 0 interface.
Note the difference in use of the "network" command.
When specifying only the subnet (without inverse mask) EIGRP
will be enabled for all corresponding interfaces. So in
the case of "network 172.16.0.0" all interfaces whose IP address
would start with 172.16 .... Would be included.
On the other hand, if you specify a wildcard mask, EIGRP
compares each interface by applying the mask (as in the case of access-lists).
One can easily calculate the IP addresses that correspond to
unsubnet / inverse mask by a simple addition. For
example, in the case of "network 172.16.0.0 0.0.0.3":
172. 16. 0. 0
+ 0. 0. 0. 3
=================
172. 16. 0. 3
Therefore, all addresses between
172.16.0.0 and 172.16.0.3 will be taken into account.
Use of the inverse mask is optional. However,
this makes it possible to target the interfaces that one wishes to activate
without risk of encompassing one or the other for which EIGRP should not be
active.
EIGRP Operations Check:
The first thing to check is if EIGRP is working well with the command "show ip protocols"
R1 # sh ip protocols
Routing Protocol is " eigrp 10 "
Outgoing update filter for all interfaces is not set
Incoming update filter for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP metric weight K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0
EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: eigrp 10
EIGRP NSF-aware route hold timer is 240s
Automatic network summarization is in effect
Automatic address summarization:
192.168.0.0/24 for Serial0 / 0
172.16.0.0/16 for FastEthernet0 / 0
Summarizing with metric 2169856
Maximum path: 4
Routing for Networks:
172.16.0.0/30
192.168.0.0
Routing Information Sources:
Gateway Distance Last Update
(This router) 90 00:30:36
172.16.0.2 90 00:29:08
Distance: internal 90 external 170
R1 #
- It is therefore confirmed here that EIGRP is active and is configured for ASN 10.
- The second line highlighted is the K values which define the calculation parameters of the EIGRP metric. It is always useful to find them in the case of adjacency establishment problems (see the paragraph on condition for adjacency above).
- The third line in blue indicates that auto-summary is active (default). This makes EIGRP announce a summary of each classfull network (the few lines just below) since R1 is at the border of two major networks.
- The fourth colored part indicates for which subnets EIGRP was activated via the commands "network [inverse mask]"
- Finally, the last line gives the administrative distances used. Here are the default EIGRP values.
R1 # sh ip eigrp interfaces
IP-EIGRP interfaces for process 10
Xmit Queue Mean Pacing Time Multicast Pending
Peers Un Reliable SRTT Un / Reliable Flow Timer Routes
Fa0 / 0 0 0/0 0 0/10 0 0
Se0 / 0 1 0/0 83 0/15 0 0
R1 #
Step three, check the adjacencies via the command "show ip eigrp neighbors"
R1 # sh ip eigrp neighbors
IP-EIGRP neighbors for process 10
H Address Interface Hold Uptime SRTT RTO Q Seq
(Sec) (ms) Cnt Num
0 172.16.0.2 Se0 / 0 11 00:25:51 83 498 0 3
R1 #
We thus have here an adjacency with R2 (172.16.0.2).
We also find the interface via which the adjacency is formed.
The
"Hold" column indicates the lifetime of the last received Hello
message. If this value falls to zero, the adjacency is considered to
be faulty and is canceled.
R2 # sh ip route
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-IS-IS-IS-IS-IS-IS
Ia - IS-IS inter area, * - candidate default, U - per-user static route
O - ODR, P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/30 is subnetted, 1 subnets
C 172.16.0.0 is directly connected, Serial0 / 0
D 192.168.0.0/24 [90/2195456] via 172.16.0.1, 00:27:10, Serial0 / 0
R2 #
R2 has well learned a route for subnet 192.168.0.0/24.
The next-hop is 172.16.0.1. The
output interface is Serial0 / 0. The value [90/2195456] indicates
the administrative distance (90) and the metric for the road (2195456) which is
also the FD of the road.
R2 # sh ip eigrp topology
IP-EIGRP Topology Table for AS (10) / ID (172.16.0.2)
P - Passive, A - Active, U - Update, Q - Query, R - Reply,
P 192.168.0.0/24, 1 successors, FD is 2195456
Via 172.16.0.1 ( 2195456/281600 ), Serial0 / 0
P 172.16.0.0/30, 1 successors, FD is 2169856
Via Connected, Serial0 / 0
R2 #
The routes present in the routing table are found in the
topology table. Note that if there were
alternatives to these roads, so far as they were considered as feasible
successors, they would have appeared in this table.
The
values 2195456/281600 correspond to the RD (281600) and the FD (2195456) of
the road. This means that R1 has announced at R2 a route to
192.168.0.0/24 and that it has a metric of 281600 for that route.
Just check on R1 ...
R1 # sh ip eigrp topology
IP-EIGRP Topology Table for AS (10) / ID (192.168.0.1)
P - Passive, A - Active, U - Update, Q - Query, R - Reply,
P 192.168.0.0/24, 1 successors, FD is 281600
Via Connected, FastEthernet0 / 0
P 172.16.0.0/16, 1 successors, FD is 2169856
Via Summary (2169856/0), Null0
P 172.16.0.0/30, 1 successors, FD is 2169856
Via Connected, Serial0 / 0
R1 #
Indeed ... R1 does have a metric of 281600 to reach the
subnet 192.168.0.0/24. An interesting thing to note
here ... the presence of a summary (in green). Since
auto-summary is active by default and R1 is at the border of two major networks
(192.168.0.0 and 172.16.0.0), EIGRP creates a summary and announces it to its
neighbors.
We find this summary in the routing table of R1 ...
R1 # sh ip route
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-IS-IS-IS-IS-IS-IS
Ia - IS-IS inter area, * - candidate default, U - per-user static route
O - ODR, P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.0.0/30 is directly connected, Serial0 / 0
D 172.16.0.0/16 is a summary, 00:27:45, Null0
C 192.168.0.0/24 is directly connected, FastEthernet0 / 0
R1 #
This concludes this first article about EIGRP.