RFC 3883
Detecting Inactive Neighbors over OSPF Demand Circuits (DC)
RFC 3883: Detecting Inactive Neighbors over OSPF Demand Circuits (DC) โจ
okay bestie, this one is a Standards Track doc ๐ from October 2004, so it's an actual protocol spec and not just a vibe. it's by Sira Panduranga Rao (from UTA ๐ฆ), Alex Zinin (Alcatel ๐ ), and Abhay Roy (Cisco Systems ๐). it's labeled Network Working Group, and it updates RFC 1793. there's no Obsoletes line, so it doesn't replace anything ๐ซถ
Status of This Memo ๐
ok so this doc specifies an Internet standards track protocol for the Internet community, and it's basically asking everyone to talk about it and suggest improvements ๐ฌ for the official standardization state and status of this protocol, check the current edition of "Internet Official Protocol Standards" (STD 1) ๐ and distribution of this memo is unlimited, so share it with everyone ๐ธ
Copyright Notice ๐
Copyright (C) The Internet Society (2004).
Abstract ๐ฆ
so OSPF is a link-state intra-domain routing protocol used in IP networks ๐ and the way it behaves over demand circuits (DC) got optimized in RFC 1793 so there's less overhead traffic ๐ a big piece of those demand circuit extensions is the Hello suppression mechanism ๐คซ which lets a demand circuit go down when no interesting traffic is crossing the link. the catch is that it becomes basically impossible to detect an OSPF-inactive neighbor over that kind of link ๐ญ this memo introduces a new mechanism called "neighbor probing" to fix that ๐
1. Motivation ๐ง
okay so when you're running over demand circuits, the remote neighbor might be unable to run OSPF [RFC2328] ๐ฌ and as a result it might not be able to route application traffic either. here are the possible scenarios:
- The OSPF process might have died on the remote neighbor. ๐
- Oversubscription (Section 7 of [RFC1793]) may cause a continuous drop of application data at the link level. ๐
the tea is that the local router can't spot problems like this, because the Hello exchange is suppressed on demand circuits ๐ and if the network topology is such that other routers can't share what they know about the remote neighbor through flooding, then the local router and everything behind it will never find out ๐ฑ which means application traffic can keep getting forwarded to the OSPF-incapable router. not it ๐
this memo describes a backward-compatible neighbor probing mechanism that's based on the details of the standard flooding procedure OSPF routers already follow โจ
2. Proposed Solution ๐
the solution this doc proposes uses link-state update packets to detect whether the OSPF process is still operational on the remote neighbor ๐ we call this process "Neighbor probing" ๐ฆ the whole idea is to let either of the two neighbors connected over a demand circuit test the remote neighbor at any time (see Section 2.1) ๐
the routers across the demand circuit can be connected by a point-to-point link, a virtual link, or a point-to-multipoint interface ๐ broadcast networks and Non-Broadcast Multi-Access (NBMA) links aren't considered here, since Hello suppression isn't used in those cases (Section 3.2 [RFC1793]) ๐ โโ๏ธ
here's how neighbor probing goes: after a router has synchronized the Link State Database (LSDB) with its neighbor over the demand circuit, the demand circuit may be torn down if there's no more application traffic ๐ when application traffic starts going over the link again, the link comes back up โ๏ธ if ospfIfDemandNbrProbe is enabled, the routers SHOULD probe each other ๐ซถ and while the link is up, the routers may also periodically probe each other every ospfIfDemandNbrProbeInterval โฐ neighbor probing should not be treated as interesting traffic and should not keep the demand circuit up ๐ (the implementation details are outside the scope of this document, so that's on the implementers ๐งโ๐ป)
one more thing, bestie ๐จ if one or more of the router's links are oversubscribed (see Section 7 of [RFC1793]), implementations should take that into account ๐ even when the link status is up and application data is flowing, only a limited number of neighbors are really reachable ๐ฎโ๐จ so to make sure temporarily unreachable neighbors don't get mistakenly declared down, neighbor probing should only target neighbors that are actually reachable (meaning a circuit is established with that neighbor at the moment the probing procedure needs to start) โ this check is also treated as an implementation detail ๐ง
2.1. Neighbor Probing ๐ธ
this method is completely compatible with standard OSPF implementations, and that's the best part ๐ฅน it's built on standard behavior that OSPF implementations must already follow to keep their LSDBs synchronized ๐
when a router needs to verify the OSPF capability of a neighbor reachable through a demand circuit, it should flood to that neighbor any LSA in its LSDB that would normally be sent during the initial LSDB synchronization process ๐จ (most of the time, that LSA has already been flooded to the neighbor by the time probing starts ๐) for example, the router may flood its own router-LSA without originating a new version, or it may flood the neighbor's own router-LSA ๐ง if the neighbor is still alive and OSPF-capable, it replies with a link state acknowledgement or a link state update (an implied acknowledgement) ๐ and the LSA gets removed from the neighbor's retransmission list ๐๏ธ
the implementations should limit the number of times an LSA can be retransmitted to ospfIfDemandNbrProbeRetxLimit when it's being used for neighbor probing ๐ฆ if no acknowledgement (explicit or implicit) comes back within a predefined period of time, the probing router should treat that as evidence the neighbor is unreachable ๐ณ (this proves wrong the assumption of reachability used in [RFC1793]) and should bring the adjacency down ๐ด
the vibe check here: when the neighbor being probed gets one of these link state update packets, the received LSA has the same contents as the LSA in its LSDB ๐ซ so it normally shouldn't cause any extra flooding. BUT since LSA refreshes aren't flooded over demand circuits, the received LSA might have a higher Sequence Number ๐ which means the first probe LSA gets flooded further by the neighbor. if the current version of the probe LSA has already been flooded to the neighbor, it won't be propagated any further by the neighbor ๐ โโ๏ธ and in any case, subsequent (non-first) probe LSAs won't cause further flooding until the LSA's sequence number is incremented ๐ข
last but not least, the implementation should make sure (through internal mechanisms) that OSPF link state update packets sent over the demand circuit for neighbor probing don't stop that circuit from being torn down ๐๐
3. Support of Virtual Links and Point-to-multipoint Interfaces ๐ฆ
virtual links can be treated like point-to-point links, so the techniques in this memo apply to virtual links too ๐ and a point-to-multipoint interface running as a demand circuit (section 3.5 [RFC1793]) can be treated as individual point-to-point links, which means the solution from section 2 covers it ๐โจ
Intellectual Property โจ
okay so the IETF is NOT taking a side on whether any IP rights (patents, copyrights, that whole vibe) are valid or how far they reach ๐ It also doesn't say it went digging to find any. no cap, it's just not making that call. ๐ซถ
if you want the rules for how the IETF handles rights in its documents, check out BCP 78 and BCP 79 ๐ฅ
Copies of IPR disclosures sent to the IETF Secretariat live in the IETF online IPR repository at http://www.ietf.org/ipr ๐ธ You'll also find any promises of licenses there, plus the results of anyone trying to get a general license or permission to use those proprietary rights for implementing or using this spec. โจ
And if you spot a copyright, patent, patent application, or other proprietary right that might cover tech needed to implement this standard, the IETF wants to hear about it! ๐ฆ Send the info to ietf-ipr@ietf.org ๐
Acknowledgement
bestie, the RFC Editor function is funded by the Internet Society ๐ So thank you to them for keeping the lights on! ๐๐ซถ
๐ฆ where this page comes from
- ietf: rfc3883 2004-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms