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.

EIGRP feasible distance
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.

EIGRP-Configuration
######
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:

  1. We configured address family.
  2. 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:

  1. Configure key chain
  2. 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:

  1. Set ip an access list or prefix list to match traffic.
  2. 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:

  1. Creating an ACL.
  2. 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.

EIGRP STUB
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