RFC 8319 PROPOSED STANDARD IPV6 · NEIGHBOR DISCOVERY

Support for Adjustable Maximum Router Lifetimes per Link

Lets IPv6 routers announce themselves much less often on links where multicast is costly, by raising two Neighbor Discovery limits to 65535 seconds.

On rfc-editor.org ↗
PUBLISHED
February 2018
AUTHORS
S. Krishnan, J. Korhonen, S. Chakrabarti, E. Nordmark, A. Yourtchenko
STREAM
IETF
BUILDS ON
RFC 4861 — IPv6 Neighbor Discovery
NEW ROUTER LIFETIME MAXIMUM
65535 seconds (was 9000)
NEW MAXRTRADVINTERVAL MAXIMUM
65535 seconds (was 1800)
NEW ADVDEFAULTLIFETIME MAXIMUM
65535 seconds (was 9000)
REQUIRED RELATIONSHIP
AdvDefaultLifetime >= MaxRtrAdvInterval
DOI
10.17487/RFC8319

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                       S. Krishnan
Request for Comments: 8319                                        Kaloom
Updates: 4861                                                J. Korhonen
Category: Standards Track                       Nordic Semiconductor ASA
ISSN: 2070-1721                                           S. Chakrabarti
                                                                 Verizon
                                                             E. Nordmark
                                                                  Zededa
                                                          A. Yourtchenko
                                                                   Cisco
                                                           February 2018


        Support for Adjustable Maximum Router Lifetimes per Link

Abstract

   The IPv6 Neighbor Discovery protocol specifies the maximum time
   allowed between sending unsolicited multicast Router Advertisements
   (RAs) from a router interface as well as the maximum router lifetime.
   It also allows the limits to be overridden by documents that are
   specific to the link layer.  This document allows for overriding
   these values on a per-link basis.

   This document specifies updates to the IPv6 Neighbor Discovery
   Protocol (RFC 4861) to increase the maximum time allowed between
   sending unsolicited multicast RAs from a router interface as well as
   to increase the maximum router lifetime.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8319.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Relationship between AdvDefaultLifetime and MaxRtrAdvInterval   3
   4.  Updates to RFC 4861 . . . . . . . . . . . . . . . . . . . . .   4
   5.  Host Behavior . . . . . . . . . . . . . . . . . . . . . . . .   5
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   IPv6 Neighbor Discovery relies on IP multicast based on the
   expectation that multicast makes efficient use of available bandwidth
   and avoids generating interrupts in the network nodes.  On some data
   link layers, multicast may not be natively supported.  On such links,
   any possible reduction of multicast traffic will be highly
   beneficial.  Unfortunately, due to the fixed protocol constants
   specified in [RFC4861], it is difficult to relax the multicast timers
   for Neighbor Discovery.  There are already clarifications specific to
   the link technology about how to tune the Neighbor Discovery Protocol
   (NDP) constants for certain systems in order to reduce excess NDP
   traffic.  For example, [RFC6459] and [RFC7066] contain such
   clarifications for 3GPP cellular links.

   This document specifies updates to the IPv6 Neighbor Discovery
   Protocol [RFC4861] to increase the maximum time allowed between
   sending unsolicited multicast RAs from a router interface as well as
   to increase the maximum router lifetime.

2.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Relationship between AdvDefaultLifetime and MaxRtrAdvInterval

   MaxRtrAdvInterval is an upper bound on the time between which two
   successive Router Advertisement messages are sent.  Therefore, one
   might reason about the relationship between these two values in terms
   of a ratio K = AdvDefaultLifetime / MaxRtrAdvInterval, which
   expresses how many Router Advertisements are guaranteed to be sent
   before the router lifetime expires.

   Assuming unicast Solicited Router Advertisements or a perfectly
   stable network, on a theoretically perfect link with no losses, it
   would be sufficient to have K just above 1, so that the sent Router
   Advertisement refreshes the router entry just before it expires.  On
   the real links that allow for some loss, one would need to use K > 2
   in order to minimize the chances of a single Router Advertisement
   loss causing a loss of the router entry.

   The exact calculation will depend on the packet loss probability.  An
   example: if we take a ballpark value of 1% probability of a packet
   loss, then K = 2 will give 0.01% chance of an outage due to a packet
   loss, K = 3 will give 0.0001% chance of an outage, and so forth.  To
   reverse the numbers, with these parameters, K ~= 1 gives 99%
   reliability, K ~= 2 gives 99.99% reliability, and K ~= 3 gives
   99.9999% reliability -- which should be good enough for a lot of
   scenarios.

   In a network with higher packet loss probabilities or if higher
   reliability is desired, the K might be chosen to be even higher.  On
   the other hand, some of the data link layers provide reliable
   delivery at Layer 2, so there one might even consider using the
   "theoretical" value of K just above 1.  Since the choice of these two
   parameters does not impact interoperability per se, this document
   does not impose any specific constraints on their values other than
   providing the guidelines in this section.  Therefore, each individual
   link can optimize according to its use case.

   Also, AdvDefaultLifetime MUST be set to a value greater than or equal
   to the selected MaxRtrAdvInterval.  Otherwise, a router lifetime is
   guaranteed to expire before the new Router Advertisement has a chance
   to be sent, thereby creating an outage.

4.  Updates to RFC 4861

   This document updates Sections 4.2 and 6.2.1 of [RFC4861] to change
   the following router configuration variables.

   In Section 4.2, inside the paragraph that defines Router Lifetime,
   change 9000 to 65535 seconds.

   In Section 6.2.1, inside the paragraph that defines
   MaxRtrAdvInterval, change 1800 to 65535 seconds.

   In Section 6.2.1, inside the paragraph that defines
   AdvDefaultLifetime, change 9000 to 65535 seconds.

   As explained in Section 3, the probability of packet loss must be
   considered when choosing the relationship between MaxRtrAdvInterval
   and AdvDefaultLifetime.

5.  Host Behavior

   Legacy hosts on a link with updated routers may have issues with a
   Router Lifetime of more than 9000 seconds.  In the few
   implementations we have tested with general-purpose operating
   systems, there does not seem to be any issue with setting this field
   to more than 9000, but there might be implementations that
   incorrectly reject such RAs (since RFC 4861 requires receivers to
   handle any value).

6.  Security Considerations

   On a link where Router Advertisements are few and far between, the
   detrimental effects of a rogue router that sends an unsolicited RA
   are greatly increased.  These rogue RAs can be prevented by using
   approaches like RA-Guard [RFC6105] and SEcure Neighbor Discovery
   (SEND) [RFC3971].

7.  IANA Considerations

   This document has no IANA actions.

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4861]  Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
              "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
              DOI 10.17487/RFC4861, September 2007,
              <https://www.rfc-editor.org/info/rfc4861>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in
              RFC 2119 Key Words", BCP 14, RFC 8174,
              DOI 10.17487/RFC8174, May 2017,
              <https://www.rfc-editor.org/info/rfc8174>.

8.2.  Informative References

   [RFC3971]  Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
              "SEcure Neighbor Discovery (SEND)", RFC 3971,
              DOI 10.17487/RFC3971, March 2005,
              <https://www.rfc-editor.org/info/rfc3971>.

   [RFC6105]  Levy-Abegnoli, E., Van de Velde, G., Popoviciu, C., and J.
              Mohacsi, "IPv6 Router Advertisement Guard", RFC 6105,
              DOI 10.17487/RFC6105, February 2011,
              <https://www.rfc-editor.org/info/rfc6105>.

   [RFC6459]  Korhonen, J., Ed., Soininen, J., Patil, B., Savolainen,
              T., Bajko, G., and K. Iisakkila, "IPv6 in 3rd Generation
              Partnership Project (3GPP) Evolved Packet System (EPS)",
              RFC 6459, DOI 10.17487/RFC6459, January 2012,
              <https://www.rfc-editor.org/info/rfc6459>.

   [RFC7066]  Korhonen, J., Ed., Arkko, J., Ed., Savolainen, T., and S.
              Krishnan, "IPv6 for Third Generation Partnership Project
              (3GPP) Cellular Hosts", RFC 7066, DOI 10.17487/RFC7066,
              November 2013, <https://www.rfc-editor.org/info/rfc7066>.

Acknowledgements

   The authors would like to thank the members of the 6MAN efficient ND
   design team for their comments that led to the creation of this
   document.  The authors would also like to thank Lorenzo Colitti, Erik
   Kline, Jeena Rachel John, Brian Carpenter, Tim Chown, Fernando Gont,
   Warren Kumari, and Adam Roach for their comments and suggestions that
   improved this document.

Authors' Addresses

   Suresh Krishnan
   Kaloom
   335 Rue Peel
   Montreal, QC
   Canada

   Email: suresh@kaloom.com


   Jouni Korhonen
   Nordic Semiconductor ASA
   Metsanneidonkuja 10
   02130 Espoo
   Finland

   Email: jouni.nospam@gmail.com


   Samita Chakrabarti
   Verizon
   United States of America

   Email: samita.chakrabarti@verizon.com


   Erik Nordmark
   Zededa
   Santa Clara, CA
   United States of America

   Email: nordmark@acm.org


   Andrew Yourtchenko
   Cisco
   6b de Kleetlaan
   Diegem  1831
   Belgium

   Email: ayourtch@cisco.com

AI ELI5

On this page
PROBLEMIPv6 Neighbor Discovery caps how long a router may wait between unsolicited multicast Router Advertisements and how long its lifetime can be. On links where multicast is costly, those caps force more multicast traffic than necessary.
MECHANISMRFC 8319 updates RFC 4861 to raise three limits (Router Lifetime, MaxRtrAdvInterval and AdvDefaultLifetime) to 65535 seconds, and gives guidance on how the lifetime and the interval should relate.
THE CATCHLinks without native multicast can send far fewer Router Advertisements. Legacy hosts may mishandle a lifetime above 9000 seconds, and sparse advertisements make rogue ones more harmful.

§1Why the Old Limits Hurt

IPv6 Neighbor Discovery relies on IP multicast, expecting that it uses bandwidth efficiently and avoids interrupting network nodes. On some data link layers, multicast is not natively supported. On such links, any reduction in multicast traffic is highly beneficial.

The fixed constants in RFC 4861 make it hard to relax the multicast timers. Link-specific documents already exist that tune Neighbor Discovery constants for certain systems, for example RFC 6459 and RFC 7066 for 3GPP cellular links.

This document updates RFC 4861 to increase the maximum time allowed between unsolicited multicast Router Advertisements (RAs) from a router interface, and to increase the maximum router lifetime.

Some roads make it very costly to shout to everyone at once. The old rule said routers had to shout fairly often. This RFC lets them shout less often on those roads.

§2Interval Versus Lifetime

MaxRtrAdvInterval is an upper bound on the time between two successive Router Advertisements. AdvDefaultLifetime says how long a host may keep the router as a default router. The RFC compares them with a ratio K = AdvDefaultLifetime / MaxRtrAdvInterval, which tells how many advertisements are guaranteed to be sent before the router lifetime expires.

On a theoretically perfect link with no losses, K just above 1 would be enough. On real links that lose packets, K should be greater than 2 so that a single lost advertisement does not make the router entry expire.

If a note says "I'll be back within an hour" and you only write a note every hour, one lost note leaves everyone worried. Writing several notes per promise makes losing one harmless.

§3Choosing K and the Hard Rule

As an example, assume a ballpark 1% probability of packet loss. Then K = 2 gives a 0.01% chance of an outage due to a packet loss, and K = 3 gives 0.0001%. In reliability terms, K ~= 1 gives 99%, K ~= 2 gives 99.99%, and K ~= 3 gives 99.9999%.

With higher loss, or if more reliability is wanted, K can be higher still. Some data link layers deliver reliably at Layer 2, so a K just above 1 may be considered there. Because the choice does not affect interoperability, the RFC imposes no specific constraint beyond one rule: AdvDefaultLifetime MUST be greater than or equal to the selected MaxRtrAdvInterval. Otherwise the router lifetime is guaranteed to expire before the next RA can be sent, creating an outage.

Each extra note you send makes it less likely that everyone misses all of them. The one firm rule is that your promise must last at least as long as the gap between notes.

§4Changes to RFC 4861

The RFC updates Sections 4.2 and 6.2.1 of RFC 4861 with three edits, all to 65535 seconds:

  • In Section 4.2, the paragraph defining Router Lifetime: 9000 becomes 65535 seconds.
  • In Section 6.2.1, the paragraph defining MaxRtrAdvInterval: 1800 becomes 65535 seconds.
  • In Section 6.2.1, the paragraph defining AdvDefaultLifetime: 9000 becomes 65535 seconds.

The probability of packet loss must be considered when choosing the relationship between the two variables, as explained in the previous section.

Three numbers on a rulebook page are crossed out and replaced with a much bigger one, 65535 seconds.

LIMITS CHANGED BY RFC 8319 (SECONDS)
VariableOld maximumNew maximum
Router Lifetime900065535
MaxRtrAdvInterval180065535
AdvDefaultLifetime900065535

§5Host Behavior and Legacy Hosts

Legacy hosts on a link with updated routers may have trouble with a Router Lifetime of more than 9000 seconds. The authors tested a few implementations on general-purpose operating systems and saw no problem with values above 9000. Still, some implementations might wrongly reject such RAs, even though RFC 4861 requires receivers to handle any value.

Older gadgets might not expect such a long promise and could get confused, even though the rules say they should cope.

§6Security Considerations

On a link where Router Advertisements are few and far between, the harm done by a rogue router sending an unsolicited RA is greatly increased. The RFC points to approaches such as RA-Guard (RFC 6105) and SEcure Neighbor Discovery, or SEND (RFC 3971), to prevent rogue RAs. It has no IANA actions.

If the real announcer speaks rarely, a fake announcer who speaks up is believed for a long time. Guards and secret handshakes help keep fakes out.

§7References