RFC 4811
OSPF Out-of-Band Link State Database (LSDB) Resynchronization
RFC 4811: OSPF Out-of-Band Link State Database (LSDB) Resynchronization β¨
Network Working Group ποΈ vibes, and the title block is giving informational. This is RFC 4811, dated March 2007. It was written by L. Nguyen (Cisco Systems), A. Roy (Cisco Systems), and A. Zinin (Alcatel-Lucent). The title block doesn't list anything it obsoletes or updates, so there's no such line. π
Status of This Memo π
Okay so this memo is here to give info to the Internet community π. It is not an Internet standard of any kind, and anyone can share it freely with zero restrictions π¦.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract πΈ
OSPF is a link-state intra-domain routing protocol used in IP networks β¨. It keeps its Link State Database (LSDB) in sync in two ways. First there's the initial sync, which happens when an OSPF router has just joined the network. Then there's asynchronous flooding, which keeps everything synced after topology changes once that first step is done π . Sometimes routers do need to resync their LSDBs, but the OSPF standard doesn't let them do that without actually changing their view of the network's topology π.
This memo describes a vendor-specific mechanism for doing that kind of out-of-band LSDB sync π«Ά. It was proposed before Graceful OSPF Restart, which is in RFC 3623, existed π§. At least one major vendor implements and supports it, and it's already deployed in the field π₯. This document is here to capture the details so the public can use them. It is not an IETF standard π.
Table of Contents ποΈ
1. Introduction ....................................................2
2. Proposed Solution ...............................................2
2.1. The LR-Bit .................................................3
2.2. OSPF Neighbor Data Structure ...............................3
2.3. Hello Packets ..............................................4
2.4. DBD Packets ................................................4
2.5. Neighbor State Treatment ...................................7
2.6. Initiating OOB LSDB Resynchronization ......................7
3. Backward Compatibility ..........................................7
4. Security Considerations .........................................7
5. IANA Considerations .............................................7
6. References ......................................................8
6.1. Normative References .......................................8
6.2. Informative References .....................................8
Appendix A. Acknowledgements ......................................9
1. Introduction π¦
Okay so according to the OSPF standard [RFC2328], once two OSPF routers have made an adjacency (their neighbor Finite State Machines (FSMs) have hit Full state), the routers advertise those adjacency states in their router-Link State Advertisements (LSAs) π. The asynchronous flooding algorithm is what keeps the routers' LSDBs in sync when the topology changes π₯.
But here's the problem π. If routers need to resync their LSDBs for some reason, they can't do it without actually shoving the neighbor FSMs into the ExStart state. That effectively removes the adjacencies from the router-LSAs. That's a big no if you're trying to avoid routing table flaps during a database resync π. So in this document, we're providing a way to do so-called out-of-band (OOB) LSDB resynchronization π.
The mechanism can be used in a bunch of situations, including when routers are picking up adjacencies after a reload πΈ. Adjacency preemption is out of scope for this document π . The only details covered here are the ones related to LSDB resynchronization β¨.
2. Proposed Solution π
With this Out-of-Band Resynchronization Solution, the OSPF Database Description (DBD) packet format changes to include a new R-bit that signals OOB LSDB resynchronization π. Every DBD packet sent during the OOB resync procedure goes out with the R-bit set π.
Two new fields also get added to the neighbor data structure π§. The first one shows whether a neighbor can do OOB resync. The second one shows that OOB LSDB resync is currently happening. That second field is clever because it lets OSPF implementations reuse the existing neighbor FSM code π«Ά.
A bit is taken in the Extended Options (EO) TLV (see [RFC4813]) π. Routers set this bit to say they can support this technique β¨.
2.1. The LR-Bit π¦
A new bit called LR (LR stands for LSDB Resynchronization) is added to the LLS Extended Options TLV (see [RFC4813]) π. Its value is 0x00000001, as you can see in Figure 1 π. For more on the Extended Options bit definitions, check the "IANA Considerations" section of [RFC4813] π. Routers set the LR-bit to announce that they can do OOB LSDB resynchronization π₯.
+---+---+---+---+---+---+---+- -+---+---+---+---+---+---+---+---+
| * | * | * | * | * | * | * |...| * | * | * | * | * | * | * | LR|
+---+---+---+---+---+---+---+- -+---+---+---+---+---+---+---+---+
Figure 1. The Options Field
Routers that support the OOB LSDB resync technique set the LR-bit in the EO-TLV inside the LLS block attached to both Hello and DBD packets πΈ. Heads up, though: no bit gets set in the standard OSPF Options field π. That's true for OSPF packets and for LSAs too π .
2.2. OSPF Neighbor Data Structure π
A new field gets added to the OSPF neighbor data structure, as described below β¨. It's called OOBResync, and it's a flag that means the router is currently doing OOB LSDB resynchronization with that neighbor π.
The OOBResync flag gets set when the router starts an OOB LSDB resynchronization (see Section 2.6 for more details) π§.
Routers clear the OOBResync flag under these conditions π«Ά:
- The neighbor data structure is first created.
- The neighbor FSM transitions to any state lower than
ExStart. - The neighbor FSM transitions to the
ExStartstate because a DBD packet with the R-bit clear has been received. - The neighbor FSM reaches the state
Full.
Note that the OOBResync flag can only be TRUE while the neighbor FSM is in ExStart, Exchange, or Loading π. As mentioned above, if the FSM moves to any other state, the OOBResync flag should be cleared π
.
It's important to know that this document doesn't change how the OSPF neighbor FSM operates π₯. What does change is what the router sends: depending on the state of the OOBResync flag, it sends either normal DBD packets or DBD packets with the R-bit set π.
2.3. Hello Packets π
Routers that can do OOB LSDB resynchronization should always set the LR-bit in their Hello packets πΈ. Basically, this is how everyone knows you're ready for the OOB resync energy β¨.
2.4. DBD Packets β¨
Okay bestie, routers that do this trick SHOULD always set the LR-bit in their DBD packets π. The Options field from the very first DBD packet gets stored in the neighbor data structure, so the LR-bit MAY be used later to check if a neighbor can do OOB LSDB resynchronization π.
The DBD packet (type 2 OSPF) gets a glow-up π with a new flag for the OOB LSDB resynchronization procedure. Figure 2 shows the new look.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | 2 | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Interface MTU | Options |0|0|0|0|R|I|M|MS
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DD sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+- -+
| |
+- An LSA Header -+
| |
+- -+
| |
+- -+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Figure 2. Modified DBD Packet
The R-bit in OSPF type 2 packets gets set when the OOBResync flag for that specific neighbor is TRUE. If a DBD packet arrives with the R-bit clear for a neighbor with an active OOBResync flag, the OOB LSDB resynchronization process gets canceled and the normal LSDB synchronization procedure kicks in π.
When a DBD packet comes in with the R-bit set and the sender is known to be OOB-incapable, the packet SHOULD be dropped and a SeqNumber-Mismatch event SHOULD be generated for the neighbor π«.
Processing of DBD packets is glowing up like this β¨:
- If the OOBResync flag for the neighbor is set (the LSDB resynchronization process has been started) and the received DBD packet does not have the R-bit set, ignore the packet and generate a SeqNumberMismatch event for the neighbor FSM.
- Otherwise, if the OOBResync flag for the neighbor is clear and the received DBD packet has the R-bit set, perform the following steps:
- If the neighbor FSM is in state Full and bits I, M, and MS are set in the DBD packet, set the OOBResync flag for the neighbor, put the FSM in ExStart state, and continue processing the DBD packet as described in [RFC2328].
- Otherwise, ignore received DBD packet (no OOB DBD packets are allowed with OOBResync flag clear and FSM in state other than Full). Also, if the state of the FSM is Exchange or higher, generate a SeqNumberMismatch event for the neighbor FSM.
- Otherwise, process the DBD packet as described in [RFC2328].
During normal processing of the very first OOB DBD packet (with bits R, I, M, and MS set), if the receiving router gets picked as the Master, it MAY speed up the resynchronization process by replying to the received packet right away ποΈ.
It's also really important to put a time limit on how long an adjacency can hang out in the ExStart, Exchange, and Loading states with the OOBResync flag set π°οΈ. Pick a finite period of time, for example by capping how many times DBD and link state request packets can be retransmitted. If the adjacency doesn't reach Full state before the timeout, that's a sign the neighboring router can't resynchronize its LSDB with the local router π¬. The requesting router MAY decide to stop trying to resynchronize the LSDB over this adjacency (if, for example, it can be resynchronized via another neighbor on the same segment), or it MAY resynchronize using the legacy method by clearing the OOBResync flag and leaving the FSM in ExStart state. The neighboring router MAY decide to cancel the OOB procedure for the neighbor.
2.5. Neighbor State Treatment π
An OSPF implementation supporting the described technique SHOULD modify the logic that checks the state of a neighbor FSM, like this:
- FSM state transitioning from and to the Full state with the OOBResync flag set SHOULD NOT cause origination of a new version of router-LSA or network-LSA.
- Any explicit checks for the Full state of a neighbor FSM for purposes other than LSDB synchronization and flooding SHOULD treat states ExStart, Exchange, and Loading as state Full, as long as the OOBResync flag is set for the neighbor. (Flooding and MaxAge-LSA-specific procedures SHOULD NOT check the state of the OOBResync flag, but SHOULD continue consulting only the FSM state.) π§
2.6. Initiating OOB LSDB Resynchronization π
To kick off out-of-band LSDB resynchronization, the router MUST first make sure the corresponding neighbor supports this tech (by checking the LR-bit in the Options field of the neighbor data structure) π. If the neighboring router is capable, the OOBResync flag for the neighbor SHOULD be set to TRUE and the FSM state SHOULD be forced to ExStart π―.
3. Backward Compatibility π«Ά
Because OOB-capable routers explicitly announce their capability by setting the corresponding bit in the Options field, no DBD packets with the R-bit set are sent to OOB-incapable routers π.
The LR-bit itself is transparent for OSPF implementations and does not affect communication between routers β¨.
4. Security Considerations π
The described technique does not introduce any new security issues into the OSPF protocol.
5. IANA Considerations π
Please refer to the "IANA Considerations" section of [RFC4813] for more information on the Extended Options bit definitions.
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.
Appendix A. Acknowledgments πΈ
The authors would like to thank Acee Lindem, 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
Full Copyright Statement Β©οΈ
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 contained herein are provided on an "AS IS" basis and 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 regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line 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 that may be required to implement this standard. Please address the information 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
- ietf: rfc4811 2007-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms