test(lab): rtbh pipe-table split-horizon regression gates #267

Merged
vxfemboy merged 1 commit from test/rtbh-split-horizon-pipe-lab into main 2026-08-04 04:39:56 +00:00
Owner

Adds two permanent blackwall-lab regression tests from tonight's live production RTBH-propagation debugging on AS214806: rtbh-split-horizon-pipe-blocked.kdl asserts that piping an iBGP-learned route into a separate table does NOT defeat iBGP split-horizon. rtbh-split-horizon-pipe-with-rr.kdl is the control, proving rr client (real RFC 4456 route reflection) is what actually works. See deploy repo docs/BLACKWALL.md items 5-6 for the full writeup and production verification.

Adds two permanent blackwall-lab regression tests from tonight's live production RTBH-propagation debugging on AS214806: rtbh-split-horizon-pipe-blocked.kdl asserts that piping an iBGP-learned route into a separate table does NOT defeat iBGP split-horizon. rtbh-split-horizon-pipe-with-rr.kdl is the control, proving rr client (real RFC 4456 route reflection) is what actually works. See deploy repo docs/BLACKWALL.md items 5-6 for the full writeup and production verification.
test(lab): rtbh pipe-table split-horizon gates -- pipe alone doesn't defeat it, rr client does
Some checks failed
CI / check (pull_request) Successful in 12m56s
CI / lab (pull_request) Failing after 10m19s
dcf8c66a80
Regression test for a hypothesis raised while chasing the still-open "RTBH
doesn't propagate past home" bug (docs/BLACKWALL.md, deploy repo): does
importing an iBGP-learned route into a separate table and piping it into
master4 defeat BIRD's iBGP split horizon, letting it re-export to a second
iBGP peer without `rr client`?

Tested against real BIRD 2.17.1 in a 3-node netns lab (a -[iBGP]-> home
-[pipe: rtbh4 -> master4]-> exported to c over a second plain iBGP session).
Answer: no. The route's internal-origin marker survives the table copy, so
`show route export to_c` still omits it -- confirmed on the receiving side
too (`show route ... all` -> Network not found), matching the real bug.
Adding `rr client;` to the outbound session (with or without the pipe) does
let it through, with the expected RFC 4456 originator-id/cluster-list
markers -- that's the real fix, not the pipe.

Adds two permanent lab gates:
- rtbh-split-horizon-pipe-blocked.kdl: the negative result, so nobody ships
  a pipe-only "fix" that doesn't actually work.
- rtbh-split-horizon-pipe-with-rr.kdl: the control, proving rr client is
  what's actually needed.

Both wired into CI alongside the existing rtbh-bird gate.
vxfemboy force-pushed test/rtbh-split-horizon-pipe-lab from dcf8c66a80
Some checks failed
CI / check (pull_request) Successful in 12m56s
CI / lab (pull_request) Failing after 10m19s
to 36600dc573
All checks were successful
CI / check (pull_request) Successful in 25m10s
CI / lab (pull_request) Successful in 12m46s
2026-08-04 03:40:21 +00:00
Compare
vxfemboy deleted branch test/rtbh-split-horizon-pipe-lab 2026-08-04 04:39:56 +00:00
Sign in to join this conversation.
No description provided.