RFC 6608

Subcodes for BGP Finite State Machine Error

πŸ“… published May 2012, from ietf

RFC 6608: Subcodes for BGP Finite State Machine Error ✨

okay bestie, let's start with the ID card πŸͺͺπŸŽ€

Document: RFC 6608 πŸ’– Title: Subcodes for BGP Finite State Machine Error πŸ¦‹ Series: Internet Engineering Task Force (IETF), Request for Comments 🌸 Category: Standards Track (so this one is officially a standard, not just vibes) πŸ‘‘ Date: May 2012 πŸ“… ISSN: 2070-1721 πŸ“ Updates: RFC 4271 (this one changes how RFC 4271 works, so it's a big deal) πŸ”₯ Obsoletes: nothing listed in the header πŸ™ˆ Authors: J. Dong (Jie Dong, Huawei Technologies), M. Chen (Mach Chen, Huawei Technologies), and A. Suryanarayana (Anantharamu Suryanarayana, Cisco Systems) 🫢


Abstract

okay so this doc defines a few subcodes for the BGP Finite State Machine (FSM) Error. the whole point is to give network operators more info so they can figure out BGP FSM issues and connect the dots between network events. it's lowkey a huge upgrade for debugging 😭✨ this document updates RFC 4271, which is the main BGP spec, so yes it's a whole main character moment πŸ’…


Status of This Memo

this is an Internet Standards Track document πŸ‘‘

this doc is a product of the Internet Engineering Task Force (IETF). it represents the consensus of the IETF community, and it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). for more on Internet Standards, check Section 2 of RFC 5741.

for the current status of this doc, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc6608 πŸ¦‹


Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. πŸ”’

this document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the date this document was published. please read these carefully, bestie, because they describe your rights and restrictions for this doc. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License πŸ’–


Table of Contents πŸ“–

1. Introduction ....................................................2
2. Requirements Language ...........................................2
3. Definition of Finite State Machine Error Subcodes ...............2
4. Usage of FSM Error Subcodes .....................................2
5. Security Considerations .........................................3
6. IANA Considerations .............................................3
7. Contributors ....................................................4
8. Acknowledgements ................................................4
9. References ......................................................4
   9.1. Normative References .......................................4
   9.2. Informative References .....................................4

1. Introduction ✨

okay so this doc defines several subcodes for the BGP [RFC4271] Finite State Machine (FSM) Error. these give more info to help network operators diagnose BGP FSM issues and correlate network events. it's also helpful for developers in lab situations πŸ§ͺ and it updates [RFC4271] by requiring that BGP implementations insert appropriate FSM Error subcodes in NOTIFICATION messages for BGP FSM errors. that's the big ask, periodt πŸ’…

2. Requirements Language πŸŽ€

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. these are the official vibe checks for how strict each rule is 🫢

3. Definition of Finite State Machine Error Subcodes 🌈

this doc defines the following subcodes for the BGP Finite State Machine Error:

0 - Unspecified Error

1 - Receive Unexpected Message in OpenSent State

2 - Receive Unexpected Message in OpenConfirm State

3 - Receive Unexpected Message in Established State

4. Usage of FSM Error Subcodes πŸ”₯

okay this is the actual rule section, so pay attention bestie πŸ‘€

if a BGP speaker gets an unexpected message (like a KEEPALIVE/ UPDATE/ROUTE-REFRESH message) on a session in OpenSent state, it MUST send a NOTIFICATION message to the neighbor with the Error Code Finite State Machine Error and the Error Subcode "Receive Unexpected Message in OpenSent State". the Data field is a 1-octet, unsigned integer that tells you the type of the unexpected message πŸ“

if a BGP speaker gets an unexpected message (like an OPEN/UPDATE/ROUTE-REFRESH message) on a session in OpenConfirm state, it MUST send a NOTIFICATION message with the Error Code Finite State Machine Error and the Error Subcode "Receive Unexpected Message in OpenConfirm State" to the neighbor. the Data field is a 1-octet, unsigned integer that indicates the type of the unexpected message ✨

if a BGP speaker gets an unexpected message (like an OPEN message) on a session in Established State, it MUST send a NOTIFICATION message to the neighbor with the Error Code Finite State Machine Error and the Error Subcode "Receive Unexpected Message in Established State". the Data field is a 1-octet, unsigned integer that indicates the type of the unexpected message πŸ’œ

5. Security Considerations πŸ”’

ngl this section is serious, so read it carefully πŸ™ˆ

specifying, implementing, and deploying the proposed BGP FSM Error subcodes could make BGP implementation fingerprinting easier and probably more accurate. operators using BGP need to treat this as an operational security consideration when they make their BGP deployment decisions πŸ’€

[BFMR2010] discusses a number of BGP security issues and potential solutions that might be relevant to both BGP implementers and BGP operators πŸ›‘οΈ

6. IANA Considerations 🌸

IANA has created the registry "BGP Finite State Machine Error Subcodes", within the "BGP Error Subcodes" registry. its Registration Procedure is "Standards Action" as defined in [RFC5226], and early allocation of such subcodes is allowed in accordance with [RFC4020] 🧚

the registry is populated with these values:

Value      Name
  0        Unspecified Error
  1        Receive Unexpected Message in OpenSent State
  2        Receive Unexpected Message in OpenConfirm State
  3        Receive Unexpected Message in Established State

7. Contributors 🫢

the following people contributed to this document:

Xiaoming Gu EMail: guxiaoming@huawei.com

Chong Wang EMail: chongwang@huawei.com

8. Acknowledgements πŸ’–

the authors want to thank John Scudder, Jeffrey Haas, Susan Hares, Keyur Patel, Enke Chen, Ruediger Volk, and Ran Atkinson for their valuable suggestions and comments on this doc. iconic team πŸ‘‘

9. References πŸ“š

9.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC4020]  Kompella, K. and A. Zinin, "Early IANA Allocation of
           Standards Track Code Points", BCP 100, RFC 4020, February
           2005.

[RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
           Border Gateway Protocol 4 (BGP-4)", RFC 4271, January
           2006.

[RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
           IANA Considerations Section in RFCs", BCP 26, RFC 5226,
           May 2008.

9.2. Informative References

[BFMR2010] Butler, K., Farley, T., Mcdaniel, P., and J. Rexford, "A
           Survey of BGP Security Issues and Solutions", January
           2010.

Authors' Addresses 🏑

Jie Dong
Huawei Technologies
Huawei Building, No.156 Beiqing Rd
Beijing 100095
China

EMail: jie.dong@huawei.com


Mach Chen
Huawei Technologies
Huawei Building, No.156 Beiqing Rd
Beijing 100095
China

EMail: mach.chen@huawei.com


Anantharamu Suryanarayana
Cisco Systems
USA

EMail: asuryana@cisco.com
πŸ“¦ where this page comes from