Presentation about interior gateway routing protocol EIGRP which covers most of the concepts and features of the protocol.
Delivered by Dmitry Figol, CCIE R&S #53592.
Transport
•Uses multicast address 224.0.0.10
•Uses Reliable Transport Protocol (RTP) for transport –IP Protocol
Number 88
•RTP can provide reliable delivery like TCP using sequence numbers
•EIGRP uses both multicast and unicast packets
4
Packets
•Hello
•ACK -hello with no data
•Update
•Query
•Reply
•SIA query/reply
•Goodbye -hello with K values set to 255
5
Timers
•Hello timer
(config-if)# iphello-interval eigrpasseconds
Default is 5 seconds (on multipoint) or 60 seconds (on p2p)
•Hold timer
(config-if)# iphold-interval eigrpasseconds
Default is 15 seconds (on multipoint) or 180 seconds (on p2p)
•Active timer
(config-router)# timers active-time minutes
Default is 3 minutes
•SIA retransmit timer
Default is 90 seconds
6
Adjacency
To establish adjacency the following parameters should match:
•AS number
•K-values
•Common subnet
•Authentication type/password
Automatic neighbor discovery is configured using network command.
Network command enables EIGRP on all interfaces where IP addresses match IP + wild card mask
AND advertises the original prefix from the interface
(сonfig)# router eigrpas
(config-router)# networkipwc-mask
Manual neighbor can be configured using:
(config-router)# neighboripint-name
Must be configured on both neighbors. The command also turns off sending and receiving multicast
hello
Verification: # show ipeigrpneighbors [detail]
7
Passive interface
You can stop processing and sending any EIGRP packets on the interface
using passive-interface feature:
(config-router)# passive-interface[default| int-name]
Manual neighbors will also stop working on this link, unlike in RIP
8
Administrative distance
•Internal –90
•External –170
•Summary –5
AD for internal and external routes can be changed in general using:
(config-router)# distance eigrpint-ad ext-ad
AD for internal routes can be changed per prefix/neighbor using:
(config-router)# distanceadneighbor-ipwc-mask acl
AD for external routes can’t be changed per prefix
AD for summary routes can be changed per prefix using:
(config-router)# summary-metricprefix/lengthdistancead
9
Composite metric
EIGRP calculates composite metric using the formula:
where
delay is taken is microseconds, bandwidth –in kbps, load is the highest along the
path, reliability is the lowest. If K5 = 0, the last term equals “1”
Note: load/reliability are not updated live, the current values are sent with a new update
Note: composite metric is never sent to the neighbor, only individual components
10
EIGRP terms and definitions
•Computed Distance (CD) –composite metric of the whole path
•Advertised Distance (AD) or Reported Distance (RD) –composite metric of the
best path from neighbor’s perspective
•Feasible Distance (FD) –the lowest value of CD of the best path since the last
transition from Active to Passive
Note: It does not always equal CD of the best path
•Feasible Successor (FS) –the path that meets Feasibility Condition (FC),
guaranteed to be loop-free by DUAL
•Feasibility Condition (FC): RD of the candidate path < FD
•Successor (S) –one of FS with the lowest CD
11
Loop prevention
•Feasibility Condition
•Split horizon –technically not needed as FC already guarantees loop-free path
•Hop count
(config-router)# metric maximum-hops 1..255! default is 100
•Router ID for external routes
12
Operation
•EIGRP puts allreceived routes into Topology Table
•We can then run local computation and find FS/S
•The best path (or several) are then presented to RIB
•Converged routes are marked as Passive
•If there is reconvergence event, it is possible that route will go to Active state
•Verification:
# show ipeigrptopology [all-links]
# show ipeigrptopology prefix/len
13
Scenario
14
Scenario –rules and task
Rules:
•If some EIGRP setting is not mentioned, assumedefault.
•K3=1, K1=K2=K4=K5=0
•Delay is written above each link. Please note that you don’t need to divide microseconds by 10 and then multiply by 256, you can
add metrics blindly just for the sake of this exercise
•All questions are asked from perspective of R1towards destination prefix 6.6.6.6/32
Task:
1.Which router is Successor?
2.What is the value of FD?
3.Fill in the table with ✓or ✗and write down the number of ticks
#✓= ?
15
path
via..
in topology
table?
is FS/S? (yes or
no)
R2
R3
R4
R5
Scenario –answers
1.Which router is Successor? R3
2.What is the value of FD? 110
3.Fill in the table with ✓or ✗and write down the number of ticks
16
path
via..
in topology
table?
is FS/S? (yes or
no)
R2 ✓ ✗
R3 ✓ ✓
R4 ✗ ✗
R5 ✓ ✓
#✓= 5
Unequal cost load balancing
•EIGRP supports unequal cost load balancing
•For the path to be eligible for load balancing, the path must be FS
•Also the metric of the path must follow this inequality:
CD of FS <= CD of S x Variance
•Variance is configured using:
(config-router)# variancenumber! default is 1
•Number of maximum paths for load balancing is configured using:
(config-router)# maximum-pathsnumber! default is 4, maximum is 32
17
Reconvergence
If we lose Successor, two scenarios are possible:
1.If there is no FS:
•The route goes to Active state
•Router sends QUERY to all neighbors
•During QUERY the route is frozen in RIB/topology table
•Local computation of FS/S is done after we receive REPLY for all queries
2.If there is FS:
•FS with the lowest CD becomes Successor*
•The route stays passive
•Results in sub-second convergence
*Note: If we lose successor and the path with the lowest CD is not in FS list, the route goes
to Active state regardless if we have other FS or not.
18
Reconvergence –Query/Reply
•Query checks if neighbors have FS/S
•Query also informs neighbors about the lost path (poisons with infinite
metric)
•Conditions to send a reply to a query:
•If we have Successor, reply with metric of Successor
•If the route is already in Active state, reply with infinite metric
•If we don’t have an entry for related prefix in topology table, reply with infinite metric
•Otherwise we put the route into Active state, send queries to all neighbors, wait for all
replies, perform local computation and then we can send a reply to the original query
19
Reconvergence -Stuck in Active
•If all replies are not heard within Active timer (3 minutes) the route will go to
SIA state and the neighbor from which we didn’t receive reply will be declared
down
•This behavior was changed with introduction of new packet types: SIA
query/reply
•After half of Active timer (SIA retransmit timer -90 seconds), SIA query is sent
to check the status of the query/neighbor and Active timer is reset
•Neighbor mustrespond with Reply (if the route is not in topology table or if
Successor has been found) or with SIA reply (if the route is still in Active)
•If Reply or SIA reply is not heard, adjacency will be torn down
•If Reply is not heard after three SIA query attempts, adjacency will be torn
down
20
Reconvergence (cont.)
•Reconvergence is the function of a query domain: more routers have to be
queried, slower the process is. Also, more routers increase the chance of SIA.
•To speed up convergence we should limit the query domain using:
•Stub feature
•Summarization
•Filtering
21
Path manipulation
•The metric can be influenced by changing individual metric components
•Recommended to use delay to change the metric as it is the only cumulative
parameter
•Changing the bandwidth does not always change the metric
•Changing the bandwidth can also influence other features like QoS
22
Path manipulation –offset-list
You can add specific value to the composite metric inbound or outbound per
prefix using:
(config-router)# offset-list[0| acl] [in| out][int-name]
Note: offset-list does “reverse engineering” in order to find a delay which will
cause required change in composite metric. It means, that offset-list affects only
cumulative delay. If K3 = 0, offset-list will not work
Note: with offset-list you can increase metric to such a high value, that the route
will not be installed in RIB (2
32
)
23
Filtering –distribute-list
•You can filter an update inbound or outbound using distribute-list:
(config-router)# distribute-list [route-mapmap| prefixprefix-list[gateway
prefix-list] | acl][in| out] [int-name]
•You can specify allowed list of routes and neighbors using gatewaykeyword
with prefix-list.
•You can also use extended ACL for ”per-neighbor” filtering:
•Source field in ACL is responsible for the source of the route (neighbor’s IP address)
•Destination field in ACL is responsible for the prefix itself (subnet mask is not matched)
24
Filtering –tagging
•Using route-map in redistribution or in distribute-list you can tag internal and
external routes and then filter them based on tag
•Tags are 32-bit integer and can be represented in dotted-decimal format using:
(config)# route-tag notation dotted-decimal
•You can also match tag using wildcard:
(config)# route-tag list tag-listpermitipwildcard
(config)# route-mapmappermit 10
(config-route-map)# match tag list tag-list
•Refer to the following article for more information EIGRP Route Tag
Enhancements
25
Summarization
•You can summarize networks on any router in EIGRP domain using:
(config-if)# ipsummary-address eigrpas prefix subnet-mask [leak-maproute-map]
•By default specifics are suppressed. You can unsuppress them using leak-map
keyword. By doing so you can achieve traffic engineering
•EIGRP looks for the lowest metric from specific routes and uses it as a metric
for the summary
•Discard route (via Null0 with AD 5) is automatically created locally to prevent
routing loops
•You can set maximum AD 255 using summary-metriccommand, which will
remove discard route from RIB and as the result neither summary nor specific
routes will be sent to the neighbor
26
Stub router
•You can mark non-transit routers as “stub”, so queries are not sent to them.
•Configured using:
(config-router)# eigrpstub [connected| summary| redistributed| static |
leak-maproute-map| receive-only]
•Default is connected + summary
•An argument indicates which routes a stub router will send to its neighbors
•Using leak-mapkeyword you can leak any route in topology table
•Actually, queries are still sent to stub routers, but only for prefixes that the stub
router advertised
27
Verification
# show ipeigrpinterfaces
# show ipeigrpneighbors [detail]
# show ipeigrptopology [all-links]
# show ipeigrptopology prefix/len
# show ipeigrpevents
# show eigrpprotocols
# debug eigrppacket
# debug eigrpfsm
28
Authentication
•Classic mode supports only MD5 authentication, which is configured using:
(config-if)# ipauthentication mode eigrpas-nummd5
•You also need to specify key-chain for authentication:
(config-if)# ipauthentication key-chain eigrpas-numkey-chain-name
•If needed, you can configureautomatic key rotation using accept-lifetime
and send-lifetimeunder key chain configuration
29
Named mode
•The main benefit of named mode is that the entire EIGRP configuration is
located in a single place
•Activated by:
(config)# router eigrpprocess-name
30
Named mode –Address family
•To enter address family configuration:
(config-router)# address-familyAFISAFI[vrfvrf-name] autonomous-
systemas-num
For example:
(config-router)# address-family ipv4 unicast autonomous-system 100
•This is where any configuration specific to EIGRP process itself is applied, like
networkand neighborcommands
31
Named mode –Address family commands
32
Named mode –AF-interface
•To enter af-interface configuration:
(config-router-af)# af-interfaceif-name | default
•This is where interface specific configuration is applied, like passive-
interfaceor summary-address
33
Named mode –AF-interface commands
34
Named mode –AF topology
•This section is related to Multi Topology Routing (MTR), which gives an ability
to create different logical topologies over the same physical topology.
•MTR is not supported in 15.x M/T code train
•If MTR is not used, relevant commands should be entered under topology
base
•To enter topology base configuration:
(config-router-af)# topology base
•This is where commands like redistribute,distribute-list, offset-list,
variance are applied
35
Named mode –AF topology commands
36
Named mode –Exclusive features
•Wide metrics
•HMAC-SHA authentication
•Add-path
•Disabling EIGRP on specific interface
•Default interface settings (af-interface default)
•Unique IPv6 behavior
•Default tagging all internal and external routes
•Over the Top (OTP) –not covered in this presentation
•Stub site (IWAN) –not covered in this presentation
37
Named mode –Wide metrics
38
Named mode –Wide metrics (cont.)
•After calculation the metric is scaled down by EIGRP_RIB_SCALE variable,
which is 128 by default. This is done because RIB supports only 32-bit values
for metric
•EIGRP_RIB_SCALE variable can be changed using:
(config-router-af)# metric rib-scale 1..255
39
Named mode –Wide metrics (cont.)
•Wide metric introduces new K coefficient –K6, which controls two new metric
components: jitter and energy. However, you can’t configure them in current
IOS train
•Type of the metric (wide/normal) is NOT sent, so neighbor does not actually
know how metric components were calculated previously, so we can
potentially have inconsistent path selection if both wide and normal metrics are
used in the network because of different delay calculation
40
Named mode –HMAC-SHA authentication
•Named mode supports HMAC-SHA authentication which is stronger than MD5.
Also it provides anti-replay protection
•HMAC-SHA authentication can be enabled on the link using:
(config-router-af-interface)# authentication mode hmac-sha-256 password
Note: the neighbor must use named mode as well to form an adjacency
41
Named mode –Add-path
•Add-path feature allows to send several best equal-cost routes to neighbors
•Note: Useful in DMVPN Phase 2 scenarios where Hub will “reflect” best routes
from spoke without changing next-hop
•Note: Unequal cost load balancing (variance) should be disabled
•Activated using the following command:
(config-router-af-interface)# add-paths number
42
Named mode –Disabling EIGRP on interface
EIGRP process on a specific interface can be disabled using:
(config-router-af-interface)# shutdown
Note: this will stop advertising an associated prefix into EIGRP, unlike with
passive-interfacecommand
43
Named mode –Unique IPv6 behavior
•When IPv6 unicast address family is entered, EIGRP is automatically enabled
on all interfaces with IPv6 address
•It is the easiest way to get IPv6 connectivity in your network
44
Named mode –Default tagging
You can automatically tag all routes (to filter them later) using:
(config-router-af)# eigrpdefault-route-tag tag
Refer to slide “Filtering –tagging”
45
Named mode –Conversion from classic
Old classic mode configuration can be converted to the new syntax using:
(config-router)# eigrpupgrade-cli process-name
*Note: appeared only in 15.4(2)T
46
Named mode –Verification commands
Verification commands have new syntax:
•show eigrpprotocols
•show eigrpaddress-family [ipv4| ipv6] as-numinterfaces[detail]
•show eigrpaddress-family [ipv4| ipv6] as-numneighbors[detail]
•show eigrpaddress-family [ipv4| ipv6] as-numtopology[all-links]
•show eigrpaddress-family [ipv4| ipv6] as-numevents
*Note: Old syntax is still supported
47
Additional Resources
•RFC 7868 -EIGRP
•Routing TCP/IP Volume 1, 2nd Edition (Jeff Doyle)
•CCIE Routing and Switching v5.0, Volume 1 (Narbik
Kocharians, Peter Paluch)
•EIGRP Frequently Asked Questions
•Glimpse of EIGRP named mode
•Advances in EIGRP
•EIGRP Route Tag Enhancements
48