redistribution-troubleshooting
Cross-protocol redistribution (OSPF↔EIGRP) — seed metrics, subnets keyword, loop risk, route-map filtering
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Cross-protocol redistribution (OSPF↔EIGRP) — seed metrics, subnets keyword, loop risk, route-map filtering
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
BGP session state, missing routes, prefix policy, default-originate, next-hop-self, route reflector — decision trees and checklists
SLA path failure workflow — read sla_paths.json, traceroute-first localization, ECMP handling, protocol triage
OSPF adjacency, LSDB, area types, authentication, route filtering, and redistribution — symptom-first decision trees with lookup tables
Path selection investigation — PBR, route-map and prefix-list policy influence, ECMP behavior, routing table verification
| name | Redistribution Troubleshooting |
| description | Cross-protocol redistribution (OSPF↔EIGRP) — seed metrics, subnets keyword, loop risk, route-map filtering |
SHOWCASE ARTIFACT — This skill was written for a previous topology that included EIGRP. The current topology (v5.0+) is OSPF+BGP only. EIGRP was removed and there is no
get_eigrpMCP tool. Retained as a reference for cross-protocol redistribution methodology only. Do not follow this skill for the current topology.
PREREQUISITE: Before investigating redistribution, you MUST have verified that interfaces are Up/Up and OSPF and/or EIGRP adjacencies are healthy on BOTH sides of the redistribution point. Run
get_interfaces(device),get_ospf(device, "neighbors"), andget_eigrp(device, "neighbors"). If any interface is down or any adjacency is missing, fix that first (seeskills/ospf/SKILL.mdorskills/eigrp/SKILL.mdAdjacency/Neighbor Checklist). Redistribution cannot work if the source protocol's adjacencies are down.
Cross-protocol redistribution troubleshooting at the redistribution point: E1C (EIGRP AS10 ↔ OSPF bidirectional, route-map filtered).
Administrative Distance: Connected 0 · Static 1 · EIGRP internal 90 · OSPF 110 · EIGRP external 170 · iBGP 200
Critical asymmetry: EIGRP internal (AD 90) < OSPF (AD 110). If a prefix is learned via both protocols natively, EIGRP wins — even if OSPF has the shorter path. This is the #1 cause of suboptimal routing in mutual redistribution topologies.
| Device | Direction | Notes |
|---|---|---|
| E1C | EIGRP AS10 ↔ OSPF (bidirectional) | Both ways: EIGRP→OSPF (via route-map OSPF-TO-EIGRP) and OSPF→EIGRP (metric-type 1). A1C/A2C use EIGRP to reach E1C as default gateway. Loop risk — mitigated by route-map on the OSPF→EIGRP redistribute statement. |
When routes should appear after redistribution but don't:
get_routing_policies(device, "redistribution") → active redistribution statements
get_ospf(device, "database") → check for Type 5/7 LSAs on ASBR
get_eigrp(device, "topology") → check for redistributed routes (D EX entries)
No seed metric (EIGRP) → EIGRP silently drops routes with infinite metric
metric <bw> <delay> <reliability> <load> <mtu> to the redistribute statementMissing subnets keyword (OSPF) → redistribute eigrp X without subnets drops all classless subnets
subnets keywordRoute-map filtering → redistribution may use a route-map that filters routes
get_routing_policies(device, "route_maps")Metric-type E2 vs E1 → E2 (default) = fixed external cost from ASBR; E1 = cumulative (internal + external)
get_ospf(device, "config")When a device redistributes in both directions (OSPF↔EIGRP), routes learned from one protocol can be re-injected back, creating a loop.
get_routing_policies(device, "redistribution") → check for route-map on the redistribute statement
get_routing_policies(device, "route_maps") → verify the route-map logic filters appropriately
get_routing(device).Route tagging is the standard mechanism to prevent redistributed routes from re-entering their originating protocol at the other redistribution point.
Pattern at each redistribution point:
set tag 10 in the route-mapmatch tag 10 with a deny sequence in the route-mapThis prevents an OSPF-originated route from being redistributed into EIGRP at C1C and then back into OSPF at C2C.
Diagnosis: get_routing_policies(device, "route_maps") — check for set tag and match tag clauses on C1C and C2C. If absent, loop prevention relies on AD alone (fragile).
| Direction | Requirement | Guidance |
|---|---|---|
| OSPF → EIGRP | Explicit seed metric required | redistribute ospf 1 metric 10000 100 255 1 1500 (bandwidth in kbps, delay in 10μs units, reliability, load, MTU). EIGRP silently drops routes with no metric. |
| EIGRP → OSPF | Optional (defaults to 20 if omitted) | redistribute eigrp 10 subnets metric-type 1 — use E1 if downstream OSPF cost should influence path selection; use E2 (default) for a fixed cost regardless of internal topology. |
get_routing_policies(device, "redistribution") — confirm BOTH redistribute statements exist on C1C or C2Cget_eigrp(device, "topology") — is the OSPF prefix present as D EX (EIGRP external)?get_ospf(device, "database") — is the EIGRP prefix present as a Type 5 (or Type 7 in NSSA) LSA?get_routing(device, prefix=<X>) to see which protocol installed it.get_ospf(asbr_device, "database") shows Type 5 or Type 7 LSAs for redistributed routesget_eigrp(receiving_device, "topology") shows redistributed routes as D EX (external)get_routing(device) shows redistributed prefixes with expected next-hopsReferences: Cisco redistribution configuration guide · RFC 2328 §16.4 (OSPF external route calculation)