RFC 4812

OSPF Restart Signaling

πŸ“… published March 2007, from ietf

RFC 4812: OSPF Restart Signaling πŸŽ€

Network Working Group 🌸 this one is from March 2007, and it's an Informational doc, so it's sharing info, not setting an Internet standard. ✨

Authors: L. Nguyen and A. Roy from Cisco Systems, plus A. Zinin from Alcatel-Lucent. πŸ‘‘

Obsoletes/Updates: the title block doesn't list anything this one obsoletes or updates. πŸ¦‹


Status of This Memo πŸ’…

okay so this memo is for information only for the Internet community 🌈 It is NOT an Internet standard of any kind, and you can distribute it freely with no limits. 🫢

Copyright (C) The IETF Trust (2007). πŸ’œ

Abstract ✨

OSPF is a link-state intra-domain routing protocol used in IP networks. 🌐 Routers find new neighbors and spot unreachable ones using the Hello subprotocol, and Hello packets also keep two-way connectivity checked in time. ⏰

Here's the tea πŸ«– When a router restarts its OSPF software, it might not know who its neighbors are anymore. If that router sends a Hello packet on an interface, its neighbors are going to reset the adjacency, which is not always what anyone wants. 😭

This memo describes a vendor-specific mechanism that lets OSPF routers tell their neighbors about the restart. ✨ It only works if the neighboring routers support it too. 🀝 The mechanism was proposed before Graceful OSPF Restart (RFC 3623) existed. 🧚 At least one major vendor has implemented and supports it, and it's deployed in the field right now. πŸ”₯ The whole point of this doc is to write down the details for public use. It is not an IETF standard. πŸŽ€

Table of Contents πŸ“š

   1. Introduction ....................................................2
   2. Proposed Solution ...............................................2
      2.1. Sending Hello Packets with the RS-bit Set ..................3
      2.2. Receiving Hello Packets with the RS-Bit Set ................3
      2.3. Ensuring Topology Stability ................................4
   3. Backward Compatibility ..........................................4
   4. Security Considerations .........................................4
   5. IANA Considerations .............................................4
   6. References ......................................................5
      6.1. Normative References .......................................5
      6.2. Informative References .....................................5
   Appendix A.  Acknowledgements ......................................6

1. Introduction 🌸

okay so when a router is doing a graceful restart of its OSPF software [RFC3623], it really needs to stop its neighbors from resetting their adjacencies. πŸ™ˆ The problem is that after a reload, the router might not remember which neighbors it had adjacencies with before. πŸ’€ If it sends a Hello packet on an interface and that packet leaves out some neighbors, those neighbors will reset the adjacency with the restarting router. 😭

This document describes a technique that lets a restarting router tell its neighbors that it may not know about some of them yet. ✨ It also tells them that missing router IDs in Hello packets should be ignored. πŸ¦‹

2. Proposed Solution πŸ’–

With this Restart Signaling Solution, a brand new bit called RS (restart signal) gets added to the Extended Options (EO) TLV inside the Link-Local Signaling (LLS) block (see [RFC4813]). πŸŽ€ Its value is 0x00000002, and you can see it in Figure 1 below. πŸ‘€

   +---+---+---+---+---+---+---+- -+---+---+---+---+---+---+---+---+
   | * | * | * | * | * | * | * |...| * | * | * | * | * | * | RS| LR|
   +---+---+---+---+---+---+---+- -+---+---+---+---+---+---+---+---+

Figure 1. Bits in Extended Options TLV πŸ“

For the LR-bit, check out [RFC4811]. 🧚

2.1. Sending Hello Packets with the RS-bit Set πŸ“€

OSPF routers should set the RS-bit in the EO-TLV attached to a Hello packet when it is not known that all neighbors are listed in that packet, but the restarting router wants them to keep their adjacencies. πŸ’… The RS-bit must not be set in Hello packets that are longer than RouterDeadInterval seconds. ⏳

2.2. Receiving Hello Packets with the RS-Bit Set πŸ“₯

When an OSPF router gets a Hello packet with the LLS block, and the EO-TLV in it has the RS-bit set, the router should skip the two-way connectivity check with the neighbor that sent it. 🫢 What that means: the router should not generate a 1-WayReceived event for that neighbor if it can't find its own router ID in the neighbor list, as described in Section 10.5 of [RFC2328]. This only happens if the neighbor's Finite State Machine (FSM) is in the Full state. πŸ”₯

The router should also send a unicast Hello back to the sender in reply to a Hello packet with the RS-bit set. πŸ’Œ This helps previously known neighbors get learned faster. πŸš€ When sending that reply, care must be taken to make sure the RS-bit is clear in it. 🧼

Two new fields get added to the neighbor data structure: a RestartState flag and a ResyncTimeout timer. πŸŽ€ The RestartState flag means a Hello packet with the RS-bit set has come in, and the local router expects its neighbor to go through the Link State Database (LSDB) resynchronization procedure using [RFC4811]. 🌈 ResyncTimeout is a single-shot timer that limits how long it takes between the first Hello packet with the RS-bit set and starting the LSDB resynchronization procedure. ⏰ Its length is RouterDeadInterval seconds. πŸ•°οΈ

When a Hello packet with the RS-bit set arrives and the RestartState flag isn't set for that neighbor, the router sets the RestartState flag and starts the ResyncTimeout timer. 🧚 If ResyncTimeout expires, the RestartState flag gets cleared and a 1-WayReceived event is generated for the neighbor. 😬 If the neighbor starts the LSDB resynchronization procedure using [RFC4811] while the ResyncTimeout timer is still running, the timer gets canceled. πŸ™Œ The router also clears the RestartState flag once the LSDB resynchronization is complete. βœ…

Two or more routers on the same segment can't have Hello packets with the RS-bit set at the same time. πŸ™ƒ That can happen when two or more routers restart at about the same moment. πŸ’₯ In that situation, the routers should clear the RestartState flag, cancel the ResyncTimeout timer, and generate a 1-WayReceived event. 🧹

2.3. Ensuring Topology Stability 🌊

Sometimes it might be desirable to stop announcing the restarting router as fully adjacent, if doing so could lead to possible routing loops. πŸ” To make that possible, the neighboring routers get a configurable option that tells the OSPF process to follow the logic described below. βš™οΈ

When an OSPF router schedules a routing table calculation because its LSDB changed, it should also reset all adjacencies with restarting routers (the ones with RestartState set to TRUE). πŸ’« It does that by clearing the RestartState neighbor flags, canceling any running ResyncTimeout timers, and generating 1-WayReceived events for the neighbor FSMs. πŸŽ€

3. Backward Compatibility πŸ”™

The technique described here needs cooperation from neighboring routers. 🀝 But if the neighbors don't support it, they'll just reset the adjacency. πŸ˜…

4. Security Considerations πŸ”

The described technique does not introduce any new security issues into the OSPF protocol. πŸ›‘οΈπŸ’œ

5. IANA Considerations πŸ“‹

For more info on the Extended Options bit definitions, please refer to the "IANA Considerations" section of [RFC4813]. πŸ—‚οΈ

6. References πŸ“–

6.1. Normative References πŸ’Ž

  • [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.
  • [RFC3623] Moy, J., Pillay-Esnault, P., and A. Lindem, "Graceful OSPF Restart", RFC 3623, November 2003.

6.2. Informative References πŸ¦‹

  • [RFC4813] Friedman, B., Nguyen, L., Roy, A., Yeung, D., and A. Zinin, "OSPF Link-Local Signaling", RFC 4813, March 2007.
  • [RFC4811] Nguyen, L., Roy, A., and A. Zinin, "OSPF Out-of-Band Link State Database (LSDB) Resynchronization", RFC 4811, March 2007.

Appendix A. Acknowledgments πŸ™

The authors want to thank John Moy, Russ White, Don Slice, and Alvaro Retana for their valuable comments. πŸ’–

Authors' Addresses 🏑

Liem Nguyen Cisco Systems 225 West Tasman Drive San Jose, CA 95134 USA EMail: lhnguyen@cisco.com

Abhay Roy Cisco Systems 225 West Tasman Drive San Jose, CA 95134 USA EMail: akr@cisco.com

Alex Zinin Alcatel-Lucent Mountain View, CA USA EMail: alex.zinin@alcatel-lucent.com

Copyright (C) The IETF Trust (2007).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. ✨

This document and the information in it are provided on an "AS IS" basis. THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. πŸ™ƒ

Intellectual Property 🧾

The IETF takes no position on the validity or scope of any Intellectual Property Rights or other rights that might be claimed to apply to the implementation or use of the technology in this document. It also doesn't say whether any license under those rights might be available, and it hasn't made any independent effort to find such rights. πŸ•΅οΈ Info on how rights work for RFC documents is in BCP 78 and BCP 79. πŸ“š

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt to get a general license or permission for implementers or users to use these proprietary rights can be found in the IETF online IPR repository at http://www.ietf.org/ipr. πŸ”—

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org. πŸ’Œ

Acknowledgement πŸ’œ

Funding for the RFC Editor function is currently provided by the Internet Society. 🫢🌸

πŸ“¦ where this page comes from