Skip to content
Thomas Mangin edited this page Aug 16, 2026 · 4 revisions

Pre-Alpha. This page describes behavior that may change.

RFC 4456 iBGP route reflector. Reflects routes between client peers and non-client peers, appending ORIGINATOR_ID and CLUSTER_LIST for loop detection.

Category

Policy.

Configuration

The RFC 4456 attribute handling is reactor logic and needs no plugin. It is enabled when any peer has route-reflector-client set to true.

bgp {
    peer client1 {
        connection {
            remote { ip 10.0.0.1; }
        }
        session {
            asn { local 65000; remote 65000; }
            route-reflector-client true;
        }
    }
    peer client2 {
        connection {
            remote { ip 10.0.0.2; }
        }
        session {
            asn { local 65000; remote 65000; }
            route-reflector-client true;
            cluster-id 1.2.3.4;
        }
    }
}

The bgp-rr plugin itself is a program, so a peer must attach it before it receives that peer's events.

plugin {
    internal rr { use bgp-rr; }
}

bgp {
    peer client1 {
        attach process rr {
            receive [ update-received state open-received ];
            send    [ update ];
        }
    }
}

Write update-received, never update. Both directions of update deadlock the plugin: forwarding an UPDATE raises the sent event that the forward is waiting on. The attach process block is authoritative since 2026-08-15; see Attached programs.

Leaf Type Default Description
route-reflector-client boolean false Mark this peer as a route reflector client.
cluster-id IPv4 address router-id Override cluster ID for route reflection (RFC 4456 Section 7).

Routes from clients are reflected to all other clients and non-clients. Routes from non-clients are reflected only to clients. ORIGINATOR_ID is set on reflection; CLUSTER_LIST is prepended. Loop detection drops routes where the local cluster-id appears in CLUSTER_LIST.

CLI

Command Description
show rr status Returns JSON with running state.
show rr peers Returns JSON array of peer addresses, remote AS, and up/down state.

Interactions

  • Depends on bgp-adj-rib-in for route replay on reconnect.
  • Works alongside bgp-rs for combined reflector + route server deployments.

Source

internal/component/bgp/plugins/rr/

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally