EIGRP Topic Notes

EIGRP Overview Summary

EIGRP Overview Summary

 

Function/Feature Description
Protocol Type Advanced Distance Vector
RFC / Proprietary Cisco Proprietary
Administrative Distance (AD) 90 – Internal EIGRP
170 – External EIGRP
Algorithm Diffusing Update Algorithm (DUAL)
Transport protocol IP Protocol 88
Metric Bandwidth and Delay (default)
Best path selection Lowest metric cost (Feasible Distance)
Hello interval 5 Seconds
Update destination 224.0.0.10
Update interval Triggered updates only
Full of partial updates Partial triggered updates bound to ‘need-to-know’ routers
Triggered updates Yes
Authentication Clear-text, MD5 and SHA2
Route-tags  On redistribution into and out of EIGRP

 

  • Protocol dependent modules – Layer 3
    • AS number must match on adjacent neighbors

 

Router-ID

Router-ID
  • 4bytes
  • Multiple processes or AF interfaces can use the same RID
  • Originally used for EIGRP redistribution to prevent routing loops
    • Identifys the originator of EIGRP External routes
    • If route was received with same RID then its discarded
    • New IOS versions now include the RID on Internal EIGRP routes to determine originator

 

  • RID decision is same as OSPF
    • Configured through process command:
      • (config-if)#eigrp router-id <RID>
      • 0.0.0.0 and 255.255.255.255 are not valid
    • Highest non-shutdown Loopback interface
    • Highest non-shutdown Interface

 

  • Verify the current RID:
    • Versions previous to IOS 15.x
      • #show ip eigrp topology
    • Version 15.x and above
      • #show eigrp protocols

 

[_/su_spoiler]

EIGRP Databases

EIGRP Databases

 

Neighbor Table

Neighbor Table

  • Contains following information:
    • Handle
      • Internal number EIGRP assigns neighbors
      • Starts at 0
    • Neighbors address
    • Interface
    • Hold time
      • Reset every time an EIGRP packet received
      • If decreases to 0 neighbor is down
    • Uptime
    • SRTT
      • Smooth Round Trip Timer
      • Time taken to send packet and receive acknowledgement
    • RTO
      • Retransmission Time Out
      • Time to wait for a ACK of retransmitted unicast after previous attempt didn't receive acknowledgement
    • Q Cnt
      • Number of queued packets EIGRP is trying to send but no acknowledgement is being received
      • Should always be 0
    • Sequence number
      • Number of last reliable EIGRP packet received from neighbor

 

[_/su_spoiler]

Topology Table

Topology Table

  • Lists all routes from all neighbors
  • Passive Routes
    • Stable Route
  • Active Routes
    • Router programming a recomputation
  • Topology Table Status Codes:
    1. (P) - Passive - Network Stable
    2. (A) - Active - Not Available, outstanding queries
    3. (U) - Update - Network Updating, waiting acknowledgeable from update
    4. (Q) - Query - Outstanding query packet, not in active state
    5. (R) - Reply - Generating reply, waiting for acknowledgement on reply packet
    6. (SIA) - Stuck In Active - Convergence problem. Not received a response to QUERY packet
  • 2 composite metrics are displayed in the Topology table for prefixes
    • Feasible Distance (local metric to destination)
    • Advertised Distance (Neighbors metric to destination)
    • Displayed as:
      • Composite metric is (Feasible Distance / Advertised Distance)

 

[_/su_spoiler]

Routing Table

Routing Table

  • Route types:
    • D - Local AS EIGRP routes
      • AD=90
    • EX - External AS EIGRP routes
      • AD=170
    • EIGRP Summary routes
      • AD=5
  • No default routes can be directly injected in to EIGRP

 

[_/su_spoiler]

EIGRP Neighbors

EIGRP Messages

EIGRP Messages

 

1. HELLO

HELLO Packets
  • Opcode 5
  • Multicast to 224.0.0.10
    • If static neighbors are configured, Unicast Hello packets are sent
  • No acknowledgements
  • Used for neighbor discovery
  • Tagged with a DiffServe of 0x30 (AF12)

 

[__/su_spoiler]

2. UPDATE

UPDATE Packets
  • Opcode 1
  • Unicast or Multicast
    • Depending on type of update
    • On initial adjacency, Updates are unicast
    • After sync complete, further Updates are multicast
    • If a router doesn't acknowledge an Update, EIGRP will then unicast it to neighbor
    • On P-2-P links updates are always unicast
  • Tells neighbors about prefix updates
  • Uses RTP (Reliable Transport Protocol)

 

[__/su_spoiler]

3. QUERY

QUERY Packets
  • Opcode 3
  • Unicast or Multicast
    • Multicast by default
    • If neighbor doesn't acknowledge Multicast Update, EIGRP will send as Unicast
    • P-2-P interfaces are always Unicast
    • Static configured neighbors are Unicast
  • Asks neighbors for information on prefixes
  • Uses RTP (Reliable Transport Protocol)

 

[__/su_spoiler]

4. REPLY

REPLY Packets
  • Opcode 4
  • Unicast
  • Responds to QUERY packets
    • Carry senders current distance to destination after topology change taken place
  • Uses RTP (Reliable Transport Protocol)

 

[__/su_spoiler]

5. ACKNOWLEDGEMENT

ACK Packets
  • Opcode 5
  • Unicast
  • Acknowledges UPDATE, QUERY and REPLY packets for reliable delivery
  • Format is a Hello packet with an empty payload
  • Uses sequence numbers to acknowledge transmission

 

[__/su_spoiler]

6. SIA-QUERY

SIA-QUERY Packets
  • Opcode 10
  • Unicast
  • Used when a neighbor hasn't sent a REPLY to a QUERY packet
  • Asks neighbor to confirm is still working on original QUERY
    • Confirms with SIA-UPDATE packet immediately
    • Max time is reset to allow neighbor to reply
  • Uses RTP

 

[__/su_spoiler]

7. SIA-REPLY

SIA-UPDATE Packets
  • Opcode 11
  • Unicast
  • Used to respond instantly to SIA-QUERY packet
  • Uses RTP

 

[__/su_spoiler]

[_/su_spoiler]

EIGRP Adjacencies

EIGRP Adjacencies

  • Requires the following to match in Hello packets to form neighboring adjacencies
    • Primary address used for adjacency
    • IP Subnet
    • Autonomous System number
    • K-values
    • Authentication
  • Once a static neighbor is configured on an interface, multicast on that interface is disabled
    • On multiaccess interfaces if one neighbor is statically configured, EIGRP will not form adjacency with any other unless statically configured as well

 

Neighbor Adjacency Process

 

EIGRP Adjacency

 

  1. R1 multicasts HELLO to subnet
  2. R2 receives HELLO and puts R1 in the Pending state
    1. Only packets that can be sent/received in Pending state are:
      1. HELLO
      2. ACK
      3. UPDATE with INIT flag set
  3. R2 sends HELLO packet immediately back to R1
  4. R1 receives HELLO and puts R2 in the Pending state
  5. R1 sends Null UPDATE packet, with INIT flash set to R2
    • INIT flag indicates new adjacency and neighbor should send full database
  6. R2 acknowledges this packet and sends Null UPDATE to R1
    • Acknowledgement can be through individual ACK packet
    • Can also be sent in Null UPDATE packet by setting acknowledgement number to the sequence number of the neighbors Null UPDATE packet received (x)
  7. When R1 receives acknowledgement from R2 on Null UPDATE, R2 is moved to Up state
  8. R1 sends ACK back to R2 to acknowledge Null UPDATE packet
  9. R2 recieves ACK from R1 and puts neighbor in Up state
  10.  Bidirectional communication is established
  11. Neighbors exchange UPDATE packets (with ACKnowledgements) with full database information
  12. Once synchronised only incremental UPDATE of changes will be sent

 

Updates

  • Updates by default use 50% of the bandwidth available
    • Configurable bandwidth for routing updates
    • Command:
      • (config-if)#ip bandwidth-percent eigrp <%>
    • For hub-and-spoke multiple different bandwidth (CIRs), set the bandwidth to the lowest CIR multiplied by number of PVC on interface.

 

[__/su_spoiler]

Split-Horizon

  • As EIGRP is Distance Vector protocol it uses SPLIT-HORIZON rule
    • Can't advertise updates out same interface on which they were learned
    • Can be manually disabled on both Named-mode and Classic-mode
      • Named-mode command:
        • Configured at address-family interface level
        • (config-router-af-interface)#no split-horizon
      • Classic-mode command:
        • (config-if)#no ip split-horizon eigrp <AS>

 

EIGRP Split Horizon

Split-Horizon Enabled

 

 

EIGRP Split Horizon Disabled

Split-Horizon Disabled

 

 [__/su_spoiler]

EIGRP Timers

EIGRP Timers

  • Default Timers:
    • HELLO
      • 5 seconds on LAN
      • 60 seconds on WAN (<1544Kbps)
    • HOLD
      • 15 seconds on LAN
      • 180 seconds in WAN (<1544Kbps)
    • Active Timer
      • A querying router waits 3 minutes for a reply before declaring a neighbor down
      • Can be manually configured with command:
        • (config-router)#timers active-time <1-65535>
          • Timers don't need to match to form adjacency
          • Can be manually configured in Classic-mode and Named-mode
            • Classic-mode commands:
              • (config-if)#ip hello-interval eigrp <AS> <seconds>
              • (config-if)#ip hold-time eigrp <AS> <seconds>
            • Named-mode commands:
              • Configured under the address-family interface mode
              • (config-router-af-interface)#hello-interval <seconds>
              • (config-router-af-interface)#hold-time <seconds>

 

[__/su_spoiler]

Graceful Restart/Shutdown

  • Advertises to neighbors local node is going down
    • Sends a HELLO message with all K-values set to 255
  • EIGRP Classic-mode:
    • Automatically sent when shutting down interface
      • Command:
        • (config-if)#shutdown
  • EIGRP Named-mode:
    • Can shut down the EIGRP process globally on for specific neighbors under the af-interface process
      • Commands:
        • (config-router-af)#shutdown
        • (config-router-af-interface)#shutdown

[__/su_spoiler]

[_/su_spoiler]

EIGRP Classic mode

EIGRP Classic-mode

  • Legacy method of configuring EIGRP
  • Represented by AS number at router process level
    • Version used before IOS v15.x
  • Some features aren’t supported in Classic mode
    • Wide metrics
    • IPv6 VRF-Lite
    • Has issues calculating metrics accurately for link speeds faster than 1Gbps
    • Add-path

 

Classic mode Configuration

Classic-mode Configuration

  • Process enabled globally on the node:
    • Command:
      • (config)#router eigrp <AS #>
  • Network command enables EIGRP on those interfaces
    • Command:
      • (config-router)#network <network> <wildcard mask>
  • To disable EIGRP on an interface use the passive interface feature
    • Command:
      • (config-router)#passive-interface <IF>

 

[_/su_spoiler]

Classic-mode Metric Options

Classic-mode Composite Metric Options

  • Metric carried in Hello packets
    • Need to match neighbor for adjacency to form
    • Must be the same in the entire topology for it to work
  • Uses a 32-bit metric

 

  • Default K values for metric calculation:
    1. K1 (Bandwidth) = 1 (Yes)
    2. K2 (Load) = 0 (No)
    3. K3 (Delay) = 1 (Yes)
    4. K4 (Reliability - Link Quality) = 0 (No)
    5. K5 (Reliabiity - Packet Loss) = 0 (No)

 

  • Default use of K values can be modified with command:
    • (config-router)#metric weights <tos> <k1> <k2> <k3> <k4> <k5>

 

  • MTU
    • Not used as part of metric calculation
    • Carried in packet for minimum path MTU discovery

 

Composite Metric: K1 - Bandwidth

Composite Metric: K1 - Bandwidth
  • Used by default in calculation
  • Lowest bandwidth between the source and destination
  • Measured in Kbps
  • Capable of calculating 1Kbps to 10Gbps interfaces
  • Can be set manually on an interface
    • Command:
      • (config-if)#bandwidth <kbps>

 

  • Formula to calculate Bandwidth:
    • (10^7 *256)/BANDWIDTH(min)

 

[__/su_spoiler]

Composite Metric: K2 - Loading
 

Composite Metric: K2 - Loading
  • Not used by default in calculation
  • Worst load on a link along a path
  • Value can be 1 to 255

 

[__/su_spoiler]

Composite Metric: K3 - Delay
 

Composite Metric: K3 - Delay
  • Used by default in calculation
  • Cumulative interface delay along a link
  • Measured in 10's of microseconds
    • e.g. Configuring a delay of 20 on an interface will set the delay to 200 microseconds

 

  • Split-Horizon with Poison Reverse and Route Poisoning sets the Delay to the maximum value to make a prefix unreachable

 

  • Can be configured manually on an interface
    • Command:
      • (config-if)#delay <10's microseconds>
      • Value can be 1 to 16,777,214 (10's of microseconds)

 

  • Formula to calculate DELAY:
    • Delay(summed in 10's microseconds) * 256

 

[__/su_spoiler]

Composite Metric: K4&K5 - Reliability

Composite Metric: K4 & K5 - Reliability
  • Not used by default in calculation
  • Reliability of path from source to destination
  • Set to the lowest value along the path
  • Value can be 1 to 255
    • 255 indicates 100% reliability

 

[__/su_spoiler]

Hop Count

Hop Count
  • Hop count isn't used as part of the composite metric
  • Doesn't impact best path selection
  • Can filter out prefixes based on hop count reachability
  • Can be configured manually
    • Command:
      • (config-router)#metric maximum-hops <1-255> 
    • Default value is 100

 

[__/su_spoiler]

[_/su_spoiler]

Classic-mode Metric Formula

Classic-mode Composite Metric Formula

 

Formula
Composite Metric = (K1 x Bandwidth) + (K2 x (Bandwidth / (256 – load)) + (K3 x Delay) x (K5 / (reliability + K4)

 

Default Used Formula
Composite Metric = Bandwidth + Delay

 

  • With default values calculation becomes:
    1. Composite Metric = (K1 x Bandwidth) + (K3 x Delay)
    2. Composite Metric = (1 x Bandwidth) + (1 x Delay)
    3. Composite Metric = (1 x ((10^7 x 256)/BW) + (1 x ((DLY/10) x 256))
    4. Composite Metric = (1 x 2560000000 / BW) + (1 x ((Delay/10) x 256))

 

  • Example on a 100Mb link with 6000 total delay along path
    • (10^7 x 256) / 10000 = 256000 (Bandwidth)
    • (6000/10) x 256 = 153600 (Delay)
    • (1 x 256000) + (1 x 153600) = 409600 (Computed Distance)

 

  • To convert IGRP metric to an EIGRP metric, multiply the IGRP metric by 256.

 

[_/su_spoiler]

EIGRP Named-mode

EIGRP Named-mode

  • EIGRP Named-mode also known as Multi-AF (address-family) mode
  • Wide-Metrics are used for calculating best path
    • Overcomes the issue of calculating metric values of links faster than 1Gbps

 

  • Process identifier is represented by a string
    • Arbitrary and locally significant value
    • Autonomous System number is configured under the address-family container
    • AFI (Address Family Identifier) = IPv4
    • SAFI (Sub-Address Family Identifier = Unicast

 

  • K6 value added to Hello packets to indicate Named Mode is used
    • Set to 0 by default for Classic Mode compatibility
    • Used for future capability
      • Currently 3 extended metrics defined:
        • Jitter
        • Energy
        • Quiescent Energy

 

  • Supports the Add-Path feature
    • Specifically used for DMVPN Phase 2 where there are multiple spokes advertising the same prefix to the hub
      • To build spoke-to-spoke tunnels both paths need to be advertised
    • Installs multiple best paths in EIGRP RIB and passes to Global Routing Table (GRT)
    • Configured at the interface level
      • Command:
        • (config-router-af)#add-paths <1-4>

 

Named-mode Configuration

Named Mode Configuration

  • Non-VRF aware configuration
    • Commands:
      • (config)#router eigrp [name]
      • (config-router)#address-family ipv4 unicast autonomous-system <AS>
  • VRF aware configuration:
    • Commands:
      • (config)#router eigrp [name]
      • (config-router)#address-family ipv4 unicast vrf <vrf-name> autonomous-system <AS>

 

  • Can upgrade from Classic-mode to Named-mode
    • From version 15.4S
    • Performs graceful restart automatically
      • Data-plane still forwards traffic
      • Control plane is restarted
      • Also know as NSF (Non-Stop Forwarding)
    • Command:
      • (config-router)#eigrp upgrade-cli

 

 [_/su_spoiler]

Named-mode Wide-Metrics

Named-mode Wide-Metrics

  • Used by default when using Named-mode
    • Backwards compatible with Classic-mode
    • When running both Classic and Named EIGRP there can be differences in metric values which will effect the chosen path.
  • Wide metric uses 64bits
    • RIB can still only handle 32bit metrics

 

  •  Similar metric values as Classic-mode except:
    • K1 - Bandwidth is now Throughput
    • K3 - Delay is now Latency

 

  • Throughput is scaled higher to handle faster speed links (655.36Tbps):
    • Throughput = 10^7 * 65536 / bandwidth

 

  • Latency is calculated in picoseconds
    • On Interfaces equal to or slower than 1Gbps the delay is calculated as:
      • Latency = Delay * 65536 / 10^6 (1000000)
    • On interfaces faster that 1Gbps the delay is calculated as:
      • Latency = Delay * 65536 / 10^13 (10000000000000)

 

  • When installed in the RIB there is another calculation that takes place called RIB_SCALE
    • This is a multiplier to scale down the metric so it doesn't overflow the RIB table
      • RIB only supports 32bit metrics
      • Scaled down after DUAL
    • Can be manually configured using command:
      • (config-router-af)#metric rib-scale <1 - 255>
      • Set by default to 128

 

[_/su_spoiler]

Named-mode Wide-Metric Formula

Named-mode Wide-Metric Formula

 

Formula
Wide Metric = (K1 x Throughput) + (K2 x (Throughput/ (256 – load)) + (K3 x Latency) x (K5 / (Reliability + K4))
Default Used Formula
Wide Metric = Throughput) + Latency)

 

  • Uses a similar formula as the Classic-mode metric formula
    • incorporates the new K value Wide-Metrics

 

  • With default values calculation becomes:
    1. Wide Metric = (K1 x Throughput) + (K3 x Latency)
    2. Wide Metric = (1 x Throughput) + (1 x Latency)
    3. If link is =< 1Gbps
      1. Wide Metric = (1 x ((10^7 x 65536)/Throughput) + (1 x ((Latency x 65536)/10^6))
      2. Wide Metric = (1 x (655360000000/ Throughput) + (1 x ((Latency x 65536)/1000000))
      3. Wide Metric = (655360000000/ Throughput) + ((Latency x 65536)/1000000)
    4. If link is > 1Gbps
      1. Wide Metric = (1 x ((10^7 x 65536)/Throughput) + (1 x ((Latency x 65536)/10^13)
      2. Wide Metric = (1 x (655360000000/ Throughput) + (1 x ((Latency x 65536)/10000000000000)
      3. Wide Metric = (655360000000/ Throughput) + ((Latency x 65536)/10000000000000)

 

  • Example on a 1Gb link with 6,000,000,000 (picoseconds) total delay along path
    • (10^7 x 65,536) / 1,000,000 = 655,360 (Throughput)
    • (6,000,000,000 x 65,536) / 1,000,000 = 393,216,000 (Latency)
    • (1 x 6,553,600 ) + (1 x 6,000,000,000 ) = 393,871,360 (Computed Distance)
    • 393,871,360 / 128 = 3077120 (RIB metric)

 

 [_/su_spoiler]

EIGRP Successor and Feasible Successor

EIGRP Successor and Feasible Successor

  • EIGRP runs a Feasibility Condition to select a loop-free backup paths
  • Route Types
    • Successor route
      • Primary path installed in RIB
      • Next-hop router with the lowest Computed Distance, loop-free path
      • Lowest Computed Distance to destination
    • Feasible Successor route
      • Backup path stored in EIGRP topology table
      • Backup router with loop-free path
      • Must meet the Feasibility Condition (FC) to be counted as a Feasible Successor
      • Provides sub-second re-convergence when Successor route fails
        • Can also be used for unequal cost load-balancing

 

  • Advertised Distance (AD) / Reported Distance (RD)
    • Metric from next hop router to destination
  • Computed Distance (CD)
    • Calculated metric of Advertised Distance (AD/RD) + local cost to next-hop router
    • Used to determine Successor routes and Feasible Successor routes

 

  • For each neighbor there is one Computed Distance and one Advertised Distance
    • Displayed as (CD/AD)

 

  • Feasible Distance (FD)
    • Lowest known Computed Distance since the last transition from the Active to Passive state
      • Historical copy of the lowest CD
      • Not necessarily the current best CD to a destination
    • There can be only one FD for a prefix on a router
    • Never advertised to neighbor

 

EIGRP FD&AD

 

 

Feasibility Condition

Feasibility Condition

Feasibility Condition Rule
The Advertised Distance of a neighbors route must be lower than the current Computed Distance of the Sucessor route
  • In the above example Path A becomes the Successor route because it has the lowest Computed Distance of 5632
  • Path B and C both become Feasible Successor routes because
    • R2's Advertised Distance (3840)  is lower than Path A's Computed Distance (5632)
    • R6's Advertised Distance (5120) is lower than Path A's Computed Distance (5632)

 

 

[_/su_spoiler]

QUERY and REPLY

QUERY and REPLY
  • Successor fails, no Feasible Successors:
    • Route moves to ACTIVE state
    • Sends QUERY to all neighbors for that prefix
      • QUERY message is for exact match on prefix
      • Convergence relies on all REPLY to QUERY messages
      • REPLY sent immediately if no match on prefix
      • If there is a summary route that covers the prefix that is in the QUERY message, this doesn't count as a match
    • After REPLY received from all neighbors, EIGRP re-converges
    • When loop-free path found, installed in routing table
    • QUERY domain can be limited by
      • Summarization
      • EIGRP Stub routers

 

EIGRP Update & Reply

 

Feasible Successor available
  • Successor fails, Feasible Successor available:
    • Route doesn't become ACTIVE
    • Feasible Successor promoted to Successor
    • Sub-second reconvergence

 

 

EIGRP Feasible Successor

 

[_/su_spoiler]

EIGRP Authentication

EIGRP Authentication

  • MD5 Authentication
    • Supported by Named-mode and Classic-mode
    • Uses key chains
  • SHA-256 Authentication
    • Only supported in Named-mode
    • Doesn’t use key chains

 

Classic-mode Authentication

Classic-mode Authentication
  • Key chains can be used with EIGRP Classic-mode
    • Can be used to set:
      • Key IDs (must match)
      • Cryptographic algorithms
        • Only supports MD5
      • Key lifetimes
    • Can have multiple keys, with automatic key rotation based on time
      • Can only send one key at a time
        • Lowest active key is always sent
      • Can accept multiple keys
      • Recommend to overlap keys for a small time-frame
    • Keychain set on interface
    • Commands:
      • (config)#key chain <keychain name>
      • (config-keychain)# key <key ID>
      • (config-keychain-key)# keystring <key>
      • (config-keychain-key)# cryptographic-algorithm <algorithm>
      • (config-keychain-key)#send-lifetime [infinite | <end-time> | duration <seconds>]
      • (config-keychain-key)#accept-lifetime [infinite | <end-time> | duration <seconds>]
      • (config-if)#ip authentication mode eigrp <AS> md5
      • (config-if)# ip authentication-key-chain eigrp <AS> <keychain name>
      • #show key chain

 

[_/su_spoiler]

Named-mode Authentication

Named-mode Authentication
  • MD5 uses same method of key chains as Classic-mode
    • Defined under af-interface
    • Interoperable with Classic-mode MD5 authentication
  • SHA256 uses a static key configuration
    • Defined under af-interface
      • Can use af-interface default
        • specific interface configuration will over-ride the default configuration
      • Command:
        • (config-router-af-interface)#authentication mode hmac-sha-256 <key string>
    • Configuration on physical interface doesn't apply

 

[_/su_spoiler]

EIGRP NLRI Manipulation

EIGRP NLRI Manipulation

  • Summarisation and filtering can be applied anywhere in the topology

 

Load Balancing

Equal-Cost Load Balancing

Equal-Cost Load Balancing
  • Equal Cost Paths:
    • 4 by default
    • 16 maximum
    • Variance set to 1
      • Default configuration
    • Command:
      • (config-router)#maximum-paths <1-16>

 

[__/su_spoiler]

Unequal-Cost Load Balancing

Unequal-Cost Load Balancing
  • Unequal Cost Paths:
    • Only Feasible Successors can be used for UCLB
      • Nees to match the Feasibility Condition
    • Configured using the VARIANCE command
      • Increases the minimum metric for unequal cost load balancing
    • The value of the Variance number x Computed Distance of the Successor must be greater than metric through next router (alternate Computed Distance)
    • Command:
      • (config-router)#variance <1 - 128>

 

  • Traffic share is automatically calculated
    • Links are ratio'd against the metrics for each possible Computed Distance
    • To calculate traffic share ratio value:
      • Highest Installed Path Metric / Path Metric
      • Example:
        • 6 paths to single prefix with metrics:
          • 9000
          • 4200
          • 3000
          • 2000
        • To calculate the ratio, the highest path metric is 9000
          • 9000 / 9000 = 1
          • 9000 / 4200 = 2
          • 9000 / 3000 = 3
          • 9000 / 2000 = 4
          • The traffic share ratio would therefore be 4:3:2:1
            • Only support integers on IOS
      • Can be configured manually
        • Set the traffic share count based on the minimal metric across all interfaces
        • Sets the traffic share count to 0 on higher value metrics
        • Can still install multiple links with the same metric
        • Command:
          • (config-router)#traffic-share min across-interfaces
        • Using the example above the ratio would be based on 2000
          • 2000 / 9000 = 0
          • 2000 / 4200 = 0
          • 2000 / 3000 = 0
          • 2000 / 2000 = 1
          • Traffic share ratio would be 0:0:0:1

 

[__/su_spoiler]

[_/su_spoiler]

Summarization

Auto Summarization

Auto-Summarization
  • Prior to IOS 15.x
    • Routes are automatically summarized at major classful networks
    • Can be disabled manually with command:
      • (config-router)#no auto-summary
  • IOS 15.x
    • Auto summary is disabled by default
    • Can still be enabled in either Named-mode or Classic mode
      • Named-mode (base topology):
        • (config-router-af-topology)#auto-summary
      • Classic-mode:
        • (config-router)#auto-summary

 

[__/su_spoiler]

Manual Summarization

Manual Summarization 
  • Administrative Distance of 5
  • Provides a method to limit QUERY domains
  •  Supports the default network (0.0.0.0/0) as a summary route
  • Automatically suppresses prefixes within captured within summary route
    • Can provide exclusions to suppression through a leak-map
  • Summary route creates discard-route pointing to Null0 interface
  • Summary route inherits metric from the lowest metric subnet
    • If the subnet keeps changing metrics will have a direct effect on the summary route metric

 

  • Summary route metric can be manually set
    • Only available in Named-mode.
    • If set to 255, summary route isn't installed in RIB and also not advertised to neighbors
    • Command:
      • (config-router-af-topology)#summary-metric <summary prefix> <bandwidth (kbps)> <delay (10's microseconds> <reliability 1-255> <load 1-255> <MTU> [distance <administrative distance>]

 

  • Classic-mode:
    • Configured on a per-interface basis
    • Command:
      • (config-if)#ip summary-address eigrp <network> <mask>
  • Named-mode:
    • Configured under the address-family interface
    • Command:
      • (config-router-af-interface)#summary-address <network> <mask>

 

[__/su_spoiler]

[_/su_spoiler]

Stub Feature

Stub Feature

  • Stub routers can not be used as transit paths
  • Will not propagate prefixes learned through EIGRP to its neighbors
    • With the exception of a leak-map being used
  • Sends only a sub-set of prefixes to non-stub neighbors (as defined below)
  • QUERY packets are not sent to Stub routers
  • Hub routers connected to Stub routers answer queries on their behalf
  • Stub routers can still advertise routes to the remote router
  • Different Stub Options:
    1. Stub Receive-Only
      • Prevents sending any type of route
    2. Stub Connected
      • Send connected routes only
      • Enabled by default
      • Need redistribute command
    3. Stub Static
      • Send static routes only
      • Need redistribute command
    4. Stub Summary
      • Send summary routes only
      • Can also use leak map
      • Need redistribute command
    5. Stub Redistribute
      • Send redistributed routes only
      • Need redistribute command

 

  • Named-mode command:
    • (config-router-af)#eigrp stub
  • Classic-mode command:
    • (config-router)#eigrp stub

 

[_/su_spoiler]

Traffic Engineering

Traffic Engineering

  • Bandwidth and Delay can be manually configured at any point in the topology
    • Bandwidth
      • Preferred not to be used to alter path selection
        • Has wider implications than EIGRP metrics
        • e.g. QoS calculation
        • EIGRP uses 50% of bandwidth by default for updates, incorrectly configuring can lead to starvation or excessive use passing updates
      • Affects all prefixes traversing that interface if that is the lowest bandwidth link in the path
      • Command affects both Named-mode and Classic-mode
        • Command:
        • (config-if)#bandwidth <kbps>
    • Delay
      • Preferred method of Traffic Engineering
        • Doesn't impact other protocols
      • Effects path selection for all prefixes traversing that interface
      • Command affects both Named-mode and Classic-mode
      •  Command:
        • (config-if)#delay <10's of microseconds>
  • Administrative Distance manipulation
    • Can adjust EIGRP AD based on origination or route (Internal or External)
      • Command:
        • (router-config)#distance eigrp <internal distance (1-255)> <External distance (1-255)>

 

[_/su_spoiler]

Leak Maps

Leak Maps
  • Used with manual summarization and Stub feature
    • Based on Longest match routing is always preferred
    • Causes neighbors to perform a graceful-restart
  • Configured through a route-map
  • Equivalent to a BGP unsuppress-map
  • Can be applied on Classic-mode or Named-mode
    • Named-mode command:
      • Summarization configured under the address-family interface
        • (config-router-af-interface)#summary-address <network> <mask> leak-map <leak-map name>
      • Stub feature configured under the address-family
        • (config-router-af)#eigrp stub leak-map <leak-map name>
    • Classic-mode command:
      • Summarization configured at the interface level
        • (config-if)#summary-address eigrp <AS> <network> <mask> leak-map <leak-map-name>
      • Stub feature configured under the global process
        • (config-router)#eigrp stub leak-map <leak-map name>

 

[_/su_spoiler]

Default Routing

Default Routing

  • No dedicated command for Default Routing
  • Can redistribute a default route from other sources into EIGRP
  • Can use manual summarisation of a 0.0.0.0/0 prefix
  • Using he default-network command to flag a route as a candidate default network
    • Inherited from IGRP command
    • Route has to be advertised in EIGRP
    • Has to be a classful network to be flagged as a candidate default
    • No longer supported
    • Command:
      • (config)#ip default-network <prefix>

 

[_/su_spoiler]

Filtering

Filtering: Distribute Lists

Filtering: Distribute Lists

  • Can be applied on inbound and outbound direction
  • Inbound can also match on route source
  • Can reference the following to match traffic

 

Filtering: Distribute Lists - Standard ACLs

Standard ACLs
  • Match prefix but not length (of prefix)
  • Example
    • Filter all routes with odd 3rd octet
      • (config)#access-list 1 deny 0.0.1.0 255.255.254.255
      • (config-router)#distribute-list 1 <in | out> [interface]

 

[___/su_spoiler]

Filtering: Distribute Lists - Extended ACLs

Extended ACLs
  • Match on route source and prefix but not length
  • Example
    • Filter out prefixes starting 10 from route source 2.2.2.2
      • (config)#access-list <###> deny ip host <route source> <filter prefix> <filter wildcard>
      • (config)#access-list 100 deny ip host 2.2.2.2 10.0.0.0 0.255.255.255

 

[___/su_spoiler]

Filtering: Distribute Lists - Prefix Lists

Prefix Lists
  • Match on route source, prefix and length
  • Example
    • Accept only host routes from 2.2.2.2 with exception of 10.5.5.5/32.
      • (config)#ip prefix-list ROUTER2 permit 2.2.2.2/32
      • (config)#ip prefix-list DENY_10 deny 10.5.5.5/32
      • (config)#ip prefix-list DENY_10 permit 0.0.0.0/0 ge 32
      • (config-router)#distribute-list prefix-list DENY_10 gateway ROUTER2 in [interface]

 

[___/su_spoiler]

[__/su_spoiler]

Filtering: Offset Lists

Filtering: Offset Lists

  • Used to add hop count to metric
  • Applied inbound or outbound
  • Added to the Delay metric value
  • Offset-list (or ACL) 0 mean to match all route
  • Command:
    • (config-router)#offset-list <acl #> <in | out> <offset> [interface]

 

[__/su_spoiler]

Filtering: Administrative Distance

Filtering: Administrative Distance

  • Prefixes with AD 255 are infinite and can't be installed in RIB
  • Internal EIGRP can be changed on a per-prefix basis
    • External routes can't
  • Can be applied per prefix or per neighbor
    • Per prefix
      • (config-router)#distance <distance> <prefix source network> <prefix source wildcard> <acl of prefix>
      • Example
        • Filter prefixes prefixes matching 10.2.2.2/32
        • (config)#access-list 10 permit 10.2.2.2
        • (config-router)#distance 255 0.0.0.0 255.255.255.255 10
    • Per neighbor
      • (config-router)#distance <distance> <prefix source network> <prefix source wildcard> <acl of prefix> <distance>
      • Example
        • Filter prefixes in ACL 10 from source 3.3.3.3
        • (config-router)#distance 255 3.3.3.3 0.0.0.0 10

 

[__/su_spoiler]

Filtering: Passive Interface

Filtering: Passive Interface

  • Prevents adjacencies being established
  • Can be applied:
    • Selectively on individual interfaces
    • Default-passive
      • on all interfaces
      • Command:
        • (config-router)#passive-interface default
    • No-passive
      • Overrides default passive state
      • Command:
        • (config-router)#no passive-interface <interface>

 

[__/su_spoiler]

Filtering: Max Prefix Learned

Filtering: Maximum-prefixes learned

  • Only supported in EIGRP Named-mode
  • Controls number of prefixes learned on either all neighbors or on a per-neighbor basis
    • Puts neighbor in a psudeo-down state if receives the number of prefixes set
  • All Neighbors
    • Command:
      • (config-router-af)#maximum-prefix <max> [restart <interval in mins> restart-count <reset in mins>]
  • Per-Neighbor
    • Command:
      • (config-router-af)#neighbor <neighbor ip> maximum-prefix <max>

 

  • Can be verified if in down state
    • Command:
      • #show eigrp address-family ipv4 accounting

 

[__/su_spoiler]

Filtering: Route Tagging

Filtering: Route Tagging

 

 

 

 

 

[__/su_spoiler]

Filtering: EIGRP Site-Of-Origin (SOO)

Filtering: Site-Of-Origin (SOO)

 

 

 

[__/su_spoiler]

Filtering: Hop Count

Filtering: Hop Count

  • Can filter prefixes based on hop count
  • Process level filtering that is locally significant
  • Default value is 100
  • Command:
    • (config-router)#metric maximum-hops <1-255>

 

[__/su_spoiler]

[_/su_spoiler]

 

EIGRP over DMVPN

 EIGRP over DMVPN

  • Split-Horizon rule
    • Can be disabled
    • Feasibility Condition rule prevents loops in the topology when disabling split-horizon
    • DMVPN doesn’t support multicast, uses replicated unicast
    • EIGRP is a good protocol to use with DMVPN
      • Good design to use EIGRP Stub for Spokes

 

  • Next hop Processing
    • Updates include Next-hop address
    • If set to 0, next-hop is the node that sent the update
    • Result is all traffic traverses the Hub
    • Effects DMVPN Phase 2
    • To resolve this issue use the next-hop-self function
      • Can be run under Classic-mode or Named-mode
      • Classic-mode command:
        • (config-if)#no ip next-hop-self eigrp <AS>
      • Named-mode command:
        • Run under address-family interface mode
        • (config-router-af-interface)#no next-hop-self
    • Summarization isn’t supported in DMVPN Phase 2
  • For DMVPN with dual-hubs to perform ECMP between them, need to use the add-path feature
    • Only supported in Named-mode configuration
    • Configured in the af-interface section
    • Command:
      • (config-router-af-interface)#add-path <1-4>
    • Allows a Hub to send multiple ECMP paths to spokes
    • Not compatible with VARIANCE command (needs to be set to 1)
    • Need to adjust the next-hop of advertised routes using the command:
      • (config-router-af-interface)#no next-hop-self

 

EIGRP Over the ToP (OTP)

EIGRP Over the ToP (OTP)

  • Creates overlay multipoint VPNs between CE routers running EIGRP
    • Nothing special needed from providers to make this happen
  • Uses LISP (Locator/Identifier Separation Protocol) protocol to enable this

&nbsp

  • LISP protocol:
    • IP address consists of 2 parts
      1. Network portion/ID
      2. Host portion/ID
    • When a host moves in the network, its whole address changes; network and host
    • LISP decouples this function

 

EIGRPv6

EIGRPv6

  • Same process and functionality as EIGRP for IPv4
  • Few key differences include:
    • Sends to EIGRP packets to multicast address FF02::A
    • Process needs a Router-ID before it will start, even if neighbors configured

 

  • EIGRP Classic Mode:
    • Enabled at process level
      • Command:
        • (config)#ipv6 router eigrp <ASN>
    • Enabled at interface level
      • Command:
        • (config-if)#ipv6 eigrp <ASN>
    • Process shut down by default
    • Requires to be manually not shut down
      • Command:
        • (config-router)#no shutdown

 

  • EIGRP Named Mode:
    • Process not shut down by default
    • Enables EIGRP on all IPv6 enabled interfaces by default
    • AFI changed from IPv4 to IPv6
      • Command:
        • (config-router)#address-family ipv6 unicast [vrf <vrf-name>] autonomous-system <ASN>

 

EIGRP Troubleshooting Commands

EIGRP Troubleshooting Commands

 

  • #show ip eigrp traffic – Displays the number of different packets types sent and received
  • #show ip eigrp interfaces – Show interface information on EIGRP
  • #show ip eigrp interfaces detail <interface> – Show detailed interface information about EIGRP including if QUERY packets are supressed
  • #show ip eigrp neighbors – Display information about connected neighbors
  • #show ip eigrp neighbors detail
  • #show ip protocols
  • #show ip eigrp topology [all-links | prefix] – Displays all paths to destination, include paths that don’t meet the Feasibility Condition
  • #debug ip eigrp packet
  • #debug eigrp packet query reply – Enables debugging on EIGRP re-convergence events
  • #show eigrp address-family ipv6 interfaces – Displays IPv6 interfaces where EIGRP is enabled

 

Print Friendly, PDF & Email