.. _bgp-user-guide-route-target-family: Route Target Constrain Family ============================= The BGP Multicast Route Target (RT) Constrain Multiprotocol extension can be used to restrict advertisement of VPN NLRI to peers that have advertised their respective Route Targets, effectively building a route distribution graph. .. contents:: Contents :depth: 2 :local: Configuration ^^^^^^^^^^^^^ This section shows a way to enable ROUTE-TARGET-CONSTRAIN family in BGP speaker and peer configuration. BGP Speaker ''''''''''' To enable ROUTE-TARGET-CONSTRAIN support in BGP plugin, first configure BGP speaker instance: **URL:** ``/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols`` **Method:** ``POST`` **Content-Type:** ``application/xml`` **Request Body:** .. code-block:: xml bgp-example x:BGP 192.0.2.2 65000 ROUTE-TARGET-CONSTRAIN BGP Peer '''''''' Here is an example for BGP peer configuration with enabled ROUTE-TARGET-CONSTRAIN family. **URL:** ``/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/bgp-example/bgp/neighbors`` **Method:** ``POST`` **Content-Type:** ``application/xml`` **Request Body:** .. code-block:: xml 192.0.2.1 ROUTE-TARGET-CONSTRAIN ROUTE-TARGET-CONSTRAIN Route API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Following tree illustrates the BGP ROUTE-TARGET-CONSTRAIN route structure. .. code-block:: console :(route-target-constrain-routes-case) +--rw route-target-constrain-routes +--rw route-target-constrain-route* [route-key path-id] +--rw origin-as inet:as-number +--rw (route-target-constrain-choice) +--:(route-target-constrain-default-case) | +--rw route-target-constrain-default-route! +--:(route-target-constrain-route-case) | +--rw route-target-extended-community | +--rw global-administrator? short-as-number | +--rw local-administrator? binary +--:(route-target-constrain-ipv4-route-case) | +--rw route-target-ipv4 | +--rw global-administrator? inet:ipv4-address | +--rw local-administrator? uint16 +--:(route-target-constrain-as-4-extended-community-case) +--rw as-4-route-target-extended-community +--rw as-4-specific-common +--rw as-number inet:as-number +--rw local-administrator uint16 Usage ^^^^^ The ROUTE TARGET CONSTRAIN table in an instance of the speaker's Loc-RIB can be verified via REST: **URL:** ``/restconf/operational/bgp-rib:bgp-rib/rib/bgp-example/loc-rib/tables/bgp-types:ipv4-address-family/bgp-route-target-constrain:route-target-constrain-subsequent-address-family/bgp-route-target-constrain:route-target-constrain-routes`` **Method:** ``GET`` **Response Body:** .. code-block:: xml flow1 0 64511 64511 AAAAZQ== 199.20.166.41 igp 100 Routing Policies ^^^^^^^^^^^^^^^^ .. code-block:: xml default-odl-export-policy ... from-external-to-external-RTC x:ROUTE-TARGET-CONSTRAIN /rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-ebgp"] /rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-ebgp"] ... from-internal-or-rr-client-to-route-reflector x:ROUTE-TARGET-CONSTRAIN /rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="ibgp-rr-client"] /rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-rr-client"] from-internal-or-rr-client-to-route-RTC x:ROUTE-TARGET-CONSTRAIN /rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="ibgp-rr-client"] /rpol:routing-policy/rpol:defined-sets/bgppol:bgp-defined-sets/role-sets/role-set[role-set-name="only-rr-client"] SELF vpn-membership-RTC x:L3VPN-IPV4-UNICAST x:L3VPN-IPV6-UNICAST ... ... References ^^^^^^^^^^ * `Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs) `_