RFC 3883 PROPOSED STANDARD ROUTING · OSPF

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.

On rfc-editor.org ↗
PUBLISHED
October 2004
AUTHORS
S. Rao, A. Zinin, A. Roy
STREAM
IETF
BUILDS ON
RFC 1793 — OSPF Demand Circuits
PROBING DEFAULT
Disabled
SAMPLE RETRANSMISSION LIMIT
10
SAMPLE PROBE INTERVAL
2 minutes
DOI
10.17487/RFC3883

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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
PROBLEMOn OSPF demand circuits Hello packets are suppressed so the link can go down when idle, which makes it impossible to notice that the neighbor's OSPF has failed.
MECHANISMNeighbor probing re-floods an LSA the neighbor should already have and waits for an acknowledgement. If none comes after the retransmission limit, the adjacency is brought down.
THE CATCHIt is backward-compatible with standard OSPF and disabled by default, but adds traffic whenever the link is up. The RFC updates RFC 1793.

§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.

NEIGHBOR PROBE EXCHANGE (ILLUSTRATIVE, NOT FROM THE RFC)
Probing routerNeighbor
  1. Link state updateRe-floods an LSA the neighbor should already have.
  2. Link state acknowledgementA link state update also counts as an implied acknowledgement.

§4Configurable Parameters

Appendix A defines three additional configuration parameters for OSPF interfaces.

  • ospfIfDemandNbrProbe says whether neighbor probing is enabled. It is disabled by default.
  • ospfIfDemandNbrProbeRetxLimit is the number of consecutive LSA retransmissions before the neighbor is deemed inactive and the adjacency is brought down. The sample value is 10.
  • ospfIfDemandNbrProbeInterval sets 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.

§7References