Skip to content
LinkState
Go back

Originator ID and cluster list side effects on propagation

Introduction to Route Reflection

Route reflection reduces the full‑mesh IBGP requirement by allowing a router (the route reflector, or RR) to redistribute IBGP‑learned routes to its clients. Two transitive BGP attributes—Originator ID and Cluster List—provide loop prevention in this hierarchy.

Originator ID Attribute

Cluster List Attribute


Route Reflection Behavior

Originator ID Impact

  1. Upon receipt of an IBGP update, the router checks the Originator ID.
  2. If it matches the local BGP Router ID, the update is ignored (treated as never received).
  3. Otherwise, the route proceeds to the normal BGP best‑path evaluation (weight, local‑pref, AS‑path, etc.).

Thus, a seemingly valid alternate path can be suppressed when the local router has already originated the route (e.g., a client mistakenly re‑advertises an RR‑learned route back to the RR).

Cluster List Impact

  1. After the Originator ID test, the router scans the Cluster List for an entry matching its own Cluster ID (configured via bgp cluster-id or defaulted to the router‑ID).
  2. A match causes the update to be discarded as a potential loop.
  3. If no match exists, the route is eligible for insertion into the BGP RIB and subsequent best‑path calculation.

Because each RR prepends its ID, a route that has traversed multiple RRs accumulates a list; any RR seeing its own ID anywhere in the list knows the route has already been reflected and must ignore it.

Interaction


Troubleshooting Route Reflection Issues

Identifying Mismatches

Symptoms that often point to Originator ID or Cluster List problems:

To confirm, inspect the attribute fields of the received update:

Look for originator-id: and cluster-list: entries.

Debugging with CLI Commands

VendorCommandPurpose
Cisco IOS/XRshow ip bgp neighbors <ip> advertised-routesSee what the RR is advertising to a specific client (includes Originator ID and Cluster List).
Cisco IOS/XRshow ip bgp neighbors <ip> received-routesView routes received from a client; useful to spot missing Originator ID or unexpected Cluster List.
Cisco IOS/XRdebug ip bgp updatesReal‑time view of BGP update generation; observe when Originator ID is set and when Cluster List is prepended.
Cisco IOS/XRshow ip bgpCheck overall BGP table; note routes marked * (not best) due to loop‑prevention.
Juniper Junosshow route advertising-protocol bgp <neighbor>Displays routes the RR is sending to a neighbor, with attribute details.
Juniper Junosshow route receive-protocol bgp <neighbor>Shows routes received from a neighbor; includes originator-id and cluster-list.
Juniper Junosmonitor traffic interface <if> matching "bgp"Capture BGP packets to verify Cluster List length and content on the wire.
Juniper Junosshow bgp neighbor <ip>Provides summary of session state and configured cluster-id.

When debugging, capture a single update that is being dropped and compare its attribute fields against the local router’s Router ID and Cluster ID. A match indicates expected loop prevention; otherwise, investigate mis‑configuration (duplicate cluster IDs, incorrect router‑ID assignment, etc.).


Configuration Examples

Note: Originator ID is not directly configurable; it mirrors the BGP Router ID. To influence it, set the router‑ID appropriately. Cluster ID can be set explicitly or defaults to the router‑ID.

Cisco IOS/XR

Set Router ID (affects Originator ID)

router bgp 65000
  bgp router-id 1.1.1.1

Configure Cluster ID

router bgp 65000
  bgp cluster-id 10.0.0.1   ! Explicit 4‑byte Cluster ID
  neighbor 10.0.0.2 route-reflector-client
  neighbor 10.0.0.3 route-reflector-client

Juniper Junos

Set Router ID (affects Originator ID)

set routing-options router-id 1.1.1.1
set protocols bgp group internal type internal
set protocols bgp group internal local-address 10.0.0.1
set protocols bgp group internal neighbor 10.0.0.2
set protocols bgp group internal neighbor 10.0.0.3

Configure Cluster ID

set protocols bgp group internal cluster 10.0.0.1   ! 4‑byte Cluster ID
set protocols bgp group internal neighbor 10.0.0.2
set protocols bgp group internal neighbor 10.0.0.3

Scaling Limitations

Originator ID and Cluster List Limits

Scalability Considerations

  1. Cluster ID Uniqueness: Duplicate cluster IDs across different RRs cause false loop detection, leading to unnecessary path suppression.
  2. Client Fan‑out: A single RR serving hundreds of clients can become a bottleneck; consider a two‑tier route‑reflection design (cluster of RRs) to distribute load.
  3. Add‑Path Interaction: When using BGP Add‑Path, each path carries its own Originator ID and Cluster List; the RR must replicate the list for each path, increasing update size.
  4. Route‑Flap Dampening: Frequent changes in Originator ID (due to router‑ID changes) can trigger unnecessary withdrawals and re‑advertisements, amplifying churn.
  5. Memory: Storing multiple copies of the same route with different Cluster Lists (e.g., in a multi‑cluster design) increases RIB size proportionally to the number of distinct cluster‑list variations observed.

Advanced Route Reflection Scenarios

Multiple Originator IDs

When several routers within the same AS originate the same prefix (e.g., dual‑homed edge routers advertising a summary), each update carries a different Originator ID. The RR treats them as separate routes in the BGP table. The BGP best‑path algorithm selects among them using the usual criteria (weight, local‑pref, etc.). Originator ID does not influence selection; it serves only as a loop‑prevention token.

If the RR reflects both updates to a client, the client sees two IBGP entries for the same prefix, each with a distinct Originator ID. The client installs the best one per the standard decision process; the other remains as a non‑best (*) route.

Complex Cluster List Configurations

In designs employing confederations or multiple clustering tiers, a route may traverse several RRs, each belonging to a different confederation sub‑AS or cluster. The Cluster List becomes a stack:

[RR3-ClusterID][RR2-ClusterID][RR1-ClusterID]   (most recent RR prepended)

A router discards the update if any entry matches its own Cluster ID, regardless of position. This enables hierarchical loop prevention: a route already reflected by a parent cluster will be rejected by a child cluster if the child’s ID appears anywhere in the list.

Cisco IOS/XR – Two‑Tier Route Reflection with Distinct Cluster IDs

! Top‑level RR (cluster-id 100.0.0.1)
router bgp 65000
  bgp router-id 10.0.0.1
  bgp cluster-id 100.0.0.1
  neighbor 10.0.0.2 route-reflector-client   ! client RR1
  neighbor 10.0.0.3 route-reflector-client   ! client RR2

! RR1 (cluster-id 100.0.0.2)
router bgp 65000
  bgp router-id 10.0.0.2
  bgp cluster-id 100.0.0.2
  neighbor 10.0.0.4 route-reflector-client   ! edge client
  neighbor 10.0.0.1 route-reflector-client   ! uplink to top‑level RR

! RR2 (cluster-id 100.0.0.3)
router bgp 65000
  bgp router-id 10.0.0.3
  bgp cluster-id 100.0.0.3
  neighbor 10.0.0.5 route-reflector-client   ! edge client
  neighbor 10.0.0.1 route-reflector-client   ! uplink to top‑level RR

Juniper Junos – Confederation with Multiple Clusters

set routing-options autonomous-system 65000 confederation members 65001 65002
set routing-options router-id 10.0.0.10

! Sub‑AS 65001 – RR with cluster-id 10.0.0.1
set protocols bgp group internal type internal
set protocols bgp group internal local-address 10.0.0.11
set protocols bgp group internal cluster 10.0.0.1
set protocols bgp group internal neighbor 10.0.0.12
set protocols bgp group internal neighbor 10.0.0.13

! Sub‑AS 65002 – RR with cluster-id 10.0.0.2
set protocols bgp group internal type internal
set protocols bgp group internal local-address 10.0.0.21
set protocols bgp group internal cluster 10.0.0.2
set protocols bgp group internal neighbor 10.0.0.22
set protocols bgp group internal neighbor 10.0.

Share this post on:

Previous Post
Promiscuous mode will not fix broken tenant isolation
Next Post
VLAN Strip Features Change What XDP and tc Parse