| < draft-ietf-mpls-bfd-directed-11.txt | draft-ietf-mpls-bfd-directed-12.txt > | |||
|---|---|---|---|---|
| MPLS Working Group G. Mirsky | MPLS Working Group G. Mirsky | |||
| Internet-Draft ZTE | Internet-Draft ZTE | |||
| Intended status: Standards Track J. Tantsura | Intended status: Standards Track J. Tantsura | |||
| Expires: October 5, 2019 Nuage Networks | Expires: February 22, 2020 Nuage Networks | |||
| I. Varlashkin | I. Varlashkin | |||
| M. Chen | M. Chen | |||
| Huawei | Huawei | |||
| April 3, 2019 | August 21, 2019 | |||
| Bidirectional Forwarding Detection (BFD) Directed Return Path | Bidirectional Forwarding Detection (BFD) Directed Return Path | |||
| draft-ietf-mpls-bfd-directed-11 | draft-ietf-mpls-bfd-directed-12 | |||
| Abstract | Abstract | |||
| Bidirectional Forwarding Detection (BFD) is expected to be able to | Bidirectional Forwarding Detection (BFD) is expected to be able to | |||
| monitor a wide variety of encapsulations of paths between systems. | monitor a wide variety of encapsulations of paths between systems. | |||
| When a BFD session monitors an explicitly routed unidirectional path | When a BFD session monitors an explicitly routed unidirectional path | |||
| there may be a need to direct egress BFD peer to use a specific path | there may be a need to direct egress BFD peer to use a specific path | |||
| for the reverse direction of the BFD session. | for the reverse direction of the BFD session. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
| 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 October 5, 2019. | This Internet-Draft will expire on February 22, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 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 | |||
| skipping to change at page 2, line 18 ¶ | skipping to change at page 2, line 18 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Conventions used in this document . . . . . . . . . . . . 3 | 1.1. Conventions used in this document . . . . . . . . . . . . 3 | |||
| 1.1.1. Requirements Language . . . . . . . . . . . . . . . . 3 | 1.1.1. Requirements Language . . . . . . . . . . . . . . . . 3 | |||
| 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Control of the Reverse BFD Path . . . . . . . . . . . . . . . 3 | 3. Control of the Reverse BFD Path . . . . . . . . . . . . . . . 3 | |||
| 3.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 3 | 3.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 3 | |||
| 3.2. Static and RSVP-TE sub-TLVs . . . . . . . . . . . . . . . 5 | 3.2. Return Codes . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. Return Codes . . . . . . . . . . . . . . . . . . . . . . 5 | ||||
| 4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Use Case Scenario . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 5. Operational Considerations . . . . . . . . . . . . . . . . . 5 | |||
| 5.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 6 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.2. Return Code . . . . . . . . . . . . . . . . . . . . . . . 6 | 6.1. BFD Reverse Path TLV . . . . . . . . . . . . . . . . . . 6 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 6.2. Return Code . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 7. Normative References . . . . . . . . . . . . . . . . . . . . 7 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 8. Normative References . . . . . . . . . . . . . . . . . . . . 7 | ||||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 8 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 8 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 1. Introduction | 1. Introduction | |||
| [RFC5880], [RFC5881], and [RFC5883] established the BFD protocol for | [RFC5880], [RFC5881], and [RFC5883] established the BFD protocol for | |||
| IP networks. [RFC5884] and [RFC7726] set rules for using BFD | IP networks. [RFC5884] and [RFC7726] set rules for using BFD | |||
| asynchronous mode over IP/MPLS LSPs. These standards do not define | asynchronous mode over IP/MPLS LSPs. These standards do not define | |||
| means to control the path selection at the egress BFD peer to send | means to control the path selection at the egress BFD peer to send | |||
| BFD control packets towards the ingress BFD system. | BFD control packets towards the ingress BFD system. | |||
| skipping to change at page 3, line 22 ¶ | skipping to change at page 3, line 22 ¶ | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Problem Statement | 2. Problem Statement | |||
| When BFD is used to monitor explicitly routed unidirectional path, | When BFD is used to monitor explicitly routed unidirectional path, | |||
| e.g., MPLS-TE LSP, BFD control packets in forward direction would be | e.g., MPLS-TE LSP, BFD control packets in forward direction would be | |||
| in-band using the mechanism defined in [RFC5884] and [RFC5586]. But | in-band using the mechanism defined in [RFC5884]. But the reverse | |||
| the reverse direction of the BFD session would follow the shortest | direction of the BFD session would follow the shortest path route and | |||
| path route and that might lead to the problem in detecting failures | that might lead to the problem in detecting failures on an explicit | |||
| on an explicit unidirectional path as described below: | unidirectional path as described below: | |||
| o a failure detection by ingress node on the reverse path may not be | o detection by an ingress node of a failure on the reverse path may | |||
| interpreted as bi-directional failure unambiguously. | not be unambiguously interpreted as the failure of the path in the | |||
| forward direction. | ||||
| To address this scenario, the egress BFD peer would be instructed to | To address this scenario, the egress BFD peer would be instructed to | |||
| use a specific path for BFD control packets. | use a specific path for BFD control packets. | |||
| 3. Control of the Reverse BFD Path | 3. Control of the Reverse BFD Path | |||
| To bootstrap a BFD session over an MPLS LSP, LSP ping, defined in | To bootstrap a BFD session over an MPLS LSP, LSP ping, defined in | |||
| [RFC8029], MUST be used with BFD Discriminator TLV [RFC5884]. This | [RFC8029], MUST be used with BFD Discriminator TLV [RFC5884]. This | |||
| document defines a new TLV, BFD Reverse Path TLV, that MUST contain a | document defines a new TLV, BFD Reverse Path TLV, that MUST contain a | |||
| single sub-TLV that can be used to carry information about the | single sub-TLV that can be used to carry information about the | |||
| skipping to change at page 4, line 23 ¶ | skipping to change at page 4, line 23 ¶ | |||
| | BFD Reverse Path TLV Type | Length | | | BFD Reverse Path TLV Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reverse Path | | | Reverse Path | | |||
| ~ ~ | ~ ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: BFD Reverse Path TLV | Figure 1: BFD Reverse Path TLV | |||
| BFD Reverse Path TLV Type is two octets in length and has a value of | BFD Reverse Path TLV Type is two octets in length and has a value of | |||
| TBD1 (to be assigned by IANA as requested in Section 5). | TBD1 (to be assigned by IANA as requested in Section 6). | |||
| Length field is two octets long and defines the length in octets of | Length field is two octets long and defines the length in octets of | |||
| the Reverse Path field. | the Reverse Path field. | |||
| Reverse Path field contains a sub-TLV. Any non-multicast Target FEC | Reverse Path field contains a sub-TLV. Any non-multicast Target FEC | |||
| Stack sub-TLV (already defined, or to be defined in the future) for | Stack sub-TLV (already defined, or to be defined in the future) for | |||
| TLV Types 1, 16, and 21 of MPLS LSP Ping Parameters registry MAY be | TLV Types 1, 16, and 21 of MPLS LSP Ping Parameters registry MAY be | |||
| used in this field. Multicast Target FEC Stack sub-TLVs, i.e., p2mp | used in this field. Multicast Target FEC Stack sub-TLVs, i.e., p2mp | |||
| and mp2mp, SHOULD NOT be included in Reverse Path field. If the | and mp2mp, SHOULD NOT be included in Reverse Path field. If the | |||
| egress LSR finds multicast Target Stack sub-TLV, it MUST send echo | egress LSR finds multicast Target Stack sub-TLV, it MUST send echo | |||
| reply with the received Reverse Path TLV, BFD Discriminator TLV and | reply with the received Reverse Path TLV, BFD Discriminator TLV and | |||
| set the Return Code to "Inappropriate Target FEC Stack sub-TLV | set the Return Code to "Inappropriate Target FEC Stack sub-TLV | |||
| present" Section 3.3. None, one or more sub-TLVs MAY be included in | present" Section 3.2. None, one or more sub-TLVs MAY be included in | |||
| the BFD Reverse Path TLV. If no sub-TLVs are found in the BFD | the BFD Reverse Path TLV. If no sub-TLVs are found in the BFD | |||
| Reverse Path TLV, the egress BFD peer MUST revert to using the local | Reverse Path TLV, the egress BFD peer MUST revert to using the local | |||
| policy based decision as described in Section 7 [RFC5884], i.e., | policy based decision as described in Section 7 [RFC5884], i.e., | |||
| routed over IP network. | routed over IP network. | |||
| If the egress LSR cannot find the path specified in the Reverse Path | If the egress LSR cannot find the path specified in the Reverse Path | |||
| TLV it MUST send Echo Reply with the received BFD Discriminator TLV, | TLV it MUST send Echo Reply with the received BFD Discriminator TLV, | |||
| Reverse Path TLV and set the Return Code to "Failed to establish the | Reverse Path TLV and set the Return Code to "Failed to establish the | |||
| BFD session. The specified reverse path was not found" Section 3.3. | BFD session. The specified reverse path was not found" Section 3.2. | |||
| An implementation MAY provide configuration options to define action | An implementation MAY provide configuration options to define action | |||
| at the egress BFD peer. For example, if the egress LSR cannot find | at the egress BFD peer. For example, if the egress LSR cannot find | |||
| the path specified in the Reverse Path TLV it MAY establish the BFD | the path specified in the Reverse Path TLV it MAY establish the BFD | |||
| session over IP network as defined in [RFC5884]. | session over IP network as defined in [RFC5884]. | |||
| 3.2. Static and RSVP-TE sub-TLVs | 3.2. Return Codes | |||
| When an explicit path on an MPLS data plane is set either as Static | ||||
| or RSVP-TE LSP, corresponding sub-TLVs, defined in [RFC7110], MAY be | ||||
| used to identify the explicit reverse path for the BFD session. If | ||||
| any of defined in [RFC7110] sub-TLVs used in BFD Reverse Path TLV, | ||||
| then the periodic verification of the control plane against the data | ||||
| plane, as recommended in Section 4 [RFC5884], MUST use the Return | ||||
| Path TLV, as per [RFC7110], with that sub-TLV. By using the LSP Ping | ||||
| with Return Path TLV an operator will be able to verify that the | ||||
| forward LSP and the reverse LSP are mapped to the same FECs as BFD | ||||
| session both at the ingress and the egress systems. Selection and | ||||
| control of he rate of LSP Ping with Return Path TLV follows the | ||||
| [RFC5884] that states: "The rate of generation of these LSP Ping Echo | ||||
| request messages SHOULD be significantly less than the rate of | ||||
| generation of the BFD Control packets. An implementation MAY provide | ||||
| configuration options to control the rate of generation of the | ||||
| periodic LSP Ping Echo request messages." | ||||
| 3.3. Return Codes | ||||
| This document defines the following Return Codes for MPLS LSP Echo | This document defines the following Return Codes for MPLS LSP Echo | |||
| Reply: | Reply: | |||
| o "Inappropriate Target FEC Stack sub-TLV present", (TBD3). When | o "Inappropriate Target FEC Stack sub-TLV present", (TBD3). When | |||
| multicast Target FEC Stack sub-TLV found in the received Echo | multicast Target FEC Stack sub-TLV found in the received Echo | |||
| Request by the egress BFD peer, an Echo Reply with the return code | Request by the egress BFD peer, an Echo Reply with the return code | |||
| set to "Inappropriate Target FEC Stack sub-TLV present" MUST be | set to "Inappropriate Target FEC Stack sub-TLV present" MUST be | |||
| sent to the ingress BFD peer Section 3.1. | sent to the ingress BFD peer Section 3.1. | |||
| skipping to change at page 6, line 17 ¶ | skipping to change at page 5, line 47 ¶ | |||
| A-------B G-----H | A-------B G-----H | |||
| | | | | | | |||
| E---------F | E---------F | |||
| Figure 2: Use Case for BFD Reverse Path TLV | Figure 2: Use Case for BFD Reverse Path TLV | |||
| If an operator needs node H to monitor a path to node A, e.g. | If an operator needs node H to monitor a path to node A, e.g. | |||
| H-G-D-C-B-A tunnel, then by looking up the list of known Reverse | H-G-D-C-B-A tunnel, then by looking up the list of known Reverse | |||
| Paths it MAY find and use the existing BFD session. | Paths it MAY find and use the existing BFD session. | |||
| 5. IANA Considerations | 5. Operational Considerations | |||
| 5.1. BFD Reverse Path TLV | When an explicit path is set either as Static or RSVP-TE LSP, | |||
| corresponding sub-TLVs, defined in [RFC7110], MAY be used to identify | ||||
| the explicit reverse path for the BFD session. If any of defined in | ||||
| [RFC7110] sub-TLVs used in BFD Reverse Path TLV, then the periodic | ||||
| verification of the control plane against the data plane, as | ||||
| recommended in Section 4 [RFC5884], MUST use the Return Path TLV, as | ||||
| per [RFC7110], with that sub-TLV. By using the LSP Ping with Return | ||||
| Path TLV, an operator monitors whether at the egress BFD node the | ||||
| reverse LSP is mapped to the same FEC as the BFD session. Selection | ||||
| and control of the rate of LSP Ping with Return Path TLV follows the | ||||
| recommendation of [RFC5884]: "The rate of generation of these LSP | ||||
| Ping Echo request messages SHOULD be significantly less than the rate | ||||
| of generation of the BFD Control packets. An implementation MAY | ||||
| provide configuration options to control the rate of generation of | ||||
| the periodic LSP Ping Echo request messages." | ||||
| If an operator planned network maintenance activity that possibly | ||||
| affects FEC used in the BFD Reverse Path TLV, the operator MUST avoid | ||||
| the unnecessary disruption using the LSP Ping with a new FEC in the | ||||
| BFD Reverse Path TLV. But in some scenarios, proactive measures | ||||
| cannot be taken. Because the frequency of LSP Ping messages will be | ||||
| lower than the defect detection time provided by the BFD session. As | ||||
| a result, a change in the reverse-path FEC will first be detected as | ||||
| the failure of the BFD session. In such a case, the ingress BFD node | ||||
| SHOULD immediately transmit the LSP Ping Echo request with Return | ||||
| Path TLV to verify whether the FEC is still valid. If the failure | ||||
| was caused by the change in the FEC used for the reverse direction of | ||||
| the BFD session, the ingress BFD node SHOULD bootstrap a new BFD | ||||
| session using another FEC in BFD Reverse Path TLV. | ||||
| 6. IANA Considerations | ||||
| 6.1. BFD Reverse Path TLV | ||||
| The IANA is requested to assign a new value for BFD Reverse Path TLV | The IANA is requested to assign a new value for BFD Reverse Path TLV | |||
| from the "Multiprotocol Label Switching Architecture (MPLS) Label | from the "Multiprotocol Label Switching Architecture (MPLS) Label | |||
| Switched Paths (LSPs) Ping Parameters - TLVs" registry, "TLVs and | Switched Paths (LSPs) Ping Parameters - TLVs" registry, "TLVs and | |||
| sub-TLVs" sub-registry. | sub-TLVs" sub-registry. | |||
| +--------+----------------------+---------------+ | +--------+----------------------+---------------+ | |||
| | Value | Description | Reference | | | Value | Description | Reference | | |||
| +--------+----------------------+---------------+ | +--------+----------------------+---------------+ | |||
| | (TBD1) | BFD Reverse Path TLV | This document | | | (TBD1) | BFD Reverse Path TLV | This document | | |||
| +--------+----------------------+---------------+ | +--------+----------------------+---------------+ | |||
| Table 1: New BFD Reverse Type TLV | Table 1: New BFD Reverse Type TLV | |||
| 5.2. Return Code | 6.2. Return Code | |||
| The IANA is requested to assign a new Return Code value from the | The IANA is requested to assign a new Return Code value from the | |||
| "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) | "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) | |||
| Ping Parameters" registry, "Return Codes" sub-registry, as follows | Ping Parameters" registry, "Return Codes" sub-registry, as follows | |||
| using a Standards Action value. | using a Standards Action value. | |||
| +--------+----------------------------------------------+-----------+ | +--------+----------------------------------------------+-----------+ | |||
| | Value | Description | Reference | | | Value | Description | Reference | | |||
| +--------+----------------------------------------------+-----------+ | +--------+----------------------------------------------+-----------+ | |||
| | (TBD3) | Inappropriate Target FEC Stack sub-TLV | This | | | (TBD3) | Inappropriate Target FEC Stack sub-TLV | This | | |||
| | | present. | document | | | | present. | document | | |||
| | (TBD4) | Failed to establish the BFD session. The | This | | | (TBD4) | Failed to establish the BFD session. The | This | | |||
| | | specified reverse path was not found. | document | | | | specified reverse path was not found. | document | | |||
| +--------+----------------------------------------------+-----------+ | +--------+----------------------------------------------+-----------+ | |||
| Table 2: New Return Code | Table 2: New Return Code | |||
| 6. Security Considerations | 7. Security Considerations | |||
| Security considerations discussed in [RFC5880], [RFC5884], [RFC7726], | Security considerations discussed in [RFC5880], [RFC5884], [RFC7726], | |||
| and [RFC8029], apply to this document. | and [RFC8029], apply to this document. | |||
| 7. Normative References | 8. 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>. | |||
| [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., | ||||
| "MPLS Generic Associated Channel", RFC 5586, | ||||
| DOI 10.17487/RFC5586, June 2009, | ||||
| <https://www.rfc-editor.org/info/rfc5586>. | ||||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5880>. | <https://www.rfc-editor.org/info/rfc5880>. | |||
| [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, | |||
| DOI 10.17487/RFC5881, June 2010, | DOI 10.17487/RFC5881, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5881>. | <https://www.rfc-editor.org/info/rfc5881>. | |||
| [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| End of changes. 18 change blocks. | ||||
| 50 lines changed or deleted | 59 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||