diff --git a/objects/09-bgp.yml b/objects/09-bgp.yml index d6b7b55..c9c7d31 100644 --- a/objects/09-bgp.yml +++ b/objects/09-bgp.yml @@ -151,6 +151,7 @@ spec: # ============================================================ # Spine1 — evpn peer-group - bgp_config: ["spine1"] + local_identifier: "spine1__evpn" name: evpn description: EVPN overlay to leaf loopbacks peer_group_type: evpn @@ -162,6 +163,7 @@ spec: maximum_routes_warning_only: true # Spine2 — evpn peer-group - bgp_config: ["spine2"] + local_identifier: "spine2__evpn" name: evpn description: EVPN overlay to leaf loopbacks peer_group_type: evpn @@ -176,6 +178,7 @@ spec: # ============================================================ # Leaf1 - bgp_config: ["leaf1"] + local_identifier: "leaf1__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -183,6 +186,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf1"] + local_identifier: "leaf1__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -191,6 +195,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf1"] + local_identifier: "leaf1__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -202,6 +207,7 @@ spec: maximum_routes_warning_only: true # Leaf2 - bgp_config: ["leaf2"] + local_identifier: "leaf2__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -209,6 +215,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf2"] + local_identifier: "leaf2__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -217,6 +224,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf2"] + local_identifier: "leaf2__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -228,6 +236,7 @@ spec: maximum_routes_warning_only: true # Leaf3 - bgp_config: ["leaf3"] + local_identifier: "leaf3__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -235,6 +244,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf3"] + local_identifier: "leaf3__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -243,6 +253,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf3"] + local_identifier: "leaf3__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -254,6 +265,7 @@ spec: maximum_routes_warning_only: true # Leaf4 - bgp_config: ["leaf4"] + local_identifier: "leaf4__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -261,6 +273,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf4"] + local_identifier: "leaf4__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -269,6 +282,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf4"] + local_identifier: "leaf4__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -280,6 +294,7 @@ spec: maximum_routes_warning_only: true # Leaf5 - bgp_config: ["leaf5"] + local_identifier: "leaf5__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -287,6 +302,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf5"] + local_identifier: "leaf5__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -295,6 +311,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf5"] + local_identifier: "leaf5__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -306,6 +323,7 @@ spec: maximum_routes_warning_only: true # Leaf6 - bgp_config: ["leaf6"] + local_identifier: "leaf6__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -313,6 +331,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf6"] + local_identifier: "leaf6__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -321,6 +340,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf6"] + local_identifier: "leaf6__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -332,6 +352,7 @@ spec: maximum_routes_warning_only: true # Leaf7 - bgp_config: ["leaf7"] + local_identifier: "leaf7__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -339,6 +360,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf7"] + local_identifier: "leaf7__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -347,6 +369,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf7"] + local_identifier: "leaf7__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn @@ -358,6 +381,7 @@ spec: maximum_routes_warning_only: true # Leaf8 - bgp_config: ["leaf8"] + local_identifier: "leaf8__underlay" name: underlay description: Underlay eBGP to spines peer_group_type: underlay @@ -365,6 +389,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf8"] + local_identifier: "leaf8__underlay_ibgp" name: underlay_ibgp description: MLAG iBGP peering peer_group_type: underlay_ibgp @@ -373,6 +398,7 @@ spec: maximum_routes: 12000 maximum_routes_warning_only: true - bgp_config: ["leaf8"] + local_identifier: "leaf8__evpn" name: evpn description: EVPN overlay to spines peer_group_type: evpn diff --git a/objects/10-bgp-sessions.yml b/objects/10-bgp-sessions.yml index 0f9f130..0af2483 100644 --- a/objects/10-bgp-sessions.yml +++ b/objects/10-bgp-sessions.yml @@ -11,92 +11,108 @@ spec: # ============================================================ # Spine1 underlay (direct neighbors, no peer-group — use remote_asn) - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.1" peer_address: "10.0.1.1" description: "underlay to leaf1" remote_asn: ["65001"] peer_device: ["leaf1"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.3" peer_address: "10.0.1.3" description: "underlay to leaf2" remote_asn: ["65001"] peer_device: ["leaf2"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.5" peer_address: "10.0.1.5" description: "underlay to leaf3" remote_asn: ["65002"] peer_device: ["leaf3"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.7" peer_address: "10.0.1.7" description: "underlay to leaf4" remote_asn: ["65002"] peer_device: ["leaf4"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.9" peer_address: "10.0.1.9" description: "underlay to leaf5" remote_asn: ["65003"] peer_device: ["leaf5"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.11" peer_address: "10.0.1.11" description: "underlay to leaf6" remote_asn: ["65003"] peer_device: ["leaf6"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.13" peer_address: "10.0.1.13" description: "underlay to leaf7" remote_asn: ["65004"] peer_device: ["leaf7"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.1.15" 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"] + local_identifier: "spine1__10.0.250.11" peer_address: "10.0.250.11" description: "EVPN to leaf1" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65001"] peer_device: ["leaf1"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.12" peer_address: "10.0.250.12" description: "EVPN to leaf2" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65001"] peer_device: ["leaf2"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.13" peer_address: "10.0.250.13" description: "EVPN to leaf3" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65002"] peer_device: ["leaf3"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.14" peer_address: "10.0.250.14" description: "EVPN to leaf4" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65002"] peer_device: ["leaf4"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.15" peer_address: "10.0.250.15" description: "EVPN to leaf5" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65003"] peer_device: ["leaf5"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.16" peer_address: "10.0.250.16" description: "EVPN to leaf6" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65003"] peer_device: ["leaf6"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.17" peer_address: "10.0.250.17" description: "EVPN to leaf7" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65004"] peer_device: ["leaf7"] - bgp_config: ["spine1"] + local_identifier: "spine1__10.0.250.18" peer_address: "10.0.250.18" description: "EVPN to leaf8" - peer_group: "evpn" + peer_group: "spine1__evpn" remote_asn: ["65004"] peer_device: ["leaf8"] # ============================================================ @@ -104,317 +120,373 @@ spec: # ============================================================ # Spine2 underlay - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.1" peer_address: "10.0.2.1" description: "underlay to leaf1" remote_asn: ["65001"] peer_device: ["leaf1"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.3" peer_address: "10.0.2.3" description: "underlay to leaf2" remote_asn: ["65001"] peer_device: ["leaf2"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.5" peer_address: "10.0.2.5" description: "underlay to leaf3" remote_asn: ["65002"] peer_device: ["leaf3"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.7" peer_address: "10.0.2.7" description: "underlay to leaf4" remote_asn: ["65002"] peer_device: ["leaf4"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.9" peer_address: "10.0.2.9" description: "underlay to leaf5" remote_asn: ["65003"] peer_device: ["leaf5"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.11" peer_address: "10.0.2.11" description: "underlay to leaf6" remote_asn: ["65003"] peer_device: ["leaf6"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.13" peer_address: "10.0.2.13" description: "underlay to leaf7" remote_asn: ["65004"] peer_device: ["leaf7"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.2.15" peer_address: "10.0.2.15" description: "underlay to leaf8" remote_asn: ["65004"] peer_device: ["leaf8"] # Spine2 EVPN - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.11" peer_address: "10.0.250.11" description: "EVPN to leaf1" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65001"] peer_device: ["leaf1"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.12" peer_address: "10.0.250.12" description: "EVPN to leaf2" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65001"] peer_device: ["leaf2"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.13" peer_address: "10.0.250.13" description: "EVPN to leaf3" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65002"] peer_device: ["leaf3"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.14" peer_address: "10.0.250.14" description: "EVPN to leaf4" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65002"] peer_device: ["leaf4"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.15" peer_address: "10.0.250.15" description: "EVPN to leaf5" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65003"] peer_device: ["leaf5"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.16" peer_address: "10.0.250.16" description: "EVPN to leaf6" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65003"] peer_device: ["leaf6"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.17" peer_address: "10.0.250.17" description: "EVPN to leaf7" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65004"] peer_device: ["leaf7"] - bgp_config: ["spine2"] + local_identifier: "spine2__10.0.250.18" peer_address: "10.0.250.18" description: "EVPN to leaf8" - peer_group: "evpn" + peer_group: "spine2__evpn" remote_asn: ["65004"] peer_device: ["leaf8"] # ============================================================ # Leaf1 sessions # ============================================================ - bgp_config: ["leaf1"] + local_identifier: "leaf1__10.0.1.0" peer_address: "10.0.1.0" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf1__underlay" peer_device: ["spine1"] - bgp_config: ["leaf1"] + local_identifier: "leaf1__10.0.2.0" peer_address: "10.0.2.0" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf1__underlay" peer_device: ["spine2"] - bgp_config: ["leaf1"] + local_identifier: "leaf1__10.0.3.1" peer_address: "10.0.3.1" description: "iBGP to leaf2" - peer_group: "underlay_ibgp" + peer_group: "leaf1__underlay_ibgp" peer_device: ["leaf2"] - bgp_config: ["leaf1"] + local_identifier: "leaf1__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf1__evpn" peer_device: ["spine1"] - bgp_config: ["leaf1"] + local_identifier: "leaf1__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf1__evpn" peer_device: ["spine2"] # ============================================================ # Leaf2 sessions # ============================================================ - bgp_config: ["leaf2"] + local_identifier: "leaf2__10.0.1.2" peer_address: "10.0.1.2" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf2__underlay" peer_device: ["spine1"] - bgp_config: ["leaf2"] + local_identifier: "leaf2__10.0.2.2" peer_address: "10.0.2.2" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf2__underlay" peer_device: ["spine2"] - bgp_config: ["leaf2"] + local_identifier: "leaf2__10.0.3.0" peer_address: "10.0.3.0" description: "iBGP to leaf1" - peer_group: "underlay_ibgp" + peer_group: "leaf2__underlay_ibgp" peer_device: ["leaf1"] - bgp_config: ["leaf2"] + local_identifier: "leaf2__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf2__evpn" peer_device: ["spine1"] - bgp_config: ["leaf2"] + local_identifier: "leaf2__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf2__evpn" peer_device: ["spine2"] # ============================================================ # Leaf3 sessions # ============================================================ - bgp_config: ["leaf3"] + local_identifier: "leaf3__10.0.1.4" peer_address: "10.0.1.4" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf3__underlay" peer_device: ["spine1"] - bgp_config: ["leaf3"] + local_identifier: "leaf3__10.0.2.4" peer_address: "10.0.2.4" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf3__underlay" peer_device: ["spine2"] - bgp_config: ["leaf3"] + local_identifier: "leaf3__10.0.3.3" peer_address: "10.0.3.3" description: "iBGP to leaf4" - peer_group: "underlay_ibgp" + peer_group: "leaf3__underlay_ibgp" peer_device: ["leaf4"] - bgp_config: ["leaf3"] + local_identifier: "leaf3__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf3__evpn" peer_device: ["spine1"] - bgp_config: ["leaf3"] + local_identifier: "leaf3__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf3__evpn" peer_device: ["spine2"] # ============================================================ # Leaf4 sessions # ============================================================ - bgp_config: ["leaf4"] + local_identifier: "leaf4__10.0.1.6" peer_address: "10.0.1.6" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf4__underlay" peer_device: ["spine1"] - bgp_config: ["leaf4"] + local_identifier: "leaf4__10.0.2.6" peer_address: "10.0.2.6" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf4__underlay" peer_device: ["spine2"] - bgp_config: ["leaf4"] + local_identifier: "leaf4__10.0.3.2" peer_address: "10.0.3.2" description: "iBGP to leaf3" - peer_group: "underlay_ibgp" + peer_group: "leaf4__underlay_ibgp" peer_device: ["leaf3"] - bgp_config: ["leaf4"] + local_identifier: "leaf4__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf4__evpn" peer_device: ["spine1"] - bgp_config: ["leaf4"] + local_identifier: "leaf4__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf4__evpn" peer_device: ["spine2"] # ============================================================ # Leaf5 sessions # ============================================================ - bgp_config: ["leaf5"] + local_identifier: "leaf5__10.0.1.8" peer_address: "10.0.1.8" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf5__underlay" peer_device: ["spine1"] - bgp_config: ["leaf5"] + local_identifier: "leaf5__10.0.2.8" peer_address: "10.0.2.8" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf5__underlay" peer_device: ["spine2"] - bgp_config: ["leaf5"] + local_identifier: "leaf5__10.0.3.5" peer_address: "10.0.3.5" description: "iBGP to leaf6" - peer_group: "underlay_ibgp" + peer_group: "leaf5__underlay_ibgp" peer_device: ["leaf6"] - bgp_config: ["leaf5"] + local_identifier: "leaf5__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf5__evpn" peer_device: ["spine1"] - bgp_config: ["leaf5"] + local_identifier: "leaf5__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf5__evpn" peer_device: ["spine2"] # ============================================================ # Leaf6 sessions # ============================================================ - bgp_config: ["leaf6"] + local_identifier: "leaf6__10.0.1.10" peer_address: "10.0.1.10" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf6__underlay" peer_device: ["spine1"] - bgp_config: ["leaf6"] + local_identifier: "leaf6__10.0.2.10" peer_address: "10.0.2.10" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf6__underlay" peer_device: ["spine2"] - bgp_config: ["leaf6"] + local_identifier: "leaf6__10.0.3.4" peer_address: "10.0.3.4" description: "iBGP to leaf5" - peer_group: "underlay_ibgp" + peer_group: "leaf6__underlay_ibgp" peer_device: ["leaf5"] - bgp_config: ["leaf6"] + local_identifier: "leaf6__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf6__evpn" peer_device: ["spine1"] - bgp_config: ["leaf6"] + local_identifier: "leaf6__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf6__evpn" peer_device: ["spine2"] # ============================================================ # Leaf7 sessions # ============================================================ - bgp_config: ["leaf7"] + local_identifier: "leaf7__10.0.1.12" peer_address: "10.0.1.12" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf7__underlay" peer_device: ["spine1"] - bgp_config: ["leaf7"] + local_identifier: "leaf7__10.0.2.12" peer_address: "10.0.2.12" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf7__underlay" peer_device: ["spine2"] - bgp_config: ["leaf7"] + local_identifier: "leaf7__10.0.3.7" peer_address: "10.0.3.7" description: "iBGP to leaf8" - peer_group: "underlay_ibgp" + peer_group: "leaf7__underlay_ibgp" peer_device: ["leaf8"] - bgp_config: ["leaf7"] + local_identifier: "leaf7__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf7__evpn" peer_device: ["spine1"] - bgp_config: ["leaf7"] + local_identifier: "leaf7__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf7__evpn" peer_device: ["spine2"] # ============================================================ # Leaf8 sessions # ============================================================ - bgp_config: ["leaf8"] + local_identifier: "leaf8__10.0.1.14" peer_address: "10.0.1.14" description: "underlay to spine1" - peer_group: "underlay" + peer_group: "leaf8__underlay" peer_device: ["spine1"] - bgp_config: ["leaf8"] + local_identifier: "leaf8__10.0.2.14" peer_address: "10.0.2.14" description: "underlay to spine2" - peer_group: "underlay" + peer_group: "leaf8__underlay" peer_device: ["spine2"] - bgp_config: ["leaf8"] + local_identifier: "leaf8__10.0.3.6" peer_address: "10.0.3.6" description: "iBGP to leaf7" - peer_group: "underlay_ibgp" + peer_group: "leaf8__underlay_ibgp" peer_device: ["leaf7"] - bgp_config: ["leaf8"] + local_identifier: "leaf8__10.0.250.1" peer_address: "10.0.250.1" description: "EVPN to spine1" - peer_group: "evpn" + peer_group: "leaf8__evpn" peer_device: ["spine1"] - bgp_config: ["leaf8"] + local_identifier: "leaf8__10.0.250.2" peer_address: "10.0.250.2" description: "EVPN to spine2" - peer_group: "evpn" + peer_group: "leaf8__evpn" peer_device: ["spine2"] --- apiVersion: infrahub.app/v1 @@ -426,161 +498,181 @@ spec: # Spine1 address families # ============================================================ - bgp_config: ["spine1"] + local_identifier: "spine1__ipv4_unicast" afi: ipv4 safi: unicast networks: - ["10.0.250.1/32"] - bgp_config: ["spine1"] + local_identifier: "spine1__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "spine1__evpn" # ============================================================ # Spine2 address families # ============================================================ - bgp_config: ["spine2"] + local_identifier: "spine2__ipv4_unicast" afi: ipv4 safi: unicast networks: - ["10.0.250.2/32"] - bgp_config: ["spine2"] + local_identifier: "spine2__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "spine2__evpn" # ============================================================ # Leaf1 address families # ============================================================ - bgp_config: ["leaf1"] + local_identifier: "leaf1__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf1__underlay" + - "leaf1__underlay_ibgp" networks: - ["10.0.250.11/32"] - ["10.0.255.11/32"] - bgp_config: ["leaf1"] + local_identifier: "leaf1__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf1__evpn" # ============================================================ # Leaf2 address families # ============================================================ - bgp_config: ["leaf2"] + local_identifier: "leaf2__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf2__underlay" + - "leaf2__underlay_ibgp" networks: - ["10.0.250.12/32"] - ["10.0.255.11/32"] - bgp_config: ["leaf2"] + local_identifier: "leaf2__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf2__evpn" # ============================================================ # Leaf3 address families # ============================================================ - bgp_config: ["leaf3"] + local_identifier: "leaf3__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf3__underlay" + - "leaf3__underlay_ibgp" networks: - ["10.0.250.13/32"] - ["10.0.255.12/32"] - bgp_config: ["leaf3"] + local_identifier: "leaf3__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf3__evpn" # ============================================================ # Leaf4 address families # ============================================================ - bgp_config: ["leaf4"] + local_identifier: "leaf4__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf4__underlay" + - "leaf4__underlay_ibgp" networks: - ["10.0.250.14/32"] - ["10.0.255.12/32"] - bgp_config: ["leaf4"] + local_identifier: "leaf4__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf4__evpn" # ============================================================ # Leaf5 address families # ============================================================ - bgp_config: ["leaf5"] + local_identifier: "leaf5__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf5__underlay" + - "leaf5__underlay_ibgp" networks: - ["10.0.250.15/32"] - ["10.0.255.13/32"] - bgp_config: ["leaf5"] + local_identifier: "leaf5__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf5__evpn" # ============================================================ # Leaf6 address families # ============================================================ - bgp_config: ["leaf6"] + local_identifier: "leaf6__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf6__underlay" + - "leaf6__underlay_ibgp" networks: - ["10.0.250.16/32"] - ["10.0.255.13/32"] - bgp_config: ["leaf6"] + local_identifier: "leaf6__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf6__evpn" # ============================================================ # Leaf7 address families # ============================================================ - bgp_config: ["leaf7"] + local_identifier: "leaf7__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf7__underlay" + - "leaf7__underlay_ibgp" networks: - ["10.0.250.17/32"] - ["10.0.255.14/32"] - bgp_config: ["leaf7"] + local_identifier: "leaf7__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf7__evpn" # ============================================================ # Leaf8 address families # ============================================================ - bgp_config: ["leaf8"] + local_identifier: "leaf8__ipv4_unicast" afi: ipv4 safi: unicast active_peer_groups: - - "underlay" - - "underlay_ibgp" + - "leaf8__underlay" + - "leaf8__underlay_ibgp" networks: - ["10.0.250.18/32"] - ["10.0.255.14/32"] - bgp_config: ["leaf8"] + local_identifier: "leaf8__evpn_unicast" afi: evpn safi: unicast active_peer_groups: - - "evpn" + - "leaf8__evpn" diff --git a/schemas/bgp.yml b/schemas/bgp.yml index 5ab6200..a4a83ea 100644 --- a/schemas/bgp.yml +++ b/schemas/bgp.yml @@ -106,11 +106,14 @@ nodes: icon: mdi--account-group include_in_menu: false uniqueness_constraints: - - ["bgp_config", "name__value"] + - ["local_identifier__value"] human_friendly_id: - - name__value + - local_identifier__value display_label: "{{ name__value }}" attributes: + - name: local_identifier + kind: Text + description: "Unique identifier combining device name and peer group name (e.g. spine1__evpn)" - name: name kind: Text description: Peer group name (e.g., underlay, evpn) @@ -181,11 +184,14 @@ nodes: icon: mdi--connection include_in_menu: false uniqueness_constraints: - - ["bgp_config", "peer_address__value"] + - ["local_identifier__value"] human_friendly_id: - - peer_address__value + - local_identifier__value display_label: "{{ peer_address__value }}" attributes: + - name: local_identifier + kind: Text + description: "Unique identifier combining device name and peer address (e.g. spine1__10.0.250.11)" - name: peer_address kind: IPHost description: Neighbor IP address @@ -231,8 +237,13 @@ nodes: label: BGP Address Family icon: mdi--format-list-bulleted include_in_menu: false + human_friendly_id: + - local_identifier__value display_label: "{{ afi__value }}" attributes: + - name: local_identifier + kind: Text + description: "Unique identifier combining device name and AFI/SAFI (e.g. spine1__ipv4_unicast)" - name: afi kind: Dropdown choices: