diff --git a/objects/06-bgp.yml b/objects/06-bgp.yml new file mode 100644 index 0000000..7a0edc5 --- /dev/null +++ b/objects/06-bgp.yml @@ -0,0 +1,980 @@ +# BGP: RouterConfig, PeerGroups, Sessions, AddressFamilies +# Depends on: 01-foundation (ASNs), 02-devices, 04-ipam +# +# Spine BGP: no named peer-groups in config (neighbors defined directly), +# but evpn peer-group is defined. Underlay neighbors are direct. +# Leaf BGP: underlay, underlay_ibgp, evpn peer-groups. +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraBGPRouterConfig + data: + # ============================================================ + # Spine1 BGP — AS 65000, router-id 10.0.250.1 + # ============================================================ + - device: spine1 + router_id: "10.0.250.1" + local_asn: "65000" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Spine2 BGP — AS 65000, router-id 10.0.250.2 + # ============================================================ + - device: spine2 + router_id: "10.0.250.2" + local_asn: "65000" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf1 BGP — AS 65001, router-id 10.0.250.11 + # ============================================================ + - device: leaf1 + router_id: "10.0.250.11" + local_asn: "65001" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf2 BGP — AS 65001, router-id 10.0.250.12 + # ============================================================ + - device: leaf2 + router_id: "10.0.250.12" + local_asn: "65001" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf3 BGP — AS 65002, router-id 10.0.250.13 + # ============================================================ + - device: leaf3 + router_id: "10.0.250.13" + local_asn: "65002" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf4 BGP — AS 65002, router-id 10.0.250.14 + # ============================================================ + - device: leaf4 + router_id: "10.0.250.14" + local_asn: "65002" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf5 BGP — AS 65003, router-id 10.0.250.15 + # ============================================================ + - device: leaf5 + router_id: "10.0.250.15" + local_asn: "65003" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf6 BGP — AS 65003, router-id 10.0.250.16 + # ============================================================ + - device: leaf6 + router_id: "10.0.250.16" + local_asn: "65003" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf7 BGP — AS 65004, router-id 10.0.250.17 + # ============================================================ + - device: leaf7 + router_id: "10.0.250.17" + local_asn: "65004" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 + # ============================================================ + # Leaf8 BGP — AS 65004, router-id 10.0.250.18 + # ============================================================ + - device: leaf8 + router_id: "10.0.250.18" + local_asn: "65004" + default_ipv4_unicast: false + log_neighbor_changes: true + ecmp_max_paths: 4 + ecmp_max_ecmp: 64 + ebgp_distance: 20 + ibgp_distance: 200 + local_distance: 200 +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraBGPPeerGroup + data: + # ============================================================ + # Spine peer-groups (evpn only — underlay neighbors are direct) + # ============================================================ + # Spine1 — evpn peer-group + - bgp_config: spine1 + name: evpn + description: EVPN overlay to leaf loopbacks + peer_group_type: evpn + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + next_hop_unchanged: true + maximum_routes: 12000 + maximum_routes_warning_only: true + # Spine2 — evpn peer-group + - bgp_config: spine2 + name: evpn + description: EVPN overlay to leaf loopbacks + peer_group_type: evpn + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + next_hop_unchanged: true + maximum_routes: 12000 + maximum_routes_warning_only: true + # ============================================================ + # Leaf peer-groups (underlay, underlay_ibgp, evpn) + # ============================================================ + # Leaf1 + - bgp_config: leaf1 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf1 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65001" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf1 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf2 + - bgp_config: leaf2 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf2 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65001" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf2 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf3 + - bgp_config: leaf3 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf3 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65002" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf3 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf4 + - bgp_config: leaf4 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf4 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65002" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf4 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf5 + - bgp_config: leaf5 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf5 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65003" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf5 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf6 + - bgp_config: leaf6 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf6 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65003" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf6 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf7 + - bgp_config: leaf7 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf7 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65004" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf7 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true + # Leaf8 + - bgp_config: leaf8 + name: underlay + description: Underlay eBGP to spines + peer_group_type: underlay + remote_asn: "65000" + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf8 + name: underlay_ibgp + description: MLAG iBGP peering + peer_group_type: underlay_ibgp + remote_asn: "65004" + next_hop_self: true + maximum_routes: 12000 + maximum_routes_warning_only: true + - bgp_config: leaf8 + name: evpn + description: EVPN overlay to spines + peer_group_type: evpn + remote_asn: "65000" + update_source: Loopback0 + ebgp_multihop: 3 + send_community: extended + maximum_routes: 12000 + maximum_routes_warning_only: true +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraBGPSession + data: + # ============================================================ + # Spine1 sessions + # ============================================================ + # Spine1 underlay (direct neighbors, no peer-group — use remote_asn) + - bgp_config: spine1 + peer_address: "10.0.1.1" + description: "underlay to leaf1" + remote_asn: "65001" + peer_device: leaf1 + - bgp_config: spine1 + peer_address: "10.0.1.3" + description: "underlay to leaf2" + remote_asn: "65001" + peer_device: leaf2 + - bgp_config: spine1 + peer_address: "10.0.1.5" + description: "underlay to leaf3" + remote_asn: "65002" + peer_device: leaf3 + - bgp_config: spine1 + peer_address: "10.0.1.7" + description: "underlay to leaf4" + remote_asn: "65002" + peer_device: leaf4 + - bgp_config: spine1 + peer_address: "10.0.1.9" + description: "underlay to leaf5" + remote_asn: "65003" + peer_device: leaf5 + - bgp_config: spine1 + peer_address: "10.0.1.11" + description: "underlay to leaf6" + remote_asn: "65003" + peer_device: leaf6 + - bgp_config: spine1 + peer_address: "10.0.1.13" + description: "underlay to leaf7" + remote_asn: "65004" + peer_device: leaf7 + - bgp_config: spine1 + peer_address: "10.0.1.15" + description: "underlay to leaf8" + remote_asn: "65004" + peer_device: leaf8 + # Spine1 EVPN (via evpn peer-group) + - bgp_config: spine1 + peer_address: "10.0.250.11" + description: "EVPN to leaf1" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65001" + peer_device: leaf1 + - bgp_config: spine1 + peer_address: "10.0.250.12" + description: "EVPN to leaf2" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65001" + peer_device: leaf2 + - bgp_config: spine1 + peer_address: "10.0.250.13" + description: "EVPN to leaf3" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65002" + peer_device: leaf3 + - bgp_config: spine1 + peer_address: "10.0.250.14" + description: "EVPN to leaf4" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65002" + peer_device: leaf4 + - bgp_config: spine1 + peer_address: "10.0.250.15" + description: "EVPN to leaf5" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65003" + peer_device: leaf5 + - bgp_config: spine1 + peer_address: "10.0.250.16" + description: "EVPN to leaf6" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65003" + peer_device: leaf6 + - bgp_config: spine1 + peer_address: "10.0.250.17" + description: "EVPN to leaf7" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65004" + peer_device: leaf7 + - bgp_config: spine1 + peer_address: "10.0.250.18" + description: "EVPN to leaf8" + peer_group: ["10.0.250.1", "evpn"] + remote_asn: "65004" + peer_device: leaf8 + # ============================================================ + # Spine2 sessions + # ============================================================ + # Spine2 underlay + - bgp_config: spine2 + peer_address: "10.0.2.1" + description: "underlay to leaf1" + remote_asn: "65001" + peer_device: leaf1 + - bgp_config: spine2 + peer_address: "10.0.2.3" + description: "underlay to leaf2" + remote_asn: "65001" + peer_device: leaf2 + - bgp_config: spine2 + peer_address: "10.0.2.5" + description: "underlay to leaf3" + remote_asn: "65002" + peer_device: leaf3 + - bgp_config: spine2 + peer_address: "10.0.2.7" + description: "underlay to leaf4" + remote_asn: "65002" + peer_device: leaf4 + - bgp_config: spine2 + peer_address: "10.0.2.9" + description: "underlay to leaf5" + remote_asn: "65003" + peer_device: leaf5 + - bgp_config: spine2 + peer_address: "10.0.2.11" + description: "underlay to leaf6" + remote_asn: "65003" + peer_device: leaf6 + - bgp_config: spine2 + peer_address: "10.0.2.13" + description: "underlay to leaf7" + remote_asn: "65004" + peer_device: leaf7 + - bgp_config: spine2 + peer_address: "10.0.2.15" + description: "underlay to leaf8" + remote_asn: "65004" + peer_device: leaf8 + # Spine2 EVPN + - bgp_config: spine2 + peer_address: "10.0.250.11" + description: "EVPN to leaf1" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65001" + peer_device: leaf1 + - bgp_config: spine2 + peer_address: "10.0.250.12" + description: "EVPN to leaf2" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65001" + peer_device: leaf2 + - bgp_config: spine2 + peer_address: "10.0.250.13" + description: "EVPN to leaf3" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65002" + peer_device: leaf3 + - bgp_config: spine2 + peer_address: "10.0.250.14" + description: "EVPN to leaf4" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65002" + peer_device: leaf4 + - bgp_config: spine2 + peer_address: "10.0.250.15" + description: "EVPN to leaf5" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65003" + peer_device: leaf5 + - bgp_config: spine2 + peer_address: "10.0.250.16" + description: "EVPN to leaf6" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65003" + peer_device: leaf6 + - bgp_config: spine2 + peer_address: "10.0.250.17" + description: "EVPN to leaf7" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65004" + peer_device: leaf7 + - bgp_config: spine2 + peer_address: "10.0.250.18" + description: "EVPN to leaf8" + peer_group: ["10.0.250.2", "evpn"] + remote_asn: "65004" + peer_device: leaf8 + # ============================================================ + # Leaf1 sessions + # ============================================================ + - bgp_config: leaf1 + peer_address: "10.0.1.0" + description: "underlay to spine1" + peer_group: ["10.0.250.11", "underlay"] + peer_device: spine1 + - bgp_config: leaf1 + peer_address: "10.0.2.0" + description: "underlay to spine2" + peer_group: ["10.0.250.11", "underlay"] + peer_device: spine2 + - bgp_config: leaf1 + peer_address: "10.0.3.1" + description: "iBGP to leaf2" + peer_group: ["10.0.250.11", "underlay_ibgp"] + peer_device: leaf2 + - bgp_config: leaf1 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.11", "evpn"] + peer_device: spine1 + - bgp_config: leaf1 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.11", "evpn"] + peer_device: spine2 + # ============================================================ + # Leaf2 sessions + # ============================================================ + - bgp_config: leaf2 + peer_address: "10.0.1.2" + description: "underlay to spine1" + peer_group: ["10.0.250.12", "underlay"] + peer_device: spine1 + - bgp_config: leaf2 + peer_address: "10.0.2.2" + description: "underlay to spine2" + peer_group: ["10.0.250.12", "underlay"] + peer_device: spine2 + - bgp_config: leaf2 + peer_address: "10.0.3.0" + description: "iBGP to leaf1" + peer_group: ["10.0.250.12", "underlay_ibgp"] + peer_device: leaf1 + - bgp_config: leaf2 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.12", "evpn"] + peer_device: spine1 + - bgp_config: leaf2 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.12", "evpn"] + peer_device: spine2 + # ============================================================ + # Leaf3 sessions + # ============================================================ + - bgp_config: leaf3 + peer_address: "10.0.1.4" + description: "underlay to spine1" + peer_group: ["10.0.250.13", "underlay"] + peer_device: spine1 + - bgp_config: leaf3 + peer_address: "10.0.2.4" + description: "underlay to spine2" + peer_group: ["10.0.250.13", "underlay"] + peer_device: spine2 + - bgp_config: leaf3 + peer_address: "10.0.3.3" + description: "iBGP to leaf4" + peer_group: ["10.0.250.13", "underlay_ibgp"] + peer_device: leaf4 + - bgp_config: leaf3 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.13", "evpn"] + peer_device: spine1 + - bgp_config: leaf3 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.13", "evpn"] + peer_device: spine2 + # ============================================================ + # Leaf4 sessions + # ============================================================ + - bgp_config: leaf4 + peer_address: "10.0.1.6" + description: "underlay to spine1" + peer_group: ["10.0.250.14", "underlay"] + peer_device: spine1 + - bgp_config: leaf4 + peer_address: "10.0.2.6" + description: "underlay to spine2" + peer_group: ["10.0.250.14", "underlay"] + peer_device: spine2 + - bgp_config: leaf4 + peer_address: "10.0.3.2" + description: "iBGP to leaf3" + peer_group: ["10.0.250.14", "underlay_ibgp"] + peer_device: leaf3 + - bgp_config: leaf4 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.14", "evpn"] + peer_device: spine1 + - bgp_config: leaf4 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.14", "evpn"] + peer_device: spine2 + # ============================================================ + # Leaf5 sessions + # ============================================================ + - bgp_config: leaf5 + peer_address: "10.0.1.8" + description: "underlay to spine1" + peer_group: ["10.0.250.15", "underlay"] + peer_device: spine1 + - bgp_config: leaf5 + peer_address: "10.0.2.8" + description: "underlay to spine2" + peer_group: ["10.0.250.15", "underlay"] + peer_device: spine2 + - bgp_config: leaf5 + peer_address: "10.0.3.5" + description: "iBGP to leaf6" + peer_group: ["10.0.250.15", "underlay_ibgp"] + peer_device: leaf6 + - bgp_config: leaf5 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.15", "evpn"] + peer_device: spine1 + - bgp_config: leaf5 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.15", "evpn"] + peer_device: spine2 + # ============================================================ + # Leaf6 sessions + # ============================================================ + - bgp_config: leaf6 + peer_address: "10.0.1.10" + description: "underlay to spine1" + peer_group: ["10.0.250.16", "underlay"] + peer_device: spine1 + - bgp_config: leaf6 + peer_address: "10.0.2.10" + description: "underlay to spine2" + peer_group: ["10.0.250.16", "underlay"] + peer_device: spine2 + - bgp_config: leaf6 + peer_address: "10.0.3.4" + description: "iBGP to leaf5" + peer_group: ["10.0.250.16", "underlay_ibgp"] + peer_device: leaf5 + - bgp_config: leaf6 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.16", "evpn"] + peer_device: spine1 + - bgp_config: leaf6 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.16", "evpn"] + peer_device: spine2 + # ============================================================ + # Leaf7 sessions (+ VRF gold border session) + # ============================================================ + - bgp_config: leaf7 + peer_address: "10.0.1.12" + description: "underlay to spine1" + peer_group: ["10.0.250.17", "underlay"] + peer_device: spine1 + - bgp_config: leaf7 + peer_address: "10.0.2.12" + description: "underlay to spine2" + peer_group: ["10.0.250.17", "underlay"] + peer_device: spine2 + - bgp_config: leaf7 + peer_address: "10.0.3.7" + description: "iBGP to leaf8" + peer_group: ["10.0.250.17", "underlay_ibgp"] + peer_device: leaf8 + - bgp_config: leaf7 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.17", "evpn"] + peer_device: spine1 + - bgp_config: leaf7 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.17", "evpn"] + peer_device: spine2 + # Border session in VRF gold + - bgp_config: leaf7 + peer_address: "10.90.90.1" + description: "VRF gold border to AS 64999" + remote_asn: "64999" + vrf: gold + # ============================================================ + # Leaf8 sessions (+ VRF gold border session) + # ============================================================ + - bgp_config: leaf8 + peer_address: "10.0.1.14" + description: "underlay to spine1" + peer_group: ["10.0.250.18", "underlay"] + peer_device: spine1 + - bgp_config: leaf8 + peer_address: "10.0.2.14" + description: "underlay to spine2" + peer_group: ["10.0.250.18", "underlay"] + peer_device: spine2 + - bgp_config: leaf8 + peer_address: "10.0.3.6" + description: "iBGP to leaf7" + peer_group: ["10.0.250.18", "underlay_ibgp"] + peer_device: leaf7 + - bgp_config: leaf8 + peer_address: "10.0.250.1" + description: "EVPN to spine1" + peer_group: ["10.0.250.18", "evpn"] + peer_device: spine1 + - bgp_config: leaf8 + peer_address: "10.0.250.2" + description: "EVPN to spine2" + peer_group: ["10.0.250.18", "evpn"] + peer_device: spine2 + # Border session in VRF gold + - bgp_config: leaf8 + peer_address: "10.90.90.1" + description: "VRF gold border to AS 64999" + remote_asn: "64999" + vrf: gold +--- +apiVersion: infrahub.app/v1 +kind: Object +spec: + kind: InfraBGPAddressFamily + data: + # ============================================================ + # Spine1 address families + # ============================================================ + - bgp_config: spine1 + afi: ipv4 + safi: unicast + networks: + - "10.0.250.1/32" + - bgp_config: spine1 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.1", "evpn"] + # ============================================================ + # Spine2 address families + # ============================================================ + - bgp_config: spine2 + afi: ipv4 + safi: unicast + networks: + - "10.0.250.2/32" + - bgp_config: spine2 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.2", "evpn"] + # ============================================================ + # Leaf1 address families + # ============================================================ + - bgp_config: leaf1 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.11", "underlay"] + - ["10.0.250.11", "underlay_ibgp"] + networks: + - "10.0.250.11/32" + - "10.0.255.11/32" + - bgp_config: leaf1 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.11", "evpn"] + # ============================================================ + # Leaf2 address families + # ============================================================ + - bgp_config: leaf2 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.12", "underlay"] + - ["10.0.250.12", "underlay_ibgp"] + networks: + - "10.0.250.12/32" + - "10.0.255.11/32" + - bgp_config: leaf2 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.12", "evpn"] + # ============================================================ + # Leaf3 address families + # ============================================================ + - bgp_config: leaf3 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.13", "underlay"] + - ["10.0.250.13", "underlay_ibgp"] + networks: + - "10.0.250.13/32" + - "10.0.255.12/32" + - bgp_config: leaf3 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.13", "evpn"] + # ============================================================ + # Leaf4 address families + # ============================================================ + - bgp_config: leaf4 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.14", "underlay"] + - ["10.0.250.14", "underlay_ibgp"] + networks: + - "10.0.250.14/32" + - "10.0.255.12/32" + - bgp_config: leaf4 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.14", "evpn"] + # ============================================================ + # Leaf5 address families + # ============================================================ + - bgp_config: leaf5 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.15", "underlay"] + - ["10.0.250.15", "underlay_ibgp"] + networks: + - "10.0.250.15/32" + - "10.0.255.13/32" + - bgp_config: leaf5 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.15", "evpn"] + # ============================================================ + # Leaf6 address families + # ============================================================ + - bgp_config: leaf6 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.16", "underlay"] + - ["10.0.250.16", "underlay_ibgp"] + networks: + - "10.0.250.16/32" + - "10.0.255.13/32" + - bgp_config: leaf6 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.16", "evpn"] + # ============================================================ + # Leaf7 address families + # ============================================================ + - bgp_config: leaf7 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.17", "underlay"] + - ["10.0.250.17", "underlay_ibgp"] + networks: + - "10.0.250.17/32" + - "10.0.255.14/32" + - bgp_config: leaf7 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.17", "evpn"] + # ============================================================ + # Leaf8 address families + # ============================================================ + - bgp_config: leaf8 + afi: ipv4 + safi: unicast + active_peer_groups: + - ["10.0.250.18", "underlay"] + - ["10.0.250.18", "underlay_ibgp"] + networks: + - "10.0.250.18/32" + - "10.0.255.14/32" + - bgp_config: leaf8 + afi: evpn + safi: unicast + active_peer_groups: + - ["10.0.250.18", "evpn"]