RFC 9384

A BGP Cease NOTIFICATION Subcode for Bidirectional Forwarding Detection (BFD)

πŸ“… published March 2023, from ietf

RFC 9384: A BGP Cease NOTIFICATION Subcode for Bidirectional Forwarding Detection (BFD) πŸ¦‹

okay bestie, so this one is from J. Haas at Juniper Networks πŸ’–, and it's a Standards Track doc, dated March 2023 🌸. It's the ISSN 2070-1721 one, and it doesn't obsolete or update anything else, so it's a clean fresh start ✨. The whole point is a new Cease NOTIFICATION subcode for BGP, the one you send when a connection is closing because a BFD session went down πŸ”₯.


Abstract

okay so BFD (that's RFC 5880) is the protocol that detects loss of connectivity between two forwarding engines, and it's SO fast πŸ’…. Routing protocols like BGP use it to tear down their connections way quicker than their own timers would. This doc defines a subcode for the BGP Cease NOTIFICATION message (Section 6.7 of RFC 4271) for when a BGP connection gets closed because a BFD session went down 🫢.

Status of This Memo

this is an Internet Standards Track document πŸŽ€. It's a product of the IETF, it has the consensus of the IETF community, it got public review, and the IESG approved it for publication. If you want more on Internet Standards, check out Section 2 of RFC 7841 🌈. Errata and feedback live at https://www.rfc-editor.org/info/rfc9384 πŸ’œ.

Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved πŸ”’. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date, so read them carefully, bestie πŸ™ˆ. Code Components pulled out of this doc must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in that license πŸ“.

Table of Contents

1.  Introduction
2.  Requirements Language
3.  BFD Cease NOTIFICATION Subcode
4.  Operational Considerations
5.  Security Considerations
6.  IANA Considerations
7.  References
  7.1.  Normative References
  7.2.  Informative References
Acknowledgments
Author's Address

1. Introduction ✨

okay so BFD ([RFC5880]) detects loss of connectivity between two forwarding engines, usually with super low latency ⚑. It's used as a service for different clients, routing protocols included, as an advisory mechanism so those clients can act when a BFD session goes down ([RFC5882]). The clients usually use this to close their connections faster than their original protocol timers would allow πŸ’–.

BGP-4 ([RFC4271]) kills its connections when the Hold Timer expires, which happens if the speaker doesn't get a BGP message within the negotiated Hold Time interval πŸ₯Ί. Per Sections 4.2 and 4.4 of [RFC4271], the minimum Hold Time interval is at least three seconds, unless KEEPALIVE processing got turned off by negotiating the special Hold Time of zero 🧚.

so if a BGP speaker wants its connections to end faster than the negotiated BGP Hold Timer can handle after losing connectivity with a neighbor, it can rely on BFD to provide that faster detection πŸƒβ€β™€οΈ. When the BFD session state changes to Down, the BGP speaker sends a Cease NOTIFICATION message to the neighbor if it can, and then closes the TCP connection for that session πŸ’….

This doc defines a subcode, "BFD Down", to go with the Cease NOTIFICATION message, so everyone knows the reason for this kind of connection termination 🫢.

2. Requirements Language

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in BCP 14 ([RFC2119] [RFC8174]) when, and only when, they show up in all capitals, just like here πŸ“šβœ¨.

3. BFD Cease NOTIFICATION Subcode πŸŽ€

IANA has allocated the value 10 for the "BFD Down" Cease NOTIFICATION message subcode πŸ”’.

When a BGP connection gets terminated because a BFD session went into the Down state, the BGP speaker SHOULD send a NOTIFICATION message with the error code "Cease" and the error subcode "BFD Down" πŸ’œ.

4. Operational Considerations πŸ› οΈ

A BFD session can go into the Down state when there's only a partial loss of connectivity between two BGP speakers πŸ™ƒ. Operators using BFD for their BGP connections pick their BFD timers based on different criteria, like stability vs. fast failure πŸ“Š.

If a BGP connection gets terminated because of a "BFD Down" event from partial loss of connectivity, as detected by BFD, the remote BGP speaker might be able to receive a BGP Cease NOTIFICATION message with the "BFD Down" subcode πŸ“©. The receiving speaker then knows the connection ended because of something BFD caught, not because of a problem with the BGP speaker itself 🧠.

When there's a total loss of connectivity between two BGP speakers, the Cease NOTIFICATION message might not have been sendable at all 😭. Even so, BGP speakers SHOULD still record this reason as part of their operational state πŸ“. Examples include bgpPeerLastError from the BGP MIB ([RFC4273]) and "last-error" from [BGP-YANG] 🌸.

When the procedures in [RFC8538] for sending a NOTIFICATION message with a "Cease" code and "Hard Reset" subcode are required, and the BGP connection is being terminated because BFD went into the Down state, the "BFD Down" subcode SHOULD be encapsulated in the data portion of the Hard Reset NOTIFICATION message 🎁.

5. Security Considerations πŸ”

Okay this one's serious, so pay attention 🚨. The subcode is purely informational.

Similar to [RFC4486], this document defines a subcode for the BGP Cease NOTIFICATION message that helps network operators correlate network events and diagnose BGP peering issues πŸ”. This subcode is purely informational and has no effect on the BGP Finite State Machine beyond what [RFC4271], Sections 6.6 and 6.7, already documents 🧩.

6. IANA Considerations πŸ“‹

IANA assigned the value 10 from the "BGP Cease NOTIFICATION message subcodes" registry (https://www.iana.org/assignments/bgp-parameters/), with the name "BFD Down" and a reference to this document πŸ’….

7. References πŸ“š

7.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <https://www.rfc-editor.org/info/rfc2119>.

[RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
           Border Gateway Protocol 4 (BGP-4)", RFC 4271,
           DOI 10.17487/RFC4271, January 2006,
           <https://www.rfc-editor.org/info/rfc4271>.

[RFC5880]  Katz, D. and D. Ward, "Bidirectional Forwarding Detection
           (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
           <https://www.rfc-editor.org/info/rfc5880>.

[RFC5882]  Katz, D. and D. Ward, "Generic Application of
           Bidirectional Forwarding Detection (BFD)", RFC 5882,
           DOI 10.17487/RFC5882, June 2010,
           <https://www.rfc-editor.org/info/rfc5882>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8538]  Patel, K., Fernando, R., Scudder, J., and J. Haas,
           "Notification Message Support for BGP Graceful Restart",
           RFC 8538, DOI 10.17487/RFC8538, March 2019,
           <https://www.rfc-editor.org/info/rfc8538>.

7.2. Informative References

[BGP-YANG] Jethanandani, M., Patel, K., Hares, S., and J. Haas, "YANG
           Model for Border Gateway Protocol (BGP-4)", Work in
           Progress, Internet-Draft, draft-ietf-idr-bgp-model-16, 1
           March 2023, <https://datatracker.ietf.org/doc/html/draft-
           ietf-idr-bgp-model-16>.

[RFC4273]  Haas, J., Ed. and S. Hares, Ed., "Definitions of Managed
           Objects for BGP-4", RFC 4273, DOI 10.17487/RFC4273,
           January 2006, <https://www.rfc-editor.org/info/rfc4273>.

[RFC4486]  Chen, E. and V. Gillet, "Subcodes for BGP Cease
           Notification Message", RFC 4486, DOI 10.17487/RFC4486,
           April 2006, <https://www.rfc-editor.org/info/rfc4486>.

Acknowledgments πŸ’–

thank you to Jeff Tantsura and Dale Carder for their comments on this doc 🫢. Mohamed Boucadair gave feedback during the Routing Directorate review 🌷.

In 2006, Bruno Rijsman wrote a proposal that was pretty much the same idea, draft-rijsman-bfd-down-subcode 🧚. That draft didn't move forward in the Inter-Domain Routing (IDR) Working Group back then, and the author of this doc didn't know about Bruno's earlier work when they wrote this one 😭.

Author's Address πŸ¦‹

Jeffrey Haas Juniper Networks Email: jhaas@juniper.net

πŸ“¦ where this page comes from