MS-PW Explicit Routing: Explicit Path Routing for Dynamic Multi-Segment Pseudowires
How a pseudowire can be told exactly which switching routers to cross, using LDP explicit route hops.
Dutta, P., Bocci, M., and L. Martini, "Explicit Path Routing for Dynamic Multi-Segment Pseudowires", RFC 7392, DOI 10.17487/RFC7392, December 2014, <https://www.rfc-editor.org/info/rfc7392>.
@misc{rfc7392,
series = {Request for Comments},
number = 7392,
howpublished = {RFC 7392},
publisher = {RFC Editor},
doi = {10.17487/RFC7392},
url = {https://www.rfc-editor.org/info/rfc7392},
author = {P. Dutta and M. Bocci and L. Martini},
title = {{Explicit Path Routing for Dynamic Multi-Segment Pseudowires}},
pagetotal = 10,
year = 2014,
month = dec,
} RFC text
Contents
Internet Engineering Task Force (IETF) P. Dutta
Request for Comments: 7392 M. Bocci
Category: Standards Track Alcatel-Lucent
ISSN: 2070-1721 L. Martini
Cisco Systems
December 2014
Explicit Path Routing for Dynamic Multi-Segment Pseudowires
Abstract
When set up through an explicit path, dynamic Multi-Segment
Pseudowires (MS-PWs) may be required to provide a simple solution for
1:1 protection with diverse primary and backup MS-PWs for a service,
or to enable controlled signaling (strict or loose) for special MS-
PWs. This document specifies the extensions and procedures required
to enable dynamic MS-PWs to be established along explicit paths.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7392.
Copyright Notice
Copyright (c) 2014 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
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction ....................................................2
2. Requirements Language and Terminology ...........................3
3. Explicit Path in MS-PW Signaling ................................3
3.1. S-PE Addressing ............................................3
3.2. Explicit Route TLV (ER-TLV) ................................3
3.3. Explicit Route Hop TLV (ER-Hop TLV) ........................4
3.4. ER-Hop Semantics ...........................................4
3.4.1. ER-Hop Type: IPv4 Prefix ............................4
3.4.2. ER-Hop Type: IPv6 Prefix ............................4
3.4.3. ER-Hop Type: L2 PW Address ..........................5
4. Explicit Route TLV Processing ...................................6
4.1. Next-Hop Selection .........................................6
4.2. Adding ER Hops to the Explicit Route TLV ...................8
5. IANA Considerations .............................................8
6. Security Considerations .........................................8
7. Normative References ............................................9
Acknowledgements ...................................................9
Authors' Addresses ................................................10
1. Introduction
Procedures for dynamically establishing Multi-Segment Pseudowires
(MS-PWs), where their paths are automatically determined using a
dynamic routing protocol, are defined in [RFC7267]. For 1:1
protection of MS-PWs with primary and backup paths, MS-PWs need to be
established through a diverse set of Switching Provider Edges (S-PEs)
to avoid any single points of failure at the PW level. [RFC7267]
allows this through BGP-based mechanisms. This document defines an
additional mechanism that allows Source Terminating Provider Edges
(ST-PEs) to explicitly choose the path that a PW would take through
the intervening S-PEs. Explicit path routing of dynamic MS-PWs may
also be required for controlled setup of dynamic MS-PWs and network
resource management.
Note that in many deployments the ST-PE will not have a view of the
topology of S-PEs and so the explicit route will need to be supplied
from a management application. How that management application
determines the explicit route is outside the scope of this document.
2. Requirements Language and Terminology
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 [RFC2119].
This document uses the terminology defined in [RFC7267], [RFC4447],
and [RFC5036].
The following additional terminology is used:
Abstract Node: A group of nodes (S-PEs) representing an explicit hop
along the path of an MS-PW. An abstract node is identified by an
IPv4, IPv6, or S-PE address.
3. Explicit Path in MS-PW Signaling
This section describes the Label Distribution Protocol (LDP)
extensions required for signaling explicit paths in dynamic MS-PW
setup messages. An explicitly routed MS-PW is set up using a Label
Mapping message that carries an ordered list of the S-PEs that the
MS-PW is expected to traverse. The ordered list is encoded as a
series of Explicit Route Hop TLVs (ER-Hop TLVs) encoded in an ER-TLV
that is carried in a Label Mapping message.
3.1. S-PE Addressing
An S-PE address is used to identify a given S-PE among the set of
S-PEs belonging to the Packet Switched Networks (PSNs) that may be
used by an MS-PW. Each S-PE MUST be assigned an address as specified
in Section 3.2 of [RFC7267]. An S-PE that is capable of dynamic
MS-PW signaling, but has not been assigned an S-PE address, and that
receives a Label Mapping message for a dynamic MS-PW MUST follow the
procedures in Section 3.2 of [RFC7267].
3.2. Explicit Route TLV (ER-TLV)
The ER-TLV specifies the path to be taken by the MS-PW being
established. Each hop along the path is represented by an abstract
node, which is a group of one or more S-PEs, identified by an IPv4,
IPv6, or S-PE address. The ER-TLV format is as per Section 4.1 of
[RFC3212].
The ER-TLV contains one or more ER-Hop TLVs as defined in
Section 3.3.
3.3. Explicit Route Hop TLV (ER-Hop TLV)
The contents of an ER-TLV are a series of variable-length ER-Hop
TLVs. Each hop contains the identification of an "abstract node"
that represents the hop to be traversed. The ER-Hop TLV format is as
specified in Section 4.2 of [RFC3212].
[RFC3212] defines four ER-Hop TLV Types: IPv4 Prefix, IPv6 Prefix,
Autonomous System Number, and LSP-ID. This document specifies the
following new ER-Hop TLV Type:
Value Type
------ --------------------------------
0x0805 L2 PW Address of Switching Point
ER-Hop TLV
Details of the ER-Hop semantics are defined in Section 3.4.
3.4. ER-Hop Semantics
This section describes the various semantics associated with the
ER-Hop TLV.
3.4.1. ER-Hop Type: IPv4 Prefix
The semantics of the IPv4 ER-Hop TLV Type are specified in [RFC3212],
Section 4.7.1.
3.4.2. ER-Hop Type: IPv6 Prefix
The semantics of the IPv6 ER-Hop TLV Type are specified in [RFC3212],
Section 4.7.2.
3.4.3. ER-Hop Type: L2 PW Address
The semantics of the L2 PW Address ER-Hop TLV Type, which contains
the L2 PW Address derived from the Generalized PWid Forwarding
Equivalence Class (FEC) AII Type 2 structure as defined in [RFC5003],
are 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F| ER-Hop Type | Length = 18 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Reserved | PreLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AII Type=02 | Length | Global ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Global ID (contd.) | Prefix |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix (contd.) | AC ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AC ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
U/F
These bits MUST be set to zero and the procedures of
[RFC5036] followed when the TLV is not known to the
receiving node.
Type
A fourteen-bit field carrying the value of the ER-Hop 3,
L2 PW Address, Value = 0x0805.
Length
Specifies the length of the value field in bytes = 18.
L Bit
Set to indicate a loose hop.
Cleared to indicate a strict hop.
Reserved
Zero on transmission. Ignored on receipt.
PreLen
Prefix Length 1-96 (including the length of the Global ID,
Prefix, and AC ID fields).
All other fields (AII Type, Length, Global ID, Prefix, and AC ID)
define the L2 PW Address and are to be set and interpreted as
defined in Section 3.2 of [RFC5003].
4. Explicit Route TLV Processing
4.1. Next-Hop Selection
A PW Label Mapping message containing an Explicit Route TLV specifies
the next hop for a given MS-PW path. Selection of this next hop by
the ST-PE or S-PE inserting the ER-Hop TLV may involve a selection
from a set of possible alternatives. The mechanism for making a
selection from this set is implementation specific and is outside the
scope of this document. The mechanism used to select a particular
path is also outside the scope of this document, but each node MUST
determine a loop-free path if it is to signal the MS-PW. [RFC6073],
Section 7.6 provides a mechanism by which a node can check that the
path taken by an MS-PW does not include loops.
As noted in Section 1, in many deployments the ST-PE will not have a
view of the topology of S-PEs and so the path will need to be
supplied from a management application.
If a loop-free path cannot be found by an ST-PE or S-PE, then a node
MUST NOT attempt to signal the MS-PW. For an S-PE, if it cannot
determine a loop-free path, then the received Label Mapping message
MUST be released with a status code of "PW Loop Detected" as per
Section 4.2.3 of [RFC7267].
To determine the next hop for the MS-PW path, a node performs the
following steps. Note that these procedures assume that a valid S-PE
address has been assigned to the node, as per Section 3.1, above.
1. The node receiving the Label Mapping message that contains an
ER-TLV MUST evaluate the first ER-Hop. If the L bit is not set
in the first ER-Hop and if the node is not part of the abstract
node described by the first ER-Hop (i.e., it does not lie within
the prefix as determined by the prefix length specified in the
ER-Hop TLV), it has received the message in error. Therefore,
the node MUST reply with a Label Release message with a "Bad
Initial ER-Hop Error" (0x04000004) status code. If the L bit is
set and the local node is not part of the abstract node described
by the first ER-Hop, the node selects a next hop that is along
the path to the abstract node described by the first ER-Hop. If
there is no ER-Hop TLV contained in the ER-TLV, the message is
also in error, and the node SHOULD return a "Bad Explicit Routing
TLV Error" (0x04000001) status code in a Label Release message
sent to the upstream node. Note that this statement does not
preclude a Label Mapping message with no ER-TLV. If a Label
Mapping message with no ER-TLV is received, then it MUST be
processed as per [RFC7267].
2. If there are no further ER-Hop TLVs following the first ER-Hop
TLV, this indicates the end of the explicit route. The Explicit
Route TLV MUST be removed from the Label Mapping message. This
node may or may not be the end of the PW. Processing continues
as per Section 4.2, where a new Explicit Route TLV MAY be added
to the Label Mapping message.
3. If a second ER-Hop TLV does exist, and the node is also a part of
the abstract node described by the second ER-Hop, then the node
deletes the first ER-Hop and continues processing with step 2,
above. Note that this makes the second ER-Hop into the first
ER-Hop for the iteration for the next PW segment.
4. The node determines if it is topologically adjacent to the
abstract node described by the second ER-Hop. That is, it is
directly connected to the next node by a PW control-plane
adjacency. If so, the node selects a particular next hop that is
a member of the abstract node. The node then deletes the first
ER-Hop and continues processing as per Section 4.2, below.
5. Next, the node selects a next hop within the abstract node of the
first ER-Hop that is along the path to the abstract node of the
second ER-Hop. If no such path exists, then there are two cases:
A. If the second ER-Hop is a strict ER Hop, then there is an
error, and the node MUST return a Label Release message to
the upstream node with a "Bad Strict Node Error" (0x04000002)
status code.
B. Otherwise, if the second ER-Hop is a loose ER Hop, then the
node selects any next hop that is along the path to the next
abstract node. If no path exists within the MPLS domain,
then there is an error, and the node MUST return a Label
Release message to the upstream node with a "Bad Loose Node
Error" (0x04000003) status code.
6. Finally, the node replaces the first ER-Hop with any ER Hop that
denotes an abstract node containing the next hop. This is
necessary so that when the explicit route is received by the next
hop, it will be accepted.
7. Progress the Label Mapping message to the next hop.
4.2. Adding ER Hops to the Explicit Route TLV
After selecting a next hop, the node MAY alter the explicit route in
the following ways.
If, as part of executing the algorithm in Section 4.1, the Explicit
Route TLV is removed, then the node MAY add a new Explicit Route TLV.
Otherwise, if the node is a member of the abstract node for the first
ER-Hop, then a series of ER Hops MAY be inserted before the First ER
Hop or the first ER-Hop MAY be replaced. Each ER Hop in this series
MUST denote an abstract node that is a subset of the current abstract
node.
Alternately, if the first ER-Hop is a loose ER Hop, an arbitrary
series of ER Hops MAY be inserted prior to the first ER-Hop.
5. IANA Considerations
RFC 5036 [RFC5036] defines the LDP TLV name space, which is
maintained by IANA, in the LDP "TLV Type Name Space" registry. TLV
types for the Explicit Route TLV, the IPv4 Prefix ER-Hop TLV, and the
IPv6 Prefix ER-Hop TLV are already defined in this registry.
IANA has assigned a further code point from the IETF consensus
portion of this registry as follows:
TLV Type Value Reference
------------------------------------ ------ -------------
L2 PW Address of Switching Point 0x0805 This Document
6. Security Considerations
This document introduces no new security considerations beyond those
discussed in [RFC5036], [RFC4447], and [RFC7267]. The security
considerations detailed in those documents apply to the protocol
extensions described in this RFC.
As with [RFC7267], it should be noted that the path selection
mechanisms specified in this document enable the network to
automatically select the S-PEs that are used to forward packets on
the MS-PW. Appropriate tools, such as the Virtual Circuit
Connectivity Verification (VCCV) trace mechanisms specified in
[RFC6073], can be used by an operator of the network to verify the
path taken by the MS-PW and therefore be satisfied that the path does
not represent an additional security risk.
7. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3212] Jamoussi, B., Andersson, L., Callon, R., Dantu, R., Wu,
L., Doolan, P., Worster, T., Feldman, N., Fredette, A.,
Girish, M., Gray, E., Heinanen, J., Kilty, T., and A.
Malis, "Constraint-Based LSP Setup using LDP", RFC 3212,
January 2002, <http://www.rfc-editor.org/info/rfc3212>.
[RFC4447] Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G.
Heron, "Pseudowire Setup and Maintenance Using the Label
Distribution Protocol (LDP)", RFC 4447, April 2006,
<http://www.rfc-editor.org/info/rfc4447>.
[RFC5003] Metz, C., Martini, L., Balus, F., and J. Sugimoto,
"Attachment Individual Identifier (AII) Types for
Aggregation", RFC 5003, September 2007,
<http://www.rfc-editor.org/info/rfc5003>.
[RFC5036] Andersson, L., Minei, I., and B. Thomas, "LDP
Specification", RFC 5036, October 2007,
<http://www.rfc-editor.org/info/rfc5036>.
[RFC6073] Martini, L., Metz, C., Nadeau, T., Bocci, M., and M.
Aissaoui, "Segmented Pseudowire", RFC 6073, January 2011,
<http://www.rfc-editor.org/info/rfc6073>.
[RFC7267] Martini, L., Bocci, M., and F. Balus, "Dynamic Placement
of Multi-Segment Pseudowires", RFC 7267, June 2014,
<http://www.rfc-editor.org/info/rfc7267>.
Acknowledgements
The authors gratefully acknowledge the contribution of the RFC 3212
[RFC3212] authors for the specification of the ER TLV and the ER-Hop
TLV, which are reused by this document. The authors also gratefully
acknowledge the input of Lizhong Jin.
Authors' Addresses
Pranjal Kumar Dutta
Alcatel-Lucent
701 E. Middlefield Road
Mountain View, California 94043
United States
EMail: pranjal.dutta@alcatel-lucent.com
Matthew Bocci
Alcatel-Lucent
Voyager Place, Shoppenhangers Road
Maidenhead, Berks SL6 2PJ
United Kingdom
EMail: matthew.bocci@alcatel-lucent.com
Luca Martini
Cisco Systems
9155 East Nichols Avenue, Suite 400
Englewood, Colorado 80112
United States
EMail: lmartini@cisco.com
AI ELI5
On this page
§1Why Explicit Paths for MS-PWs
Dynamic Multi-Segment Pseudowires (MS-PWs) normally have their paths chosen automatically by a dynamic routing protocol, as defined in RFC 7267. For 1:1 protection with primary and backup MS-PWs, the two must go through diverse sets of Switching Provider Edges (S-PEs) so that no single point of failure exists at the PW level. RFC 7267 allows this using BGP-based mechanisms.
This RFC adds another way: the Source Terminating PE (ST-PE) can choose explicitly which S-PEs the pseudowire passes through. Explicit routing may also be needed for controlled setup and network resource management.
The RFC notes that in many deployments the ST-PE has no view of the S-PE topology, so the route has to come from a management application. How that application works out the route is outside the scope.
Usually the network picks the road by itself. Sometimes you want a second road that shares no stops with the first, so one closed road cannot ruin both trips.
§2Explicit Route TLVs and Abstract Nodes
The extension is made to the Label Distribution Protocol (LDP). An explicitly routed MS-PW is set up with a Label Mapping message that carries an ordered list of the S-PEs it should cross. The list is encoded as a series of Explicit Route Hop TLVs (ER-Hop TLVs) inside one Explicit Route TLV (ER-TLV). Both formats come from Sections 4.1 and 4.2 of RFC 3212.
Each hop names an abstract node: a group of one or more S-PEs identified by an IPv4, IPv6 or S-PE address. Each S-PE MUST have an address assigned as in Section 3.2 of RFC 7267, and an S-PE without one that receives a dynamic MS-PW Label Mapping MUST follow the RFC 7267 procedures.
RFC 3212 already defines four ER-Hop types: IPv4 Prefix, IPv6 Prefix, Autonomous System Number and LSP-ID. The semantics of the IPv4 and IPv6 types are left as in RFC 3212.
Each stop on the list is a 'place', and a place can be a single town or a small group of towns. The list tells the trip the order of places to pass.
§3The L2 PW Address ER-Hop
The new ER-Hop type is L2 PW Address of Switching Point, value 0x0805. It carries an L2 PW Address taken from the Generalized PWid FEC AII Type 2 structure of RFC 5003.
The TLV has a U and an F bit, which MUST be zero, with the procedures of RFC 5036 followed when the TLV is not known; a 14-bit Type; and a Length of 18. The L bit is set for a loose hop and cleared for a strict hop. Reserved bits are zero on transmission and ignored on receipt. PreLen is a prefix length from 1 to 96, covering the Global ID, Prefix and AC ID fields. The remaining fields (AII Type, Length, Global ID, Prefix and AC ID) are set and read as in Section 3.2 of RFC 5003.
The new kind of stop on the list is described by a special address label, with a flag saying whether the trip must go exactly there or may take detours to get there.
§4How Nodes Process the Route
A node that receives a Label Mapping message with an ER-TLV evaluates the first ER-Hop. If the L bit is not set and the node is not inside the abstract node, the node MUST reply with a Label Release carrying the status code "Bad Initial ER-Hop Error" (0x04000004). If the L bit is set, the node picks a next hop along the path to that abstract node. A message with an ER-TLV but no ER-Hop is an error that SHOULD return "Bad Explicit Routing TLV Error" (0x04000001). A Label Mapping with no ER-TLV is processed as in RFC 7267.
Then the node works through the list. If no more hops follow the first, the explicit route has ended and the ER-TLV MUST be removed. If the node is also part of the second hop's abstract node, it deletes the first hop and repeats. If it is adjacent to the second hop's abstract node, it picks a next hop there and deletes the first hop. Otherwise it picks a next hop inside the first abstract node that leads toward the second. If none exists, a strict second hop gives "Bad Strict Node Error" (0x04000002), while a loose second hop lets the node choose any next hop toward it, with "Bad Loose Node Error" (0x04000003) if no path exists in the MPLS domain. Finally the node rewrites the first hop so the next node will accept it, and forwards the message.
Each node MUST find a loop-free path before signaling; RFC 6073 Section 7.6 gives a way to check this. An S-PE that cannot find one MUST release the message with status "PW Loop Detected".
Every stop checks the list. If it is the right place, it crosses itself off and passes the trip on toward the next place. If it cannot, it sends the trip back with a note saying what went wrong.
- 0x04000001Bad Explicit Routing TLV Error — ER-TLV present but contains no ER-Hop TLV.
- 0x04000002Bad Strict Node Error — No path to a strict next hop exists.
- 0x04000003Bad Loose Node Error — No path to a loose next hop exists in the MPLS domain.
- 0x04000004Bad Initial ER-Hop Error — First hop is strict and the node is not in it.
§5Adding Hops Along the Way
After choosing a next hop, a node MAY change the explicit route. If the ER-TLV was removed because the route ended, the node MAY add a new one. If the node is a member of the first hop's abstract node, it MAY insert a series of hops before the first hop or replace it, and each inserted hop MUST denote an abstract node that is a subset of the current one. If the first hop is loose, an arbitrary series of hops MAY be inserted ahead of it.
A stop may fill in more detail about its own part of the trip, or, if the stop was loose, add extra stops on the way to it.
§6Security and IANA
The RFC introduces no new security considerations beyond those of RFC 5036, RFC 4447 and RFC 7267, which apply to these extensions. As with RFC 7267, automatic path selection means the network chooses the S-PEs that forward packets. Operators can use the VCCV trace mechanisms of RFC 6073 to verify the path actually taken.
IANA assigned a code point from the IETF consensus part of the LDP TLV Type Name Space: 0x0805, L2 PW Address of Switching Point. The Explicit Route TLV, IPv4 Prefix ER-Hop and IPv6 Prefix ER-Hop types were already in the registry.
The old safety rules still apply, and operators can trace the real route to check it went where it should.