<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc toc, sortrefs, symrefs, comments="yes"?>

<rfc ipr="trust200902" docName="draft-kaliraj-bess-bgp-mpls-namespaces-00" category="std" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="BGP MPLS Namespaces">BGP Signaled MPLS Namespaces</title>

    <author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakkalai">
      <organization>Juniper Networks</organization>
      <address>
        <email>kaliraj@juniper.net</email>
      </address>
    </author>
    <author initials="M." surname="Jeyananth" fullname="Minto Jeyananth">
      <organization>Juniper Networks</organization>
      <address>
        <email>minto@juniper.net</email>
      </address>
    </author>
    <author initials="P." surname="Ramadenu" fullname="Praveen Ramadenu">
      <organization>AT&amp;T</organization>
      <address>
        <email>pr9637@att.com</email>
      </address>
    </author>
    <author initials="I." surname="Means" fullname="Israel Means">
      <organization>AT&amp;T</organization>
      <address>
        <email>israel.means@att.com</email>
      </address>
    </author>

    <date year="2025" month="May" day="12"/>

    <area>Routing</area>
    <workgroup>BESS Working Group</workgroup>
    <keyword>mpls namespaces, label signaling, FEC, BGP, spoofing, option b, option c</keyword>

    <abstract>


<?line 62?>

<t>The MPLS forwarding layer in a core network is a shared resource.
   The MPLS FIB at nodes in this layer contains labels that are
   dynamically allocated and locally significant at that node.  These
   labels are scoped in context of the global loopback address.  Let us
   call this the global MPLS namespace.</t>

<t>For some usecases like upstream label allocation, it is useful to
   create private MPLS namespaces (virtual MPLS FIB) over this shared
   MPLS forwarding layer.  This allows installing deterministic label
   values in the private FIBs created at nodes participating in the
   private MPLS namespace, while preserving the "locally significant"
   nature of the underlying shared global MPLS FIB.</t>

<t>This document defines new address families (AFI: 16399, SAFI: 128, or
   1) and associated signaling mechanisms to create and use MPLS
   forwarding contexts in a network.  Some example use cases are also
   described.</t>



    </abstract>



  </front>

  <middle>


<?line 82?>

<section anchor="introduction"><name>Introduction</name>

<t>The MPLS forwarding layer in a core network is a shared resource.
The MPLS FIB at nodes in this layer contains labels that are
dynamically allocated and locally significant at that node.  These
labels are scoped in context of the global loopback address.  Let us
call this the global MPLS namespace.</t>

<t>For some usecases like upstream label allocation, it is useful to
create private MPLS namespaces (virtual MPLS FIB) over this shared
MPLS forwarding layer.  This allows installing deterministic label
values in the private FIBs created at nodes participating in the
private MPLS namespace, while preserving the "locally significant"
nature of the underlying shared global MPLS FIB.</t>

<t>This document defines new address families (AFI: 16399, SAFI: 128, or
1) and associated signaling mechanisms to create and use MPLS
forwarding contexts in a network.</t>

<t>The mechanism described in this document reuse <xref target="RFC4364"></xref> and
<xref target="RFC8277"/> procedures to implement Upstream label allocation.  The
MPLS Namespace family uses BGP VPN style NLRI where the FEC is a MPLS
Label, instead of IP prefix.  The concepts of MPLS Context tables and
upstream allocation are described in <xref target="RFC5331"></xref>.</t>

<t>A BGP speakers participating in a private MPLS namespace creates
instance of "MPLS forwarding context" FIB, which is identified using
a "Context Protocol Nexthop (CPNH)".  A Context label MAY be
advertised for the Context Protocol Nexthop (CPNH) using a transport
layer protocol or BGP family to other nodes.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>LSR : Label Switch Router</t>

<t>PE : Provider Edge</t>

<t>SFH : Service Forwarding Helper</t>

<t>UHP : Ultimate Hop Pop</t>

<t>MPLS FIB : MPLS Forwarding table</t>

<t>NLRI: Network Layer Reachability Information</t>

<t>AFI: Address Family Identifier</t>

<t>SAFI: Subsequent Address Family Identifier</t>

<t>BN : Border Node</t>

<t>TN : Transport Node, P-router</t>

<t>PE : Provider Edge</t>

<t>BGP VPN : VPNs built using RFC4364 mechanisms</t>

<t>BGP LU: BGP Labeled Unicast family (AFI/SAFIs 1/4, 2/4)</t>

<t>BGP CT: BGP Classful Transport family (AFI/SAFIs, 1/76, 2/76)</t>

<t>RT : Route-Target extended community</t>

<t>RD : Route-Distinguisher</t>

<t>VRF: Virtual Router Forwarding Table</t>

<t>PNH : Protocol Next hop address carried in a BGP Update message</t>

<t>CPNH: Context Protocol Nexthop</t>

<t>MNH : BGP MultiNexthop attribute</t>

<t>FEC : Forwarding Equivalence Class</t>

<t>RSVP-TE : Resource Reservation Protocol - Traffic Engineering</t>

<t>SEP : Service Endpoint, the PNH of a Service route</t>

<t>MPLS: Multi Protocol Label Switching</t>

<t>VNF : Virtual Network Function</t>

<t>vCP : VNF Control Plane</t>

<t>vFP : VNF Forwarding Plane</t>

<section anchor="definitions"><name>Definitions</name>

<t>MPLS Namespace: The Context LFIB, Context Nexthop, UHP Context Label, Context RT, Context RD, Label Allocator.</t>

<t>PLSR: a BGP CT or BGP LU transit node in a private MPLS plane, that
does label-swap forwarding for Context label.</t>

<t>PLER: an edge node in a private MPLS plane.  It has a forwarding
context for private labels.</t>

<t>Global MPLS FIB : Global MPLS Forwarding table, to which shared-
interfaces are connected</t>

<t>Private MPLS FIB : Private MPLS Forwarding table, to which private
interfaces are connected</t>

<t>Private MPLS FIB Layer (Private MPLS plane): The group of Private
MPLS FIBs in the network, connected together via Context labels</t>

<t>Context label : Locally-significant Non-reserved label pointing to a
private MPLS FIB</t>

<t>Context nexthop IP-address (CPNH) : An IP-address that identifies the
"Private MPLS FIB Layer".  RD:CPNH identifies a Private MPLS FIB at a
specific BGP node.</t>

<t>Global nexthop IP-address (GPNH) : Global Protocol Nexthop address.
E.g. a loopback address used as transport tunnel end-point.</t>

<t>Detour-router : A BGP border node that is used as a loose-hop in a
traffic-engineered path</t>

<t>Service Family : BGP address family used for advertising routes for
"data traffic" as opposed to tunnels (e.g.  AFI/SAFIs 1/1 or 1/128).</t>

<t>Transport Family : BGP address family used for advertising tunnels,
which are in turn used by service routes for resolution (e.g.  AFI/
SAFIs 1/4 or 1/76).</t>

</section>
<section anchor="motivation"><name>Motivation</name>

<t>A provider's core network consists of a global-domain (default
forwarding-tables in P and PE nodes) that is shared by all tenants in
the network and may also contain multiple private user-domains (e.g.
VRF route tables).</t>

<t>The global MPLS forwarding-layer can be viewed as the collection of
all default MPLS forwarding-tables.  This global MPLS Fib layer
contains labels locally significant to each node.  The "local-
significance of labels" gives the nodes freedom to participate in
MPLS-forwarding with whatever label-ranges they can support in
forwarding hardware.</t>

<t>In emerging usecases some applications using the MPLS-network may
benefit from a "static labels" view of the MPLS-network.  In some
other usecases, a standard mechanism to do Upstream label-allocation
is beneficial.</t>

<t>It is desirable to leave the global MPLS FIB layer intact, and build
private MPLS FIB-layers on top of it to achieve these requirements.
The private MPLS FIBs can then be used by the applications as
desired.  The private MPLS FIBs need to be created only at the nodes
in the network where predictable label-values (external label
allocation) is desired.  E.g.  BNs that need to act as a "Detour-
nodes" or "Service-Forwarding-Helpers" that need to mirror service-
labels.</t>

<t>In other words, provisioning of these private MPLS FIBs can be
gradual and can co-exist with nodes not supporting the feature
described in this document.  These private MPLS FIBs can be stitched
together using either the Context labels over the existing shared
MPLS-network tunnels, or 'private' context-interfaces - to form the
"private MPLS FIB layer".</t>

<t>An application can then install the routes with desired label-values
in the private forwarding contexts with desired forwarding-semantics.</t>

</section>
</section>
<section anchor="spec"><name>Specification</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?></t>

<section anchor="constructs-and-building-blocks"><name>Constructs and Building Blocks</name>

<t>The building-blocks that construct a private MPLS plane are described
   in this section.</t>

<section anchor="context-protocol-nexthop-address"><name>Context Protocol Nexthop Address</name>
<t>A private MPLS plane (just "MPLS plane" here-after) is identified by
   an IP-address called Context Protocol Nexthop (CPNH).  This address
   is unique in the core-network, like any other loopback address.</t>

<t>A loopback-address uniquely identifies a specific node in the
   network, and we call it Global Protocol Nexthop (GPNH) in this
   document.  The CPNH address uniquely identifies a MPLS plane, aka
   "MPLS Namespace".</t>

<t>Each node that has forwarding context for a MPLS plane MUST be
   configured with the same CPNH but a different RD, such that the
   RD:CPNH will uniquely identify that node in the MPLS plane.</t>

</section>
<section anchor="mpls-context-fib"><name>MPLS Context FIB</name>

<t>An instance of a MPLS forwarding-table at a node in the private MPLS
   plane.  This Private MPLS FIB contains the private label routes.</t>

<t>A node can have context FIB for multiple MPLS planes.  The same
   label-value can have a different forwarding-semantic in each MPLS
   plane.  Thus the applications using that MPLS plane get a
   deterministic label-value independent of other applications using
   other MPLS planes.</t>

<t>The terms "MPLS Namespace", "MPLS FIB-layer" and "MPLS plane" are
   used interchangeably in this document.</t>

</section>
<section anchor="context-label"><name>Context Label</name>

<t>A Context label is a non-reserved dynamically allocated label, that
   is installed in the global MPLS FIB, and points to a MPLS-context
   FIB.  The Context Label have forwarding semantics as follows in the
   global MPLS FIB:</t>

<t>Context Label -&gt; Pop and Lookup in MPLS-context FIB</t>

<t>Advertising the "context label in conjunction with the GPNH" tells
   the network how to reach a "RD:CPNH".</t>

</section>
<section anchor="roles-of-nodes-in-a-mpls-plane"><name>Roles of Nodes in a MPLS Plane</name>

<t>The node roles in a MPLS plane can be classified into "edge nodes"
   (call them PLER) or "transit-nodes" (call them PLSR).</t>

<section anchor="edge-nodes-pler"><name>Edge Nodes (PLER)</name>

<t>Private Label Edge-routers (PLER) have MPLS context FIB that belong
   to the MPLS plane.  They advertise the presence of this context FIB
   using transport layer address families like BGP CT (SAFI 76) or BGP
   LU (SAFI 4), and private label routes from this FIB are advertused
   using new BGP AFI/SAFI described in this document.</t>

</section>
<section anchor="transit-nodes-plsr"><name>Transit Nodes (PLSR)</name>

<t>These are just Border-nodes that do label-swap forwarding for the
   context labels they see in the Context-Protocol-Nexthop advertisement
   routes (BGP CT or BGP LU) going thru them.  They basically stitch/
   extend the label switched path to a PLER's CPNH when they re-
   advertise the CPNH routes with next hop as self.</t>

<t>PLSRs dont have MPLS context FIBs.  PLSRs dont have Context Protocol-
   Nexthop.  Because they dont have Private label routes to originate.</t>

<t>However a node in the network can play both roles, of PLER and PLSR.</t>

</section>
</section>
<section anchor="sending-traffic-into-a-mpls-plane"><name>Sending Traffic into a MPLS Plane</name>

<t>At a PLER, MPLS-traffic arriving with private label hits the correct
   private MPLS FIB by virtue of either arriving on a "private network-
   interface" that is attached to the MPLS context FIB, or arriving with
   a "Context label" on a network-interface attached to the global MPLS
   FIB.</t>

<t>To send data traffic into this private MPLS plane, the sender MUST
   use as handle either a "Context label" advertised by a node or a
   "Private interface" owned by the MPLS context FIB at the node.  The
   MPLS context FIB is created for an application that needs a private
   MPLS plane.</t>

<t>The Context label is the only dynamic label-value the application
   needs to learn from the network (PLER node it is connected to), to be
   able to use the private MPLS plane.  The application can chose
   predictable value for the labels to be programmed in the private MPLS
   FIBs.</t>

<t>Once the packet enters the private MPLS plane at an edge-node (PLER),
   the node will forward the packet to the next node (PLSR or PLER), by
   pushing the Context label advertised by that next-node, and the
   transport-label to reach that node's GPNH.  This will repeat until
   the packet reaches the PLER's private MPLS FIB that originated that
   private MPLS-label.</t>

<t>At each PLER in the MPLS plane, the private label value remains the
   same, and points towards the same resource attached to the MPLS
   plane.  This allows the applications using the MPLS-network a static-
   labels view of the resourses attached to the private MPLS plane.</t>

<t>At each PLSR in the MPLS plane, the Context label value will change
   (be swapped in forwarding), but is transparent to the application.</t>

</section>
</section>
<section anchor="bgp-families-routes-and-encoding"><name>BGP Families, Routes and Encoding</name>

<t>This section describes the new constructs defined by this document.</t>

<section anchor="new-address-families"><name>New Address Families</name>

<t>This document defines a new AFI: "MPLS Namespaces" (IANA code 16399).
   And two new address-families, using AFI/SAFIs (16399/128 and
   16399/1).  These address families are used to signal MPLS namespaces
   in BGP.  To send or receive routes of these address families, these
   AFI, SAFI pair of values MUST be negotiated in Multiprotocol
   Extensions capability described in RFC4760 <xref target="RFC4760"></xref></t>

<section anchor="afi-16399-safi-128"><name>AFI: 16399, SAFI: 128</name>

<t>This address-family is used to exchange private label-routes in
   private MPLS FIBs at routers that are connected using a common
   network interface.  The private label route has NLRI prefix format
   "RD:PrivateLabel" and contains Route-Target extended-community
   identifying the private FIB Layer (VPN) the route belongs to.  The
   nexthop of these routes is set to either the GPNH or the CPNH of the
   BGP-speaker advertising the RFC-8277 label.</t>

<t>Any transport layer protocol is used to advertise the Context label
   that the receiving router uses to send traffic into the private MPLS
   FIB.  The Context label installed in the global MPLS FIB points to
   the private MPLS FIB.  The Context label is required when the
   connecting-interface is a shared common interface that terminates
   into the global MPLS FIB.</t>

<t>Routes of this address-family can be sent with either IPv4 or IPv6
   nexthop.  The type of nexthop is inferred from the length of the
   nexthop.</t>

<t>When the length of Next Hop Address field is 24 (or 48) the nexthop
   address is of type VPN-IPv6 with 8-octet RD set to zero (potentially
   followed by the link-local VPN-IPv6 address of the next hop with an
   8-octet RD).</t>

<t>When the length of Next Hop Address field is 12 the nexthop address
   is of type VPN-IPv4 with 8-octet RD.</t>

</section>
<section anchor="afi-16399-safi-1"><name>AFI: 16399, SAFI: 1</name>

<t>This address-family is used to exchange private label-routes in
   private MPLS FIBs to routers that are connected using a private
   network-interface.</t>

<t>Because the interface is private, and terminates directly into the
   private MPLS FIB, a Context label is not required to access the
   private MPLS FIB and NLRI prefix format is just "PrivateLabel/24",
   without the RD.</t>

<t>Routes of this address-family can be sent with either IPv4 or IPv6
   nexthop.  The type of nexthop is inferred from the length of the
   nexthop.</t>

<t>When the length of Next Hop Address field is 16 (or 32) the nexthop
   address is of type IPv6 (potentially followed by the link-local IPv6
   address of the next hop).</t>

<t>When the length of Next Hop Address field is 4 the nexthop address is
   a 4 octet IPv4 address.</t>

<section anchor="use-with-global-mpls-fib"><name>Use with Global MPLS FIB</name>

<t>The address family (AFI/SAFI 16399/1) may be used to install label-
   routes in Global MPLS FIB on a router, when the BGP session belongs
   to the Global VRF.  Extra caution is RECOMMENDED when doing so,
   because global MPLS FIB is a shared resource.</t>

<t>The label range being used SHOULD be reserved on-box by the
   application installing the routes.  Mechanisms of how the label range
   is reserved is outside the scope of this document.  The protocol
   preference of these routes SHOULD be set inferior to on-box protocols
   that do dynamic label allocation, in order to handle any
   misconfiguration scenarios.</t>

<t>Because the interface where the MPLS packet is received belongs to
   the Global VRF, a Context label is not required.  And NLRI prefix
   format is just "PrivateLabel/24", without the RD.</t>

</section>
</section>
</section>
<section anchor="routes-and-operational-procedures"><name>Routes and Operational Procedures</name>

<section anchor="context-nexthop-discovery-route"><name>"Context-Nexthop" Discovery Route</name>

<t>The Context-NH discovery route may be a BGP LU or <xref target="I-D.draft-ietf-idr-bgp-ct-35"/> family
   route that carries CPNH in the "Prefix" portion of the NLRI.  And the
   Context label is carried in the "Label" field in the <xref target="RFC8277"/> format
   NLRI.</t>

<t>This route is advertised with the following path-attributes:</t>

<t><list style="symbols">
  <t>BGP Nexthop attribute (code 14, MP_REACH) carrying GPNH address.</t>
  <t>Route-Target extended community, identifying the Transport class,
if applicable.</t>
</list></t>

<t>The "Context-Nexthop discovery route" is originated by each speaker
   who acts as a PLER.  The "RD:Context-nexthop" uniquely identifies the
   private MPLS FIB at the speaker.  The "Context-nexthop address"
   uniquely identifies the private MPLS plane in the network.  The
   Context label advertised in this route has a local forwarding
   semantic of "Pop, Lookup in Private MPLS FIB".</t>

<t>A BGP speaker readvertising a BGP CT Context-Nexthop for RD:CPNH
   discovery-route MUST follow the mechanisms described in <xref target="I-D.draft-ietf-idr-bgp-ct-35"/>.
   Specifically when re-advertising with "next-hop self" MUST allocate a
   new Label with a forwarding semantic of "Swap Received-Context-Label,
   Forward to Received-GPNH".  This extends reachability to the CPNH
   across tunnel domains.</t>

</section>
<section anchor="mpls-namespace-private-label-routes"><name>MPLS Namespace "Private Label" Routes</name>

<t>The Private Label routes are carried in the new address-family "MPLS
   VpnUnicast" (AFI:16399, SAFI:128) aka "MPLS namespace signaling",
   defined in this document.</t>

<t>The NLRI format follows the specifications in <xref target="RFC8277"/>, with the
   "Prefix" portion of the NLRI comprising of the RD and "Private MPLS
   Label" encoded as shown below.</t>

<t>In a MP_REACH_NLRI attribute whose AFI/SAFI is MPLS/128, the "Length"
   field will be 112 bits or less, comprising of the Label, RD and
   "Private MPLS Label".</t>

<t>In a MP_REACH_NLRI attribute whose AFI/SAFI is MPLS/1, the "Length"
   field will be 48 bits or less, comprising of the Label, and "Private
   MPLS Label".</t>

<t>NLRI Prefix (Private Label route, AFI:16399, SAFI:128)</t>

<figure><artwork><![CDATA[
This picture shows NLRI format when the RFC-8277 Multiple Labels
Capability is not used:
]]></artwork></figure>

<figure title="RFC-8277 NLRI with one Label" anchor="nlri-fmt"><artwork><![CDATA[
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Length     |                 Label                 |Rsrv |S|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |               Route Distinguisher (RD) (8 octets)             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |               Route Distinguisher (RD cont.)                  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |      Private MPLS Label               |Rsrv |S|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig 1: RFC-8277 NLRI with one Label.

   - Length:
         The Length field consists of a single octet.  It specifies the
         length in bits of the remainder of the NLRI field.


        In a MP_REACH_NLRI attribute whose AFI/SAFI is MPLS/128, the
        "Length" field will be 112 bits or less, comprising of the
        Label, RD and "Private MPLS Label".

        As specified in [RFC4760], the actual length of the NLRI field
        will be the number of bits specified in the Length field,
        rounded up to the nearest integral number of octets.

   - Label:
        The Label field is a 20-bit field containing an MPLS label value
        (see [RFC3032]). This label is locally significant, downstream
        allocated at the speaker identified in the BGP Nexthop field
        in MP_REACH_NLRI (code 14). This label is pushed in nexthop of
        the route installed in MPLS context FIB at receiving router.

   - Route Distinguisher (RD):

       The 8 byte Route Distinguisher as specified in [RFC4760].

   - Private MPLS Label:
        The "Private MPLS Label" field is a 20-bit field containing an
        MPLS label value (see [RFC3032]). This is an upstream assigned
        MPLS label, used as destination of route installed in MPLS
        context FIB at the receiving router.

   - Rsrv:
         This 3-bit field SHOULD be set to zero on transmission and
         MUST be ignored on reception.

   - S:
         This 1-bit field MUST be set to one on transmission and MUST
         be ignored on reception.
]]></artwork></figure>

<t>Attributes on this route:</t>

<t><list style="symbols">
  <t>BGP Nexthop attribute (code 14, MP_REACH) carrying a GPNH address.
(OR)</t>
  <t>The MultiNextHop attribute <xref target="I-D.draft-ietf-idr-multinexthop-attribute-03"/> with forwarding-semantic:  <list style="symbols">
      <t>"Forward to RD:CPNH"</t>
    </list></t>
  <t>Route-Target extended-community, identifying the private FIB-layer</t>
</list></t>

<figure title="MultiNexthop attr of Private Label route" anchor="mnh-attr"><artwork><![CDATA[
   MultiNexthop BGP-attribute (Private Label route)

                    +--------------------------------------------+
                    |  MultiNH.Num-Nexthops = 1                  |
                    +--------------------------------------------+
                    |  FwdSemanticsTLV.FwdAction = Forward       |
                    +--------------------------------------------+
                    |  NHDescrTLV.NhopDescrType = RD:CPNH or GPNH|
                    +--------------------------------------------+

                    Fig 2: MultiNexthop attr of Private Label route

]]></artwork></figure>

<t>A speaker MAY readvertise a private label route without changing the
   Nexthop (RD:CPNH) carried in it, if the speaker is a pure PLSR.</t>

<t>If it does alter the nexthop to SelfRD:CPNH, it SHOULD act as a PLER,
   and for e.g. originate a "Context-Nexthop discovery route" for prefix
   "SelfRD:CPNH".</t>

<t>Even if the speaker sets nexthop-address to Self because of regular
   BGP readvertisement-rules, Label Prefix MUST NOT be altered, and the
   received NLRI "RD:Private-Label1" MUST be re-advertised as-is.  Such
   that value of label "Private-Label1" doesn't change while the packet
   traverses multiple nodes in the private MPLS FIB layer.</t>

<t>The Route target attached to the route is the one identifying the
   private MPLS FIB layer (VPN).  The Private label routes resolve over
   the Context-nexthop route that belong to the same VPN.</t>

<t>A node receiving a "Private Label route" RD:L1 MUST install the label
   L1 in the private MPLS Forwarding-context idenfied by the Route-
   Target attached to the route.</t>

<t>The label route MUST be installed with forwarding-semantic as
   specified in the received MultiNextHop attribute.  As an example, a
   Detour node MAY receive the private label route with a forwarding-
   semantic of "Forward to RD:CPNH" operation.  And an Egress node MAY
   receive a private label route with a forwarding-semantic pointing to
   a resource it houses.  Note that such a Private label BGP route MAY
   be received from external-application also.</t>

<section anchor="resolving-received-private-label-routes"><name>Resolving Received Private Label Routes</name>

<t>A node receiving a "Context-nexthop discovery route" MUST be capable
   of using either the CPNH or the RD:CPNH carried in the NLRI, to
   resolve other routes received with this CPNH address or RD:CPNH in
   the "Nexthop-attributes".</t>

<t>The receiver of a private label route MUST recursively resolve the
   received nexthop (RD:CPNH) over the Context-Nexthop discovery-route
   for prefix "RD:CPNH" to determine the label stack "Context Label,
   Transport Label" to push, so that the MPLS packet with private label
   reaches the private MPLS FIB originating the route.</t>

<t>If a node receives multiple "Context-nexthop discovery route" for a
   CPNH, it SHOULD run path-selection after stripping the RD, to find
   the closest ingress to the private MPLS plane identified by the CPNH.
   This best path SHOULD be used to resolve a received private label
   route.</t>

</section>
</section>
</section>
</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Using separate mpls forwarding contexts for separate applications and
stitching them into separate MPLS planes increases the security
attributes of the MPLS network.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document makes following requests of IANA.</t>

<t>New BGP AFI code ("Address Family Numbers" registry):</t>

<t><list style="symbols">
  <t>16399 for "MPLS"</t>
</list></t>

<t>Note to RFC Editor: this section may be removed on publication as an
RFC. This document requests IANA to rename the "MPLS Namespaces" entry to "MPLS"
in the Address Family Numbers registry, with the reference document changed
to this one.</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors thank Jeffrey (Zhaohui) Zhang, Ron Bonica, Jeff Haas,
   John Scudder, Jim Uttaro, Israel Means, Torunn Narvestad, Christian
   Graf, Natarajan Venkataraman, Reshma Das and Aravind Srinivas
   Srinivasa Prabhakar for the valuable discussions and feedback.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC4364">
  <front>
    <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
    <author fullname="E. Rosen" initials="E." surname="Rosen"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <date month="February" year="2006"/>
    <abstract>
      <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4364"/>
  <seriesInfo name="DOI" value="10.17487/RFC4364"/>
</reference>

<reference anchor="RFC4760">
  <front>
    <title>Multiprotocol Extensions for BGP-4</title>
    <author fullname="T. Bates" initials="T." surname="Bates"/>
    <author fullname="R. Chandra" initials="R." surname="Chandra"/>
    <author fullname="D. Katz" initials="D." surname="Katz"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <date month="January" year="2007"/>
    <abstract>
      <t>This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.). The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4760"/>
  <seriesInfo name="DOI" value="10.17487/RFC4760"/>
</reference>

<reference anchor="RFC5331">
  <front>
    <title>MPLS Upstream Label Assignment and Context-Specific Label Space</title>
    <author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <author fullname="E. Rosen" initials="E." surname="Rosen"/>
    <date month="August" year="2008"/>
    <abstract>
      <t>RFC 3031 limits the MPLS architecture to downstream-assigned MPLS labels. This document introduces the notion of upstream-assigned MPLS labels. It describes the procedures for upstream MPLS label assignment and introduces the concept of a "Context-Specific Label Space". [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5331"/>
  <seriesInfo name="DOI" value="10.17487/RFC5331"/>
</reference>

<reference anchor="RFC8277">
  <front>
    <title>Using BGP to Bind MPLS Labels to Address Prefixes</title>
    <author fullname="E. Rosen" initials="E." surname="Rosen"/>
    <date month="October" year="2017"/>
    <abstract>
      <t>This document specifies a set of procedures for using BGP to advertise that a specified router has bound a specified MPLS label (or a specified sequence of MPLS labels organized as a contiguous part of a label stack) to a specified address prefix. This can be done by sending a BGP UPDATE message whose Network Layer Reachability Information field contains both the prefix and the MPLS label(s) and whose Next Hop field identifies the node at which said prefix is bound to said label(s). This document obsoletes RFC 3107.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8277"/>
  <seriesInfo name="DOI" value="10.17487/RFC8277"/>
</reference>


<reference anchor="I-D.draft-ietf-idr-bgp-ct-35">
   <front>
      <title>BGP Classful Transport Planes</title>
      <author fullname="Kaliraj Vairavakkalai" initials="K." surname="Vairavakkalai">
         <organization>Juniper Networks, Inc.</organization>
      </author>
      <author fullname="Natrajan Venkataraman" initials="N." surname="Venkataraman">
         <organization>Juniper Networks, Inc.</organization>
      </author>
      <date day="24" month="January" year="2025"/>
      <abstract>
	 <t>   This document specifies a mechanism referred to as &quot;Intent Driven
   Service Mapping&quot;.  The mechanism uses BGP to express intent based
   association of overlay routes with underlay routes having specific
   Traffic Engineering (TE) characteristics satisfying a certain Service
   Level Agreement (SLA).  This is achieved by defining new constructs
   to group underlay routes with sufficiently similar TE characteristics
   into identifiable classes (called &quot;Transport Classes&quot;), that overlay
   routes use as an ordered set to resolve reachability (Resolution
   Schemes) towards service endpoints.  These constructs can be used,
   for example, to realize the &quot;IETF Network Slice&quot; defined in TEAS
   Network Slices framework.

   Additionally, this document specifies protocol procedures for BGP
   that enable dissemination of service mapping information in a network
   that may span multiple cooperating administrative domains.  These
   domains may be administered either by the same provider or by closely
   coordinating providers.  A new BGP address family that leverages RFC
   4364 (&quot;BGP/MPLS IP Virtual Private Networks (VPNs)&quot; procedures and
   follows RFC 8277 (&quot;Using BGP to Bind MPLS Labels to Address
   Prefixes&quot;) NLRI encoding is defined to enable each advertised
   underlay route to be identified by its class.  This new address
   family is called &quot;BGP Classful Transport&quot;, a.k.a., BGP CT.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ct-35"/>
   
</reference>


<reference anchor="I-D.draft-ietf-idr-multinexthop-attribute-03">
   <front>
      <title>BGP MultiNexthop Attribute</title>
      <author fullname="Kaliraj Vairavakkalai" initials="K." surname="Vairavakkalai">
         <organization>Juniper Networks, Inc.</organization>
      </author>
      <author fullname="Jeyananth Minto Jeganathan" initials="J. M." surname="Jeganathan">
         <organization>Juniper Networks, Inc.</organization>
      </author>
      <author fullname="Mohan Nanduri" initials="M." surname="Nanduri">
         <organization>Microsoft</organization>
      </author>
      <author fullname="Avinash Reddy Lingala" initials="A. R." surname="Lingala">
         <organization>AT&amp;T</organization>
      </author>
      <date day="21" month="September" year="2024"/>
      <abstract>
	 <t>   Today, a BGP speaker can advertise one nexthop for a set of NLRIs in
   an Update message.  This nexthop can be encoded in either the top-
   level BGP-Nexthop attribute (code 3), or inside the MP_REACH_NLRI
   attribute (code 14).  Forwarding information related to the nexthop
   is scattered across various attributes, extended communities or the
   NLRI field.

   This document defines a new optional non-transitive BGP attribute
   called &quot;MultiNexthop (MNH)&quot; with IANA code TBD.  The MNH provides two
   things: it allows carrying the Nexthop and related forwarding
   information in one BGP attribute.  The MNH also enables carrying an
   ordered set of multiple Nexthops in the same attribute, with
   forwarding information scoped on a per Nexthop basis.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-idr-multinexthop-attribute-03"/>
   
</reference>

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC3032">
  <front>
    <title>MPLS Label Stack Encoding</title>
    <author fullname="E. Rosen" initials="E." surname="Rosen"/>
    <author fullname="D. Tappan" initials="D." surname="Tappan"/>
    <author fullname="G. Fedorkow" initials="G." surname="Fedorkow"/>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
    <author fullname="T. Li" initials="T." surname="Li"/>
    <author fullname="A. Conta" initials="A." surname="Conta"/>
    <date month="January" year="2001"/>
    <abstract>
      <t>This document specifies the encoding to be used by an LSR in order to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on LAN data links, and possibly on other data links as well. This document also specifies rules and procedures for processing the various fields of the label stack encoding. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3032"/>
  <seriesInfo name="DOI" value="10.17487/RFC3032"/>
</reference>


<reference anchor="I-D.draft-hr-spring-intentaware-routing-using-color-03">
   <front>
      <title>Problem statement for Inter-domain Intent-aware Routing using Color</title>
      <author fullname="Shraddha Hegde" initials="S." surname="Hegde">
         <organization>Juniper Networks Inc.</organization>
      </author>
      <author fullname="Dhananjaya Rao" initials="D." surname="Rao">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Jim Uttaro" initials="J." surname="Uttaro">
         <organization>Independent Contributor</organization>
      </author>
      <author fullname="Alex Bogdanov" initials="A." surname="Bogdanov">
         <organization>BT</organization>
      </author>
      <author fullname="Luay Jalil" initials="L." surname="Jalil">
         <organization>Verizon</organization>
      </author>
      <date day="23" month="October" year="2023"/>
      <abstract>
	 <t>   This draft describes the scope, set of use-cases and requirements for
   a distributed routing based solution to establish end-to-end intent-
   aware paths spanning multi-domain packet networks.  The document
   focuses on BGP given its predominant use in inter-domain routing
   deployments, however the requirements may also apply to other
   solutions.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-hr-spring-intentaware-routing-using-color-03"/>
   
</reference>




    </references>

</references>


<?line 660?>

<section anchor="use"><name>Use Cases</name>

<section anchor="set-up-unicast-lfibs-from-controllers"><name>Set up unicast LFIBs from Controllers</name>

<t>Suppose an LFIB entry needs to be created on LSR 192.0.2.1.
The incoming label is 100,
and the outgoing label is 200 towards router 192.0.2.2.</t>

<t>A controller originates a AFI/SAFI 16399/1 route with
NLRI 200:RD1:100, PNH 192.0.2.2,
a Route Target 192.0.2.1:0 and an optional Extended Community EC1
if the LFIB is not the default one but a particular CLFIB.</t>

<t>The Route Target directs the route to the LSR 192.0.2.1, which
then installs the &lt;100--&gt;200, path to 192.0.2.2&gt;
route into the default LFIB or the CLFIB associated with the EC1.</t>

<t>The controller may also set up another LFIB entry on another
LSR 192.0.3.1 with the same label 100 but for a completely different
purpose. The NLRI is 300:RD2:100, the PNH is 192.0.3.2, and
the Route Target is 192.0.3.1:0. An optional Extended Community EC2
may be used to designate a non-default LFIB.</t>

<t>Notice that even in the default LFIB case, the same FEC label 100
may be signaled to different routers for different purposes.
That is why a Route Distinguisher is included in the NLRI
even for the default LFIB case.</t>

<t>In the above examples, the controller does not peer directly
with the routers to be programmed, and route targets are used
to control the propagation and importation. Alternatively,
direct peering sessions may be used, with the routes carrying
NO-ADVERTISE community.</t>

</section>
<section anchor="label-spoof-protection-in-inter-as-option-c-network"><name>Label Spoof Protection in Inter-AS Option C Network</name>

<t>In certain deployments, some domains of an Inter AS Option C network
may be located in an untrusted geography.  Even though such domains
are administered by the same operator, employing security mechanisms
may be desirable on interfaces connecting such domains.</t>

<t>This section describes how an Inter domain Option C MPLS network can
be protected against Label spoofing, using MPLS Namespaces
technology.</t>

<t>The inter-AS labeled traffic will be protected against spoofing, such
that the transport ASBRs will accept labeled traffic on inter-AS
links only if the MPLS label stack matches the transport and service
MPLS labels that have been advertised in BGP (LU and L3VPN) families
to the peers in untrusted zone.</t>

<t>In order to achieve this security, new functionality is required on
only the BNs, PEs or RRs in the trusted zone.</t>

<t>This section illustrates the mechanisms using BGP LU as transport
family and L3VPN as service family.  But the mechanisms described
will work in similar manner for other labeled transport families
(e.g., BGP CT) and service families (e.g., L3VPNv6, EVPN, VPLS) as-
well.</t>

<section anchor="reference-topology"><name>Reference Topology</name>

<figure title="Inter-AS Option C Network with a domain in untrusted zone" anchor="spoof-c"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="408" viewBox="0 0 408 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 80,48 L 80,96" fill="none" stroke="black"/>
<path d="M 192,176 L 192,208" fill="none" stroke="black"/>
<path d="M 320,48 L 320,96" fill="none" stroke="black"/>
<path d="M 176,80 L 216,80" fill="none" stroke="black"/>
<path d="M 176,144 L 216,144" fill="none" stroke="black"/>
<path d="M 64,240 L 96,240" fill="none" stroke="black"/>
<path d="M 256,240 L 280,240" fill="none" stroke="black"/>
<path d="M 56,80 L 64,96" fill="none" stroke="black"/>
<path d="M 96,128 L 104,144" fill="none" stroke="black"/>
<path d="M 288,80 L 296,96" fill="none" stroke="black"/>
<path d="M 344,128 L 352,144" fill="none" stroke="black"/>
<path d="M 56,144 L 64,128" fill="none" stroke="black"/>
<path d="M 96,96 L 104,80" fill="none" stroke="black"/>
<path d="M 288,144 L 296,128" fill="none" stroke="black"/>
<path d="M 344,96 L 352,80" fill="none" stroke="black"/>
<polygon class="arrowhead" points="72,240 60,234.4 60,245.6" fill="black" transform="rotate(180,64,240)"/>
<g class="text">
<text x="84" y="36">[RR13]</text>
<text x="324" y="36">[RR23]</text>
<text x="28" y="84">[PE11]</text>
<text x="140" y="84">[ASBR14]</text>
<text x="252" y="84">[ASBR24]</text>
<text x="380" y="84">[PE21]</text>
<text x="80" y="116">[P11]</text>
<text x="320" y="116">[P21]</text>
<text x="20" y="148">..</text>
<text x="140" y="148">[ASBR15]</text>
<text x="252" y="148">[ASBR25]</text>
<text x="28" y="164">[PE12]</text>
<text x="380" y="164">[PE22]</text>
<text x="72" y="196">..AS1..</text>
<text x="296" y="196">..AS2..</text>
<text x="52" y="212">(trusted</text>
<text x="112" y="212">zone)</text>
<text x="268" y="212">(untrusted</text>
<text x="336" y="212">zone)</text>
<text x="136" y="244">Traffic</text>
<text x="208" y="244">Direction</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                  [RR13]                        [RR23]
                    |                             |
                    |                             |
           [PE11]\  |  /[ASBR14]------[ASBR24]\   |   /[PE21]
                  \ | /                        \  |  /
                  [P11]                         [P21]
                  /   \                        /     \
            ..   /     \[ASBR15]------[ASBR25]/       \
           [PE12]                                      [PE22]
                                  |
                ..AS1..           |         ..AS2..
             (trusted zone)       |    (untrusted zone)

                  <---- Traffic Direction ----

]]></artwork></artset></figure>

<t>Figure 1 shows an Inter-AS Option C network with two domains.  AS1 is
   in a trusted geography, and AS2 is in an untrusted geography.</t>

<t>BGP LU (AFI/SAFI: 1/4) is negotiated on EBGP sessions between ASBR14
   - ASBR24 and ASBR15 - ASBR25.  BGP LU is also negotiated on IBGP
   sessions in AS1 between RR13 and the nodes PE11, PE12, ASBR13, and
   ASBR14; also in AS2 between RR23 and the nodes PE21, PE22, ASBR24,
   and ASBR25.  The ASBRs readvertise the BGP LU routes rewriting next
   hop to self.  The RRs readvertise the BGP LU routes with the next hop
   unchanged.</t>

<t>L3VPN Service routes are present only at PEs and RRs in the two ASes.
   L3VPN family (AFI/SAFI: 1/128) is negotiated between PE11, PE12 and
   RR13.  RR13 has multihop EBGP peering with RR23 and negotiates AFI/
   SAFI: 1/128.  RR23 further peers with PE21, PE22 in AS2.  The RRs
   readvertise the L3VPN service routes with next hop unchanged.</t>

<t>In this example loopback addresses of all PEs in one AS are reachable
   via BGP LU to the other AS.</t>

<t>Following sections describe the control plane and forwarding plane
   mechanics to deploy label spoofing protection using MPLS Namespaces
   in this network.</t>

<t>Traffic direction being described is AS2 to AS1, since focus is on
   traffic entering a trusted zone from an untrusted zone.</t>

</section>
<section anchor="spoof-protection-for-transport-labels"><name>Spoof protection for Transport Labels</name>

<section anchor="mpls-namespace-to-confine-untrusted-interfaces"><name>MPLS Namespace to Confine Untrusted Interfaces</name>

<t>At ASBR14 and ASBR15, the interfaces connecting to the BGP peers in
   untrusted zone are provisioned to terminate in a separate MPLS
   Namespace, lets call it "From-AS2" namespace.  It identifies traffic
   that is allowed from AS2.  This namespace contains a distinct MPLS
   FIB, which is different from the global MPLS FIB.  MPLS packets
   received on these interfaces are forwarded based on lookup in this
   MPLS FIB.</t>

<t>ASBR14 and ASBR15 advertise BGP LU routes for PE11, PE12 loopbacks to
   peers in AS2 with next hop self.  Routes for the labels advertised in
   these routes are installed in the "From-AS2" MPLS namespace.  Thus,
   MPLS packets received on these interfaces will be accepted only if
   the outermost label is installed in this MPLS namespace FIB.  Packets
   with unknown labels will be discarded.</t>

<t>This provides spoof protection for the transport labels advertised in
   BGP LU.</t>

</section>
<section anchor="uhp-labels-for-pe-loopbacks"><name>UHP Labels for PE Loopbacks</name>

<t>The border nodes ASBR14 and ASBR15 use UHP labels in BGP LU routes
   when advertising a AS1 PE loopback to neighbors in AS2.  This label
   serves as Context Label that identifies traffic sent by AS2 towards
   that PE in AS1.</t>

<t>The route for Context Label advertised to AS2 neighbors is installed
   in the "From-AS2" MPLS namespace FIB.  This route is installed with a
   nexthop which has the forwarding semantic as "Pop, Lookup in MPLS-
   namespace for the PE".</t>

<t>In this manner, the incoming MPLS traffic is validated against the
   outermost label to match an advertised PE label, and then sent for
   futher processing in context of the corresponding PE MPLS namespace.</t>

</section>
</section>
<section anchor="spoof-protection-for-service-labels"><name>Spoof protection for Service Labels</name>

<section anchor="mpls-namespace-for-traffic-destined-to-a-pe"><name>MPLS Namespace for Traffic Destined to a PE</name>

<t>At ASBR14 and ASBR15, a separate MPLS Namespace is created for PE11
   and PE12.  Lets call them "To-PE1" and "To-PE2" namespaces.</t>

<t>The namespace "To-PE11" identifies traffic direction towards PE11.
   MPLS packets destined towards PE11 are forwarded based on lookup in
   this MPLS namespace FIB.</t>

<t>The namespace "To-PE12" identifies traffic direction towards PE12.
   MPLS packets destined towards PE12 are forwarded based on lookup in
   this MPLS namespace FIB.</t>

<t>Packets are directed to these namespaces after being processed in the
   "From-AS2" MPLS namespace FIB.</t>

</section>
<section anchor="bgp-mpls-namespaces-family-routes"><name>BGP MPLS Namespaces Family Routes</name>

<t>Correspondingly, MPLS Namespaces "To-PE11" and "To-PE12" are created
   at RR13 which acts as an external label allocator for these
   namespaces at these ASBRs.  The namespace To-PE11 has an associated
   Route Target RT-PE11.  The namespace To-PE12 has an associated Route
   Target RT-PE12.  These Route Targets are exported by the RR and
   imported by the ASBRs.</t>

<t>In AS1, the route reflector RR13 negotiates MPLS Namespace Signaling
   family (AFI/SAFI: 16399/128) with the border nodes ASBR14 and ASBR15.
   Using the MPLS namespace signaling family, the RR13 insalls the VPN
   service labels advertised by PE11 and PE12 into their corresponding
   namespaces at the ASBRs.</t>

<t>Consider PE11 advertising to RR13 a VPN prefix RD:Pfx1 with VPN label
   VL1, next hop as PE11.  RR13 advertises this route with next hop and
   label unchanged to RR23.  When doing so, RR13 originates a MPLS
   namespace signaling family (AFI/SAFI: 16399/128) route with NLRI
   RDx:VL1, next hop as PE11, label field containing VL1, and the Route
   Target RT-PE11.</t>

<t>ASBR14 receives this route and installs in the "To-PE11" MPLS
   namespace FIB, based on matching import route target RT-PE11.  The
   received next hop PE11 is resolved to map to available tunnel from
   ASBR14 to PE11.  The MPLS route for label VL1 is installed to the
   "To-PE11" MPLS namespace FIB.  This ensures that packets sent by AS2
   with VPN label as VL1 will be forwarded properly to PE11.  But if an
   unknown inner label was sent by AS2, such a packet will be dropped
   after lookup in "To-PE11" MPLS FIB.</t>

<t>Similar mechanism works for labels advertised by PE12, using "To-
   PE12" MPLS namespace RIB and FIB at RR and ASBRs.</t>

<t>In this manner, protection is provided against nodes in AS2 spoofing
   service label also.</t>

</section>
</section>
<section anchor="applicability-to-inter-as-option-b"><name>Applicability to Inter-AS Option B</name>

<t>These mechanisms can be used in Inter-AS Option B scenarios as-well.
   In such cases, the procedures specified in Section 6.1.2.1 are
   applied to L3VPN family routes instead of BGP LU routes.  MPLS
   namespace signaling family (AFI/SAFI: 16399/128) is not used in this
   case.</t>

<t>In Inter-AS Option B scenarios, ASBR14 and ASBR15 re-advertise BGP
   L3VPN (AFI/SAFI: 1/128) routes from PE11, PE12 to peers in AS2 with
   next hop self.  Routes for the labels advertised in these routes are
   installed in the "From-AS2" MPLS namespace.  Thus, MPLS packets
   received on these interfaces will be accepted only if the outermost
   label is installed in this MPLS namespace FIB.  Packets with unknown
   labels will be discarded.</t>

<t>This provides spoof protection for the L3VPN service labels
   advertised in BGP L3VPN (AFI/SAFI: 1/128) family.</t>

</section>
</section>
<section anchor="improve-scaling-and-convergence-of-a-seamless-mpls-network"><name>Improve Scaling and Convergence of a Seamless MPLS Network</name>

<t>MPLS Namespaces can be used to improve scaling and convergence
   properties of a scaled BGP MPLS network.  It acts like a Mezanine
   transport layer that decouples the service layer from the actual
   transport layer.</t>

<t>Typically service routes in a MPLS network bind to the following
   entities that identify point-of-presence of a service:</t>

<t><list style="symbols">
  <t>Protocol Nexthop - PE loopback address (GPNH)</t>
  <t>Service Label - PE advertised locally signifcant label that
identifies the service</t>
</list></t>

<t>In such a model, whenever a PE is taken out of service the GPNH
   changes, and Service-Label changes - which makes maintenance a heavy
   convergence event.  Because the service routes with massive-scale
   need to be readvertised with new service-label or PE-address.</t>

<t>An alternate model could be: to advertise the service routes with a
   protocol-nexthop of CPNH identifying a namespace, with a forwarding-
   semantic of:</t>

<t><list style="symbols">
  <t>"Push Private-Label, and Forward to CPNH"</t>
</list></t>

<t>This model fully decouples the service-layer from the transport-layer
   identifiers, by making the Service routes refer to the CPNH and
   Private Labels.  Thus the underlying transport layer can change
   (nodes representing a Private label can be added or removed) without
   any changes to the service routes.  This presents good convergence
   scaling properties for the network.</t>

<t>This model also allows anycast traffic forwarding to any resource in
   the network.  Multiple PEs can advertise the same Private label to
   identify a specific service (e.g. peering with an AS) they are
   offering.</t>

<t>Once the service route traffic enters the private FIB layer, at the
   closest entry-point determined by path-selection of CPNH auto-
   discovery routes; then the Private Labels (with pre determined
   values) pushed will determine the loose hop path taken by the traffic
   and also the destination-resource.</t>

<t>This section describes how scaling is achieved in an inter-domain
   MPLS network, where a domain is an AS or IGP area.  Domain boundary
   is demarcated by a BN performing BGP next hop self action on the
   transport route.</t>

<t>It considers the scenario suggested in Section 6.3.2.1 of
   <xref target="I-D.draft-hr-spring-intentaware-routing-using-color-03"/> where 300K nodes exist in the network with 5
   transport classes.</t>

<t>This may result in 1.5M transport layer routes and MPLS transit
   routes in all Border Nodes in the network, which may overwhelm the
   nodes' MPLS forwarding resources.</t>

<t>This section explains how "MPLS Namespaces" is used to scale such a
   network.  This approach reduces the number of PNHs that are globally
   visible in the network, thus reducing forwarding resource usage
   network wide.  Service route state is kept confined closer to network
   edge, and any churn is confined within the region containing the
   point of failure, which improves convergence.</t>

<t>In order to achieve these scaling benefits, new functionality is
   required only at a Region's Border Nodes and the Regional RRs.  All
   other nodes can remain legacy nodes, and still get the scaling and
   convergence benefits of this mechanism.  This is mainly advantageous
   to ingress and egress PE devices which may be low end devices not
   capable of pushing deep label stacks or supporting large number of
   ECMP next hops.  They can enjoy the scaling benefits without needing
   software upgrades.</t>

<section anchor="illustration"><name>Illustration</name>

<t>Let us consider the decomposition of this example network with 300K
   nodes to be such that there are 300 domains containing 1000 nodes
   each.  The mechanism described here will reduce the forwarding
   resource usage in all Border Nodes to become a function of number of
   domains (300) instead of number of nodes (300K).  Thus, drastically
   reducing MPLS transit routes from 1.5M to 1500.  The Border Nodes and
   Regional RRs in a Region do the job of abstracting the 1000 PE
   loopbacks from the rest of the network.  The rest of the network sees
   this region as 1 BGP next hop, and not as 1000 BGP next hops.</t>

</section>
<section anchor="topology"><name>Topology</name>

<figure title="BGP MPLS Namespaces" anchor="fig-seamless-scale"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="560" viewBox="0 0 560 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 56,176 L 56,208" fill="none" stroke="black"/>
<path d="M 144,48 L 144,96" fill="none" stroke="black"/>
<path d="M 208,176 L 208,208" fill="none" stroke="black"/>
<path d="M 344,176 L 344,208" fill="none" stroke="black"/>
<path d="M 408,48 L 408,96" fill="none" stroke="black"/>
<path d="M 504,176 L 504,208" fill="none" stroke="black"/>
<path d="M 224,80 L 240,80" fill="none" stroke="black"/>
<path d="M 304,80 L 320,80" fill="none" stroke="black"/>
<path d="M 224,144 L 240,144" fill="none" stroke="black"/>
<path d="M 304,144 L 320,144" fill="none" stroke="black"/>
<path d="M 152,240 L 184,240" fill="none" stroke="black"/>
<path d="M 344,240 L 368,240" fill="none" stroke="black"/>
<path d="M 120,80 L 128,96" fill="none" stroke="black"/>
<path d="M 160,128 L 168,144" fill="none" stroke="black"/>
<path d="M 240,80 L 248,96" fill="none" stroke="black"/>
<path d="M 296,128 L 304,144" fill="none" stroke="black"/>
<path d="M 376,80 L 384,96" fill="none" stroke="black"/>
<path d="M 432,128 L 440,144" fill="none" stroke="black"/>
<path d="M 120,144 L 128,128" fill="none" stroke="black"/>
<path d="M 160,96 L 168,80" fill="none" stroke="black"/>
<path d="M 240,144 L 248,128" fill="none" stroke="black"/>
<path d="M 296,96 L 304,80" fill="none" stroke="black"/>
<path d="M 376,144 L 384,128" fill="none" stroke="black"/>
<path d="M 432,96 L 440,80" fill="none" stroke="black"/>
<polygon class="arrowhead" points="160,240 148,234.4 148,245.6" fill="black" transform="rotate(180,152,240)"/>
<g class="text">
<text x="148" y="36">[RR11]</text>
<text x="412" y="36">[RR31]</text>
<text x="92" y="84">[PE11]</text>
<text x="196" y="84">[BN11]</text>
<text x="348" y="84">[BN31]</text>
<text x="468" y="84">[PE31]</text>
<text x="88" y="116">[CE41]--[PE12]--[P11]</text>
<text x="276" y="116">[BN21]</text>
<text x="472" y="116">[P31]--[PE32]--[CE31]</text>
<text x="84" y="132">..</text>
<text x="476" y="132">..</text>
<text x="84" y="148">..</text>
<text x="196" y="148">[BN12]</text>
<text x="348" y="148">[BN32]</text>
<text x="476" y="148">..</text>
<text x="104" y="164">[PE11000]</text>
<text x="480" y="164">[PE31000]</text>
<text x="24" y="196">AS4</text>
<text x="144" y="196">..Domain1..</text>
<text x="272" y="196">..Domain2..</text>
<text x="424" y="196">..Domain3..</text>
<text x="528" y="196">AS3</text>
<text x="276" y="212">(backbone)</text>
<text x="224" y="244">Traffic</text>
<text x="296" y="244">Direction</text>
<text x="188" y="276">Figure</text>
<text x="228" y="276">2:</text>
<text x="256" y="276">BGP</text>
<text x="292" y="276">MPLS</text>
<text x="360" y="276">Namespaces.</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                  [RR11]                           [RR31]
                    |                                |
                    |                                |
           [PE11]\  |  /[BN11]--+       +--[BN31]\   |   /[PE31]
                  \ | /          \     /          \  |  /
   [CE41]--[PE12]--[P11]          [BN21]           [P31]--[PE32]--[CE31]
            ..    /   \          /     \          /     \    ..
            ..   /     \[BN12]--+       +--[BN32]/       \   ..
           [PE11000]                                      [PE31000]
         |                  |                |                   |
    AS4  |     ..Domain1..  |  ..Domain2..   |    ..Domain3..    | AS3
         |                  |   (backbone)   |                   |

                     <---- Traffic Direction ----

                       Figure 2: BGP MPLS Namespaces.

]]></artwork></artset></figure>

<t>This topology in Figure 2 shows a cross section of the network with
   focus on two domains Domain1 and Domain3 connected via a backbone
   domain Domain2.  Rest of the domains are not shown for brevity.  The
   border nodes have forwarding state pertaining to all domains in the
   network.  The control plane and forwarding plane state in node BN21
   can be examined to determine the MPLS scaling characteristics of the
   network.</t>

<t>L3VPN Service routes are present only at ingress and egress PEs.
   L3VPN family (AFI/SAFI 1/128) is negotiated between PE11..PE11000 and
   regional route reflector RR11.  RR11 has multihop EBGP peering with
   RR31 and negotiates AFI/SAFI 1/128.  RR31 further peers with all PEs
   PE31..PE31000 in Domain3.</t>

<t>At the Transport layer - in Domain1, PE11..PE11000 negotiate BGP
   families (AFI/SAFI 1/4, AFI/SAFI 1/76) with BN11, BN12.  In Domain2,
   BN11 and BN12 similarly negotiate the transport families with BN21,
   which in turn peers with BN31 and BN32.  In Domain3, BN31 and BN32
   peer with PEs PE31..PE31000.  Each of these BNs change BGP next hop
   to self, when re advertising the AFI/SAFI 1/4, AFI/SAFI 1/76
   transport routes.</t>

<t>When all nodes loopback addresses are visible throughout the network,
   it will result in 1.5M transport layer routes and MPLS transit routes
   in BN21.</t>

<t>Following sections describe the control plane and forwarding plane
   mechanics to reduce this to 1500 routes, when MPLS Namespaces is
   deployed in this network.
   Traffic direction being described is CE41 to CE31.  Reverse direction
   would work in similar way.</t>

<t>Traffic direction being described is CE41 to CE31.  Reverse direction
   would work in similar way.</t>

</section>
<section anchor="context-protocol-nexthop-address-cpnh"><name>Context Protocol Nexthop Address (CPNH)</name>

<t>A MPLS Namespace is identified by a Context PNH address.  In MPLS
   forwarding, labels are locally significant to the node advertising
   it.  E.g. labels in default/global MPLS Namespace are scoped by the
   node's loopback address.  The labels belonging to a MPLS Namespace
   are locally significant in scope of the Context PNH address.</t>

<t>A UHP label called as "Context Label" is advertised for the CPNH in a
   transport protocol, which points to the MPLS Namespace forwarding
   context.  When Context label is received as outer label in a MPLS
   packet, it is Popped, and lookup is performed for the MPLS label that
   appears in the MPLS Namespace identified by the CPNH.</t>

<t>In this example, CPNH is an anycast IP address that represents set of
   PEs in a domain.  E.g.  CPNH1 represent all PEs in Domain1.  And
   CPNH3 represents all PEs in Domain3.</t>

</section>
<section anchor="service-forwarding-helper-and-changes-to-transport-layer"><name>Service Forwarding Helper, and Changes to Transport Layer</name>

<t>The border nodes BN11, BN12 maintain the forwarding context for MPLS
   Namespace identified by CPNH1.  They advertise CPNH1 in transport
   layer routes like AFI/SAFI 1/4 or AFI/SAFI 1/76 with a UHP Context
   Label CL1.  Any transport layer protocol may be used to advertise the
   UHP Context Label for the CPNH.</t>

<t>In this way, BN11 and BN12 serve as Service Forwarding Helpers for
   CPNH1 MPLS Namespace.  They attract traffic that remote devices send
   towards the BGP next hop CPNH1, and forward the MPLS packets received
   with the MPLS labels belonging to the MPLS Namespace identified by
   CPNH1.</t>

<t>The individual loopback addresses of the PEs need not be advertised
   outside the local region.  E.g.  PE11..PE11000 are not advertised
   beyond BN11, BN12.  Only CPNH1 and RR11 addresses are advertised out.
   RR1 is used for the control plane peering and CPNH1 is used as a
   forwarding anchor point.</t>

<t>Similarly, Domain3 advertises only RR31 and CPNH3 to Domain2.  This
   significantly reduces the transport route scale and MPLS forwarding
   resource usage at the border nodes throughout the network.</t>

</section>
<section anchor="bgp-mpls-namespace-address-family-afi16399-safi128"><name>BGP MPLS Namespace Address family (AFI:16399, SAFI:128)</name>

<t>In Domain1, the regional route reflector RR11 negotiates MPLS
   Namespace Signaling address family with the border nodes BN11, BN12.
   RR11 is an external label allocator for the MPLS Namespace identified
   by CPNH1.  RR1 advertises in the MPLS Namespace address family, the
   labels it allocated in scope of CPNH1.  These routes are advertised
   with a route target that identifies CPNH1.  BN11 and BN12 use this
   route target to import the label route into the forwarding context
   associated with CPNH1.</t>

<t>Similarly, in Domain3, RR31 negotiates MPLS Namespace Signaling
   address family with the border nodes BN31, BN32.</t>

</section>
<section anchor="changes-to-service-layer-route-exchange"><name>Changes to Service Layer Route Exchange</name>

<t>When RR11 re-advertises to RR31 a VPN route RD:Pfx1 received with
   label VL1 from egress PE11 in Domain1, it sets BGP next hop to CPNH1,
   and advertises a new label PL1.  This label PL1 is allocated within
   the scope of CPNH1 namespace.</t>

<t>The label PL1 is advertised to BN1, BN2 in MPLS Namespace address
   family with a route target identifying CPNH1, and BGP next hop PE11
   and label VL1 that were received from the egress PE.  BN1 and BN2
   resolve the path to that BGP next hop PE11 and use as next hop for
   the PL1 route installed in CPNH1 forwarding context.</t>

<t>The remote PEs in Domain3 consume the BGP updates from Domain1
   following regular procedures for AFI/SAFI 1/128.  When resolving the
   BGP next hop CPNH1, they will push the context label that lands the
   traffic into the correct forwarding context in one of the border
   nodes.</t>

</section>
<section anchor="analysis-of-forwarding-behavior"><name>Analysis of Forwarding Behavior</name>

<t>The forwarding behavior thus achieved is similar to Inter-AS Option
   B, without carrying any service routes at the border nodes.
   Furthermore, the MPLS namespace labels are installed in all the
   border nodes, which allows for quicker traffic convergence in case of
   border node failure.  The number of border nodes can be increased in
   a scale out manner, which gives a cookie cutter template to scale a
   network region.</t>

<t>In conclusion, this mechanism provides both scaling and convergence
   benefits for the MPLS network, and allows to support huge scale
   networks.</t>

</section>
</section>
<section anchor="bgp-based-standard-api-to-networks-mpls-forwarding-plane"><name>BGP Based Standard API to Network's MPLS Forwarding Plane</name>

<t>This mechanism facilitates predictable (external allocator) label
   values, using a standard BGP family as the API.  This gives the
   external applications a separate MPLS FIB to play with, totally
   separate from other applications.</t>

<t>This also avoids vendor specific API dependencies between external
   label allocators (e.g., Controller software), and network routers.</t>

<t>This mechanism also increases the overal MPLS label space available
   in the network.  Because it creates per application label forwarding
   contexts (namespaces), instead of reserving ranges and splitting the
   global MPLS FIB among various applications.</t>

</section>
<section anchor="traffic-engineering-and-service-chaining"><name>Traffic Engineering and Service Chaining</name>

<t>MPLS namespaces provide an ingress PE the ability to steer MPLS
   traffic thru specific detour loose hop nodes using predictable label
   stack.</t>

<t>Labels in a MPLS namespace may be used to identify service chain
   hops, thus allowing to create a Service Chain consisting of multiple
   service functions.</t>

<t>Allows private MPLS label usage to spread across multiple
   domains(e.g., ASes) and works seamlessly with existing technologies
   like Inter-AS VPN option C.</t>


</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIADijIWgAA919a3PbRpbod1XpP/QyVRtphqBNynYSzc7syrIca0ZWdCXZ
U7uZ1BZIQhJiEuAAoGRNHr/l/pb7y+55dp8GQNlOMnurrlIVSyTQj9Pn/eok
Sba3treavFlk+27w/Oszd5FfF+kim7vXZycX7jRdZvUqnWX1YHsrnU6r7Fae
6349S5vsuqzu913dzHHYeTkr4IF9N6/SqyZ5ly7yKv0+mWZ1nUyvV8lytaiT
wg+RPH68vVWvp8u8rvOyaO5X8Orx0eXL7a1ivZxm1T4MCXPsu8njydPk8dNk
PIFZy6LOinpd77umWmfbW7DAPVhrlaX77rxcN3lxvb11V1bvrqtyvdp3z48u
Ltxf4W/4wn2Nn+FaVzm8X86Gri6rpsquavjtfsm/zMrlMiuaGp/LVxVNVDeT
x4+/egwLeHe373AnLuxk6BbpNFu4mmAJ8wzdy6PDoQO4wbCrsryiz8pVA/t0
U//bDGf4zP2wvz8t80VWrRawXTedrcZPfsKv0nVzU8L821vOJfg/5/ICNv6X
kXubAmxv03cA5DTnrxj2f2Go9z1QVtf77s/rIl9llTvNGgRSzV9lyzRf7Ds5
sv/4nh8aFVmD64hnfz1yf87u0yItmhs78+u8aMr2Vx+ec4mvPTzj2cidp8t0
nhVrO+EZbDDLitZ3NOPB5b9eRrOsqq+e7X3xH2nTjOB4u1Mcj9zrLC1qO/5x
XaVwqubz/rFzem60xOfsDEVZLdMmv832eb7zl4dP9p492dffv3j2WH9/urc3
1t+/nHzxBf1+nLwYMSnlWXOV5POKyGjWJHtPNz2wXC+AArL3gDirBNZS5dN1
kyWP92gNeXHVXdPe471Ja7ibKqlXFSBtAocDpJDeAX0lFVNXsq7x/7NyUVY6
cJIkLp3WTZXO5Pzc5U3GTAOmhNfnSH6L9B7QIC9cCkRWZa5ghAAIwif1DUwy
d1VWl+tqlo3iUV4eP3dp44pyntU4QnMDL/F4wBKaFE6RqbCGr+BBGIsGmN/D
YeazdLG4d/C/ErnW3KXF3OHv+ClSbX4FjxQNzkBv4zQjmr3mYWRoGNXVs3IF
Q8AacGIAtSuv4K3MXS/KabqAccvVNJ29c+l8DpupYZyTrHFrxiGckxdvXqEd
en4yEgi+LCtgT8sMXs1maQ37XuTv4K8VwDlLl8J0ZFPAT4YubxCU8PjVGiYp
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

-->

</rfc>

