OSPF DC Neighbors: Detecting Inactive Neighbors over OSPF Demand Circuits (DC)
How OSPF routers can check that a neighbor across a demand circuit is still running OSPF, without keeping the link busy.
Rao, S., Zinin, A., and A. Roy, "Detecting Inactive Neighbors over OSPF Demand Circuits (DC)", RFC 3883, DOI 10.17487/RFC3883, October 2004, <https://www.rfc-editor.org/info/rfc3883>.
@misc{rfc3883,
series = {Request for Comments},
number = 3883,
howpublished = {RFC 3883},
publisher = {RFC Editor},
doi = {10.17487/RFC3883},
url = {https://www.rfc-editor.org/info/rfc3883},
author = {S. Rao and A. Zinin and A. Roy},
title = {{Detecting Inactive Neighbors over OSPF Demand Circuits (DC)}},
pagetotal = 6,
year = 2004,
month = oct,
} RFC text
Contents
Network Working Group S. Rao
Request for Comments: 3883 UTA
Updates: 1793 A. Zinin
Category: Standards Track Alcatel
A. Roy
Cisco Systems
October 2004
Detecting Inactive Neighbors over OSPF Demand Circuits (DC)
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2004).
Abstract
OSPF is a link-state intra-domain routing protocol used in IP
networks. OSPF behavior over demand circuits (DC) is optimized in
RFC 1793 to minimize the amount of overhead traffic. A part of the
OSPF demand circuit extensions is the Hello suppression mechanism.
This technique allows a demand circuit to go down when no interesting
traffic is going through the link. However, it also introduces a
problem, where it becomes impossible to detect an OSPF-inactive
neighbor over such a link. This memo introduces a new mechanism
called "neighbor probing" to address the above problem.
1. Motivation
In some situations, when operating over demand circuits, the remote
neighbor may be unable to run OSPF [RFC2328], and, as a possible
result, unable to route application traffic. Possible scenarios
include:
o The OSPF process might have died on the remote neighbor.
o Oversubscription (Section 7 of [RFC1793]) may cause a continuous
drop of application data at the link level.
The problem here is that the local router cannot identify problems
such as this, since the Hello exchange is suppressed on demand
circuits. If the topology of the network is such that other routers
cannot communicate their knowledge about the remote neighbor via
flooding, the local router and all the routers behind it will never
know about the problem, so application traffic may continue being
forwarded to the OSPF-incapable router.
This memo describes a backward-compatible neighbor probing mechanism
based on the details of the standard flooding procedure followed by
OSPF routers.
2. Proposed Solution
The solution this document proposes uses the link-state update
packets to detect whether the OSPF process is operational on the
remote neighbor. We call this process "Neighbor probing". The idea
behind this technique is to allow either of the two neighbors
connected over a demand circuit to test the remote neighbor at any
time (see Section 2.1).
The routers across the demand circuit can be connected by either a
point-to-point link, a virtual link, or a point-to-multipoint
interface. The case of routers connected by broadcast networks or
Non-Broadcast Multi-Access (NBMA) links is not considered, since
Hello suppression is not used in these cases (Section 3.2 [RFC1793]).
The neighbor probing mechanism is used as follows. 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
is no more application traffic. When application traffic starts
going over the link, the link is brought up. If ospfIfDemandNbrProbe
is enabled, the routers SHOULD probe each other. While the link is
up, the routers may also periodically probe each other every
ospfIfDemandNbrProbeInterval. Neighbor probing should not be
considered as interesting traffic and should not cause the demand
circuit to remain up (relevant details of implementation are outside
of the scope of this document).
The case when one or more of the router's links are oversubscribed
(see section 7 of [RFC1793]) should be considered by the
implementations. In such a situation, even if the link status is up
and application data is being sent on the link, only a limited number
of neighbors are really reachable. To make sure temporarily
unreachable neighbors are not mistakenly declared down, Neighbor
probing should be restricted to those neighbors that are actually
reachable (i.e., there is a circuit established with the neighbor at
the moment the probing procedure needs to be initiated). This check
itself is also considered an implementation detail.
2.1. Neighbor Probing
The neighbor probing method described in this section is completely
compatible with standard OSPF implementations, because it is based on
standard behavior that must be followed by OSPF implementations in
order 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 the neighbor
any LSA in its LSDB that would normally be sent to the neighbor
during the initial LSDB synchronization process (in most cases, such
an LSA must have already been flooded to the neighbor by the time the
probing procedure starts). For example, the router may flood its own
router-LSA (without originating a new version), or 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 is removed from the neighbor's
retransmission list. The implementations should limit the number of
times an LSA can be retransmitted to ospfIfDemandNbrProbeRetxLimit,
when used for neighbor probing. If no acknowledgement (explicit or
implicit) is received for a predefined period of time, the probing
router should treat this as evidence of the neighbor's unreachability
(proving wrong the assumption of reachability used in [RFC1793]) and
should bring the adjacency down.
Note that when the neighbor being probed receives such a link state
update packet, the received LSA has the same contents as the LSA in
the neighbor's LSDB, and hence should normally not cause any
additional flooding. However, since LSA refreshes are not flooded
over demand circuits, the received LSA may have a higher Sequence
Number. This will result in the first probe LSA being flooded
further by the neighbor. Note that if the current version of the
probe LSA has already been flooded to the neighbor, it will not be
propagated any further by the neighbor. Also note that in any case,
subsequent (non-first) probe LSAs will not cause further flooding
until the LSA's sequence number is incremented.
Again, the implementation should insure (through internal mechanisms)
that OSPF link state update packets sent over the demand circuit for
the purpose of neighbor probing do not prevent that circuit from
being torn down.
3. Support of Virtual Links and Point-to-multipoint Interfaces
Virtual links can be treated analogously to point-to-point links, so
the techniques described in this memo are applicable to virtual links
as well. The case of point-to-multipoint interface running as a
demand circuit (section 3.5 [RFC1793]) can be treated as individual
point-to-point links, for which the solution has been described in
section 2.
4. Compatibility Issues
All mechanisms described in this document are backward-compatible
with standard OSPF implementations.
5. Deployment Considerations
In addition to the lost functionality mentioned in Section 6 of
[RFC1793], there is additional overhead in terms of the amount of
data (link state updates and acknowledgements) being transmitted due
to neighbor probing whenever the link is up, thereby increasing the
overall cost.
6. Acknowledgements
The original idea of limiting the number of LSA retransmissions on
demand circuits (used as part of the solution described in this
document) and its implementation belong to Padma Pillay-Esnault and
Derek Yeung.
The authors would like to thank John Moy, Vijayapal Reddy Patil, SVR
Anand, and Peter Psenak for their comments on this work.
A significant portion of Sira's work was carried out as part of the
HFCL-IISc Research Project (HIRP), Bangalore, India. He would like
to thank the team for their insightful discussions.
7. Security Considerations
The mechanism described in this document does not modify security
aspects of the OSPF routing protocol.
8. Normative References
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.
[RFC1793] Moy, J., "Extending OSPF to Support Demand Circuits", RFC
1793, April 1995.
Appendix A. Configurable Parameters
This memo defines the following additional configuration parameters
for OSPF interfaces.
ospfIfDemandNbrProbe
Indicates whether or not neighbor probing is enabled to
determine whether the neighbor is inactive. Neighbor probing
is disabled by default.
ospfIfDemandNbrProbeRetxLimit
The number of consecutive LSA retransmissions before the
neighbor is deemed inactive and the neighbor adjacency is
brought down. Sample value is 10 consecutive LSA
retransmissions.
ospfIfDemandNbrProbeInterval
Defines how often the neighbor will be probed. The sample
value is 2 minutes.
Authors' Addresses
Sira Panduranga Rao
The University of Texas at Arlington
416 Yates Street, 300 Nedderman Hall
Arlington, TX 76019
EMail: siraprao@hotmail.com
Alex Zinin
Alcatel
701 E Middlefield Rd
Mountain View, CA 94043
EMail: zinin@psg.com
Abhay Roy
Cisco Systems
170 W. Tasman Dr.
San Jose,CA 95134
EMail: akr@cisco.com
Full Copyright Statement
Copyright (C) The Internet Society (2004).
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/S HE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY 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 IETF's procedures with respect to rights in IETF 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.
AI ELI5
On this page
§1The Problem: Silent Failures
OSPF is a link-state routing protocol. RFC 1793 optimizes it for demand circuits to minimize overhead traffic. One part of that is Hello suppression, which lets the circuit go down when no interesting traffic is flowing.
The side effect is that a router can no longer tell that its neighbor has stopped running OSPF. The RFC gives two example causes: the OSPF process might have died on the neighbor, or oversubscription (Section 7 of RFC 1793) may cause continuous drops of application data at the link level. If other routers cannot report what they know through flooding, the local router and the routers behind it may keep forwarding traffic to a neighbor that cannot route it.
Normally friends keep saying hello to check they are still there. On a pay-per-minute call they stop saying hello to save money, so nobody notices if one friend has wandered off.
§2Neighbor Probing in Outline
The solution uses link state update packets to find out whether OSPF is working on the remote neighbor. Either router on a demand circuit may test the other at any time. It applies to point-to-point links, virtual links and point-to-multipoint interfaces. Broadcast and NBMA networks are not considered, since Hello suppression is not used there.
After the routers have synchronized their link state databases, the circuit may be torn down when idle and brought up again when application traffic starts. If ospfIfDemandNbrProbe is enabled, the routers SHOULD probe each other. While the link is up they may also probe periodically, every ospfIfDemandNbrProbeInterval.
Probing is not interesting traffic and must not keep the circuit up. If a link is oversubscribed, probing should be restricted to neighbors that are actually reachable at that moment, so a temporarily unreachable neighbor is not wrongly declared down. How to check this is left to the implementation.
Either router can ask the other, now and then, whether it is still there. Asking must not count as a real conversation, or the call would never be allowed to end.
§3How a Probe Works
To verify a neighbor, a router floods to it any LSA that would normally be sent during the initial database synchronization. For example, it can flood its own router-LSA without originating a new version, or the neighbor's own router-LSA. A live, OSPF-capable neighbor answers with a link state acknowledgement or a link state update, which counts as an implied acknowledgement, and the LSA leaves the retransmission list.
If no acknowledgement arrives within a predefined time, the probing router treats this as evidence that the neighbor is unreachable and should bring the adjacency down. The number of retransmissions of a probe LSA should be limited to ospfIfDemandNbrProbeRetxLimit.
The probe LSA has the same contents as the one the neighbor already holds, so it normally causes no extra flooding. Because LSA refreshes are not flooded over demand circuits, it may carry a higher sequence number, in which case the first probe is flooded further by the neighbor. Later probes do not cause more flooding until the sequence number increases. Implementations should also make sure probe packets do not prevent the circuit from being torn down.
A router repeats something it already told its neighbor and waits for a thumbs-up. If the thumbs-up never comes after several tries, it decides the neighbor is gone.
- Link state updateRe-floods an LSA the neighbor should already have.
- Link state acknowledgementA link state update also counts as an implied acknowledgement.
§4Configurable Parameters
Appendix A defines three additional configuration parameters for OSPF interfaces.
ospfIfDemandNbrProbesays whether neighbor probing is enabled. It is disabled by default.ospfIfDemandNbrProbeRetxLimitis the number of consecutive LSA retransmissions before the neighbor is deemed inactive and the adjacency is brought down. The sample value is 10.ospfIfDemandNbrProbeIntervalsets how often the neighbor is probed. The sample value is 2 minutes.
There are three dials: whether to check at all (off to begin with), how many unanswered tries before giving up, and how often to check.
§5Compatibility and Special Links
The method is completely compatible with standard OSPF implementations, because it relies on behavior that OSPF implementations must follow anyway to keep their databases synchronized. A neighbor needs no new software to answer a probe.
Virtual links can be treated like point-to-point links, so the same techniques apply. A point-to-multipoint interface running as a demand circuit (Section 3.5 of RFC 1793) can be treated as individual point-to-point links.
The check uses a question every router already knows how to answer, so old routers do not have to learn anything new.
§6Costs and Security
Besides the lost functionality noted in Section 6 of RFC 1793, probing adds overhead in link state updates and acknowledgements whenever the link is up, which raises the overall cost of the link.
The Security Considerations section is a single statement: the mechanism does not modify the security aspects of the OSPF routing protocol.
Checking costs a little bit of talking, so the call costs slightly more. It does not change how safe OSPF is.