Skip to content

DNM prepare for iBGP#4055

Draft
mtomaska wants to merge 1 commit into
openstack-k8s-operators:mainfrom
mtomaska:bgp_dt05
Draft

DNM prepare for iBGP#4055
mtomaska wants to merge 1 commit into
openstack-k8s-operators:mainfrom
mtomaska:bgp_dt05

Conversation

@mtomaska

@mtomaska mtomaska commented Jul 14, 2026

Copy link
Copy Markdown

add ability to set same ASN for spines and leafs
conditional add route-reflector-client for spines when when remote_as is set to internal as it is incase of iBGP (same asn)

@openshift-ci

openshift-ci Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci

openshift-ci Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign eshulman2 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@eduolivares

Copy link
Copy Markdown
Contributor

Hi Miro,

I tested the all-iBGP topology (all nodes in AS 65000, remote-as internal everywhere) on titan145 and found that router-0 receives no BGP routes from the spines. The root cause is the iBGP split-horizon rule: spine nodes learn routes from leaves via iBGP but cannot re-advertise them to router-0 (also iBGP) unless the spine is configured as a route reflector.

The fix is to add neighbor downlink route-reflector-client in the IPv4 and IPv6 address families on the spines when the downlink peering is iBGP. I verified this on titan145 — after adding the directive and restarting FRR, router-0 immediately started receiving all expected BGP routes.

I think playbooks/bgp/templates/spine-frr.conf.j2 needs a conditional block like:

  address-family ipv4 unicast
    redistribute connected
    neighbor downlink default-originate
    neighbor downlink prefix-list only-host-prefixes in
{% if cifmw_bgp_spine_downlink_remote_as | default('external') == 'internal' %}
    neighbor downlink route-reflector-client
{% endif %}

And the same for address-family ipv6 unicast. Without this, anyone who overrides to the all-iBGP topology will hit the split-horizon issue — spines silently drop leaf-learned routes instead of forwarding them to router-0.

@mtomaska mtomaska changed the title DNM bgp_dt05 kustomize values DNM prepare for iBGP Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants