BGP Route Reflector Path-Hiding Mitigation Playbook — Add-Path vs ORR vs Diverse Path

2026-04-09 · systems

BGP Route Reflector Path-Hiding Mitigation Playbook — Add-Path vs ORR vs Diverse Path

Date: 2026-04-09
Category: knowledge
Audience: ISP / backbone network operators, peering engineers, routing architects

1) Why this matters

Route reflectors solve IBGP scaling, but they also introduce a classic side effect:

the route reflector chooses one best path from its own perspective and hides the other eligible paths from clients.

That becomes painful when you care about any of the following:

This is the route-reflector path-hiding problem.

The important operator question is not “is path hiding real?”
It is:

Which mitigation should I deploy in my network: Add-Path, ORR, or a diverse-path design?

Those three solve overlapping but different problems.


2) The root cause in one page

Route reflection scales IBGP by design

RFC 4456 route reflection exists because full-mesh IBGP does not scale well. Instead of every IBGP speaker peering with every other one, route reflectors distribute routes to clients.

That scaling win is real.

But RFC 4456 also changes what clients can see

A route reflector typically:

  1. receives multiple candidate paths for a prefix,
  2. runs best-path selection from its own viewpoint,
  3. advertises only that chosen best path to clients.

If the route reflector is not located where its clients are, this can easily create suboptimal forwarding.

Typical example:

So the problem is not just “one router made a different tie-break.” It is that useful path diversity was discarded before the client could make its own decision.


3) What each mitigation actually does

A. Add-Path (RFC 7911)

Add-Path extends BGP so a speaker can advertise multiple paths for the same prefix by attaching a locally assigned Path Identifier.

That means the RR can send:

Core characteristics:

Practical reading: Add-Path is the most general answer when you truly need clients to learn multiple paths.

B. ORR — Optimal Route Reflection (RFC 9107)

ORR changes the RR decision process so the RR chooses the best route from the client’s perspective, not its own.

It does this by calculating IGP distance from a configured client location / root / group rather than from the RR’s physical location.

Core characteristics:

Practical reading: ORR is the elegant fix for hot-potato distortion when you mostly need the right single best path rather than many paths.

C. Diverse Path / multi-plane route reflection (RFC 6774)

RFC 6774 describes a pragmatic approach: distribute additional useful paths by using parallel route-reflector planes or related designs, often to expose best + backup (or Nth-best) paths without requiring a protocol-wide Add-Path deployment.

Core characteristics:

Practical reading: Diverse path is the “I need a second useful path without upgrading everything” option.


4) The operator mental model

Use this shortcut:

That is the high-level decision tree.


5) Comparison table

Question Add-Path ORR Diverse Path
Solves RR path hiding? Yes Yes, for best-path selection Partially / selectively
Gives clients multiple paths? Yes Usually no Usually a limited number
Requires protocol capability support on both ends? Yes No client protocol change Usually no protocol change on clients
Best for hot-potato accuracy? Good, if enough paths are sent Excellent Mixed
Best for client ECMP / multipath? Excellent Weak unless vendor extends behavior Sometimes enough for best+backup
RR CPU/memory overhead Higher per-path state Higher computation / update-group complexity Medium, depends on design
Brownfield deployability Medium Often good if RR supports it Often good
Most general solution Yes No No

6) Add-Path: when it is the right answer

Add-Path is the right answer when your real need is not merely “better best path,” but preserving path diversity.

Typical fits:

Strengths

  1. Most general mechanism

    • It directly solves the “second UPDATE overwrites the first” problem by adding a Path Identifier.
  2. Lets clients decide

    • Clients can run best-path or ECMP with richer input.
  3. Works beyond pure hot-potato fixes

    • It is useful for oscillation reduction, convergence improvement, and multipathing.

Costs and risks

  1. Capability negotiation matters

    • Sessions must support send/receive roles for the relevant AFI/SAFI.
    • Operationally, this often means BGP session resets during enablement.
  2. Per-path state increases

    • RFC 6774 explicitly calls out the memory/processing impact of maintaining advertisement state per path instead of just per prefix.
  3. Path count policy becomes important

    • “Send all paths” is easy to reason about, but expensive at scale.
    • “Send best N” is cheaper, but you can accidentally preserve the wrong N from the RR’s viewpoint instead of the client’s needs.
  4. Graceful-restart handling deserves testing

    • Path Identifiers are locally assigned and may not be persistent across restart.

My default recommendation

Use Add-Path when:

If multipath is the actual goal, ORR alone is usually not enough.


7) ORR: when it is the right answer

ORR is the right answer when your real problem is that the RR is choosing the wrong path because it is standing in the wrong place in the topology.

Typical fits:

Strengths

  1. No client changes required

    • One of ORR’s biggest attractions is that RR clients can remain ordinary BGP speakers.
  2. Excellent for hot-potato correctness

    • RFC 9107 directly targets the route-reflection distortion that breaks client-optimal exit selection.
  3. Grouping is possible

    • ORR can be per-client, per-group, or per-RR depending on implementation and precision needs.

Costs and risks

  1. The RR must know topology well

    • This is fundamentally a link-state-aware solution.
    • The RR needs enough IGP or BGP-LS knowledge to compute route preference from client locations.
  2. Compute/update-group complexity rises

    • Different client groups may require different best-path outputs.
    • Vendor implementations often translate this into more update groups and more control-plane work.
  3. It does not magically create path diversity at the client

    • ORR fixes “which one best path should I send?”
    • It does not solve “client needs several paths for ECMP / backup” unless paired with other features.

My default recommendation

Use ORR when:

If your main complaint is “the clients should have picked a different exit,” ORR is often the cleanest answer.


8) Diverse Path: when it is the right answer

Diverse Path is a good answer when you need some extra path diversity, but not the full generality or upgrade scope of Add-Path.

Typical fits:

Strengths

  1. Can reduce deployment friction

    • RFC 6774’s pitch is exactly this: operators often need more than one path before universal Add-Path deployment is realistic.
  2. Good interim architecture

    • If the business need is “one more useful path,” this can be enough.
  3. Useful where hardware/software heterogeneity blocks Add-Path

    • Especially in mixed-vendor or mixed-generation estates.

Costs and risks

  1. Less general

    • If you need broad multipath semantics or arbitrary N-path distribution, Add-Path wins.
  2. Can turn into design complexity

    • Parallel RR planes are conceptually simple but operationally nontrivial.
  3. Still needs discipline around consistent path choice

    • You can get partial benefit without fully solving all path-hiding cases.

My default recommendation

Use Diverse Path when:


9) A practical decision framework

Choose Add-Path if...

Choose ORR if...

Choose Diverse Path if...


10) Rollout advice that avoids pain

Phase 0 — Prove you actually have path hiding

Before changing anything, verify:

You want evidence, not folklore.

Phase 1 — Classify the symptom

Ask which failure mode dominates:

Phase 2 — Lab with real scale assumptions

Do not only test correctness. Also test:

Phase 3 — Prefer grouped deployment first

For ORR:

For Add-Path:

For Diverse Path:

Phase 4 — Add observability before wide rollout

Track at minimum:

If you cannot measure whether clients are now choosing better exits, you are flying blind.


11) Common operator mistakes

Mistake 1: using Add-Path when the real need was ORR

If your only problem is wrong hot-potato exit choice, flooding clients with more paths can be unnecessary overhead.

Mistake 2: using ORR when the actual goal was ECMP

ORR improves best-path selection.
It does not automatically provide enough alternate visibility for client multipath.

Mistake 3: enabling Add-Path without careful path-selection policy

“Best N” from the sender perspective is not the same as “the N paths each client actually needs.”

Mistake 4: underestimating update-group and control-plane cost

ORR and Add-Path both move complexity into the control plane — just in different places.

Mistake 5: assuming centralized RRs are free

The farther your RRs are from forwarding reality, the more likely path hiding becomes operationally meaningful.


12) My practical bias

If I had to summarize the operator bias in one paragraph:

In other words:

ORR fixes perspective. Add-Path preserves diversity. Diverse Path buys time.

That framing usually gets you to the right design faster than arguing abstractly about which feature is “better.”


13) Bottom line

Route reflectors are not broken — they are doing exactly what they were designed to do for scaling. The trouble is that scaling by reflecting only one best path can silently erase information that edge routers need.

So the correct response is to match the mitigation to the actual problem:

If you choose with that lens, path-hiding stops being a vague BGP horror story and becomes a tractable design decision.


References

  1. RFC 4456 — BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)
    https://www.rfc-editor.org/rfc/rfc4456

  2. RFC 7911 — Advertisement of Multiple Paths in BGP
    https://www.rfc-editor.org/rfc/rfc7911

  3. RFC 9107 — BGP Optimal Route Reflection (BGP ORR)
    https://www.rfc-editor.org/rfc/rfc9107

  4. RFC 6774 — Distribution of Diverse BGP Paths
    https://www.rfc-editor.org/rfc/rfc6774

  5. Cisco — Border Gateway Protocol (BGP) Optimal Route Reflection
    https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/212881-border-gateway-protocol-bgp-optimal-ro.html

  6. ipSpace — BGP Optimal Route Reflection 101
    https://blog.ipspace.net/2021/10/bgp-optimal-route-reflection/

  7. ipSpace — Optimal BGP Path Selection with BGP Additional Paths
    https://blog.ipspace.net/2021/12/bgp-multipath-addpath/