CCNP 300-101 Route (EIGRP)

EIGRP (Intro)

  • Distance vector protocol
  • Route summarization can happen at any point along the network (unlike OSPF ABR, ASBR)
  • Does not keep link state information about every router
  • Each router shares its own routes with adjacent neighbors
  • Communicate using IP protocol 88
  • Multicast 224.0.0.10
  • AS number is globally significant (routers must have same AS to form neighbor)
  • Reliable Transport Protocol (RTP) ensures packets are sent in-order
  • Internal
    Originate from within the EIGRP AS. Administrative distance of 90
  • External
    Redistributed into the EIGRP AS. Administrative distance of 170
  • EIGRP will not send a classful summary route to a neighbor who is advertising a subnet of that major network. (Similar to split-horizon to avoid routing loops)
  • Manual summarization is done on each specific interface

EIGRP (Packet types)

  • Hello
    Used to discover neighbors
    Unreliably multicast every 5 seconds (Most network types)
    Unicast every 60 seconds (NBMA networks)
    Include a hold-time which tells the receiving neighbor how often to expect Hello messages
    Defaults to 3x the Hello internal
    180 seconds on NBMA networks (60×3 = 180 sec)
    15 seconds on other network types (5×3 = 15 sec)
  • Update
    Convey routing prefix and metric information
    Non-periodic (not sent at defined intervals)
    Partial (only changed routing information is sent)
    Bounded (only routers that need routing updates receive them)
  • Acknowledgement
    Really just unicast Hello packets
    Used to confirm receipt of a reliably transmitted packets
  • Query
    Diffusing Update Algorithm (DUAL)
    Active Timer
    When a Query is sent to a neighbor, that neighbor has 3 minutes to reply
    A route is in the active state while the cost is being computed
    A route is in the passive state once the DUAL algorithm has converged on a final cost metric
  • Reply

EIGRP (DUAL vs Dijkstra)

  • Dual (EIGRP)
    Only knows about adjacent neighbor’s routes
    Potential for outing loops!
  • Dijkstra (OSPF)
    Knows about every link state in the routing domain
    Easily avoid routing loops

EIGRP (Dual Terms)

  • Successor
    The router with the lowest cost to a prefix is the successor or next hop
  • Feasible successor
    Other routers with a loop-free path to the prefix are feasible successors
  • Advertised distance
  • Feasibility condition

EIGRP (Passive vs Active)

  • Passive
    Passive routes have a successor. Done with calculation
  • Active
    Active routes do not have a successor. Still actively calculating successor.

EIGRP (Metrics)

  • Bandwidth (K1, K2)
  • Delay (K3)
  • Reliability (K4, K5)

EIGRP (Metric: Bandwidth)

  • Bandwidth is measured in kbps
  • Simplified formula with K values in default. 256 x (bandwidth + delay)
    e.g. 1.544Mbps = 1544 kbps
  • Greater the bandwidth, lower the metric
    (Lower the bandwidth, greater the metric)

 

EIGRP (Metric: Delay)

  • Divide the delay by 10
  • Delay is the cumulative delay measured in tens of microseconds

EIGRP (Metric: Load & Reliability)

Load

  • Between 1 and 255
  • Higher load = higher metric
  • Lower load = lower metric

Reliability

  • Between 1 and 255
  • Higher reliability = lower metric
  • Lower reliability = higher metric

 

EIGRP (Neighbor Adjacency)

Customer Request:

  • Establish adjacencies for EIGRP AS 10 according to the IPv4 network topology diagram
  • Ensure R3 & R4 do not inadvertently establish an EIGRP adjacency with any other routers due to a misconfigured network statement
  • Do not configure authentication on any routers
  • Ensure R3 does not use more than 20% of the available bandwidth on the interface to R6 for EIGRP traffic
R3(config)#router eigrp 10
R3(config-router)#passive-interface default
R3(config-router)#no passive-interface fa1/0
R3(config-router)#network 10.0.36.0 0.0.0.7
R3(config-router)#int fa1/0
R3(config-if)#ip bandwidth-percent eigrp 10 20
R3#show ip eigrp int detail
R4(config)#router eigrp 10
R4(config-router)#passive-interface default
R4(config-router)#no passive-interface fa1/0
R4(config-router)#network 10.0.45.0 0.0.0.7
R6(config)#router eigrp 10
R6(config-router)#network 10.0.36.0
### Verify
#show ip eigrp topology

### debug
#debug eigrp packets query detail reply detail

 

EIGRP (Pasive Interfaces)

  • Prevent adjacencies from being established even if interfaces are covered by a network statement
  • No advertisements are sent over passive interfaces
  • All interfaces can be configured to be passive by default, and exceptions can be made for individual interfaces.
R9(config)#router eigrp 100
R9(config-router)#passive-interface default
R9(config-router)#no passive-interface s1/1

EIGRP (usec)

Delay in Microseconds

R6#show int fa0/0

EIGRP (Message Authentication)

Customer Request:

  • Configure R5 & R6 not to accept EIGRP updates from one another without proper message authentication
  • Use “cisco” as the sole authentication key
R5(config)#key chain KC_EIGRP
R5(config-keychain)#key 1
R5(config-keychain-key)#key-string cisco
R5(config-keychain-key)#cryptographic-algorithm md5
R5(config-keychain-key)#int fa0/0
R5(config-if)#ip authentication key-chain eigrp 10 KC_EIGRP
R5(config-if)#ip authentication mode eigrp 10 md5
R6(config)#key chain KC_EIGRP
R6(config-keychain)#key 1
R6(config-keychain-key)#key-string cisco
R6(config-keychain-key)#cryptographic-algorithm md5
R6(config-keychain-key)#int fa0/0
R6(config-if)#ip authentication key-chain eigrp 10 KC_EIGRP
R6(config-if)#ip authentication mode eigrp 10 md5

### verify whether interface is using authentication

R5#show ip eigrp int detail fa0/0

EIGRP (Stubs)

  • SIA (Stuck in Active)
  • When a route goes active, queries are sent to neighbors. If the active timer expires before all replies are received, the route becomes SIA (Stuck in Active)
  • Adjacencies with neighbors that did not respond are reset
  • EIGRP stubs are designed to avoid routes getting Stuck in Active (SIA)

EIGRP (Stub Options)

  • Summary route
  • Static route
  • Leak-map

Customer Request:

  • On R5, configure Loopback 0 with the address 5.5.5.5/24 and redistribute this prefix into EIGRP
  • Configure R5 to advertise only connected and summary routes into EIGRP
  • Configure R5 to receive but not advertise any routes
  • Remove the stub configuration from R5
R5(config-if)#ip address 5.5.5.5 255.255.255.0
R5(config)#router eigrp 10
R5(config-router)#redistribute connected 
### loopback is also connected int
R5(config)#router eigrp 10
R5(config-router)#eigrp stub
### R5 became stub. R4 no longer able to reach 10.0.36.0/29
### R4 able to reach R5's directly connected routes
R5(config)#router eigrp 10
R5(config-router)#eigrp stub receive-only
### R5 only receive and knows all routes. R4 no longer able to reach any where
R5(config)#router eigrp 10
R5(config-router)#no eigrp stub
### R4 able to reach everywhere just like before R5 became stub

 

EIGRP (Auto Summarization)

  • Automatically summarizes networks along classful boundaries
  • Auto summarization is disabled by default as of iOS version 15.01

Customer Request:

  • Create and advertise the following loopbacks on R6
    Loopback0 6.6.6.6/32
    Loopback1 6.0.0.1/32
    Loopback2 6.0.0.2/32
  • Ensure R6 automatically summarizes networks to their classful boundaries
R6#show ip protocols
R6#show ip protocols | b eigrp
### verify that Automatic summarization is disabled

R6#show ip eigrp int
### verify that loopbacks are advertised
R6(config)#router eigrp 10
R6(config-router)#auto-summary
R6#show ip route
### verify that Automatic summarization is enabled. 6.0.0.0/8 Null0 (black hole)

R6#show ip protocols | b eigrp
### verify that Automatic summarization is enabled

EIGRP (Manual summarization & Leak Maps)

Customer Request:

  • Configure and advertise the following loopbacks on R5
    Loopback0 5.5.5.5/32
    Loopback1 5.0.0.1/32
    Loopback2 5.0.0.2/32
    Loopback3 5.0.0.3/32
  • Configure R5 to advertise a classful summary for its loopbacks to R4 only
  • Ensure the 5.5.5.5/32 prefix is the only component route advertised to R4
R5(config-if)#ip address 5.5.5.5 255.255.255.255
R5(config)#router eigrp 10
R5(config-router)#network 5.0.0.0

R5(config-router)#do show cdp neighbors
R5(config-router)#int fa0/1
R5(config-if)#ip summary-address eigrp 10 5.0.0.0 255.0.0.0 leak-map RM_LEAK5
### Create manual summary and advertise via eigrp 10 on this interface

R5(config)#route-map RM_LEAK5 permit 10
R5(config-route-map)#match ip address 5
R5(config)#access-list 5 permit 5.5.5.5 0.0.0.0
### Create the Route-Map RM_LEAK5

Verify on R4 that 5.5.5.5/32 component route is advertised

R4#show ip eigrp topology
### 5.5.5.5/32 is leaked

EIGRP (traffic)

  • In a stable EIGRP topology, these numbers should not be changing much.
  • EIGRP updates are non-periodic, partial & bounded (only changes are updated)

EIGRP (Leak Maps)

How to configure a leak map

R9(config)#access-list 10 permit x.x.x /24
R9(config)#route-map RM_LEAKMAP permit 10
R9(config-route-map)#match ip address 10

Leak Map with a Manual Summary

R9(config)#int fa0/0
R9(config-if)#ip summary-address eigrp 10 10.0.0.0 255.0.0.0 leak-map RM_LEAKMAP

Leak Map with Stub

R9(config)#router eigrp 10
R9(config-router)#eigrp stub leak-map RM_LEAKMAP

*Note
A leak map configured on a summary will not be leaked if the router is an EIGRP stub. Only the summary is advertised. 

Key points so far

  • EIGRP routers need to be in the same AS
  • The network statement can be classful or classless
  • Network statement controls
    -what interface to establish an adjacency on
    -What interface to advertise out of
    -What connected prefixes to advertise
  • The passive-interface command does not prevent the associated interface’s IP prefix from being advertised (if covered by network statement)
  • The Q counts should be zero most of the time in a stable network
  • EIGRP message authentication uses a key chain for storing authentication key.
  • The key IDs and passwords must match on both routers
  • Stub router can be configured to advertise connected, summary, static, redistributed or leaked routes
  • Auto summarization feature summarizes routes along classful boundaries (global config)
  • Manual summarization is configured per-interface and can be classless 

Route Redistribution: EIGRP, OSPF & RIP

  • Mutual route redistribution
  • EIGRP -> OSPF
  • OSPF -> EIGRP
  • Redistribution loops
  • RIP -> EIGRP

Mutual route redistribution

  • Each router keeps track of what it has redistributed
  • Split horizon prevents an EIGRP-learned route from being advertised back into EIGRP

Redistributing EIGRP into OSPF

Customer Request:

  • On R3 & R4, redistribute all routes from EIGRP AS 10 into OSPF as E1 routes
  • Tag redistributed routes as follows:
    R3 should tag all routes with 3333
    R4 should tag all routes with 4444
R3(config)#router ospf 1
R3(config-router)#redistribute eigrp 10 metric-type 1 tag 3333
R3#show ip protocol | b ospf
### Verify on R3 that routes are redistributed from EIGRP to OSPF

R2#show ip route 6.6.6.6
R2#show ip ospf database
R2#show ip ospf database adv-router 3.3.3.3
### Verify on R2

R4(config)#router ospf 1
R4(config-router)#redistribute eigrp 10 metric-type 1 tag 4444
R4#show ip protocol
### Verify on R4 that routes are redistributed from EIGRP to OSPF

Route tag

  • Numberic value advertised with routes independently of the interior gateway protocol (IGP)
  • Can be used to mark where a route was redistributed
  • Can be matched on in route maps
R2#show ip route tag 3333
### Verify using route tag xxxx
R2#show ip ospf database external adv-router 3.3.3.3
### Verify using ospf database external xxxx

Redistributing OSPF into EIGRP

Customer Request:

  • Redistribute OSPF into EIGRP AS 10
  • EIGRP metrics for redistributed routes should be derived from the interfaces leading to OSPF area 0
  • Ensure R3 & R4 tag all redistributed routes with 333310 and 444410 respectively
R3(config)#router eigrp 10
R3(config-router)#redistribute ospf 1 metric 100000 10 255 1 1500 route-map RM_TAG
### EIGRP delay metric in 10 microsecond so divide 100 by 10=10.
R3(config)#route-map RM_TAG permit 10
R3(config-route-map)#set tag 333310
R4(config)#router eigrp 10
R4(config-router)#redistribute ospf 1 metric 100000 10 255 1 1500 route-map RM_TAG
### EIGRP delay metric in 10 microsecond so divide 100 by 10=10.
R4(config)#route-map RM_TAG permit 10
R4(config-route-map)#set tag 444410

Redistribution Loops

Customer Request:

  • R5 is taking a suboptimal route to R1 1.1.1.1
  • Ensure R5 takes the shortest path to R1 1.1.1.1
  • Do not create or modify any static or default routes
R3#show ip route 1.1.1.1
### Find out how R3 gets to 1.1.1.1 (look for specific prefix not summary route)
R4#traceroute 1.0.0.0
### Evidence of routing loop!

Redistributing RIP into EIGRP

R4(config)#router eigrp 10
R4(config-router)#redistribute rip metric 100000 10 255 1 1500
R4(config-router)#do clear ip route *
### Clear routing table 

Redistributing RIP into OSPF

R4(config-router)#router ospf 1
R4(config-router)#redistribute rip subnets
R4(config-router)#do clear ip route *
### Clear routing table

Note

  • Route tags are numeric values attached to routes and are independent of IGPs
  • When redistributing into EIGRP, you must provide bandwidth, delay, reliability, load & MTU

Manipulating Traffic Flow

Customer Request:

  • Configure R6 to perform load sharing across R3 & R5
  • Do not modify any EIGRP metrics
  • Do not modify the configuration on any router except R6
R6(config)#router eigrp 10
R6(config-router)#variance 2
R6#show ip protocols
R6#show ip eigrp topology

Customer Request:

  • Disable auto summarization on R6
  • On R4 & R6, create the loopback 46 interface with IP 46.46.46.46/32
  • Advertise this prefix into EIGRP
  • Verify R5 uses equal cost load sharing to reach this prefix via both R4 & R6

Anycast Address

  • Will exist on and be advertised by both R4 & R6
  • R5 should have two equal cost path to 46.46.46.46/32 prefix
R6(config)#router eigrp 10
R6(config-router)#no auto-summary
R6(config-router)#int loop 46
R6(config-if)#ip address 46.46.46.46 255.255.255.255
R6(config-if)#router eigrp 10
R6(config-router)#network 46.46.46.46 0.0.0.0
R4(config)#int loopback 46
R4(config-if)#ip address 46.46.46.46 255.255.255.255
R4(config-if)#router eigrp 10
R4(config-router)#network 46.46.46.46 0.0.0.0
R5#show ip route 46.46.46.46
R5#traceroute 46.46.46.46 
R5#traceroute 46.46.46.46
### perform traceroute multiple times to see different path
### As long as the metrics are equal, EIGRP will load share

Modifying Administrative Distance

  • EIGRP (internal): 90
  • EIGRP (external): 170
  • OSPF: 110

Customer request:

  • Disable unequal cost load sharing on R6
  • Ensure R1 takes the path through R2, R3, R4 to get R5’s 5.5.5.5 loopback
  • Do not modify any route metrics
R6(config)#router eigrp 10
R6(config-router)#variance 1
### Put back to 1 because it's disabled by default with variance value of 1
R3#show ip route x.x.x.x
R3#show ip ospf database
R3#show ip ospf database external x.x.x.x
R3#show ip ospf database nssa-external
R3#show ip ospf database nssa-external x.x.x.x
### Check existing path
### Make OSPF route more preferred. (EIGRP intenral 111 & extenral 170)
R3(config)#router eigrp 10
R3(config-router)#distance eigrp 111 170
### Make EIGRP AD higher than OSPF.

Route Filtering with Distribute Lists

Distribute Lists

  • Uses ACL or Route-Map
  • Configured per-interface
  • Can be applied inbound or outbound

Inbound Distribute List

  • Prevents specific incoming routes from being installed
  • Also prevents the router from advertising the prefix to any of its neighbors

Outbound Distribute List

  • Prevents specific routes from being advertised to EIGRP neighbors

Customer request:

  • R5 Loopback50 50.50.50.50/32
  • R6 Loopback60 60.60.60.60/32
  • Redistribute these loopbacks into EIGRP AS 10
  • Ensure R5 & R6 do not advertise their new loopbacks to each other
R5(config)#int loopback 50
R5(config-if)#ip address 50.50.50.50 255.255.255.255
R5(config-if)#router eigrp 10
R5(config-router)#redistribute connected

### Prevent R5 from sending out 50.50.50.50 on its interface to R6
R5(config-router)#distribute-list 50 out fa0/0
R5(config-router)#access-list 50 deny 50.50.50.50 0.0.0.0
### This will block everything due to implicit deny statement
R5(config)#access-list 50 permit any
### Allow anything else and confirm Deny matches
R5#show ip access-lists 50

R6(config)#int loopback 60
R6(config-if)#ip address 60.60.60.60 255.255.255.255
R6(config-if)#router eigrp 10
R6(config-router)#redistribute connected

### Prevent R6 from sending out 60.60.60.60 on its interface to R5
R6(config-router)#distribute-list 60 out fa0/0
R6(config)#access-list 60 deny 60.60.60.60 0.0.0.0
R6(config)#access-list 60 permit any
R6#show access-lists 60

Confirm the setting

R5#show ip protocols
R6#show ip protocols

Advertising Default Routes

Customer request:

  • A static default route already exists on R4
  • Configure R4 to advertise a default route into EIGRP
  • Use an advertised bandwidth of 10,000kbps and delay of 1000 microseconds
  • Your configuration must not affect the metrics of any other current or future routes
  • Do not use a route map to accomplish this task

Two ways to advertise a Default Route

  1. Advertise a 0.0.0.0/0 summary route
  2. Redistribute a static default route
R4(config)#router eigrp 10
R4(config-router)#redistribute static
R4(config-router)#default-metric 10000 100 255 1 1500

### verify on R5
R5#show ip route 0.0.0.0

Note*

  • EIGRP can perform load sharing for equal or unequal cost paths
  • Changing Administrative Distances (AD) on a router only affects the IP routing table on that router
  • Routes can be filtered using distribute lists

EIGRP v6

EIGRP v4 vs. EIGRP v6

  • No network command (enabled on individual interfaces)
  • Distribute lists can only use prefix lists (no ACL, no Route-Map)
  • No auto summarization (classless)
  • 224.0.0.10 (EIGRPv4)
  • FF02::A (EIGRP:6)

Mutual Redistribution Between EIGRPv6 & OSPFv2

Customer request:

  • Configure EIGRPv6 AS 10 according to the IPv6 topology diagram
  • Enable mutual redistribution between OSPFv2 and EIGRPv6 AS 10 on R3
R3(config)#ipv6 unicast-routing
R3(config)#ipv6 router eigrp 10
R3(config-rtr)#redistribute ospf 1 metric 100000 10 255 1 1500
R3(config)#int fa1/0
R3(config-if)#ipv6 eigrp 10
R3(config)#ipv6 router ospf 1
R3(config-rtr)#redistribute eigrp 10
R6(config)#ipv6 unicast-routing
R6(config)#ipv6 router eigrp 10
R6(config)#int fa1/0
R6(config-if)#ipv6 eigrp 10
R6(config)#int fa0/0
R6(config-if)#ipv6 eigrp 10
R5(config)#ipv6 unicast-routing
R5(config)#ipv6 router eigrp 10
R5(config-rtr)#int fa0/0
R5(config-if)#ipv6 eigrp 10
R5(config-if)#int fa0/1
R5(config-if)#ipv6 eigrp 10
R4(config)#ipv6 unicast-routing
R4(config)#ipv6 router eigrp 10
R4(config-rtr)#int fa1/0
R4(config-if)#ipv6 eigrp 10

EIGRPv6 (Including Connected routes in Redistribution)

Customer request:

  • R6 is unable to ping either of R1’s OSPFv3 enabled interfaces
  • Ensure R6 can ping 2001:db8:12::1
  • Do not configure any static or default routes or additional redistribution
R3(config)#ipv6 router ospf 1
R3(config-rtr)#redistribute eigrp 10 include-connected

### Even if they are participating in EIGRP, redistribution will not include connected networks

R3(config-rtr)#redistribute ospf 1 metric 100000 10 255 1 1500 include-connected

Passive Interfaces vs Include-connected

Passive interface

  • Advertises the associated prefix
  • Adjacency will not form over a passive interface

Not using include-connected

  • Does not redistribute any connected prefixes
  • Does not affect adjacencies

Route Filtering with Distribute Lists

Customer request:

  • Configure R3 loopback 0 interface with IPv6 2001:db8::3/128
  • Advertise this prefix into EIGRPv6
  • Prevent the EIGRPv6 process on R4 from installing the 2001:db8::3/128 prefix in R4’s IPv6 routing table
R3(config)#int loopback 0
R3(config-if)#ipv6 address 2001:db8::3/128
R3(config-if)#ipv6 eigrp 10
R4#show ipv6 route
R4#show ipv6 route 2001:db8::3/128
R4(config)#ipv6 router eigrp 10

### Prevent this route from coming in on this interface
R4(config-rtr)#distribute-list prefix-list PL_NO3 in fa0/0
R4(config)#ipv6 prefix-list PL_NO3 deny 2001:db8::3/128
### You will notice that you lost all routes

R4#show ipv6 prefix-list
### Check for existing seq

R4(config)#ipv6 prefix-list PL_NO3 seq 10 permit ::/0 le 128
### Due to implicit deny so allow any

Manual Route Summarization

No automatic summarization in EIGRPv6

Customer request:

  • Configure R5 to advertise the IPv6 summary 2001:db8::/41 to R4 only
  • Do not use any route filtering
R5(config)#int fa0/1
R5(config-if)#ipv6 summary-address eigrp 10 2001:db8::/41

### verify on R4
R4#show ipv6 route eigrp

Summary (EIGRP v6)

  • EIGRPv6 is enabled under interface configuration mode
  • EIGRPv6 process is enabled with ipv6 router eigrp [AS]
  • No automatic summarization is available
  • Distribute lists can only use IPv6 prefix lists (no ACL, no Route-Map)
  • Connected networks are not automatically included in redistribution
  • Must use the include-connected keyword

Dive deeper into:

  • Know how to perform route filtering with prefix lists, ACL and route maps
  • Understand the output of “show ip eigrp neighbor” & “show ip eigrp topology
  • Feasibility condition (all the Feasibility stuff)
  • Practice setting up authentication using key chains
  • Must know how to setup mutual redistribution between any two routing protocols (even when you are half asleep)
  • Able to manipulate the administrative distance for any routing protocol

Leave a Comment

Your email address will not be published. Required fields are marked *