BGP Route-Leak Defense 2.0 — RFC 9234 Roles + ASPA Operator Playbook

2026-03-28 · systems

BGP Route-Leak Defense 2.0 — RFC 9234 Roles + ASPA Operator Playbook

Date: 2026-03-28
Category: knowledge
Audience: ISP / IX / backbone network operators, peering engineers, NOC/SRE

1) Why this matters now

Route Origin Validation (ROV) made origin hijacks harder, but it does not verify whether an AS path is policy-plausible end-to-end.

Practical takeaway: ROV alone is not enough for route-leak resilience. You need a layered control stack.


2) The layered model (what each layer catches)

Layer A — ROA/ROV (origin correctness)

Layer B — RFC 9234 Roles + OTC (session/path-policy enforcement)

Layer C — ASPA verification (AS_PATH plausibility)

The strongest posture is A + B + C together.


3) ASPA in one page (2026 status)

ASPA is specified in active SIDROPS drafts (profile + verification), not yet final RFC at the time of writing.

Core model:

Important registration guidance from draft-ietf-sidrops-aspa-verification:

  1. Include all provider ASes (and non-transparent RS ASes where relevant).
  2. In complex relationships, include neighbors that play provider role for any subset.
  3. Prefer one ASPA object per customer AS to reduce race conditions.
  4. Keep “backup/surge” providers pre-listed when possible.

4) RFC 9234 + ASPA are complementary, not alternatives

A frequent mistake is treating ASPA as a replacement for RFC 9234 controls.

Per the ASPA verification draft, ASPA may fail to stop:

That is exactly where RFC 9234 OTC helps.
So operationally:


5) Safe deployment sequence (recommended)

Phase 0 — Hygiene baseline

Phase 1 — Enable RFC 9234 roles/OTC

Phase 2 — Enable ASPA in RP + RTR pipeline

Phase 3 — Observe-only policy

Phase 4 — Controlled enforcement


6) Policy matrix (pragmatic defaults)

ASPA result Early rollout Mature rollout
Valid Accept Accept
Unknown Accept Accept (with monitoring)
Invalid Tag + deprioritize / hold Reject on ingress (with exception process)

This aligns with draft guidance that Unknown should be treated at Valid preference and Invalid should be made ineligible.


7) Operational gotchas that cause outages

  1. Forgetting one upstream in ASPA
    Routes via that upstream can become Invalid at ASPA-aware networks.

  2. Treating ASPA as set-and-forget
    Provider changes must be reflected quickly (change-management coupling required).

  3. Dropping Unknown too early
    During partial adoption, this can self-inflict reachability loss.

  4. No role discipline
    Without RFC 9234 role correctness and OTC, local leaks can still escape.

  5. Weak observability
    If you cannot answer “why invalid?” per prefix/peer, you are not ready for hard enforcement.


8) Minimal telemetry you should keep

Alerting suggestions:


9) Quick readiness checklist

Before turning on Invalid-drop globally, verify all boxes:

If any of these are missing, stay in observe-only mode longer.


10) Bottom line

For modern inter-domain defense, think in layers:

  1. ROV for origin integrity,
  2. RFC 9234 roles/OTC for policy-aligned propagation,
  3. ASPA for cryptographic AS_PATH plausibility.

The winning strategy is not “flip one switch.” It is incremental rollout + strict data hygiene + good telemetry.


References

  1. RFC 7908 — Problem Definition and Classification of BGP Route Leaks
    https://www.rfc-editor.org/rfc/rfc7908

  2. RFC 9234 — Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages
    https://www.rfc-editor.org/rfc/rfc9234

  3. IETF Draft — A Profile for Autonomous System Provider Authorization
    https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile

  4. IETF Draft — BGP AS_PATH Verification Based on ASPA Objects
    https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-verification

  5. RIPE NCC — Autonomous System Provider Authorization (ASPA)
    https://www.ripe.net/manage-ips-and-asns/resource-management/rpki/aspa/

  6. Routinator docs — Advanced Features (ASPA enablement)
    https://routinator.docs.nlnetlabs.nl/en/stable/advanced-features.html

  7. NLnet Labs — Routinator 0.14.1 released (ASPA inclusion note)
    https://nlnetlabs.nl/news/2025/Jan/22/routinator-0.14.1-released/

  8. OpenBSD bgpd.conf(5) manual (role/OTC/ASPA-related knobs)
    https://man.openbsd.org/bgpd.conf

  9. RIPE Labs — ASPA in the RPKI Dashboard (implementation/deployment commentary)
    https://labs.ripe.net/author/tim_bruijnzeels/aspa-in-the-rpki-dashboard-a-new-layer-of-routing-security/