BGP Add-path multiplication
Jon Langemak
jon at interubernet.com
Thu Dec 11 01:08:58 CET 2025
Well - my ASCII diagram may have failed to come through cleanly. If so -
the topology was pretty basic..
Sending PE <-> Pair of left side tier 2 RRs <-> Pair of left side tier 1
RRs <-> Pair of right side tier 1 RRs <-> Pair of right side tier 2 RRs <->
Receiving PE
Hope that helps if the diagram didn't come across cleanly.
Thanks - Jon
On Wed, Dec 10, 2025 at 5:56 PM Jon Langemak <jon at interubernet.com> wrote:
> Hi folks,
>
> I was doing some testing with BIRD in a hierarchical route reflector
> configuration. Something that looks like this...
>
> +--------+ +--------+
> +--------+ +--------+
> | Left | | Left | |
> Right | | Right |
> | Tier 2 | | Tier 1 | |
> Tier 1 | | Tier 2 |
> | RR | | RR | |
> RR | | RR |
> +-----------+ | | | | |
> | | |
> | | +--------+ +--------+
> +--------+ +--------+ +------------+
> | |
> | |
> | Sending |
> | Receiving |
> | PE Router |
> | PE Router |
> | |
> | |
> +-----------+ +--------+ +--------+
> +--------+ +--------+ +------------+
> | Left | | Left | |
> Right | | Right |
> | Tier 2 | | Tier 1 | |
> Tier 1 | | Tier 2 |
> | RR | | RR | |
> RR | | RR |
> | | | | |
> | | |
> +--------+ +--------+
> +--------+ +--------+
>
> Basically we have two PEs that are connected to local tier 2 RRs which
> then connect to the tier 1 RRs to form a mesh. I couldn't get the lines to
> not look a mess on the diagram but the peering looks as follows...
>
> * PE routers peer to both local tier 2 RRs (left or right side)
> * Tier 2 RRs peer to both tier 1 RRs (within left or right)
> * Tier 1 RRs peer to both tier 1 RRs (between left and right)
>
> The only peering exception in terms of a full mesh peering is that RRs of
> the same type do not peer together in the same area (left or right). In
> terms of the diagram that means that vertical peering between nodes does
> not exist.
>
> What I'm seeing is that in a peering configuration with BGP add-path BIRD
> is sending all of the paths it is aware of to all of its peers. For
> instance...
>
> * A prefix originated from the PE on the left side of the diagram shows up
> as one path in each left side tier 2 RR it is peered with (1 path in each
> left side tier 2 RR)
> * The left side tier 2 RRs both peer to each left side tier 1 RRs so they
> each send a path to each of the left side tier 1 RRs (2 paths in each left
> side tier 1 RR)
> * The left side tier 1 RRs both peer to each of the right side tier 1 RRs
> so they send both paths they are aware of to each right side tier 1 RR (4
> paths in each right side tier 1 RR)
> * The right side tier 1 RRs both peer to each of the right side tier 2 RRs
> so they send their 4 paths to each right side tier 2 RR (8 paths in each
> right side tier 2 RR)
> * The right side (receiving) PE ends up getting 8 paths from each right
> side tier 2 RR meaning it has a total of 16 paths for one prefix.
>
> Put more simply - a single path originating in the left side ends up
> getting multiplied by a factor of two at each route reflector "layer".
> From my basic understanding of the code I believe this happens because BIRD
> considers paths unique on a per neighbor basis. Because of this -
> identical paths learned from unique neighbors can get assigned unique path
> IDs and therefore be propagated through the topology. From my
> understanding of RFC 7911 - this sort of topology was not discussed so
> there is no defined means for how to handle add-path and the deduplication
> of these paths in this kind of hierarchical route reflector setup. However
> I believe that in some other BGP implementations you can configure the
> route reflectors to only send paths with unique next-hops which would
> effectively deduplicate the paths in this kind of topology.
>
> I was curious if other folks had run into this before and if there has
> been any talk about possible solutions for BIRD to work with add-path in a
> hierarchical route reflector model without the path multiplication
> occurring.
>
> Thanks! - Jon
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20251210/4f7d3914/attachment.htm>
More information about the Bird-users
mailing list