rfc9355.original | rfc9355.txt | |||
---|---|---|---|---|
Link State Routing K. Talaulikar, Ed. | Internet Engineering Task Force (IETF) K. Talaulikar, Ed. | |||
Internet-Draft P. Psenak | Request for Comments: 9355 P. Psenak | |||
Updates: 2328 (if approved) Cisco Systems, Inc. | Updates: 2328 Cisco Systems, Inc. | |||
Intended status: Standards Track A. Fu | Category: Standards Track A. Fu | |||
Expires: 9 April 2023 Bloomberg | ISSN: 2070-1721 Bloomberg | |||
M. Rajesh | M. Rajesh | |||
Juniper Networks | Juniper Networks | |||
6 October 2022 | February 2023 | |||
OSPF BFD Strict-Mode | OSPF Bidirectional Forwarding Detection (BFD) Strict-Mode | |||
draft-ietf-lsr-ospf-bfd-strict-mode-10 | ||||
Abstract | Abstract | |||
This document specifies the extensions to OSPF that enable an OSPF | This document specifies the extensions to OSPF that enable an OSPF | |||
router to signal the requirement for a Bidirectional Forwarding | router to signal the requirement for a Bidirectional Forwarding | |||
Detection (BFD) session prior to adjacency formation. Link-Local | Detection (BFD) session prior to adjacency formation. Link-Local | |||
Signaling (LLS) is used to advertise the requirement for strict-mode | Signaling (LLS) is used to advertise the requirement for strict-mode | |||
BFD session establishment for an OSPF adjacency. If both OSPF | BFD session establishment for an OSPF adjacency. If both OSPF | |||
neighbors advertise BFD strict-mode, adjacency formation will be | neighbors advertise BFD strict-mode, adjacency formation will be | |||
blocked until a BFD session has been successfully established. | blocked until a BFD session has been successfully established. | |||
This document updates RFC2328 by augmenting the OSPF neighbor state | This document updates RFC 2328 by augmenting the OSPF neighbor state | |||
machine with a check for BFD session up before progression from Init | machine with a check for BFD session up before progression from Init | |||
to Two-Way state when operating in OSPF BFD strict-mode. | to 2-Way state when operating in OSPF BFD strict-mode. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 9 April 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9355. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
2. LLS B-bit Flag . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. LLS B-Bit Flag | |||
3. Local Interface IPv4 Address TLV . . . . . . . . . . . . . . 4 | 3. Local Interface IPv4 Address TLV | |||
4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Procedures | |||
4.1. OSPFv3 IPv4 Address-Family Specifics . . . . . . . . . . 6 | 4.1. OSPFv3 IPv4 AF Specifics | |||
4.2. Graceful Restart Considerations . . . . . . . . . . . . . 7 | 4.2. Graceful Restart Considerations | |||
5. Operations & Management Considerations . . . . . . . . . . . 7 | 5. Operations and Management Considerations | |||
6. Backward Compatibility . . . . . . . . . . . . . . . . . . . 7 | 6. Backward Compatibility | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. IANA Considerations | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 8. Security Considerations | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 9. References | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 9.1. Normative References | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 9.2. Informative References | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 10 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
Bidirectional Forwarding Detection (BFD) [RFC5880] enables routers to | Bidirectional Forwarding Detection (BFD) [RFC5880] enables routers to | |||
monitor data-plane connectivity and to detect faults in the | monitor data plane connectivity and to detect faults in the | |||
bidirectional path between them. BFD is leveraged by routing | bidirectional path between them. BFD is leveraged by routing | |||
protocols like OSPFv2 [RFC2328] and OSPFv3 [RFC5340] to detect | protocols like OSPFv2 [RFC2328] and OSPFv3 [RFC5340] to detect | |||
connectivity failures for established adjacencies faster than the | connectivity failures for established adjacencies faster than the | |||
OSPF hello dead timer detection and trigger rerouting of traffic | OSPF Hello dead timer detection and to trigger rerouting of traffic | |||
around the failure. The use of BFD for monitoring routing protocol | around the failure. The use of BFD for monitoring routing protocol | |||
adjacencies is described in [RFC5882]. | adjacencies is described in [RFC5882]. | |||
When BFD monitoring is enabled for OSPF adjacencies by the network | When BFD monitoring is enabled for OSPF adjacencies by the network | |||
operator, the BFD session is bootstrapped based on the neighbor | operator, the BFD session is bootstrapped based on the neighbor | |||
address information discovered by the exchange of OSPF Hello packets. | address information discovered by the exchange of OSPF Hello packets. | |||
Faults in the bidirectional forwarding detected via BFD then result | Faults in the bidirectional forwarding detected via BFD then result | |||
in the OSPF adjacency being brought down. A degraded or poor quality | in the OSPF adjacency being brought down. A degraded or poor-quality | |||
link may result in intermittent packet drops. In such scenarios, in | link may result in intermittent packet drops. In such scenarios, | |||
implementations prior to the extensions specified in this document, | implementations prior to the extensions specified in this document | |||
an OSPF adjacency may still get established over such a link but | may still get an OSPF adjacency established over such a link; | |||
given the more aggressive monitoring intervals supported by BFD, a | however, given the more aggressive monitoring intervals supported by | |||
BFD session may not get established and/or may flap over it. The | BFD, a BFD session may not get established and/or may flap. The | |||
traffic that gets forwarded over such a link would experience packet | traffic forwarded over such a link would experience packet drops, and | |||
drops and the failure of the BFD session establishment would not | the failure of the BFD session establishment will not enable fast | |||
enable fast routing convergence. OSPF adjacency flaps may occur over | routing convergence. OSPF adjacency flaps may occur over such links | |||
such links as OSPF brings up the adjacency only for it to be brought | when OSPF brings up the adjacency only for it to be brought down | |||
down again by BFD. | again by BFD. | |||
To avoid the routing churn associated with these scenarios, it would | To avoid the routing churn associated with these scenarios, it would | |||
be beneficial to not allow OSPF to establish an adjacency until a BFD | be beneficial not to allow OSPF to establish an adjacency until a BFD | |||
session is successfully established and has stabilized. However, | session is successfully established and has stabilized. However, | |||
this would preclude the OSPF operation in an environment where not | this would preclude the OSPF operation in an environment where not | |||
all OSPF routers both support BFD and have it enabled on the link. A | all OSPF routers support BFD and have it enabled on the link. A | |||
solution is to block OSPF adjacency establishment until a BFD session | solution is to block OSPF adjacency establishment until a BFD session | |||
is established as long as both neighbors advertise such a | is established as long as both neighbors advertise such a | |||
requirement. Such a mode of OSPF BFD usage is referred to as | requirement. Such a mode of OSPF BFD usage is referred to as | |||
"strict-mode". It introduces the signaling support in OSPF to | "strict-mode". Strict-mode introduces signaling support in OSPF to | |||
achieve the blocking of adjacency formation until BFD session | achieve the blocking of adjacency formation until BFD session | |||
establishment as described in section 4.1 of [RFC5882]. | establishment occurs, as described in Section 4.1 of [RFC5882]. | |||
This document specifies the OSPF protocol extensions using Link-Local | This document specifies the OSPF protocol extensions using Link-Local | |||
Signaling (LLS) [RFC5613] for a router to indicate to its neighbor | Signaling (LLS) [RFC5613] for a router to indicate to its neighbor | |||
the willingness to require BFD strict-mode for OSPF adjacency | the willingness to require BFD strict-mode for OSPF adjacency | |||
establishment (refer to Section 2). It also introduces an extension | establishment (refer to Section 2). It also introduces an extension | |||
for OSPFv3 Link-Local Signalling (LLS) of the interface IPv4 address | to OSPFv3 LLS of the interface IPv4 address (refer to Section 3) to | |||
(refer to Section 3) to be used for the BFD session setup when OSPFv3 | be used for the BFD session setup when OSPFv3 is used for an IPv4 | |||
is used for an IPv4 address-family (AF) instance. | Address Family (AF) instance. | |||
This document updates [RFC2328] by augmenting the OSPF neighbor state | This document updates [RFC2328] by augmenting the OSPF neighbor state | |||
machine with a check for BFD session up before progression from Init | machine with a check for BFD session up before progression from Init | |||
to Two-Way state when operating in OSPF BFD strict-mode. | to 2-Way state when operating in OSPF BFD strict-mode. | |||
The extensions and procedures for OSPF BFD strict-mode also apply for | The extensions and procedures for OSPF BFD strict-mode also apply for | |||
adjacency over virtual links using BFD multi-hop [RFC5883] | adjacency over virtual links using BFD multi-hop [RFC5883] | |||
procedures. | procedures. | |||
A similar functionality for IS-IS is specified [RFC6213]. | A similar functionality for IS-IS is specified in [RFC6213]. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
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 | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. LLS B-bit Flag | 2. LLS B-Bit Flag | |||
This document defines the B-bit in the LLS Type 1 Extended Options | This document defines the B-bit in the LLS Type 1 Extended Options | |||
and Flags field. This bit is defined for the LLS block included in | and Flags. This bit is defined for the LLS block that is included in | |||
Hello and Database Description (DD) packets and indicates that BFD is | Hello and Database Description (DD) packets. The B-bit indicates | |||
enabled on the link and that the router requests OSPF BFD strict- | that BFD is enabled on the link and that the router requests OSPF BFD | |||
mode. Section 7 describes the position of the B-bit. | strict-mode. Section 7 describes the position of the B-bit. | |||
A router MUST include the LLS block with the B-bit set in the LLS | A router MUST include the LLS block with the B-bit set in the LLS | |||
Type 1 Extended Options and Flags TLV in its Hello and DD packets | Type 1 Extended Options and Flags in its Hello and DD packets when | |||
when OSPF BFD strict-mode is enabled on the link. | OSPF BFD strict-mode is enabled on the link. | |||
3. Local Interface IPv4 Address TLV | 3. Local Interface IPv4 Address TLV | |||
The Local Interface IPv4 Address TLV is an LLS TLV defined for OSPFv3 | The Local Interface IPv4 Address TLV is an LLS TLV defined for OSPFv3 | |||
IPv4 AF instance [RFC5838] protocol operation as described in | IPv4 AF instance [RFC5838] protocol operation as described in | |||
Section 4.1. | Section 4.1. | |||
It has the following format: | It has the following format: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local Interface IPv4 Address | | | Local Interface IPv4 Address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 21 | Type: 21 | |||
Length: 4 octets | Length: 4 octets | |||
Local Interface IPv4 Address: The primary IPv4 address of the | Local Interface IPv4 Address: The primary IPv4 address of the local | |||
local interface. | interface. | |||
4. Procedures | 4. Procedures | |||
A router supporting OSPF BFD strict-mode advertises this capability | A router supporting OSPF BFD strict-mode advertises this capability | |||
through its Hello packets as described in Section 2. When a router | through its Hello packets as described in Section 2. When a router | |||
supporting OSPF BFD strict-mode discovers a new neighbor router that | supporting OSPF BFD strict-mode discovers a new neighbor router that | |||
also supports OSPF BFD strict-mode, it will establish a BFD session | also supports OSPF BFD strict-mode, it will establish a BFD session | |||
first with that neighbor before bringing up the OSPF adjacency as | with that neighbor first before bringing up the OSPF adjacency as | |||
described further in this section. | described further in this section. | |||
This document updates the OSPF neighbor state machine as described in | This document updates the OSPF neighbor state machine as described in | |||
[RFC2328]. Specifically, the operations related to the Init state | [RFC2328]. Specifically, the operations related to the Init state | |||
are modified as below when OSPF BFD strict-mode is used: | are modified as described below when OSPF BFD strict-mode is used: | |||
Init (without OSPF BFD strict-mode) | ||||
Init (without OSPF BFD strict-mode): | ||||
In this state, a Hello packet has recently been received from the | In this state, a Hello packet has recently been received from the | |||
neighbor. However, bidirectional communication has not yet been | neighbor. However, bidirectional communication has not yet been | |||
established with the neighbor (i.e., the router itself did not | established with the neighbor (i.e., the router itself did not | |||
appear in the neighbor's Hello packet). All neighbors in this | appear in the neighbor's Hello packet). All neighbors in this | |||
state (or higher) are listed in the Hello packets sent from the | state (or higher) are listed in the Hello packets sent from the | |||
associated interface. | associated interface. | |||
Init (with OSPF BFD strict-mode) | Init (with OSPF BFD strict-mode): | |||
In this state, a Hello packet has recently been received from the | In this state, a Hello packet has recently been received from the | |||
neighbor. However, bidirectional communication has not yet been | neighbor. However, bidirectional communication has not yet been | |||
established with the neighbor (i.e., the router itself did not | established with the neighbor (i.e., the router itself did not | |||
appear in the neighbor's Hello packet). BFD session establishment | appear in the neighbor's Hello packet). BFD session establishment | |||
with the neighbor is requested, if not already completed (e.g., in | with the neighbor is requested if it's not already completed | |||
the event of transition from 2-way state). Neighbors in Init | (e.g., in the event of transition from 2-Way state). Neighbors in | |||
state or higher will be listed in Hello packets associated with | Init state or higher will be listed in Hello packets associated | |||
the interface if they either have a corresponding BFD session | with the interface if they either have a corresponding BFD session | |||
established or have not advertised OSPF BFD strict-mode in the | established or have not advertised OSPF BFD strict-mode in the LLS | |||
Hello packet LLS Extended Options and Flags. | Type 1 Extended Options and Flags advertised in the Hello packet. | |||
Whenever the neighbor state transitions to Down state, the removal of | When the neighbor state transitions to Down state, the removal of the | |||
the BFD session associated with that neighbor is requested by OSPF | BFD session associated with that neighbor is requested by OSPF; | |||
and subsequent BFD session establishment is similarly requested by | subsequent BFD session establishment is similarly requested by OSPF | |||
OSPF upon transitioning into Init state. This may result in the | upon transitioning into Init state. This may result in BFD session | |||
deletion and creation of the BFD session respectively when OSPF is | deletion and creation, respectively, when OSPF is the only client | |||
the only client interested in the BFD session with the neighbor | interested in the BFD session with the neighbor address. | |||
address. | ||||
An implementation MUST NOT wait for BFD session establishment in Init | An implementation MUST NOT wait for BFD session establishment in Init | |||
state unless OSPF BFD strict-mode is enabled by the operator on the | state unless OSPF BFD strict-mode is enabled by the operator on the | |||
interface and the specific neighbor indicates OSPF BFD strict-mode | interface and the specific neighbor indicates OSPF BFD strict-mode | |||
capability via its Hello LLS options. When BFD is enabled, but OSPF | capability via the LLS Type 1 Extended Options and Flags advertised | |||
BFD strict-mode has not been signaled by both neighbors, an | in the Hello packet. When BFD is enabled, but OSPF BFD strict-mode | |||
implementation SHOULD start BFD session establishment only in 2-Way | has not been signaled by both neighbors, an implementation SHOULD | |||
state or greater state. This makes it possible for an OSPF router to | start BFD session establishment only in 2-Way or greater state. This | |||
support BFD operation in both strict-mode and normal mode across | makes it possible for an OSPF router to support BFD operation in both | |||
different interfaces or even different neighbors on the same multi- | strict-mode and normal mode across different interfaces or even | |||
access interface. | across different neighbors on the same multi-access interface. | |||
Once the OSPF state machine has moved beyond the Init state, any | Once the OSPF state machine has moved beyond the Init state, any | |||
change in the B-bit advertised in subsequent Hello packets MUST NOT | change in the B-bit advertised in subsequent Hello packets MUST NOT | |||
result in any trigger in either the OSPF adjacency or the BFD session | result in any trigger in either the OSPF adjacency or the BFD session | |||
management (i.e., the B-bit is considered only when in Init state). | management (i.e., the B-bit is considered only when in Init state). | |||
Disabling BFD (or OSPF BFD strict-mode) on an OSPF interface would | Disabling BFD (or OSPF BFD strict-mode) on an OSPF interface would | |||
result in it not setting the B-bit in its subsequent Hello LLS | result in it not setting the B-bit in the LLS Type 1 Extended Options | |||
options. Disabling OSPF BFD strict-mode has no effect on BFD | and Flags advertised in subsequent Hello packets. Disabling OSPF BFD | |||
operations and would not result in bringing down of any established | strict-mode has no effect on BFD operations and would not result in | |||
BFD sessions. Disabling BFD would result in the BFD session being | the bringing down of any established BFD sessions. Disabling BFD | |||
brought down due to Admin reason [RFC5882] and hence would not bring | would result in the BFD session being brought down due to AdminDown | |||
down the OSPF adjacency. | State (described in Section 3.2 of [RFC5882]); hence, it would not | |||
bring down the OSPF adjacency. | ||||
When BFD is enabled on an interface over which we already have an | When BFD is enabled on an interface over which we already have an | |||
existing OSPF adjacency, it would result in the router setting the | existing OSPF adjacency, it would result in the router setting the | |||
B-bit in its subsequent Hello packets and initiation of BFD session | B-bit in its subsequent Hello packets and the initiation of BFD | |||
establishment to the neighbor. If the adjacency is already up (i.e., | session establishment to the neighbor. If the adjacency is already | |||
in its terminal state of Full or 2-way with non-DR routers on a | up (i.e., in its terminal state of Full or 2-Way with routers that | |||
multi-access interface) with a neighbor that also supports OSPF BFD | are not designated routers on a multi-access interface) with a | |||
strict-mode, then an implementation SHOULD NOT bring this adjacency | neighbor that also supports OSPF BFD strict-mode, then an | |||
down into the Init state to avoid disruption to routing operations | implementation SHOULD NOT bring this adjacency down into the Init | |||
and instead use the OSPF BFD strict-mode wait only after a transition | state to avoid disruption to routing operations and instead use the | |||
to Init state. However, if the adjacency is not up, then an | OSPF BFD strict-mode wait only after a transition to Init state. | |||
implementation MAY bring such an adjacency down so it can use the | However, if the adjacency is not up, then an implementation MAY bring | |||
OSPF BFD strict-mode for its adjacency establishment. | such an adjacency down so it can use the OSPF BFD strict-mode for its | |||
adjacency establishment. | ||||
4.1. OSPFv3 IPv4 Address-Family Specifics | 4.1. OSPFv3 IPv4 AF Specifics | |||
Multiple AF support in OSPFv3 [RFC5838] requires the use of an IPv6 | Support for multiple AFs in OSPFv3 [RFC5838] requires the use of an | |||
link-local address as the source address for Hello packets even when | IPv6 link-local address as the source address for Hello packets, even | |||
forming adjacencies for IPv4 AF instances. In most deployments of | when forming adjacencies for IPv4 AF instances. In most deployments | |||
OSPFv3 IPv4 AF, it is required that BFD is used to monitor and verify | of OSPFv3 IPv4 AFs, it is required that BFD is used to monitor and | |||
IPv4 data plane connectivity between the routers on the link and, | verify IPv4 data plane connectivity between the routers on the link; | |||
hence, the BFD session is setup using IPv4 neighbor addresses. The | hence, the BFD session is set up using IPv4 neighbor addresses. The | |||
IPv4 neighbor address on the interface is learned only later in the | IPv4 neighbor address on the interface is learned only later in the | |||
adjacency formation process when the neighbor's Link-LSA is received. | adjacency formation process when the neighbor's Link-LSA (Link State | |||
This results in the setup of the BFD IPv4 session either after the | Advertisement) is received. This results in the setup of the BFD | |||
adjacency is established or later in the adjacency formation | IPv4 session either after the adjacency is established or later in | |||
sequence. | the adjacency formation sequence. | |||
To operate in OSPF BFD strict-mode, it is necessary for an OSPF | To operate in OSPF BFD strict-mode, it is necessary for an OSPF | |||
router to learn its neighbor's IPv4 link address during the Init | router to learn its neighbor's IPv4 link address during the Init | |||
state of adjacency formation (ideally when it receives the first | state of adjacency formation (ideally, when it receives the first | |||
hello). The use of the Local Interface IPv4 Address TLV (as defined | Hello). The use of the Local Interface IPv4 Address TLV (as defined | |||
in Section 3) in the LLS block of OSPFv3 Hello packets for IPv4 AF | in Section 3) in the LLS block advertised in OSPFv3 Hello packets for | |||
instances makes this possible. Implementations that support OSPF BFD | IPv4 AF instances makes this possible. Implementations that support | |||
strict-mode for OSPFv3 IPv4 AF instances MUST include the Local | OSPF BFD strict-mode for OSPFv3 IPv4 AF instances MUST include the | |||
Interface IPv4 Address TLV in the LLS block of their Hello packets | Local Interface IPv4 Address TLV in the LLS block advertised in their | |||
whenever the B-bit is also set in the LLS Options and Flags field. A | Hello packets whenever the B-bit is also set in the LLS Type 1 | |||
receiver MUST ignore the B-bit (i.e., not operate in strict mode for | Extended Options and Flags. A receiver MUST ignore the B-bit (i.e., | |||
BFD) when the Local Interface IPv4 Address TLV is not present in | not operate in strict-mode for BFD) when the Local Interface IPv4 | |||
OSPFv3 Hello messages for IPv4 AF OSPFv3 instances. | Address TLV is not present in OSPFv3 Hello messages for OSPFv3 IPv4 | |||
AF instances. | ||||
4.2. Graceful Restart Considerations | 4.2. Graceful Restart Considerations | |||
An implementation needs to handle scenarios where both graceful | An implementation needs to handle scenarios where both graceful | |||
restart (GR) and the OSPF BFD strict-mode are deployed together. The | restart (GR) and the OSPF BFD strict-mode are deployed together. The | |||
GR aspects discussed in section 3.3 of [RFC5882] also apply with OSPF | graceful restart aspects related to process restart scenarios | |||
BFD strict-mode. Additionally, in OSPF BFD strict-mode, since the | discussed in Section 3.3 of [RFC5882] also apply with OSPF BFD | |||
OSPF adjacency formation is delayed until the BFD session | strict-mode. Additionally, since the OSPF adjacency formation is | |||
establishment, the resultant delay in adjacency formation may affect | delayed until the BFD session establishment in OSPF BFD strict-mode, | |||
or break the GR-based recovery. In such cases, it is RECOMMENDED | the resultant delay in adjacency formation may affect or break the | |||
that the GR timers are set such that they provide sufficient time to | GR-based recovery. In such cases, it is RECOMMENDED that the GR | |||
allow for normal BFD session establishment delays. | timers are set such that they provide sufficient time to allow for | |||
normal BFD session establishment delays. | ||||
5. Operations & Management Considerations | 5. Operations and Management Considerations | |||
An implementation SHOULD report the BFD session status along with the | An implementation SHOULD report the BFD session status along with the | |||
OSPF Init adjacency state when OSPF BFD strict-mode is enabled and | OSPF Init adjacency state when OSPF BFD strict-mode is enabled and | |||
support logging operations on neighbor state transitions that include | support logging operations on neighbor state transitions that include | |||
the BFD events. This allows an operator to detect scenarios where an | the BFD events. This allows an operator to detect scenarios where an | |||
OSPF adjacency may be stuck waiting for BFD session establishment. | OSPF adjacency may be stuck waiting for BFD session establishment. | |||
In network deployments with noisy or degraded links with intermittent | In network deployments with noisy or degraded links with intermittent | |||
packet loss, BFD sessions may flap resulting in OSPF adjacency flaps. | packet loss, BFD sessions may flap, resulting in OSPF adjacency | |||
This in turn may cause routing churn. The use of OSPF BFD strict- | flaps. In turn, this may cause routing churn. The use of OSPF BFD | |||
mode along with mechanisms such as hold-down (a delay in the initial | strict-mode along with mechanisms such as hold-down (a delay in | |||
OSPF adjacency bringup following BFD session establishment) and/or | bringing up the initial OSPF adjacency following BFD session | |||
dampening (a delay in the OSPF adjacency bringup following failure | establishment) and/or dampening (a delay in bringing up the OSPF | |||
detected by BFD) may help reduce the frequency of adjacency flaps and | adjacency following failure detected by BFD) may help reduce the | |||
therefore reduce the associated routing churn. The details of these | frequency of adjacency flaps and therefore reduce the associated | |||
mechanisms are outside the scope of this document. | routing churn. The details of these mechanisms are outside the scope | |||
of this document. | ||||
[I-D.ietf-ospf-yang] specifies the base OSPF YANG model. The | [RFC9129] specifies the base OSPF YANG module. The required | |||
required configuration and operational elements for this feature are | configuration and operational elements for this feature are expected | |||
expected to be introduce as augmentation to this base OSPF YANG | to be introduced as augmentation to this base OSPF YANG module. | |||
model. | ||||
6. Backward Compatibility | 6. Backward Compatibility | |||
An implementation MUST support OSPF adjacency formation and | An implementation MUST support OSPF adjacency formation and | |||
operations with a neighbor router that does not advertise the OSPF | operations with a neighbor router that does not advertise the OSPF | |||
BFD strict-mode capability - both when that neighbor router does not | BFD strict-mode capability: both when that neighbor router does not | |||
support BFD and when it does support BFD but does not signal the OSPF | support BFD and when it does support BFD but does not signal the OSPF | |||
BFD strict-mode as described in this document. Implementations MAY | BFD strict-mode as described in this document. Implementations MAY | |||
provide a local configuration option to force BFD operation only in | provide a local configuration option to force BFD operation only in | |||
OSPF BFD strict-mode (i.e, adjacency will not come up unless BFD | OSPF BFD strict-mode (i.e, adjacency will not come up unless BFD | |||
session is established). In this case, an OSPF adjacency with a | session is established). In this case, an OSPF adjacency with a | |||
neighbor that does not support OSPF BFD strict-mode would not be | neighbor that does not support OSPF BFD strict-mode would not be | |||
established successfully. Implementations MAY provide a local | established successfully. Implementations MAY provide a local | |||
configuration option to enable BFD without the OSPF BFD strict-mode | configuration option to enable BFD without the OSPF BFD strict-mode, | |||
which results in the router not advertising the B-bit and BFD | which results in the router not advertising the B-bit and BFD | |||
operation being performed in the same way as prior to this | operation being performed in the same way as prior to this | |||
specification. | specification. | |||
The signaling specified in this document happens at a link-local | The signaling specified in this document happens at a link-local | |||
level between routers on that link. A router that does not support | level between routers on that link. A router that does not support | |||
this specification would ignore the B-bit in the LLS block of Hello | this specification would ignore the B-bit in the LLS block advertised | |||
packets from its neighbors and continue to establish BFD sessions, if | in Hello packets from its neighbors and continue to establish BFD | |||
enabled, without delaying the OSPF adjacency formation. Since a | sessions (if enabled) without delaying the OSPF adjacency formation. | |||
router that does not support this specification would not have set | Since a router that does not support this specification would not | |||
the B-bit in the LLS block of its own Hello packets, its neighbor | have set the B-bit in the LLS block advertised in its own Hello | |||
routers supporting this specification would not use OSPF BFD strict- | packets, its neighbor routers supporting this specification would not | |||
mode with such OSPF routers. As a result, the behavior would be the | use OSPF BFD strict-mode with such OSPF routers. As a result, the | |||
same as without this specification. Therefore, there are no backward | behavior would be the same as without this specification. Therefore, | |||
compatibility issues or implementations considerations beyond what is | there are no backward compatibility issues or implementation | |||
specified herein. | considerations beyond what is specified herein. | |||
7. IANA Considerations | 7. IANA Considerations | |||
This specification makes the following updates under the "Open | This specification makes the following updates under the "Open | |||
Shortest Path First (OSPF) Link Local Signaling (LLS) - Type/Length/ | Shortest Path First (OSPF) Link Local Signaling (LLS) - Type/Length/ | |||
Value Identifiers (TLV)" parameters. | Value Identifiers (TLV)" parameters. | |||
IANA is requested to make permanent the following values that have | * In the "LLS Type 1 Extended Options and Flags" registry, the B-bit | |||
been assigned via early allocation: | has been assigned the bit position 0x00000010. | |||
o In the "LLS Type 1 Extended Options and Flags" registry, the B-bit | ||||
is assigned the bit position 0x00000010 | ||||
o In the "Link Local Signaling TLV Identifiers (LLS Types)" registry, | * In the "Link Local Signaling TLV Identifiers (LLS Types)" | |||
the Type 21 is assigned to the Local Interface IPv4 Address TLV | registry, the Type 21 has been assigned to the Local Interface | |||
IPv4 Address TLV. | ||||
8. Security Considerations | 8. Security Considerations | |||
The security considerations for "OSPF Link-Local Signaling" [RFC5613] | The security considerations for "OSPF Link-Local Signaling" [RFC5613] | |||
also apply to the extension described in this document. | also apply to the extension described in this document. | |||
Inappropriate use of the B-bit in the LLS block of an OSPF hello | Inappropriate use of the B-bit in the LLS block of an OSPF Hello | |||
message could prevent an OSPF adjacency from forming or lead to | message could prevent an OSPF adjacency from forming or lead to the | |||
failure to detect bidirectional forwarding failures. If | failure of detecting bidirectional forwarding failures. If | |||
authentication is being used in the OSPF routing domain | authentication is being used in the OSPF routing domain [RFC5709] | |||
[RFC5709][RFC7474], then the Cryptographic Authentication TLV | [RFC7474], then the Cryptographic Authentication TLV [RFC5613] MUST | |||
[RFC5613] MUST also be used to protect the contents of the LLS block. | also be used to protect the contents of the LLS block. | |||
9. Acknowledgements | ||||
The authors would like to acknowledge the review and inputs from Acee | ||||
Lindem, Manish Gupta, Balaji Ganesh, Les Ginsberg, Robert Raszuk, | ||||
Gyan Mishra, Muthu Arul Mozhi Perumal, Russ Housley, and Wes | ||||
Hardaker. | ||||
The authors would like to acknowledge Dylan van Oudheusden for | ||||
highlighting the problems in using OSPF BFD strict-mode for BFD | ||||
session for IPv4 AF instance with OSPFv3 and Baalajee S for his | ||||
suggestions on the approach to address it. | ||||
The authors would like to thank John Scudder for his AD review and | ||||
suggestions to improve the document. | ||||
10. References | 9. References | |||
10.1. Normative References | 9.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/rfc/rfc2119>. | |||
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
<https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/rfc/rfc2328>. | |||
[RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF | [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF | |||
for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, | for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, | |||
<https://www.rfc-editor.org/info/rfc5340>. | <https://www.rfc-editor.org/rfc/rfc5340>. | |||
[RFC5613] Zinin, A., Roy, A., Nguyen, L., Friedman, B., and D. | [RFC5613] Zinin, A., Roy, A., Nguyen, L., Friedman, B., and D. | |||
Yeung, "OSPF Link-Local Signaling", RFC 5613, | Yeung, "OSPF Link-Local Signaling", RFC 5613, | |||
DOI 10.17487/RFC5613, August 2009, | DOI 10.17487/RFC5613, August 2009, | |||
<https://www.rfc-editor.org/info/rfc5613>. | <https://www.rfc-editor.org/rfc/rfc5613>. | |||
[RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and | [RFC5838] Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and | |||
R. Aggarwal, "Support of Address Families in OSPFv3", | R. Aggarwal, "Support of Address Families in OSPFv3", | |||
RFC 5838, DOI 10.17487/RFC5838, April 2010, | RFC 5838, DOI 10.17487/RFC5838, April 2010, | |||
<https://www.rfc-editor.org/info/rfc5838>. | <https://www.rfc-editor.org/rfc/rfc5838>. | |||
[RFC5882] Katz, D. and D. Ward, "Generic Application of | [RFC5882] Katz, D. and D. Ward, "Generic Application of | |||
Bidirectional Forwarding Detection (BFD)", RFC 5882, | Bidirectional Forwarding Detection (BFD)", RFC 5882, | |||
DOI 10.17487/RFC5882, June 2010, | DOI 10.17487/RFC5882, June 2010, | |||
<https://www.rfc-editor.org/info/rfc5882>. | <https://www.rfc-editor.org/rfc/rfc5882>. | |||
[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/rfc/rfc8174>. | |||
10.2. Informative References | ||||
[I-D.ietf-ospf-yang] | 9.2. Informative References | |||
Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, | ||||
"YANG Data Model for OSPF Protocol", Work in Progress, | ||||
Internet-Draft, draft-ietf-ospf-yang-29, 17 October 2019, | ||||
<https://www.ietf.org/archive/id/draft-ietf-ospf-yang- | ||||
29.txt>. | ||||
[RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M., | [RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M., | |||
Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic | Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic | |||
Authentication", RFC 5709, DOI 10.17487/RFC5709, October | Authentication", RFC 5709, DOI 10.17487/RFC5709, October | |||
2009, <https://www.rfc-editor.org/info/rfc5709>. | 2009, <https://www.rfc-editor.org/rfc/rfc5709>. | |||
[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/rfc/rfc5880>. | |||
[RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, | (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, | |||
June 2010, <https://www.rfc-editor.org/info/rfc5883>. | June 2010, <https://www.rfc-editor.org/rfc/rfc5883>. | |||
[RFC6213] Hopps, C. and L. Ginsberg, "IS-IS BFD-Enabled TLV", | [RFC6213] Hopps, C. and L. Ginsberg, "IS-IS BFD-Enabled TLV", | |||
RFC 6213, DOI 10.17487/RFC6213, April 2011, | RFC 6213, DOI 10.17487/RFC6213, April 2011, | |||
<https://www.rfc-editor.org/info/rfc6213>. | <https://www.rfc-editor.org/rfc/rfc6213>. | |||
[RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., | |||
"Security Extension for OSPFv2 When Using Manual Key | "Security Extension for OSPFv2 When Using Manual Key | |||
Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, | |||
<https://www.rfc-editor.org/info/rfc7474>. | <https://www.rfc-editor.org/rfc/rfc7474>. | |||
[RFC9129] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
"YANG Data Model for the OSPF Protocol", RFC 9129, | ||||
DOI 10.17487/RFC9129, October 2022, | ||||
<https://www.rfc-editor.org/rfc/rfc9129>. | ||||
Acknowledgements | ||||
The authors would like to acknowledge the review and inputs from Acee | ||||
Lindem, Manish Gupta, Balaji Ganesh, Les Ginsberg, Robert Raszuk, | ||||
Gyan Mishra, Muthu Arul Mozhi Perumal, Russ Housley, and Wes | ||||
Hardaker. | ||||
The authors would like to acknowledge Dylan van Oudheusden for | ||||
highlighting the problems in using OSPF BFD strict-mode for BFD | ||||
sessions for OSPFv3 IPv4 AF instances and Baalajee S for his | ||||
suggestions on the approach to address it. | ||||
The authors would like to thank John Scudder for his AD review and | ||||
suggestions to improve the document. | ||||
Authors' Addresses | Authors' Addresses | |||
Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
India | India | |||
Email: ketant.ietf@gmail.com | Email: ketant.ietf@gmail.com | |||
Peter Psenak | Peter Psenak | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Apollo Business Center | Apollo Business Center | |||
Mlynske nivy 43 | Mlynske nivy 43 | |||
821 09 Bratislava | 821 09 Bratislava | |||
Slovakia | Slovakia | |||
Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
Albert Fu | Albert Fu | |||
Bloomberg | Bloomberg | |||
End of changes. 67 change blocks. | ||||
226 lines changed or deleted | 221 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |