Skip to content

FRR does not propagate route from R2 to R3 across inter-confederation eBGP session #21535

@rsingha108

Description

@rsingha108

Description

When two routers belong to different BGP confederations (R2 in confed 65000, R3 in confed 65001) and peer externally, FRR R2 receives a route from an external origin (AS 65201) but fails to advertise it to R3. Both GoBGP and Batfish propagate the route correctly with AS_PATH 65000 65201 at R3, prepending the confederation identifier as required by RFC 5065 §4.

Topology: ExaBGP (AS 65201) → R2 (Member-AS 101, Confed ID 65000) → R3 (Member-AS 201, Confed ID 65001)

Version

10.6

How to reproduce

ExaBGP config (conf.ini):

process announce-routes {
    run python exabgp/example.py;
    encoder json;
}

neighbor 6.0.0.2 {
    router-id 6.0.0.3;
    local-address 6.0.0.3;
    local-as 65201;
    peer-as 65000;

    api {
        processes [announce-routes];
    }
}

ExaBGP route announcement (example.py):

announce route 100.0.0.0/8 next-hop self

R2 config (frr.conf):

router bgp 101
  no bgp ebgp-requires-policy
  bgp confederation identifier 65000
  neighbor 6.0.0.3 remote-as 65201
  neighbor 8.0.0.3 remote-as 65001
  neighbor 8.0.0.3 route-map SET_LOCAL_PREF out
exit
!
route-map SET_LOCAL_PREF permit 10
    set local-preference 100
exit
!

R3 config (frr.conf):

router bgp 201
  no bgp ebgp-requires-policy
  bgp confederation identifier 65001
  neighbor 8.0.0.2 remote-as external
exit
!

Expected behavior

R2 should advertise the route to R3 with the confederation identifier (65000) prepended to the AS_PATH:

  • R2 RIB: route present, AS_PATH = 65201
  • R3 RIB: route present, AS_PATH = 65000 65201

Cross-validation:

  • GoBGP: R2 ✅ (AS_PATH: 65201), R3 ✅ (AS_PATH: 65000 65201)
  • Batfish: R2 ✅ (AS_PATH: 65201), R3 ✅ (AS_PATH: 65000 65201)

Actual behavior

FRR:

  • R2 RIB: route present ✅ (AS_PATH: 65201)
  • R3 RIB: no route

R2 accepts the route from ExaBGP but does not propagate it to R3 across the inter-confederation eBGP session. Both GoBGP and Batfish successfully propagate in the same scenario.

Additional context

No response

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.

Metadata

Metadata

Assignees

Labels

bgptriageNeeds further investigation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions