RFC 5553 PROPOSED STANDARD MPLS · SIGNALING · INTER-DOMAIN

RSVP path key: Resource Reservation Protocol (RSVP) Extensions for Path Key Support

How RSVP-TE carries a sealed 'path key' in place of a hidden stretch of route when an LSP crosses several domains.

On rfc-editor.org ↗
PUBLISHED
May 2009
AUTHORS
A. Farrel, R. Bradford, JP. Vasseur
STREAM
IETF
SUBOBJECT LENGTH (32-BIT PCE-ID)
8 bytes
SUBOBJECT LENGTH (128-BIT PCE-ID)
20 bytes
SUBOBJECT TYPES
64 (32-bit PCE-ID), 65 (128-bit PCE-ID)
ROUTING PROBLEM ERROR CODE
24
NEW ERROR VALUES
31 to 34
DOI
10.17487/RFC5553

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     A. Farrel, Ed.
Request for Comments: 5553                            Old Dog Consulting
Category: Standards Track                                    R. Bradford
                                                             JP. Vasseur
                                                     Cisco Systems, Inc.
                                                                May 2009


  Resource Reservation Protocol (RSVP) Extensions for Path Key Support

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (c) 2009 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Abstract

   The paths taken by Multiprotocol Label Switching (MPLS) and
   Generalized MPLS (GMPLS) Traffic Engineering (TE) Label Switched
   Paths (LSPs) may be computed by Path Computation Elements (PCEs).
   Where the TE LSP crosses multiple domains, such as Autonomous Systems
   (ASes), the path may be computed by multiple PCEs that cooperate,
   with each responsible for computing a segment of the path.

   To preserve confidentiality of topology within each AS, the PCEs
   support a mechanism to hide the contents of a segment of a path (such
   as the segment of the path that traverses an AS), called the
   Confidential Path Segment (CPS), by encoding the contents as a Path
   Key Subobject (PKS) and embedding this subobject within the result of
   its path computation.

   This document describes how to carry Path Key Subobjects in the
   Resource Reservation Protocol (RSVP) Explicit Route Objects (EROs)
   and Record Route Objects (RROs) so as to facilitate confidentiality
   in the signaling of inter-domain TE LSPs.

1.  Introduction

   Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS)
   Traffic Engineering (TE) Label Switched Paths (LSPs) are signaled
   using the TE extensions to the Resource Reservation Protocol (RSVP-
   TE) [RFC3209], [RFC3473].  The routes followed by MPLS and GMPLS TE
   LSPs may be computed by Path Computation Elements (PCEs) [RFC4655].

   Where the TE LSP crosses multiple domains [RFC4726], such as
   Autonomous Systems (ASes), the path may be computed by multiple PCEs
   that cooperate, with each responsible for computing a segment of the
   path.  To preserve confidentiality of topology with each AS, the PCE
   Communications Protocol (PCEP) [RFC5440] supports a mechanism to hide
   the contents of a segment of a path, called the Confidential Path
   Segment (CPS), by encoding the contents as a Path Key Subobject (PKS)
   [RFC5520].

   This document defines RSVP-TE protocol extensions necessary to
   support the use of Path Key Subobjects in MPLS and GMPLS signaling by
   including them in Explicit Route Objects (EROs) and Record Route
   Object (RROs) so as to facilitate confidentiality in the signaling of
   inter-domain TE LSPs.

1.1.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

1.2.  Usage Scenario

   Figure 1 shows a simple network constructed of two ASes.  An LSP is
   desired from the ingress in AS-1 to the egress in AS-2.  As described
   in [RFC4655], the ingress Label Switching Router (LSR) acts as a Path
   Computation Client (PCC) and sends a request to its PCE (PCE-1).
   PCE-1 can compute the path within AS-1 but has no visibility into
   AS-2.  So PCE-1 cooperates with PCE-2 to complete the path
   computation.

   However, PCE-2 does not want to share the information about the path
   across AS-2 with nodes outside the AS.  So, as described in
   [RFC5520], PCE-2 reports the AS-2 path segment using a PKS rather
   than the explicit details of the path.

   PCE-1 can now return the path to be signaled to the ingress LSR in a
   path computation response with the AS-2 segment still hidden as a
   PKS.

   In order to set up the LSP, the ingress LSR signals using RSVP-TE and
   encodes the path reported by PCE-1 in the Explicit Route Object
   (ERO).  This process is as normal for RSVP-TE but requires that the
   PKS is also included in the ERO, using the mechanisms defined in this
   document.

   When the signaling message (the RSVP-TE Path message) reaches ASBR-2
   (Autonomous System Border Router), it consults PCE-2 to 'decode' the
   PKS and return the expanded explicit path segment to ASBR-2.  (The
   information that PCE-2 uses to decode the PKS is encoded within the
   PKS itself.) The PKS is replaced in the ERO with the expanded
   information about the path.

    -----------------------------    ----------------------------
   |                       AS-1  |  |                      AS-2  |
   |                             |  |                            |
   |     -------                 |  |    -------                 |
   |    | PCE-1 |<---------------+--+-->| PCE-2 |                |
   |     -------                 |  |    -------                 |
   |      ^                      |  |    ^                       |
   |      |                      |  |    |                       |
   |      v                      |  |    v                       |
   |  -------              ----  |  |  ----                      |
   | |  PCC  |   -    -   |ASBR| |  | |ASBR|   -    -    ------  |
   | |Ingress|--|A|--|B|--|  1 |-+--+-|  2 |--|C|--|D|--|Egress| |
   |  -------    -    -    ----- |  |  ----    -    -    ------  |
   |                             |  |                            |
    -----------------------------    ----------------------------

       Figure 1: A Simple Network to Demonstrate the Use of the PKS

   Note that PCE-2 may in some case be co-located with ASBR-2.

2.  Terminology

   CPS: Confidential Path Segment.  A segment of a path that contains
        nodes and links that the AS policy requires to not be disclosed
        outside the AS.

   PCE: Path Computation Element.  An entity (component, application, or
        network node) that is capable of computing a network path or
        route based on a network graph and applying computational
        constraints.

   PKS: Path Key Subobject.  A subobject of an Explicit Route Object
        that encodes a CPS so as to preserve confidentiality.

3.  RSVP-TE Path Key Subobject

   The Path Key Subobject (PKS) may be carried in the Explicit Route
   Object (ERO) of an RSVP-TE Path message [RFC3209].  The PKS is a
   fixed-length subobject containing a Path Key and a PCE-ID.  The Path
   Key is an identifier or token used to represent the CPS within the
   context of the PCE identified by the PCE-ID.  The PCE-ID identifies
   the PCE that can decode the Path Key using a reachable IPv4 or IPv6
   address of the PCE.  In most cases, the decoding PCE is also the PCE
   that computed the Path Key and the associated path.  Because of the
   IPv4 and IPv6 variants, two subobjects are defined as follows.

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |L|    Type     |     Length    |           Path Key            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    PCE-ID (4 bytes)                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Figure 2: RSVP-TE Path Key Subobject using an
                        IPv4 address for the PCE-ID

     L

       The L bit SHOULD NOT be set, so that the subobject represents a
       strict hop in the explicit route.

     Type

       Subobject Type for a Path Key with a 32-bit PCE-ID as assigned by
       IANA.

     Length

       The Length contains the total length of the subobject in bytes,
       including the Type and Length fields.  The Length is always 8.

     PCE-ID

       A 32-bit identifier of the PCE that can decode this key.  The
       identifier MUST be unique within the scope of the domain that the
       CPS crosses and MUST be understood by the LSR that will act as
       PCC for the expansion of the PKS.  The interpretation of the
       PCE-ID is subject to domain-local policy.  It MAY be an IPv4
       address of the PCE that is always reachable and MAY be an address
       that is restricted to the domain in which the LSR that is called
       upon to expand the CPS lies.  Other values that have no meaning
       outside the domain (for example, the Router ID of the PCE) MAY be
       used to increase security or confidentiality.

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |L|    Type     |     Length    |           Path Key            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        PCE-ID (16 bytes)                      |
    |                                                               |
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Figure 3: RSVP-TE Path Key Subobject using an
                        IPv6 address for the PCE-ID

     L

       As above.

     Type

       Subobject Type for a Path Key with a 128-bit PCE-ID as assigned
       by IANA.

     Length

       The Length contains the total length of the subobject in bytes,
       including the Type and Length fields.  The Length is always 20.

     PCE-ID

       A 128-bit identifier of the PCE that can decode this key.  The
       identifier MUST be unique within the scope of the domain that the
       CPS crosses and MUST be understood by the LSR that will act as
       PCC for the expansion of the PKS.  The interpretation of the
       PCE-ID is subject to domain-local policy.  It MAY be an IPv6
       address of the PCE that is always reachable, and MAY be an
       address that is restricted to the domain in which the LSR that is
       called upon to expand the CPS lies.  Other values that have no
       meaning outside the domain (for example, the IPv6 TE Router ID)
       MAY be used to increase security (see Section 4).

   Note: The twins of these subobjects are carried in PCEP messages as
   defined in [RFC5520].

3.1.  Explicit Route Object Processing Rules

   The basic processing rules of an ERO are not altered.  Refer to
   [RFC3209] for details.  In particular, an LSR is not required to
   "look ahead" in the ERO beyond the first subobject that is non-local.

   [RFC5520] requires that any path fragment generated by a PCE that
   contains a PKS be such that the PKS is immediately preceded by a
   subobject that identifies the head end of the PKS (for example, an
   incoming interface or a node ID).  This rule is extended to the PKS
   in the ERO so that the following rules are defined.

   - If an LSR receives a Path message where the first subobject of the
     ERO is a PKS, it MUST respond with a PathErr message carrying the
     error code/value combination "Routing Problem" / "Bad initial
     subobject".

   - If an LSR strips all local subobjects from an ERO carried in a Path
     message (according to the procedures in [RFC3209]) and finds that
     the next subobject is a PKS, it MUST attempt to resolve the PKS to
     a CPS.

     Resolution of the PKS MAY take any of the following forms or use
     some other technique subject to local policy and network
     implementation.

     o The LSR can use the PCE-ID contained in the PKS to contact the
       identified PCE using PCEP [RFC5440] and request that the PKS be
       expanded.

     o The LSR can contact any PCE using PCEP [RFC5440] to request that
       the PKS be expanded, relying on cooperation between the PCEs.

     o The LSR can use the information in the PKS to index a CPS
       previously supplied to it by the PCE that originated the PKS.

     If a CPS is derived, the path fragment SHOULD be inserted into the
     ERO of the Path message as a direct replacement for the PKS.  Other
     processing of the CPS and ERO are permitted as described in
     [RFC3209].

     This processing can give rise to the following error cases:

     o PCE-ID cannot be matched to a PCE to decode the PKS.

       The LSR sends a PathErr message with the error code "Routing
       Problem" and the new error value "Unknown PCE-ID for PKS
       expansion" (see Section 6.3).

     o PCE identified by the PCE-ID cannot be reached.

       The LSR sends a PathErr message with the error code "Routing
       Problem" and the new error value "Unreachable PCE for PKS
       expansion" (see Section 6.3).

     o The PCE is unable to decode the PKS, perhaps because the Path Key
       has expired.

       The LSR sends a PathErr message with the error code "Routing
       Problem" and the new error value "Unknown Path Key for PKS
       expansion" (see Section 6.3).

     o PKS cannot be decoded for policy reasons.

       The LSR sends a PathErr message with the error code "Policy
       Control Failure" and the error value "Inter-domain policy
       failure".

     o Addition of CPS to ERO causes Path message to become too large.

       The LSR MAY replace part of the ERO with loose hops [RFC3209] or
       with a further PKS, according to local policy, if the loss of
       specifics within the explicit path is acceptable.  If the LSR is
       unable to take steps to reduce the size of the ERO, it MUST send
       a PathErr message with the error code "Routing Problem" and the
       new error value "ERO too large for MTU" (see Section 6.3).

   - An LSR that is called on to process a PKS within an ERO but that
     does not recognize the subobject, will react according to [RFC3209]
     and send a PathErr message with the error code/value combination
     "Routing Problem" / "Bad Explicit Route Object".

3.2.  Reporting Path Key Segments in Record Route Objects

   The Record Route Object (RRO) is used in RSVP-TE to record the route
   traversed by an LSP.  The RRO may be present on a Path message and on
   a Resv message.  The intention of [RFC3209] is that an RRO on a Resv
   message that is received by an ingress LSR is suitable for use as an
   ERO on a Path message sent by that LSR to achieve an identical LSP.

   The PKS offers an alternative that can be more useful to diagnostics.
   When the signaling message crosses a domain boundary, the path
   segment that needs to be hidden (that is, a CPS) MAY be replaced in
   the RRO with a PKS.  In the case of an RRO on a Resv message, the PKS
   used SHOULD be the one originally signaled in the ERO of the Path
   message.  On a Path message, the PKS SHOULD identify the LSR
   replacing the CPS and provide a Path Key that can be used to expand
   the path segment.  In the latter case, the Path Key and its expansion
   SHOULD be retained by the LSR that performs the substitution for at
   least the lifetime of the LSP.  In both cases, the expansion of the
   PKS SHOULD be made available to diagnostic tools under the control of
   local policy.

4.  Security Considerations

   The protocol interactions required by the mechanisms described in
   this document are point-to-point and can be authenticated and made
   secure as described in [RFC5440] and [RFC3209].  The protocol
   interactions for PCEP are listed in [RFC5520], while general
   considerations for securing RSVP-TE in MPLS-TE and GMPLS networks can
   be found in [MPLS-SEC].

   Thus, security issues can be dealt with using standard techniques for
   securing and authenticating point-to-point communications.  In
   addition, it is RECOMMENDED that the PCE providing a PKS expansion
   check that the LSR that issued the request for PKS expansion is the
   head end of the resulting CPS.

   Further protection can be provided by using a PCE-ID to identify the
   decoding PCE that is only meaningful within the domain that contains
   the LSR at the head of the CPS.  This may be either an IP address
   that is only reachable from within the domain or some non-address
   value.  The former requires configuration of policy on the PCEs; the
   latter requires domain-wide policy.

   The following specific security issues need to be considered.

   - Confidentiality of the CPS.  The question to be answered is whether
     other network elements can probe a PCE for the expansion of PKSs,
     possibly generating Path Keys at random.  This can be protected
     against by only allowing PKS expansion to be successfully completed
     if requested by the LSR that is at the head end of the resulting
     CPS.  Under specific circumstances, PKS expansion might also be
     allowed by configured management stations.

     The CPS itself may be kept confidential as it is exchanged in the
     PCEP and RSVP-TE protocols using standard security mechanisms
     defined for those protocols.

   - Determination of information by probing.  In addition to the
     probing described above, a node might deduce information from the
     error responses that are generated when PKS expansion fails as
     described in Section 3.1.  Any LSR that determines that supplying
     one of the detailed error codes described in Section 3.1 might
     provide too much information that could be used as part of a
     systematic attack MAY simply use the error code/value "Policy
     Control Failure" / "Inter-domain policy failure" in all cases.

   - Authenticity of the Path Key.  A concern is that the Path Key in
     the PKS will be altered or faked, leading to erroneous Path Key
     expansion and use of the wrong CPS.  The consequence would be a bad
     ERO in a Path message, causing the LSP to be set up incorrectly and
     resulting in incorrect network resource usage, diversion of traffic
     to where it can be intercepted, or failure to set up the LSP.
     These problems can be prevented by protecting the protocol
     exchanges in PCEP and RSVP-TE using the security techniques
     described in [RFC5440], [RFC3209], and [MPLS-SEC].

   - Resilience to denial-of-service (DoS) attacks.  A PCE can be
     attacked through a flood of Path Key expansion requests -- this
     issue is addressed in [RFC5520] and is out of scope for this
     document.  A further attack might consist of sending a flood of
     RSVP-TE Path messages with deliberately spurious PKSs.  This attack
     is prevented by ensuring the integrity of the Path messages using
     standard RSVP-TE security mechanisms and by enforcing the RSVP-TE
     chain-of-trust security model.

5.  Manageability Considerations

5.1.  Control of Function through Configuration and Policy

   Policy forms an important part of the use of PKSs in EROs and RROs.
   There are local and domain-wide policies that SHOULD be available for
   configuration in an implementation.

   - Handling of an ERO containing a PKS.  As described in Section 3.1,
     an LSR that receives a Path message containing a PKS can be
     configured to reject the Path message according to policy.

   - Handling of PKS requests at a PCE.  As described in Section 3.1, in
     [RFC5520], and in [RFC5394], a PCE can be configured with policy
     regarding how it should handle requests for PKS expansion.

   - PKS expansion.  Section 3.1 explains that the PKS can be expanded
     by the local LSR, the specific PCE identified in the PKS, any PCE
     acting as a proxy, or by some other method.  The behavior of the
     LSR needs to be locally configurable but is subject to the domain-
     wide policy.

   - Interpretation of PCE-ID.  The interpretation of the PCE-ID
     component of PKSs is subject to domain-local policy and needs to be
     configurable as such.  See Section 3 and Section 4 for the options.

   - ERO too large.  The behavior of an LSR when it finds that adding a
     CPS to the ERO causes the Path message to be too large is an
     implementation choice.  However, implementations may choose to
     provide configuration of behavior as described in Section 3.1.

   - Masking of RRO.  As described in Section 3.2, a border router can
     choose to mask segments of the path by replacing them with PKSs.
     This behavior needs to be configurable, with the default being to
     not hide any part of the RRO.

   - Inspection / decoding of PKS by diagnostic tools.  A PCE can allow
     access from management or diagnostic tools to request the expansion
     of a PKS.  Note that this must be regulated with the security and
     confidentiality behavior described in Section 4.

   - Hiding of reason codes.  An LSR can support the configuration of
     local policy to hide reason codes associated with the failure to
     expand a PKS and, as described in Section 4, report all errors as
     policy failures.

   The treatment of a path segment as a CPS, and its substitution in a
   PCRep ERO with a PKS, is a PCE function and is described in
   [RFC5520].

6.  IANA Considerations

6.1.  Explicit Route Object Subobjects

   IANA maintains a registry called "Resource Reservation Protocol
   (RSVP) Parameters" with a subregistry called "Class Names, Class
   Numbers, and Class Types".

   Within this subregistry, there is a definition of the EXPLICIT_ROUTE
   object with Class Number 20.  The object definition lists a number of
   acceptable subobjects for the Class Type 1.

   IANA has allocated two further subobjects as described in Section 3.
   The resulting entry in the registry is as follows.

    20  EXPLICIT_ROUTE                                  [RFC3209]
        Class Types or C-Types:
          1   Type 1 Explicit Route                     [RFC3209]
              Subobject type
               64   Path Key with 32-bit PCE-ID         [RFC5553]
               65   Path Key with 128-bit PCE-ID        [RFC5553]

   Note well: [RFC5520] defines the PKS for use in PCEP.  IANA has
   assigned the same subobject numbers for use in RSVP-TE as are
   assigned for the PKS in PCEP.  The numbers above are the same as in
   [RFC5520].

6.2.  Record Route Objects Subobjects

   IANA maintains a registry called "Resource Reservation Protocol
   (RSVP) Parameters" with a subregistry called "Class Names, Class
   Numbers, and Class Types".

   Within this subregistry, there is a definition of the ROUTE_RECORD
   object (also known as the RECORD_ROUTE object) with Class Number 21.
   The object definition lists a number of acceptable subobjects for the
   Class Type 1.

   IANA has allocated two further subobjects as described in Section 3.
   The resulting entry in the registry is as follows.

    21  ROUTE_RECORD                                    [RFC3209]
        (also known as RECORD_ROUTE)
        Class Types or C-Types:
          1   Type 1 Route Record                       [RFC3209]
              Subobject type
               64   Path Key with 32-bit PCE-ID         [RFC5553]
               65   Path Key with 128-bit PCE-ID        [RFC5553]

   Note well: IANA is requested to use the same subobject numbers as are
   defined for the EXPLICIT_ROUTE object in Section 6.1.

6.3.  Error Codes and Error Values

   IANA maintains a registry called "Resource Reservation Protocol
   (RSVP) Parameters" with a subregistry called "Error Codes and
   Globally-Defined Error Value Sub-Codes".

   Within this subregistry, there is a definition of the "Routing
   Problem" error code with error code value 24.  The definition lists a
   number of error values that may be used with this error code.

   IANA has allocated further error values for use with this error code
   as described in Section 3.1.  The resulting entry in the registry is
   as follows.

   24  Routing Problem                             [RFC3209]

       This Error Code has the following globally defined Error
       Value sub-codes:

        31 = Unknown PCE-ID for PKS expansion      [RFC5553]
        32 = Unreachable PCE for PKS expansion     [RFC5553]
        33 = Unknown Path Key for PKS expansion    [RFC5553]
        34 = ERO too large for MTU                 [RFC5553]

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, December 2001.

   [RFC3473]  Berger, L., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Resource ReserVation
              Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC
              3473, January 2003.

7.2.  Informative References

   [RFC4655]  Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
              Computation Element (PCE)-Based Architecture", RFC 4655,
              August 2006.

   [RFC4726]  Farrel, A., Vasseur, J.-P., and A. Ayyangar, "A Framework
              for Inter-Domain Multiprotocol Label Switching Traffic
              Engineering", RFC 4726, November 2006.

   [RFC5394]  Bryskin, I., Papadimitriou, D., Berger, L., and J. Ash,
              "Policy-Enabled Path Computation Framework", RFC 5394,
              December 2008.

   [RFC5440]  Vasseur, JP., Ed., and JL. Le Roux, Ed., "Path Computation
              Element (PCE) Communication Protocol (PCEP)", RFC 5440,
              March 2009.

   [RFC5520]  Bradford, R., Ed., Vasseur, JP., and A. Farrel,
              "Preserving Topology Confidentiality in Inter-Domain Path
              Computation Using a Path-Key-Based Mechanism", RFC 5520,
              April 2009.

   [MPLS-SEC] Fang, L., Ed., "Security Framework for MPLS and GMPLS
              Networks", Work in Progress, March 2009.

Authors' Addresses

   Adrian Farrel
   Old Dog Consulting
   EMail:  adrian@olddog.co.uk

   Rich Bradford
   Cisco Systems, Inc.
   1414 Massachusetts Avenue
   Boxborough, MA - 01719
   USA
   EMail: rbradfor@cisco.com

   Jean-Philippe Vasseur
   Cisco Systems, Inc
   11, Rue Camille Desmoulins
   L'Atlantis
   92782 Issy Les Moulineaux
   France
   EMail: jpv@cisco.com

AI ELI5

On this page
PROBLEMWhen a label switched path crosses several domains, each domain's path computation element may not want to reveal the nodes and links inside its domain, yet the signaling that sets up the path needs a route to follow.
MECHANISMRFC 5553 defines two Path Key Subobjects (one with a 32-bit PCE-ID, one with a 128-bit PCE-ID) that can sit in an RSVP-TE Explicit Route Object or Record Route Object. A border router later asks the named PCE to expand the key into the real hidden segment.
WHY IT MATTERSInter-domain TE LSPs can be signaled without disclosing the internals of a domain. The RFC adds new error values for failed expansions and leaves the policy choices to each operator.

§1Hiding Part of a Path

MPLS and GMPLS Traffic Engineering LSPs are signaled with RSVP-TE (RFC 3209, RFC 3473). Their routes may be computed by Path Computation Elements (PCEs, RFC 4655). When the LSP crosses several domains, such as Autonomous Systems, several PCEs may cooperate, each computing one segment.

To keep the topology inside each AS private, PCEP (RFC 5440) lets a PCE hide a segment, called a Confidential Path Segment (CPS), by encoding it as a Path Key Subobject (PKS) (RFC 5520). RFC 5553 covers the other half of the story: how the PKS is carried in RSVP-TE Explicit Route Objects (EROs) and Record Route Objects (RROs).

Some networks do not want to tell outsiders exactly which roads they use inside. They hand out a coded ticket instead. This note explains how that ticket travels with the connection request.

§2A Two-AS Usage Scenario

The RFC walks through a network of two ASes. The ingress router in AS-1 wants an LSP to the egress in AS-2. The ingress acts as a Path Computation Client and asks its PCE (PCE-1). PCE-1 can see inside AS-1 but not AS-2, so it cooperates with PCE-2.

PCE-2 does not want to share the path across AS-2, so it reports that stretch as a PKS. PCE-1 returns the full path to the ingress with the AS-2 part still hidden. The ingress signals the LSP with RSVP-TE and puts the path, PKS included, in the ERO.

When the Path message reaches ASBR-2, that router consults PCE-2 to decode the PKS. The information PCE-2 needs is encoded inside the PKS itself. The PKS in the ERO is then replaced with the expanded path segment. The RFC notes that PCE-2 may in some cases sit on ASBR-2 itself.

The first town draws the map up to the border. The second town only writes a coded ticket for its own stretch. At the border, a local guide reads the ticket and fills in the real roads.

PKS LIFE CYCLE IN THE TWO-AS SCENARIO (SUMMARY OF RFC 5553, SECTION 1.2)
Ingress (PCC)PCE-1PCE-2ASBR-2
  1. Path computation request
  2. Cooperate on AS-2 segmentPCE-2 answers with the AS-2 segment hidden as a PKS.
  3. Path with PKS
  4. RSVP-TE Path (ERO has PKS)Carried hop by hop towards ASBR-2.
  5. Expand the PKS
  6. Expanded path segmentThe PKS in the ERO is replaced by the segment.

§3The Path Key Subobject

The PKS is a fixed-length subobject of the ERO, holding a Path Key and a PCE-ID. The Path Key is a token that stands for the CPS within the context of the PCE named by the PCE-ID. The PCE-ID identifies the PCE that can decode the key, via a reachable IPv4 or IPv6 address. Usually it is the same PCE that computed the key.

Two variants exist. With an IPv4-sized PCE-ID the subobject Length is always 8. With an IPv6-sized (128-bit) PCE-ID it is always 20. The L bit SHOULD NOT be set, so the subobject is a strict hop.

The PCE-ID MUST be unique within the scope of the domain that the CPS crosses and MUST be understood by the LSR that will act as PCC for the expansion. Its interpretation is domain-local policy. It MAY be a reachable address of the PCE, or a value with no meaning outside the domain (such as a Router ID) to increase security.

The ticket has a number and the name of the one office that can read it. It also says it must be followed exactly, without skipping any stops.

PATH KEY SUBOBJECT WITH A 32-BIT PCE-ID (RFC 5553, FIGURE 2)
RSVP-TE Path Key Subobject (IPv4 form)
FieldNameSizeValueDescription
LL1 bitsSHOULD NOT be set, so the subobject is a strict hop.
TYPEType7 bits64Subobject type for a Path Key with a 32-bit PCE-ID.
LENGTHLength1 byte8Total subobject length in bytes, including Type and Length.
PATH-KEYPath Key2 bytesToken representing the hidden segment.
PCE-IDPCE-ID4 bytesIdentifier of the PCE that can decode the key.

§3.1Processing a PKS in an ERO

Ordinary ERO processing from RFC 3209 is unchanged. A PKS must be immediately preceded by a subobject that identifies its head end, such as an incoming interface or node ID. If the first subobject of the ERO in a Path message is a PKS, the LSR MUST send a PathErr with "Routing Problem" / "Bad initial subobject".

If an LSR strips all local subobjects and the next one is a PKS, it MUST try to resolve it into a CPS. It can contact the PCE named in the PKS over PCEP, contact any cooperating PCE, or use the key to index a CPS the originating PCE gave it earlier. The path fragment SHOULD replace the PKS in the ERO.

  • PCE-ID does not match a PCE: PathErr "Routing Problem" with new value 31, Unknown PCE-ID for PKS expansion.
  • PCE cannot be reached: value 32, Unreachable PCE for PKS expansion.
  • PCE cannot decode the key, perhaps because it expired: value 33, Unknown Path Key for PKS expansion.
  • Decoding refused for policy reasons: "Policy Control Failure" / "Inter-domain policy failure".
  • Expanded ERO makes the Path message too large: the LSR MAY replace parts with loose hops or a further PKS; otherwise it MUST send value 34, ERO too large for MTU.

An LSR that does not recognize the subobject reacts as RFC 3209 says, with "Routing Problem" / "Bad Explicit Route Object".

When the border guide sees a ticket, they ask the right office to read it. If the office is unknown, unreachable, or the ticket is too old, the guide sends back a note saying why.

§3.2Path Keys in Record Route Objects

The Record Route Object records the route an LSP actually took. At a domain boundary, the segment to be hidden MAY be replaced in the RRO with a PKS, which can be more useful for diagnostics than the raw route.

On a Resv message the PKS used SHOULD be the one originally signaled in the ERO. On a Path message the PKS SHOULD identify the LSR doing the replacing and give a key that can expand the segment. In that case the LSR SHOULD keep the key and its expansion for at least the lifetime of the LSP, and make the expansion available to diagnostic tools under local policy. Hiding RRO segments needs to be configurable, and the default is to hide nothing.

The trip diary can also use the sticker for private stretches. The border guide keeps the real answer on file so repair crews can look it up later if allowed.

§4Security and Probing Risks

The exchanges are point-to-point and can be authenticated and secured with standard PCEP and RSVP-TE techniques. The RFC adds that the PCE providing an expansion is RECOMMENDED to check that the requester is the head end of the resulting CPS. A PCE-ID that only means something inside the domain gives further protection.

The listed concerns are: probing a PCE for expansions of random keys, deducing information from detailed error codes, a forged or altered Path Key leading to a wrong ERO, and denial of service. An LSR worried about leaking information through errors MAY report every failure as "Policy Control Failure" / "Inter-domain policy failure". A flood of Path messages with spurious PKSs is countered by RSVP-TE integrity protection and its chain-of-trust model.

Nobody should be able to guess ticket numbers and learn the secret roads. So the office only answers the router that is really at the start of that stretch.

§6IANA Allocations

IANA allocated two new subobject types, used in both the EXPLICIT_ROUTE object (Class Number 20) and the ROUTE_RECORD object (Class Number 21): 64 for a Path Key with a 32-bit PCE-ID and 65 for a Path Key with a 128-bit PCE-ID. These are the same numbers RFC 5520 uses for the PKS in PCEP.

Under the "Routing Problem" error code (24), IANA allocated error values 31 to 34 as listed in the processing rules.

The registry keeper gave the tickets their own official numbers and added four new reasons for sending a complaint note.

§8References