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.
Krishnan, S., Korhonen, J., Chakrabarti, S., Nordmark, E., and A. Yourtchenko, "Support for Adjustable Maximum Router Lifetimes per Link", RFC 8319, DOI 10.17487/RFC8319, February 2018, <https://www.rfc-editor.org/info/rfc8319>.
@misc{rfc8319,
series = {Request for Comments},
number = 8319,
howpublished = {RFC 8319},
publisher = {RFC Editor},
doi = {10.17487/RFC8319},
url = {https://www.rfc-editor.org/info/rfc8319},
author = {S. Krishnan and J. Korhonen and S. Chakrabarti and E. Nordmark and A. Yourtchenko},
title = {{Support for Adjustable Maximum Router Lifetimes per Link}},
pagetotal = 7,
year = 2018,
month = feb,
} RFC text
Contents
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
§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.
| Variable | Old maximum | New maximum |
|---|---|---|
| Router Lifetime | 9000 | 65535 |
| MaxRtrAdvInterval | 1800 | 65535 |
| AdvDefaultLifetime | 9000 | 65535 |
§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.