draft-ietf-mpls-lsp-ping-lag-multipath-05.txt | draft-ietf-mpls-lsp-ping-lag-multipath-06.txt | |||
---|---|---|---|---|
Internet Engineering Task Force N. Akiya | Internet Engineering Task Force N. Akiya | |||
Internet-Draft Big Switch Networks | Internet-Draft Big Switch Networks | |||
Updates: 8029 (if approved) G. Swallow | Updates: 8029 (if approved) G. Swallow | |||
Intended status: Standards Track Cisco Systems | Intended status: Standards Track Cisco Systems | |||
Expires: April 26, 2019 S. Litkowski | Expires: September 6, 2019 S. Litkowski | |||
B. Decraene | B. Decraene | |||
Orange | Orange | |||
J. Drake | J. Drake | |||
Juniper Networks | Juniper Networks | |||
M. Chen | M. Chen | |||
Huawei | Huawei | |||
October 23, 2018 | March 05, 2019 | |||
Label Switched Path (LSP) Ping/Trace Multipath Support for | Label Switched Path (LSP) Ping/Trace Multipath Support for | |||
Link Aggregation Group (LAG) Interfaces | Link Aggregation Group (LAG) Interfaces | |||
draft-ietf-mpls-lsp-ping-lag-multipath-05 | draft-ietf-mpls-lsp-ping-lag-multipath-06 | |||
Abstract | Abstract | |||
This document defines extensions to the MPLS Label Switched Path | This document defines extensions to the MPLS Label Switched Path | |||
(LSP) Ping and Traceroute mechanisms as specified in RFC 8029. The | (LSP) Ping and Traceroute mechanisms as specified in RFC 8029. The | |||
extensions allow the MPLS LSP Ping and Traceroute mechanisms to | extensions allow the MPLS LSP Ping and Traceroute mechanisms to | |||
discover and exercise specific paths of Layer 2 (L2) Equal-Cost | discover and exercise specific paths of Layer 2 (L2) Equal-Cost | |||
Multipath (ECMP) over Link Aggregation Group (LAG) interfaces. | Multipath (ECMP) over Link Aggregation Group (LAG) interfaces. | |||
Additionally, a mechanism is defined to enable determination of the | Additionally, a mechanism is defined to enable determination of the | |||
capabilities of an LSR supported. | capabilities of an LSR supported. | |||
skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on April 26, 2019. | This Internet-Draft will expire on September 6, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Overview of Solution . . . . . . . . . . . . . . . . . . . . 4 | 2. Overview of Solution . . . . . . . . . . . . . . . . . . . . 4 | |||
3. LSR Capability Discovery . . . . . . . . . . . . . . . . . . 6 | 3. LSR Capability Discovery . . . . . . . . . . . . . . . . . . 6 | |||
3.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7 | 3.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7 | |||
3.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 7 | 3.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 7 | |||
4. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 7 | 4. Mechanism to Discover L2 ECMP Multipath . . . . . . . . . . . 8 | |||
4.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 7 | 4.1. Initiator LSR Procedures . . . . . . . . . . . . . . . . 8 | |||
4.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 8 | 4.2. Responder LSR Procedures . . . . . . . . . . . . . . . . 8 | |||
4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 10 | 4.3. Additional Initiator LSR Procedures . . . . . . . . . . . 10 | |||
5. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 11 | 5. Mechanism to Validate L2 ECMP Traversal . . . . . . . . . . . 11 | |||
5.1. Incoming LAG Member Links Verification . . . . . . . . . 11 | 5.1. Incoming LAG Member Links Verification . . . . . . . . . 11 | |||
5.1.1. Initiator LSR Procedures . . . . . . . . . . . . . . 11 | 5.1.1. Initiator LSR Procedures . . . . . . . . . . . . . . 11 | |||
5.1.2. Responder LSR Procedures . . . . . . . . . . . . . . 12 | 5.1.2. Responder LSR Procedures . . . . . . . . . . . . . . 12 | |||
5.1.3. Additional Initiator LSR Procedures . . . . . . . . . 12 | 5.1.3. Additional Initiator LSR Procedures . . . . . . . . . 12 | |||
5.2. Individual End-to-End Path Verification . . . . . . . . . 13 | 5.2. Individual End-to-End Path Verification . . . . . . . . . 13 | |||
6. LSR Capability TLV . . . . . . . . . . . . . . . . . . . . . 14 | 6. LSR Capability TLV . . . . . . . . . . . . . . . . . . . . . 14 | |||
7. LAG Description Indicator Flag: G . . . . . . . . . . . . . . 15 | 7. LAG Description Indicator Flag: G . . . . . . . . . . . . . . 15 | |||
8. Local Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16 | 8. Local Interface Index Sub-TLV . . . . . . . . . . . . . . . . 16 | |||
9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 17 | 9. Remote Interface Index Sub-TLV . . . . . . . . . . . . . . . 17 | |||
10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 17 | 10. Detailed Interface and Label Stack TLV . . . . . . . . . . . 17 | |||
10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 19 | 10.1. Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 19 | 10.1.1. Incoming Label Stack Sub-TLV . . . . . . . . . . . . 19 | |||
10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 20 | 10.1.2. Incoming Interface Index Sub-TLV . . . . . . . . . . 20 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 11. Rate Limiting On Echo Request/Reply Messages . . . . . . . . 21 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
12.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 21 | 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | |||
12.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 21 | 13.1. LSR Capability TLV . . . . . . . . . . . . . . . . . . . 21 | |||
12.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 22 | 13.1.1. LSR Capability Flags . . . . . . . . . . . . . . . . 22 | |||
12.2.1. Interface Index Flags . . . . . . . . . . . . . . . 22 | 13.2. Local Interface Index Sub-TLV . . . . . . . . . . . . . 22 | |||
12.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 22 | 13.2.1. Interface Index Flags . . . . . . . . . . . . . . . 22 | |||
12.4. Detailed Interface and Label Stack TLV . . . . . . . . . 23 | 13.3. Remote Interface Index Sub-TLV . . . . . . . . . . . . . 23 | |||
12.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 23 | 13.4. Detailed Interface and Label Stack TLV . . . . . . . . . 23 | |||
12.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 23 | 13.4.1. Sub-TLVs for TLV Type TBD4 . . . . . . . . . . . . . 23 | |||
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 | 13.5. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . 24 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
14.2. Informative References . . . . . . . . . . . . . . . . . 24 | 15.1. Normative References . . . . . . . . . . . . . . . . . . 24 | |||
15.2. Informative References . . . . . . . . . . . . . . . . . 25 | ||||
Appendix A. LAG with intermediate L2 Switch Issues . . . . . . . 25 | Appendix A. LAG with intermediate L2 Switch Issues . . . . . . . 25 | |||
A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 25 | A.1. Equal Numbers of LAG Members . . . . . . . . . . . . . . 25 | |||
A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 25 | A.2. Deviating Numbers of LAG Members . . . . . . . . . . . . 26 | |||
A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 26 | A.3. LAG Only on Right . . . . . . . . . . . . . . . . . . . . 26 | |||
A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 26 | A.4. LAG Only on Left . . . . . . . . . . . . . . . . . . . . 26 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
1. Introduction | 1. Introduction | |||
1.1. Terminology | 1.1. Terminology | |||
The following acronyms/terms are used in this document: | The following acronyms/terms are used in this document: | |||
o MPLS - Multiprotocol Label Switching. | o MPLS - Multiprotocol Label Switching. | |||
o LSP - Label Switched Path. | o LSP - Label Switched Path. | |||
o LSR - Label Switching Router. | o LSR - Label Switching Router. | |||
o ECMP - Equal-Cost Multipath. | o ECMP - Equal-Cost Multipath. | |||
o LAG - Link Aggregation Group. | o LAG - Link Aggregation Group. | |||
o Initiator LSR - LSR which sends MPLS echo request. | o Initiator LSR - The LSR which sends the MPLS echo request message. | |||
o Responder LSR - LSR which receives MPLS echo request and sends | o Responder LSR - The LSR which receives the MPLS echo request | |||
MPLS echo reply. | message and sends the MPLS echo reply message. | |||
1.2. Background | 1.2. Background | |||
The MPLS Label Switched Path (LSP) Ping and Traceroute mechanisms | The MPLS Label Switched Path (LSP) Ping and Traceroute mechanisms | |||
[RFC8029] are powerful tools designed to diagnose all available Layer | [RFC8029] are powerful tools designed to diagnose all available Layer | |||
3 (L3) paths of LSPs, including diagnostic coverage of L3 Equal-Cost | 3 (L3) paths of LSPs, including diagnostic coverage of L3 Equal-Cost | |||
Multipath (ECMP). In many MPLS networks, Link Aggregation Group | Multipath (ECMP). In many MPLS networks, Link Aggregation Group | |||
(LAG) as defined in [IEEE802.1AX], which provides Layer 2 (L2) ECMP, | (LAG) as defined in [IEEE802.1AX], which provides Layer 2 (L2) ECMP, | |||
is often used for various reasons. MPLS LSP Ping and Traceroute | is often used for various reasons. MPLS LSP Ping and Traceroute | |||
tools were not designed to discover and exercise specific paths of L2 | tools were not designed to discover and exercise specific paths of L2 | |||
ECMP. This raises a limitation for the following scenario when an | ECMP. This raises a limitation for the following scenario when an | |||
LSP traverses over a LAG: | LSP traverses over a LAG: | |||
o Label switching over some member links of the LAG is successful, | o Label switching over some member links of the LAG is successful, | |||
but will be failed over other member links of the LAG. | but will be failed over other member links of the LAG. | |||
o MPLS echo request for the LSP over the LAG is load balanced on one | o MPLS echo request for the LSP over the LAG is load balanced on one | |||
of the member links which is label switching successfully. | of the member links which is label switching successfully. | |||
With the above scenarios, MPLS LSP Ping and Traceroute will not be | With the above scenario, MPLS LSP Ping and Traceroute will not be | |||
able to detect the label switching failure of the problematic member | able to detect the label switching failure of the problematic member | |||
link(s) of the LAG. In other words, lack of L2 ECMP diagnostic | link(s) of the LAG. In other words, lack of L2 ECMP diagnostic | |||
coverage can produce an outcome where MPLS LSP Ping and Traceroute | coverage can produce an outcome where MPLS LSP Ping and Traceroute | |||
can be blind to label switching failures over a problematic LAG | can be blind to label switching failures over a problematic LAG | |||
interface. It is, thus, desirable to extend the MPLS LSP Ping and | interface. It is, thus, desirable to extend the MPLS LSP Ping and | |||
Traceroute to have deterministic diagnostic coverage of LAG | Traceroute to have deterministic diagnostic coverage of LAG | |||
interfaces. | interfaces. | |||
The need for a solution of this problem was motivated by issues | The need for a solution of this problem was motivated by issues | |||
encountered in live networks. | encountered in live networks. | |||
2. Overview of Solution | 2. Overview of Solution | |||
This document defines an optional TLV to discover the capabilities of | This document defines an optional TLV to discover the capabilities of | |||
a responder LSR and extensions for use with the MPLS LSP Ping and | a responder LSR and extensions for use with the MPLS LSP Ping and | |||
Traceroute mechanisms to describe Multipath Information for | Traceroute mechanisms to describe Multipath Information for | |||
individual LAG member links, thus allowing MPLS LSP Ping and | individual LAG member links, thus allowing MPLS LSP Ping and | |||
Traceroute to discover and exercise specific paths of L2 ECMP over | Traceroute to discover and exercise specific paths of L2 ECMP over | |||
LAG interfaces. The reader is expected to be familiar with mechanics | LAG interfaces. The reader is expected to be familiar with mechanics | |||
of Downstream Mapping described in Section 3.3 of [RFC8029] and | ||||
Downstream Detailed Mapping TLV (DDMAP) described in Section 3.4 of | Downstream Detailed Mapping TLV (DDMAP) described in Section 3.4 of | |||
[RFC8029]. | [RFC8029]. | |||
The solution consists of the MPLS echo request containing a DDMAP TLV | The solution consists of the MPLS echo request containing a DDMAP TLV | |||
and the optional LSR capability TLV to indicate that separate load | and the optional LSR capability TLV to indicate that separate load | |||
balancing information for each L2 nexthop over LAG is desired in the | balancing information for each L2 nexthop over LAG is desired in the | |||
MPLS echo reply. The Responder LSR places the same optional LSR | MPLS echo reply. The Responder LSR places the same optional LSR | |||
capability TLV in the MPLS echo reply to provide acknowledgement back | capability TLV in the MPLS echo reply to provide acknowledgement back | |||
to the initiator LSR. It also adds, for each downstream LAG member, | to the initiator LSR. It also adds, for each downstream LAG member, | |||
load balance information (i.e., multipath information and interface | load balance information (i.e., multipath information and interface | |||
skipping to change at page 9, line 14 ¶ | skipping to change at page 9, line 20 ¶ | |||
+ The responder LSR MUST add an Multipath Data Sub-TLV for | + The responder LSR MUST add an Multipath Data Sub-TLV for | |||
this LAG member link, if the received DDMAP TLV requested | this LAG member link, if the received DDMAP TLV requested | |||
multipath information. | multipath information. | |||
Based on the procedures described above, every LAG member link will | Based on the procedures described above, every LAG member link will | |||
have a Local Interface Index Sub-TLV and a Multipath Data Sub-TLV | have a Local Interface Index Sub-TLV and a Multipath Data Sub-TLV | |||
entries in the DDMAP TLV. The order of the Sub-TLVs in the DDMAP TLV | entries in the DDMAP TLV. The order of the Sub-TLVs in the DDMAP TLV | |||
for a LAG member link MUST be Local Interface Index Sub-TLV | for a LAG member link MUST be Local Interface Index Sub-TLV | |||
immediately followed by Multipath Data Sub-TLV. A LAG member link | immediately followed by Multipath Data Sub-TLV. A LAG member link | |||
may also have a corresponding Remote Interface Index Sub-TLV. When a | MAY also have a corresponding Remote Interface Index Sub-TLV. When a | |||
Local Interface Index Sub-TLV, a Remote Interface Index-Sub-TLV and a | Local Interface Index Sub-TLV, a Remote Interface Index-Sub-TLV and a | |||
Multipath Data Sub-TLV are placed in the DDMAP TLV to describe a LAG | Multipath Data Sub-TLV are placed in the DDMAP TLV to describe a LAG | |||
member link, they MUST be placed in the order of Local Interface | member link, they MUST be placed in the order of Local Interface | |||
Index Sub-TLV, Remote Interface Index-Sub-TLV and Multipath Data Sub- | Index Sub-TLV, Remote Interface Index-Sub-TLV and Multipath Data Sub- | |||
TLV. | TLV. | |||
A responder LSR possessing a LAG interface with two member links | A responder LSR possessing a LAG interface with two member links | |||
would send the following DDMAP for this LAG interface: | would send the following DDMAP for this LAG interface: | |||
0 1 2 3 | 0 1 2 3 | |||
skipping to change at page 11, line 21 ¶ | skipping to change at page 11, line 25 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Multipath Data Sub-TLV LAG member link #1 | | | Multipath Data Sub-TLV LAG member link #1 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Label Stack Sub-TLV | | | Label Stack Sub-TLV | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: Example of DDMAP in MPLS Echo Request | Figure 3: Example of DDMAP in MPLS Echo Request | |||
5. Mechanism to Validate L2 ECMP Traversal | 5. Mechanism to Validate L2 ECMP Traversal | |||
Section 4 defines the responder LSR procedures to constructs a DDMAP | Section 4 defines the responder LSR procedures to construct a DDMAP | |||
for a downstream LAG. The Remote Interface Index Sub-TLVs that | for a downstream LAG. The Remote Interface Index Sub-TLVs that | |||
describes the incoming LAG member links of the downstream LSR is | describes the incoming LAG member links of the downstream LSR is | |||
optional, because this information from the downstream LSR is often | optional, because this information from the downstream LSR is often | |||
not available on the responder LSR. In such case, the traversal of | not available on the responder LSR. In such case, the traversal of | |||
LAG member links can be validated with procedures described in | LAG member links can be validated with procedures described in | |||
Section 5.1. If LSRs can provide the Remote Interface Index Sub- | Section 5.1. If LSRs can provide the Remote Interface Index Sub- | |||
TLVs, then the validation procedures described in Section 5.2 can be | TLVs, then the validation procedures described in Section 5.2 can be | |||
used. | used. | |||
5.1. Incoming LAG Member Links Verification | 5.1. Incoming LAG Member Links Verification | |||
skipping to change at page 13, line 5 ¶ | skipping to change at page 13, line 5 ¶ | |||
o With specific entropy, the interface index of the incoming LAG | o With specific entropy, the interface index of the incoming LAG | |||
member link at TTL=n+1. | member link at TTL=n+1. | |||
Expectation is that there's a relationship between the interface | Expectation is that there's a relationship between the interface | |||
index of the outgoing LAG member link at TTL=n and the interface | index of the outgoing LAG member link at TTL=n and the interface | |||
index of the incoming LAG member link at TTL=n+1 for all discovered | index of the incoming LAG member link at TTL=n+1 for all discovered | |||
entropies. In other words, set of entropies that load balances to | entropies. In other words, set of entropies that load balances to | |||
outgoing LAG member link X at TTL=n should all reach the nexthop on | outgoing LAG member link X at TTL=n should all reach the nexthop on | |||
same incoming LAG member link Y at TTL=n+1. | same incoming LAG member link Y at TTL=n+1. | |||
With additional logics, the initiator LSR can perform the following | With additional logic, the initiator LSR can perform the following | |||
checks in a scenario where the initiator LSR knows that there is a | checks in a scenario where the initiator LSR knows that there is a | |||
LAG, with two LAG members, between TTL=n and TTL=n+1, and has the | LAG, with two LAG members, between TTL=n and TTL=n+1, and has the | |||
multipath information to traverse the two LAG member links. | multipath information to traverse the two LAG member links. | |||
The initiator LSR sends two MPLS echo request messages to traverse | The initiator LSR sends two MPLS echo request messages to traverse | |||
the two LAG member links at TTL=n+1: | the two LAG member links at TTL=n+1: | |||
o Success case: | o Success case: | |||
* One MPLS echo request message reaches TTL=n+1 on an LAG member | * One MPLS echo request message reaches TTL=n+1 on an LAG member | |||
skipping to change at page 14, line 50 ¶ | skipping to change at page 14, line 50 ¶ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| LSR Capability Flags | | | LSR Capability Flags | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: LSR Capability TLV | Figure 4: LSR Capability TLV | |||
Where: | Where: | |||
The Type is 2 octets in length and the value is TBD1. | The Type field is 2 octets in length and the value is TBD1. | |||
The Length filed is 2 octets in length, and the value is 4. | The Length field is 2 octets in length, and the value is 4. | |||
The LSR Capability Flags is 4 octets in length, this document | The "LSR Capability Flags" field is 4 octets in length, this | |||
defines following flags: | document defines the following flags: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Must Be Zero (Reserved) |U|D| | | Must Be Zero (Reserved) |U|D| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
This document defines two flags. The remaining flags MUST be set | This document defines two flags. The remaining flags MUST be set | |||
to zero when sending and ignored on receipt. Both the U and the D | to zero when sending and ignored on receipt. Both the U and the D | |||
flag MUST be cleared in the MPLS echo request message when | flag MUST be cleared in the MPLS echo request message when | |||
skipping to change at page 15, line 41 ¶ | skipping to change at page 15, line 41 ¶ | |||
D Downstream LAG Info Accommodation | D Downstream LAG Info Accommodation | |||
An LSR sets this flag when the LSR is capable of | An LSR sets this flag when the LSR is capable of | |||
describing LAG member links in the Local Interface | describing LAG member links in the Local Interface | |||
Index Sub-TLV and the Multipath Data Sub-TLV in the | Index Sub-TLV and the Multipath Data Sub-TLV in the | |||
Downstream Detailed Mapping TLV. | Downstream Detailed Mapping TLV. | |||
7. LAG Description Indicator Flag: G | 7. LAG Description Indicator Flag: G | |||
This document defines a flag, the "G" flag (LAG Description | This document defines a new flag, the "G" flag (LAG Description | |||
Indicator), in the DS Flags field of the DDMAP TLV. | Indicator), in the DS Flags field of the DDMAP TLV. | |||
The "G" flag in the MPLS echo request message indicates the request | The "G" flag in the MPLS echo request message indicates the request | |||
for detailed LAG information from the responder LSR. In the MPLS | for detailed LAG information from the responder LSR. In the MPLS | |||
echo reply message, the "G" flag MUST be set if the DDMAP TLV | echo reply message, the "G" flag MUST be set if the DDMAP TLV | |||
describes a LAG interface. It MUST be cleared otherwise. | describes a LAG interface. It MUST be cleared otherwise. | |||
The "G" flag is defined as below: | The "G" flag is defined as below: | |||
The Bit Number is TBD5. | The Bit Number is TBD5. | |||
skipping to change at page 21, line 5 ¶ | skipping to change at page 21, line 5 ¶ | |||
M LAG Member Link Indicator | M LAG Member Link Indicator | |||
When this flag is set, interface index described in | When this flag is set, interface index described in | |||
this sub-TLV is a member of a LAG. | this sub-TLV is a member of a LAG. | |||
Incoming Interface Index | Incoming Interface Index | |||
An Index assigned by the LSR to this interface. | An Index assigned by the LSR to this interface. | |||
11. Security Considerations | 11. Rate Limiting On Echo Request/Reply Messages | |||
This document extends LSP Traceroute mechanism to discover and | For an LSP path, it may be over several LAGs. Each LAG may have many | |||
exercise L2 ECMP paths. As a result of supporting the code points | member links. To exercise all the links, many Echo Request/Reply | |||
and procedures described in this document, additional processing are | messages will be sent in a short period. It's possible that those | |||
required by initiator LSRs and responder LSRs, especially to compute | messages may traverse a common path as a burst. Under some | |||
and handle the additional multipath information. Due to additional | circumstances this might cause congestion at the common path. To | |||
processing, it is critical that proper security measures described in | avoid potential congestion, it is RECOMMENDED that implementations to | |||
[RFC8029] are followed. | randomly delay the Echo Request and Reply messages at the Initiating | |||
LSRs and Responder LSRs. | ||||
The LSP Traceroute allows an initiator LSR to discover the paths of | 12. Security Considerations | |||
tested LSPs, providing detailed knowledge of the MPLS network. | ||||
Exposing such information to a malicious user is considered | ||||
dangerous. To prevent leakage of vital information to untrusted | ||||
users, a responder LSR MUST only accept MPLS echo request messages | ||||
from trusted sources via filtering source IP address field of | ||||
received MPLS echo request messages.[RFC8029] provides additional | ||||
recommendations to avoid attacks and recommendations to follow if an | ||||
operator desires to prevent tracing. | ||||
12. IANA Considerations | This document extends LSP Traceroute mechanism [RFC8029] to discover | |||
and exercise L2 ECMP paths to determine problematic member link(s) of | ||||
a LAG. These on-demand diagnostic mechanisms are used by an operator | ||||
within an MPLS control domain. | ||||
12.1. LSR Capability TLV | [RFC8029] reviews the possible attacks and approaches to mitigate | |||
possible threats when using these mechanisms. | ||||
To prevent leakage of vital information to untrusted users, a | ||||
responder LSR MUST only accept MPLS echo request messages from | ||||
designated trusted sources via filtering source IP address field of | ||||
received MPLS echo request messages. As noted in [RFC8029], spoofing | ||||
attacks only have a small window of opportunity. If these messages | ||||
are indeed hijacked (non-delivery) by an intermediate node, the use | ||||
of these mechanisms will determine the data plane is not working (as | ||||
it should). Hijacking of a responder node such that it provides a | ||||
legitimate reply would involve compromising the node itself and the | ||||
MPLS control domain. [RFC5920] provides additional MPLS network-wide | ||||
operation recommendations to avoid attacks and recommendations to | ||||
follow. | ||||
13. IANA Considerations | ||||
13.1. LSR Capability TLV | ||||
The IANA is requested to assign new value TBD1 for LSR Capability TLV | The IANA is requested to assign new value TBD1 for LSR Capability TLV | |||
from the "Multiprotocol Label Switching Architecture (MPLS) Label | from the "Multiprotocol Label Switching Architecture (MPLS) Label | |||
Switched Paths (LSPs) Ping Parameters - TLVs" registry. | Switched Paths (LSPs) Ping Parameters - TLVs" registry. | |||
Value Meaning Reference | Value Meaning Reference | |||
----- ------- --------- | ----- ------- --------- | |||
TBD1 LSR Capability TLV this document | TBD1 LSR Capability TLV this document | |||
12.1.1. LSR Capability Flags | 13.1.1. LSR Capability Flags | |||
The IANA is requested to create and maintain a registry entitled "LSR | The IANA is requested to create and maintain a registry entitled "LSR | |||
Capability Flags" with following registration procedures: | Capability Flags" with following registration procedures: | |||
Registry Name: LAG Interface Info Flags | Registry Name: LAG Interface Info Flags | |||
Bit number Name Reference | Bit number Name Reference | |||
---------- ---------------------------------------- --------- | ---------- ---------------------------------------- --------- | |||
31 D: Downstream LAG Info Accommodation this document | 31 D: Downstream LAG Info Accommodation this document | |||
30 U: Upstream LAG Info Accommodation this document | 30 U: Upstream LAG Info Accommodation this document | |||
0-29 Unassigned | 0-29 Unassigned | |||
Assignments of LSR Capability Flags are via Standards Action | Assignments of LSR Capability Flags are via Standards Action | |||
[RFC8126]. | [RFC8126]. | |||
12.2. Local Interface Index Sub-TLV | 13.2. Local Interface Index Sub-TLV | |||
The IANA is requested to assign new value TBD2 (from the range | The IANA is requested to assign new value TBD2 (from the range | |||
4-31743) for the Local Interface Index Sub-TLV from the | 4-31743) for the Local Interface Index Sub-TLV from the | |||
"Multiprotocol Label Switching Architecture (MPLS) Label Switched | "Multiprotocol Label Switching Architecture (MPLS) Label Switched | |||
Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV | Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV | |||
Types 20" sub-registry. | Types 20" sub-registry. | |||
Value Meaning Reference | Value Meaning Reference | |||
----- ------- --------- | ----- ------- --------- | |||
TBD2 Local Interface Index Sub-TLV this document | TBD2 Local Interface Index Sub-TLV this document | |||
12.2.1. Interface Index Flags | 13.2.1. Interface Index Flags | |||
The IANA is requested to create and maintain a registry entitled | The IANA is requested to create and maintain a registry entitled | |||
"Interface Index Flags" with following registration procedures: | "Interface Index Flags" with following registration procedures: | |||
Registry Name: Interface Index Flags | Registry Name: Interface Index Flags | |||
Bit number Name Reference | Bit number Name Reference | |||
---------- ---------------------------------------- --------- | ---------- ---------------------------------------- --------- | |||
15 M: LAG Member Link Indicator this document | 15 M: LAG Member Link Indicator this document | |||
0-14 Unassigned | 0-14 Unassigned | |||
skipping to change at page 22, line 44 ¶ | skipping to change at page 23, line 11 ¶ | |||
o The Local Interface Index Sub-TLV which may be present in the | o The Local Interface Index Sub-TLV which may be present in the | |||
"Downstream Detailed Mapping" TLV. | "Downstream Detailed Mapping" TLV. | |||
o The Remote Interface Index Sub-TLV which may be present in the | o The Remote Interface Index Sub-TLV which may be present in the | |||
"Downstream Detailed Mapping" TLV. | "Downstream Detailed Mapping" TLV. | |||
o The Incoming Interface Index Sub-TLV which may be present in the | o The Incoming Interface Index Sub-TLV which may be present in the | |||
"Detailed Interface and Label Stack" TLV. | "Detailed Interface and Label Stack" TLV. | |||
12.3. Remote Interface Index Sub-TLV | 13.3. Remote Interface Index Sub-TLV | |||
The IANA is requested to assign new value TBD3 (from the range | The IANA is requested to assign new value TBD3 (from the range | |||
32768-49161) for the Remote Interface Index Sub-TLV from the | 32768-49161) for the Remote Interface Index Sub-TLV from the | |||
"Multiprotocol Label Switching Architecture (MPLS) Label Switched | "Multiprotocol Label Switching Architecture (MPLS) Label Switched | |||
Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV | Paths (LSPs) Ping Parameters - TLVs" registry, "Sub-TLVs for TLV | |||
Types 20" sub-registry. | Types 20" sub-registry. | |||
Value Meaning Reference | Value Meaning Reference | |||
----- ------- --------- | ----- ------- --------- | |||
TBD3 Remote Interface Index Sub-TLV this document | TBD3 Remote Interface Index Sub-TLV this document | |||
12.4. Detailed Interface and Label Stack TLV | 13.4. Detailed Interface and Label Stack TLV | |||
The IANA is requested to assign new value TBD4 for Detailed Interface | The IANA is requested to assign new value TBD4 for Detailed Interface | |||
and Label Stack TLV from the "Multiprotocol Label Switching | and Label Stack TLV from the "Multiprotocol Label Switching | |||
Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | |||
TLVs" registry ([IANA-MPLS-LSP-PING]). | TLVs" registry ([IANA-MPLS-LSP-PING]). | |||
Value Meaning Reference | Value Meaning Reference | |||
----- ------- --------- | ----- ------- --------- | |||
TBD4 Detailed Interface and Label Stack TLV this document | TBD4 Detailed Interface and Label Stack TLV this document | |||
12.4.1. Sub-TLVs for TLV Type TBD4 | 13.4.1. Sub-TLVs for TLV Type TBD4 | |||
The IANA is requested to create and maintain a sub-registry entitled | The IANA is requested to create and maintain a sub-registry entitled | |||
"Sub-TLVs for TLV Type TBD4" under "Multiprotocol Label Switching | "Sub-TLVs for TLV Type TBD4" under "Multiprotocol Label Switching | |||
Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | Architecture (MPLS) Label Switched Paths (LSPs) Ping Parameters - | |||
TLVs" registry. | TLVs" registry. | |||
Initial values for this sub-registry, "Sub-TLVs for TLV Types TBD4", | Initial values for this sub-registry, "Sub-TLVs for TLV Types TBD4", | |||
are described below. | are described below. | |||
Sub-Type Name Reference | Sub-Type Name Reference | |||
skipping to change at page 23, line 43 ¶ | skipping to change at page 24, line 9 ¶ | |||
2 Incoming Interface Index this document | 2 Incoming Interface Index this document | |||
3-16383 Unassigned (mandatory TLVs) | 3-16383 Unassigned (mandatory TLVs) | |||
16384-31743 Experimental | 16384-31743 Experimental | |||
32768-49161 Unassigned (optional TLVs) | 32768-49161 Unassigned (optional TLVs) | |||
49162-64511 Experimental | 49162-64511 Experimental | |||
Assignments of Sub-Types in the mandatory and optional spaces are via | Assignments of Sub-Types in the mandatory and optional spaces are via | |||
Standards Action [RFC8126]. Assignments of Sub-Types in the | Standards Action [RFC8126]. Assignments of Sub-Types in the | |||
experimental space is via Specification Required [RFC8126]. | experimental space is via Specification Required [RFC8126]. | |||
12.5. DS Flags | 13.5. DS Flags | |||
The IANA is requested to assign a new bit number from the "DS flags" | The IANA is requested to assign a new bit number from the "DS flags" | |||
sub-registry from the "Multi-Protocol Label Switching (MPLS) Label | sub-registry from the "Multi-Protocol Label Switching (MPLS) Label | |||
Switched Paths (LSPs) Ping Parameters - TLVs" registry | Switched Paths (LSPs) Ping Parameters - TLVs" registry | |||
([IANA-MPLS-LSP-PING]). | ([IANA-MPLS-LSP-PING]). | |||
Note: the "DS flags" sub-registry is created by [RFC8029]. | Note: the "DS flags" sub-registry is created by [RFC8029]. | |||
Bit number Name Reference | Bit number Name Reference | |||
---------- ---------------------------------------- --------- | ---------- ---------------------------------------- --------- | |||
TBD5 G: LAG Description Indicator this document | TBD5 G: LAG Description Indicator this document | |||
13. Acknowledgements | 14. Acknowledgements | |||
The authors would like to thank Nagendra Kumar, Sam Aldrin, for | The authors would like to thank Nagendra Kumar, Sam Aldrin, for | |||
providing useful comments and suggestions. The authors would like to | providing useful comments and suggestions. The authors would like to | |||
thank Loa Andersson for performing a detailed review and providing | thank Loa Andersson for performing a detailed review and providing | |||
number of comments. | number of comments. | |||
The authors also would like to extend sincere thanks to the MPLS RT | The authors also would like to extend sincere thanks to the MPLS RT | |||
review members who took time to review and provide comments. The | review members who took time to review and provide comments. The | |||
members are Eric Osborne, Mach Chen and Yimin Shen. The suggestion | members are Eric Osborne, Mach Chen and Yimin Shen. The suggestion | |||
by Mach Chen to generalize and create the LSR Capability TLV was | by Mach Chen to generalize and create the LSR Capability TLV was | |||
tremendously helpful for this document and likely for future | tremendously helpful for this document and likely for future | |||
documents extending the MPLS LSP Ping and Traceroute mechanism. The | documents extending the MPLS LSP Ping and Traceroute mechanism. The | |||
suggestion by Yimin Shen to create two separate validation procedures | suggestion by Yimin Shen to create two separate validation procedures | |||
had a big impact to the contents of this document. | had a big impact to the contents of this document. | |||
14. References | 15. References | |||
14.1. Normative References | 15.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | |||
Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | |||
Switched (MPLS) Data-Plane Failures", RFC 8029, | Switched (MPLS) Data-Plane Failures", RFC 8029, | |||
DOI 10.17487/RFC8029, March 2017, | DOI 10.17487/RFC8029, March 2017, | |||
<https://www.rfc-editor.org/info/rfc8029>. | <https://www.rfc-editor.org/info/rfc8029>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
14.2. Informative References | 15.2. Informative References | |||
[IANA-MPLS-LSP-PING] | [IANA-MPLS-LSP-PING] | |||
IANA, "Multi-Protocol Label Switching (MPLS) Label | IANA, "Multi-Protocol Label Switching (MPLS) Label | |||
Switched Paths (LSPs) Ping Parameters", | Switched Paths (LSPs) Ping Parameters", | |||
<http://www.iana.org/assignments/mpls-lsp-ping-parameters/ | <http://www.iana.org/assignments/mpls-lsp-ping-parameters/ | |||
mpls-lsp-ping-parameters.xhtml>. | mpls-lsp-ping-parameters.xhtml>. | |||
[IEEE802.1AX] | [IEEE802.1AX] | |||
IEEE Std. 802.1AX, "IEEE Standard for Local and | IEEE Std. 802.1AX, "IEEE Standard for Local and | |||
metropolitan area networks - Link Aggregation", November | metropolitan area networks - Link Aggregation", November | |||
2008. | 2008. | |||
[RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS | ||||
Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010, | ||||
<https://www.rfc-editor.org/info/rfc5920>. | ||||
[RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for | [RFC7439] George, W., Ed. and C. Pignataro, Ed., "Gap Analysis for | |||
Operating IPv6-Only MPLS Networks", RFC 7439, | Operating IPv6-Only MPLS Networks", RFC 7439, | |||
DOI 10.17487/RFC7439, January 2015, | DOI 10.17487/RFC7439, January 2015, | |||
<https://www.rfc-editor.org/info/rfc7439>. | <https://www.rfc-editor.org/info/rfc7439>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
End of changes. 37 change blocks. | ||||
66 lines changed or deleted | 84 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |