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
- Advertise a 0.0.0.0/0 summary route
- 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