Skip to content

Commit a6d7849

Browse files
committed
Adjusts to test eBGP (different ASN values)
Allow parameterized ASN (leaf_asn), downlink mode (downlink_remote_as). Conditional route-reflector-client for iBGP only. Sets downlink_remote_as and leaf_asn according to destined ebgp_racks and ebgp_leaf_asn variables (changes both IPv4 and IPv6 renders). Related: OSPRH-28085 Assisted-By: Claude Code Signed-off-by: Maor Blaustein <mblue@redhat.com>
1 parent ce8a96f commit a6d7849

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

playbooks/bgp/prepare-bgp-spines-leaves.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,8 @@
544544
become: true
545545
vars:
546546
downlink_interfaces: "{{ downlink_ifs_rack3 if (rack_id | int) == 3 else leaf_downlink_ifs }}"
547+
downlink_remote_as: "{{ 'external' if (rack_id | int) in (ebgp_racks | default([]) | map('int') | list) else 'internal' }}"
548+
leaf_asn: "{{ ebgp_leaf_asn | default(64999) if (rack_id | int) in (ebgp_racks | default([]) | map('int') | list) else 64999 }}"
547549
_router_id: ''
548550
ansible.builtin.template:
549551
src: templates/leaf-frr.conf.j2
@@ -599,6 +601,8 @@
599601
- name: Configure FRR
600602
become: true
601603
vars:
604+
downlink_remote_as: "{{ 'external' if (rack_id | int) in (ebgp_racks | default([]) | map('int') | list) else 'internal' }}"
605+
leaf_asn: "{{ ebgp_leaf_asn | default(64999) if (rack_id | int) in (ebgp_racks | default([]) | map('int') | list) else 64999 }}"
602606
_router_id: "{{ '1.1.1.20' + ansible_hostname.split('-')[-1] }}"
603607
ansible.builtin.template:
604608
src: templates/leaf-frr.conf.j2

playbooks/bgp/templates/leaf-frr.conf.j2

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ debug bgp neighbor-events
1313
debug bgp updates
1414
debug bgp update-groups
1515

16-
router bgp 64999
16+
{% set _downlink_as_mode = downlink_remote_as | default('internal') %}
17+
router bgp {{ leaf_asn | default(64999) }}
1718
{% if _router_id %}
1819
bgp router-id {{_router_id}}
1920
{% endif %}
@@ -27,7 +28,7 @@ router bgp 64999
2728
! bgp long-lived-graceful-restart stale-time 15
2829

2930
neighbor downlink peer-group
30-
neighbor downlink remote-as internal
31+
neighbor downlink remote-as {{ _downlink_as_mode }}
3132
neighbor downlink bfd
3233
neighbor downlink bfd profile tripleo
3334
{# TODO: remove the next if when RHEL-63205 is fixed #}
@@ -53,9 +54,11 @@ router bgp 64999
5354

5455
address-family ipv4 unicast
5556
redistribute connected
56-
neighbor downlink route-reflector-client
5757
neighbor downlink default-originate
5858
neighbor downlink next-hop-self
59+
{% if _downlink_as_mode == 'internal' %}
60+
neighbor downlink route-reflector-client
61+
{% endif %}
5962
neighbor downlink prefix-list only-host-prefixes out
6063
neighbor uplink allowas-in origin
6164
neighbor uplink prefix-list only-default-host-prefixes in
@@ -64,9 +67,11 @@ router bgp 64999
6467
address-family ipv6 unicast
6568
redistribute connected
6669
neighbor downlink activate
67-
neighbor downlink route-reflector-client
6870
neighbor downlink default-originate
6971
neighbor downlink next-hop-self
72+
{% if _downlink_as_mode == 'internal' %}
73+
neighbor downlink route-reflector-client
74+
{% endif %}
7075
neighbor uplink activate
7176
neighbor uplink allowas-in origin
7277
neighbor uplink prefix-list only-default-host-prefixes in
@@ -76,7 +81,9 @@ router bgp 64999
7681
neighbor uplink activate
7782
neighbor uplink allowas-in origin
7883
neighbor downlink activate
84+
{% if _downlink_as_mode == 'internal' %}
7985
neighbor downlink route-reflector-client
86+
{% endif %}
8087
exit-address-family
8188

8289
ip prefix-list only-default-host-prefixes permit 0.0.0.0/0

0 commit comments

Comments
 (0)