EIGRP Configuration
EIGRP Fundamentals
- EIGRP uses protocol 89.
- EIGRP run in an autonomous system, this must be set in the config and match.
- EIGRP relies on Diffusing Update Algorithm – DUAL for loop free topology.
- EIGRP metric is calculated using a formula based on delay, BW, load and reliability (K values on must match).
- EIGRP support unequal load balancing.
EIGRP terminology
Using below topology, let’s go over the terminology.
Term | Definition |
---|---|
Successor Route | Best route with lowest metric |
Successor | The router which is next hop on best path, in this case R3 is successor. |
Feasible Distance | FD is the lowest metric, from R1 to 10.4.4.0/24, FD is 256 +256 +2816, so 3328. |
Reported Distance | Is the distance reported by a given router, R3 RD ti 10.4.4.0 is 256 + 2816, so 3072. And R4 RD is 2816. |
Feasibility Condition | Is when RD is lower than FD. R4 RD is 2816, which is less than FD of 3328. |
Feasible Successor | R4 is feasible successor or back up path, as RD is less than FD. |
EIGRP Configuration – Classic Method
Let’s start by configuring EIGRP between R1 and R2, where we will also include the respective loopbacks in the routing process.
######
R1
######
R1(config)#router eigrp 100
R1(config-router)#eigrp router-id 1.1.1.1
R1(config-router)#network 10.1.2.1 0.0.0.0
R1(config-router)#network 1.1.1.1 0.0.0.0
######
R2
######
R2(config)#router eigrp 100
R2(config-router)#eigrp router-id 2.2.2.2
R2(config-router)#network 10.1.2.2 0.0.0.0
R2(config-router)#network 2.2.2.2 0.0.0.0
Let’s check the following items:
- EIGRP adjacency
- EIGRP topology table
- EIGRP routing table
######
R1#sh ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 10.1.2.2 Gi0/0 10 02:03:15 18 108 0 4
#####################
R1#sh ip eigrp topology
EIGRP-IPv4 Topology Table for AS(100)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 10.1.2.0/24, 1 successors, FD is 2816
via Connected, GigabitEthernet0/0
P 2.2.2.2/32, 1 successors, FD is 130816
via 10.1.2.2 (130816/128256), GigabitEthernet0/0
P 1.1.1.1/32, 1 successors, FD is 128256
via Connected, Loopback0
######################
R1#sh ip route eigrp | b Gateway of last resort is not set
Gateway of last resort is not set
2.0.0.0/32 is subnetted, 1 subnets
D 2.2.2.2 [90/130816] via 10.1.2.2, 02:05:34, GigabitEthernet0/0
From the “show ip route eigrp”, we can validate the admin distance 90 and FD 130816.
D 2.2.2.2 [90/130816] via 10.1.2.2, 02:05:34, GigabitEthernet0/0
From running “show ip protocols”, let’s display added info related to eigrp, such as:
- K values for metric weights.
- Timers
- AS number
- Router ID
######
R1#sh ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is "application"
Sending updates every 0 seconds
Invalid after 0 seconds, hold down 0, flushed after 0
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Maximum path: 32
Routing for Networks:
Routing Information Sources:
Gateway Distance Last Update
Distance: (default is 4)
Routing Protocol is "eigrp 100"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP-IPv4 Protocol for AS(100)
Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
Soft SIA disabled
NSF-aware route hold timer is 240
Router-ID: 1.1.1.1
Topology : 0 (base)
Active Timer: 3 min
Distance: internal 90 external 170
Maximum path: 4
Maximum hopcount 100
Maximum metric variance 1
Automatic Summarization: disabled
Maximum path: 4
Routing for Networks:
1.1.1.1/32
10.1.2.1/32
Routing Information Sources:
Gateway Distance Last Update
10.1.2.2 90 02:02:52
Distance: internal 90 external 170
EIGRP Configuration – Named Method
In this section, we configure EIGRP between R1 and R4, where R4 is using named method.
######
R1
######
R1(config)#router eigrp 100
R1(config-router)#network 10.1.4.1 0.0.0.0
######
R2
######
R4(config)#router eigrp LAB1
R4(config-router)#address-family ipv4 unicast autonomous-system 100
R4(config-router-af)#network 0.0.0.0 255.255.255.255
R4(config-router-af)#eigrp router-id 4.4.4.4
Note 2 different lines introduced:
- We configured address family.
- I am adding all networks to the EIGRP process by using a loose network statement 0.0.0.0 255.255.255.255.
In this last step, we enable EIGRP on all remaining routers and links. From R6, we should be able to see all loopbacks and links in EIGRP routing table.
######
R1#sh ip route eigrp
Codes: L - local, 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, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
2.0.0.0/32 is subnetted, 1 subnets
D 2.2.2.2 [90/130816] via 10.1.2.2, 03:19:52, GigabitEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
D 3.3.3.3 [90/3104] via 10.1.2.2, 00:06:17, GigabitEthernet0/0
4.0.0.0/32 is subnetted, 1 subnets
D 4.4.4.4 [90/2848] via 10.1.4.4, 00:46:37, GigabitEthernet0/1
5.0.0.0/32 is subnetted, 1 subnets
D 5.5.5.5 [90/2848] via 10.1.5.5, 00:06:17, GigabitEthernet0/2
6.0.0.0/32 is subnetted, 1 subnets
D 6.6.6.6 [90/3104] via 10.1.5.5, 00:06:17, GigabitEthernet0/2
[90/3104] via 10.1.4.4, 00:06:17, GigabitEthernet0/1
10.0.0.0/8 is variably subnetted, 10 subnets, 2 masks
D 10.2.3.0/24 [90/3072] via 10.1.2.2, 00:18:49, GigabitEthernet0/0
D 10.3.6.0/24 [90/3328] via 10.1.5.5, 00:06:17, GigabitEthernet0/2
[90/3328] via 10.1.4.4, 00:06:17, GigabitEthernet0/1
[90/3328] via 10.1.2.2, 00:06:17, GigabitEthernet0/0
D 10.4.6.0/24 [90/3072] via 10.1.4.4, 00:06:17, GigabitEthernet0/1
D 10.5.6.0/24 [90/3072] via 10.1.5.5, 00:06:17, GigabitEthernet0/2
EIGRP Authentication
To configure authentication we take the following steps:
- Configure key chain
- add the ip authentication command under the target interface.
In next section we configure md5 authentication between R1 & R2.
R1(config)#key chain NL_LAB
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string CISCO
R1(config-keychain-key)#exit
R1(config-keychain)#exit
R1(config)#int gigabitEthernet 0/0
R1(config-if)#ip authentication key-chain eigrp 100 NL_LAB
R1(config-if)#ip authentication mode eigrp 100 md5
R1(config-if)#
The console log will straight away show the adjacency R1-R2 failed.
*May 3 14:00:29.684: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 10.1.2.2 (GigabitEthernet0/0) is down: authentication mode changed
I configured authentication on R2, but introduced a spelling mistake on the key chain. This does not matter, as long as the actual string matches on both sides.
EIGRP Route summarisation
Summarisation is often used to reduce the size of the routing table, which saves router resources. However, it can also lead to suboptimal routing, as specific routes are hidden.
For the example, we configure 3 new loopback on R6 and add them to EIGRP process.
interface Loopback1
ip address 172.16.1.1 255.255.255.0
!
interface Loopback2
ip address 172.16.2.1 255.255.255.0
!
interface Loopback3
ip address 172.16.3.1 255.255.255.0
These 3 subnets are then summarised in a larger 172.16.0.0/22 and advertised from R5, out of GE0/2.
Remember EIGRP configuration on R5 was named and not classic, therefore the summarisation will be added under address family, as per below.
R5(config)#router eigrp LAB1
R5(config-router)#address-family ipv4 autonomous-system 100
R5(config-router-af)#af-interface gigabitEthernet 0/2
R5(config-router-af-interface)#summary-address 172.16.1.0 255.255.252.0
If EIGRP was configured as classic mode, then the config added under the specific interface would be:
R5(config)#int gigabitEthernet 0/2
R5(config-if)#ip summary-address eigrp 100 172.16.1.0 255.255.252.0
How will summarisation impact R1 received routes ?
Before summarisation, R1 had routes for 172.16.x.0/24 received from both R5 and R4. However, once summarisation configured on R5, specific prefixes will be received from R4 and a summary from R5.
### Before ###
D 172.16.1.0 [90/3104] via 10.1.5.5, 00:00:53, GigabitEthernet0/2
[90/3104] via 10.1.4.4, 00:00:53, GigabitEthernet0/1
D 172.16.2.0 [90/3104] via 10.1.5.5, 00:00:38, GigabitEthernet0/2
[90/3104] via 10.1.4.4, 00:00:38, GigabitEthernet0/1
D 172.16.3.0 [90/3104] via 10.1.5.5, 00:00:19, GigabitEthernet0/2
[90/3104] via 10.1.4.4, 00:00:19, GigabitEthernet0/1
### After ###
R1#sh ip route eigrp | i 172.16
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
D 172.16.0.0/22 [90/3104] via 10.1.5.5, 00:11:20, GigabitEthernet0/2
D 172.16.1.0/24 [90/3104] via 10.1.4.4, 00:11:20, GigabitEthernet0/1
D 172.16.2.0/24 [90/3104] via 10.1.4.4, 00:11:20, GigabitEthernet0/1
D 172.16.3.0/24 [90/3104] via 10.1.4.4, 00:11:20, GigabitEthernet0/1
EIGRP Delay modification
Look at R1, we see 2 successors R4 and R5. R2 is however not listed, as its metric higher (3360). Drilling down into the below output, we can see the delay for the successor routers is 21ms, whereas for R2, it is 31ms.
In order to equalise the delay for all 3 routers, I chose to increase it for R5 and R4, so it ends up matching R2 and the metric calculation results in same metric value.
R1#sh ip eigrp topology 6.6.6.6/32
EIGRP-IPv4 Topology Entry for AS(100)/ID(1.1.1.1) for 6.6.6.6/32
State is Passive, Query origin flag is 1, 2 Successor(s), FD is 3104
Descriptor Blocks:
10.1.4.4 (GigabitEthernet0/1), from 10.1.4.4, Send flag is 0x0
Composite metric is (3104/2848), route is Internal
Vector metric:
Minimum bandwidth is 1000000 Kbit
Total delay is 21 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 6.6.6.6
10.1.5.5 (GigabitEthernet0/2), from 10.1.5.5, Send flag is 0x0
Composite metric is (3104/2848), route is Internal
Vector metric:
Minimum bandwidth is 1000000 Kbit
Total delay is 21 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 6.6.6.6
10.1.2.2 (GigabitEthernet0/0), from 10.1.2.2, Send flag is 0x0
Composite metric is (3360/3104), route is Internal
Vector metric:
Minimum bandwidth is 1000000 Kbit
Total delay is 31 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 3
Originating router is 6.6.6.6
In order to equalise the delay for all 3 routers, I chose to increase it for R5 and R4, so it ends up matching R2 and the metric calculation results in same metric value.
In this config, I will increase the delay on R1 under interfaces facing R5 and R4.
R1(config-if)#int gigabitEthernet 0/1
R1(config-if)#delay 2
!
R1(config-if)#int gigabitEthernet 0/2
R1(config-if)#delay 2
Adding delay from R4 and R5 means all paths have the same metric, and are therefore successors.
R1(config-if)#do sh ip eigrp topology 6.6.6.6/32
EIGRP-IPv4 Topology Entry for AS(100)/ID(1.1.1.1) for 6.6.6.6/32
State is Passive, Query origin flag is 1, 3 Successor(s), FD is 3104
Descriptor Blocks:
10.1.4.4 (GigabitEthernet0/1), from 10.1.4.4, Send flag is 0x0
Composite metric is (3360/2848), route is Internal
Vector metric:
Minimum bandwidth is 1000000 Kbit
Total delay is 31 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 6.6.6.6
10.1.5.5 (GigabitEthernet0/2), from 10.1.5.5, Send flag is 0x0
Composite metric is (3360/2848), route is Internal
Vector metric:
Minimum bandwidth is 1000000 Kbit
Total delay is 31 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 6.6.6.6
10.1.2.2 (GigabitEthernet0/0), from 10.1.2.2, Send flag is 0x0
Composite metric is (3360/3104), route is Internal
Vector metric:
Minimum bandwidth is 1000000 Kbit
Total delay is 31 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 3
Originating router is 6.6.6.6
#### IP ROUTE ###
R1#sh ip route 6.6.6.6
Routing entry for 6.6.6.6/32
Known via "eigrp 100", distance 90, metric 3360, type internal
Redistributing via eigrp 100
Last update from 10.1.2.2 on GigabitEthernet0/0, 00:01:26 ago
Routing Descriptor Blocks:
10.1.5.5, from 10.1.5.5, 00:01:26 ago, via GigabitEthernet0/2
Route metric is 3360, traffic share count is 1
Total delay is 32 microseconds, minimum bandwidth is 1000000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
* 10.1.4.4, from 10.1.4.4, 00:01:26 ago, via GigabitEthernet0/1
Route metric is 3360, traffic share count is 1
Total delay is 32 microseconds, minimum bandwidth is 1000000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
10.1.2.2, from 10.1.2.2, 00:01:26 ago, via GigabitEthernet0/0
Route metric is 3360, traffic share count is 1
Total delay is 32 microseconds, minimum bandwidth is 1000000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 3
EIGRP Distribute lists
One way to filter prefixes is to use distribute lists. The work flow is to:
- Set ip an access list or prefix list to match traffic.
- Apply distribute list reference the ACL or prefix list, either inbound or outbound, under the eigrp process.
In this section, we work on R1 and filter 6.6.6.6/32.
R1(config)#ip access-list stan FILTER_R6
R1(config-std-nacl)#deny host 6.6.6.6
R1(config-std-nacl)#ex
R1(config)#router eigrp 100
R1(config-router)#distribute-list FILTER_R6 in
R1#sh ip route 6.6.6.6
% Network not in table
R1#
EIGRP Offset lists
Offset lists are used to steer traffic by manipulating metrics for given prefixes. As oppose to distribute lists, offset lists are applied per interface, which gives us better control. The configuration consists in:
- Creating an ACL.
- Applying offset list referencing the ACL.
Let’s work on R5, where EIGRP config is named. We will target 10.2.3.0/24 which is load balancing over GE0/1 & GE0/2 (both paths have a metric of 20480).
Our configuration will increase metric for path over GE0/2, so we end up with one path only.
R5(config)#ip access-list standard R2_PATH
R5(config-std-nacl)#permit 10.2.3.0 0.0.0.255
R5(config-std-nacl)#ex
R5(config)#router eigrp LAB1
R5(config-router)#address-family ipv4 unicast autonomous-system 100
R5(config-router-af)#topology base
R5(config-router-af-topology)#offset-list R2_PATH in 30000 gigabitEthernet 0/2
EIGRP STUB
STUB network means no transit through this node. In EIGRP in particular, this design option is critical to reduce the query domain and stuck in active scenarios.
As per below topology, we add R7 and configure R6 as STUB router. The result will be that R6 does not advertise what it learns from R6 to remaining nodes, and vice versa.
R6(config)#router eigrp 100
R6(config-router)#eigrp stub ?
connected Do advertise connected routes
leak-map Allow dynamic prefixes based on the leak-map
receive-only Set receive only neighbor
redistributed Do advertise redistributed routes
static Do advertise static routes
summary Do advertise summary routes
R6(config-router)#eigrp stub
R7#sh ip route eigrp | b Gateway of last resort is not set
Gateway of last resort is not set
6.0.0.0/32 is subnetted, 1 subnets
D 6.6.6.6 [90/130816] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
D 10.3.6.0/24 [90/3072] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
D 10.4.6.0/24 [90/3072] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
D 10.5.6.0/24 [90/3072] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
172.16.0.0/24 is subnetted, 3 subnets
D 172.16.1.0 [90/130816] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
D 172.16.2.0 [90/130816] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
D 172.16.3.0 [90/130816] via 10.6.7.6, 00:09:45, GigabitEthernet0/3
If the keyword “summary” is added, then only summary routes are advertised, and will result in NO routes on R7.
R7#sh ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 10.6.7.6 Gi0/3 13 00:00:17 25 150 0 51
R7#
R7#
R7#sh ip route eigrp | b Gateway of last resort is not set
Gateway of last resort is not set
EIGRP Default route
To support R7 lack of full routes, a default route could be generated on R6 on GE0/3 facing R7.
R6(config)#router eigrp 100
R6(config-router)#eigrp stub ?
connected Do advertise connected routes
leak-map Allow dynamic prefixes based on the leak-map
redistributed Do advertise redistributed routes
static Do advertise static routes
R6(config-router)#eigrp stub summary
### SUMMARY address configured ###
R6(config-if)#ip summary-address eigrp 100 0.0.0.0/0
### Default route as EIGRP External is now on R7 ###
R7#sh ip route eigrp
Codes: L - local, 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, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is 10.6.7.6 to network 0.0.0.0
D* 0.0.0.0/0 [90/3072] via 10.6.7.6, 00:07:50, GigabitEthernet0/3
Leave A Comment