Install
openclaw skills install eigrp-analysisEIGRP DUAL algorithm analysis with successor/feasible successor evaluation, stuck-in-active diagnosis, K-value validation, and redistribution loop detection. Cisco IOS-XE and NX-OS dual-platform coverage with protocol-first diagnostic reasoning for classic and named EIGRP modes.
openclaw skills install eigrp-analysisDUAL-reasoning-driven analysis skill for Cisco EIGRP. Unlike link-state protocols that flood topology databases, EIGRP uses the Diffusing Update Algorithm (DUAL) to compute loop-free paths through a distributed query/reply process. Effective EIGRP diagnosis requires understanding successor selection, the feasibility condition, and stuck-in-active mechanics — not just reading command output.
Commands are labeled [IOS-XE] or [NX-OS] where syntax diverges. Unlabeled statements apply to both platforms.
router eigrp [AS]) or named mode
(router eigrp [name])feature eigrp must be enabled before any EIGRP configurationFollow this diagnostic flow sequentially. Each step builds on data from prior steps, moving from broad inventory to targeted DUAL-level analysis.
Verify EIGRP is running and collect the neighbor table.
[IOS-XE]
show ip eigrp neighbors
[NX-OS]
show ip eigrp neighbors vrf all
Record each neighbor: interface, address, hold time, uptime (since), SRTT, queue counts. Compare against expected topology — every directly connected EIGRP router should appear. Key observations:
Examine DUAL's successor and feasible successor selection for key prefixes.
[IOS-XE]
show ip eigrp topology [prefix/len]
[NX-OS]
show ip eigrp topology [prefix/len] vrf default
For each route entry, interpret the DUAL state:
Feasibility condition: RD of neighbor < FD of current successor. If a neighbor's reported distance is lower than the current feasible distance, DUAL guarantees that neighbor is not part of a routing loop and can serve as a backup without triggering a query.
If no feasible successor exists and the successor fails, DUAL must go Active and send queries — proceed to Step 3.
Identify routes in Active state and diagnose query/reply failures.
[IOS-XE]
show ip eigrp topology active
[NX-OS]
show ip eigrp topology active vrf default
Routes in Active state are waiting for query replies from neighbors. The SIA timer (default 3 minutes) starts when a route goes Active. If a neighbor does not reply within half the SIA timer (90 seconds), a SIA-Query is sent. If still no reply at the full timer, the neighbor is reset.
Determine which neighbor is not responding:
Query scope is the primary lever for SIA prevention. Broad query scope (queries propagating across the entire EIGRP domain) is the most common root cause. Mitigations:
Verify metric parameters match across all neighbors — mismatched K-values prevent adjacency formation entirely.
[IOS-XE]
show ip protocols | section eigrp
[NX-OS]
show ip eigrp vrf default
Confirm K-values on each device: K1=1, K2=0, K3=1, K4=0, K5=0 (defaults). All neighbors in the same AS must use identical K-values or adjacency is refused.
Check metric mode: named EIGRP supports wide metrics (64-bit) using the
rib-scale factor. Classic mode uses 32-bit metrics. If migrating from classic
to named mode, verify metric values remain consistent — wide metrics produce
different values that are scaled before RIB installation.
Validate interface-level delay and bandwidth on key links:
[IOS-XE]
show ip eigrp interfaces detail
[NX-OS]
show ip eigrp interfaces detail vrf default
Incorrect bandwidth or delay on an interface directly affects path selection. A common misconfiguration is leaving default bandwidth on serial or tunnel interfaces, causing EIGRP to compute incorrect metrics.
Check for redistribution loops and verify route filtering.
[IOS-XE]
show ip route eigrp | include EX
[NX-OS]
show ip route eigrp vrf default | include EX
External EIGRP routes (D EX) indicate redistribution. Common issues:
Verify distribute-lists and route-maps are applied correctly at redistribution points. Check that route tags are used to prevent loops in mutual redistribution designs.
Operational parameter norms for EIGRP — protocol-level expectations, not device resource thresholds.
| Parameter | LAN Default | WAN Default | Notes |
|---|---|---|---|
| Hello Interval | 5s | 60s | WAN = multipoint links < 1.544 Mbps |
| Hold Timer | 15s | 180s | 3x hello by convention |
| Active Timer (SIA) | 3 min | 3 min | Configurable; half-time SIA-Query at 90s |
| Route Update Delay | Immediate | Immediate | No MRAI — updates sent as computed |
Metric Defaults (Classic Mode):
| K-Value | Default | Weight | Component |
|---|---|---|---|
| K1 | 1 | Bandwidth | 10^7 / min-bandwidth-kbps |
| K2 | 0 | Load | Disabled by default |
| K3 | 1 | Delay | Sum of delays in tens of µs |
| K4 | 0 | Reliability | Disabled by default |
| K5 | 0 | Reliability | Disabled by default |
Operational Norms:
| Metric | Healthy | Warning | Critical |
|---|---|---|---|
| Neighbor count | Matches design | ± 1 from baseline | > 2 missing |
| SIA events / week | 0 | 1–2 | > 3 |
| Active routes | 0 | 1–5 | > 5 or persistent |
| Topology table size | Stable ± 5% | Change > 10% | Change > 25% |
| SRTT (ms) | < 100 | 100–500 | > 500 |
Route stuck in Active state (SIA timer running)
├── Check query scope
│ ├── Queries flooding entire domain?
│ │ ├── No stub routers configured → Add stub config to leaf/branch routers
│ │ ├── No summarization → Add summary routes at distribution boundaries
│ │ └── Large flat topology → Redesign with hierarchy (hub/stub or areas)
│ └── Query scope is bounded → Specific neighbor issue
│ ├── Unresponsive neighbor reachable?
│ │ ├── No → Interface or link failure
│ │ │ ├── Check interface status on both ends
│ │ │ └── Check Layer 2 connectivity (ARP, CDP/LLDP)
│ │ └── Yes → Neighbor processing delay
│ │ ├── CPU overloaded? → Check CPU utilization on neighbor
│ │ ├── Waiting for downstream replies? → SIA is cascading
│ │ │ └── Trace the query chain to the true bottleneck
│ │ └── SIA timer too short? → Extend active-time (if appropriate)
│ └── Multiple neighbors unresponsive?
│ └── Common upstream failure → Check shared infrastructure
Expected EIGRP route missing or wrong path selected
├── Route in topology table?
│ ├── Yes — route known to DUAL
│ │ ├── In Active state? → Go to SIA triage tree above
│ │ ├── Successor installed but suboptimal?
│ │ │ ├── Check FD/RD of competing paths → Lowest FD wins
│ │ │ ├── Interface bandwidth/delay correct? → Misconfigured BW/delay
│ │ │ │ skews metric; verify with `show interfaces`
│ │ │ ├── Variance configured? → Unequal-cost load balancing may select
│ │ │ │ paths within variance multiplier × FD
│ │ │ └── Offset-list applied? → Offset-lists add to delay component
│ │ └── Feasible successor exists but not used?
│ │ └── Normal — FS is backup only, used when successor fails
│ │ (unless variance enables unequal-cost balancing)
│ └── No — route not in topology table
│ ├── Network statement missing? → Verify `network` command covers the prefix
│ ├── Passive-interface? → Check if the source interface is passive
│ ├── Distribute-list filtering? → Check inbound distribute-list or route-map
│ ├── Redistribution missing? → If external route expected, check redistribution config
│ └── Wrong AS number? → Verify AS matches across all routers in the domain
EIGRP ANALYSIS REPORT
======================
Device: [hostname]
Platform: [IOS-XE | NX-OS]
EIGRP Mode: [Classic AS n | Named instance-name]
Check Time: [timestamp]
Performed By: [operator/agent]
NEIGHBOR STATUS:
- Expected neighbors: [n]
- Established: [n] | Missing: [n]
- Neighbors with high SRTT (>100ms): [list]
DUAL STATE:
- Routes in Passive state: [n] (normal)
- Routes in Active state: [n] (requires attention if > 0)
- Feasible successors available: [n] of [total] routes
FINDINGS:
1. [Severity] [Category] — [Description]
Route: [prefix/len]
Observed: [state, FD, successor]
Expected: [normal state or path]
Root Cause: [diagnosis from decision tree]
Action: [recommended remediation]
METRIC VALIDATION:
- K-values consistent: [Yes/No — list mismatches]
- Metric mode: [Classic 32-bit | Wide 64-bit]
REDISTRIBUTION:
- External routes (D EX): [count]
- Route tags in use: [Yes/No]
- Mutual redistribution: [present/absent]
RECOMMENDATIONS:
- [Prioritized action list]
NEXT CHECK: [CRITICAL: 4hr, WARNING: 24hr, HEALTHY: 7d]
Neighbors with different K-values refuse to form adjacency — no error message
appears in the neighbor table because the adjacency never establishes. Check
show ip protocols on both devices and compare K1–K5 values. This is the most
common silent EIGRP adjacency failure.
One unresponsive neighbor can cascade SIA across the domain: Router A queries
Router B, which queries Router C, which is down. If C never replies, B cannot
reply to A, and A resets B. Use eigrp stub on leaf routers to prevent query
propagation beyond the distribution layer.
Mutual redistribution (EIGRP→OSPF and OSPF→EIGRP) without route tags creates loops where routes re-enter their original protocol with altered metrics. Use route tags at every redistribution point: tag EIGRP-originated routes and deny those tags on re-entry to EIGRP.
Named mode uses wide metrics (64-bit) internally and scales them for the RIB.
Mixing classic and named mode routers in the same AS is supported but metrics
may appear different in show output. Verify with show eigrp address-family
(named) vs show ip eigrp (classic) — both should compute the same successor.
passive-interface default suppresses EIGRP on all interfaces. If new
interfaces are added without no passive-interface, neighbors will not form.
Check show ip protocols to see which interfaces are passive.