RFC 9096
Improving the Reaction of Customer Edge Routers to IPv6 Renumbering Events
RFC 9096: Improving the Reaction of Customer Edge Routers to IPv6 Renumbering Events π¦
- Stream: Internet Engineering Task Force (IETF)
- Authors: F. Gont (SI6 Networks), J. Ε½orΕΎ (6connect), R. Patterson (Sky UK), B. Volz (Individual Contributor)
- Category: Best Current Practice, BCP 234 π
- ISSN: 2070-1721
- Date: August 2021
- Updates: RFC 7084 β¨
Abstract β¨
okay so this doc is all about making Customer Edge routers (CE routers, the boxes in your home or small office that connect you to your ISP) way better at handling the moment their network settings quietly go invalid π Like, sometimes the info the local devices are using just stops being true and nobody tells anyone. This spec gives CE routers some glow-ups to help with that mess. It updates RFC 7084, bestie π
Status of This Memo
this memo documents an Internet Best Current Practice πΈ
this doc is a product of the Internet Engineering Task Force (IETF) π It represents the consensus of the IETF community, and it went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). Want more info on BCPs? Check out Section 2 of RFC 7841 π§
Info about the current status of this document, any errata, and how to send feedback is over at https://www.rfc-editor.org/info/rfc9096 π
Copyright Notice
Copyright (c) 2021 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) as they stand on the date this document was published. Please actually read these, okay? They spell out your rights and restrictions for this document. Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License β
Table of Contents π
1. Introduction
2. Requirements Language
3. Improved Customer Edge Router Behavior
3.1. Automatic DHCPv6 RELEASEs
3.2. Stability of IAIDs
3.3. Interface between the WAN Side and LAN Side
3.4. LAN-Side Option Lifetimes
3.5. Signaling Stale Configuration Information
4. Recommended Option Lifetimes Configuration Values
5. IANA Considerations
6. Security Considerations
7. References
7.1. Normative References
7.2. Informative References
Acknowledgments
Authors' Addresses
1. Introduction β¨
okay picture this: a CE router crashes and reboots, and it has zero memory of the config it was using before π Now the hosts on your local network keep using old, stale info for an absolutely unacceptable amount of time, and suddenly nothing connects right. The whole saga is written up in detail in [RFC8978] π
so this document brings in improvements to CE routers that help with that exact problem, specifically for residential and small office setups π It lays out recommendations for how CE routers should behave by default, but it does NOT block anyone from having configuration knobs that let an operator or user manually tweak the router so it deviates from those recommendations. Flexibility is everything, periodt π¦ This document updates RFC 7084.
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 π₯ So if you see them in caps, that's the real deal, and if not, they're just regular words.
3. Improved Customer Edge Router Behavior π
this section specifies and clarifies the requirements for CE routers that can help with the problem from Section 1 πΈ It's especially relevant when they use prefixes learned via DHCPv6 Prefix Delegation (DHCPv6-PD) [RFC8415] on the WAN side, along with Stateless Address Autoconfiguration (SLAAC) [RFC4862] or DHCPv6 [RFC8415] on the LAN side. The recommendations here help make the CE router more robust, which matters because the user or ISP might not have control over it π«Ά They also don't get in the way of host-side improvements like the ones specified in [6MAN-SLAAC-RENUM] β¨
this document adds WAN-side prefix-delegation (WPD) requirements on top of the ones in [RFC7084]:
WPD-9: CE routers SHOULD NOT automatically send DHCPv6-PD RELEASE messages upon restart events. Check Section 3.1 for the deets π
WPD-10: CE routers MUST by default use a WAN-side Identity Association IDentifier (IAID) value that stays stable between CE router restarts, DHCPv6 client restarts, or interface state changes (e.g., transient PPP interfaces), unless the CE router employs the IAID techniques discussed in Section 4.5 of [RFC7844]. See Section 3.2 for more info π
this document also replaces LAN-side requirement L-13 from [RFC7084] with this one:
L-13: CE routers MUST signal stale configuration information as specified in Section 3.5. π¦
and finally, this document adds these LAN-side requirements to the ones from [RFC7084]:
L-15: CE routers MUST NOT advertise prefixes via SLAAC or assign addresses or delegate prefixes via DHCPv6 on the LAN side using lifetimes that exceed the remaining lifetimes of the corresponding prefixes learned on the WAN side via DHCPv6-PD. For more details, see Section 3.3. π
L-16: CE routers SHOULD advertise capped SLAAC option lifetimes, capped DHCPv6 IA Address option lifetimes, and capped IA Prefix option lifetimes, as specified in Section 3.4. β
3.1. Automatic DHCPv6 RELEASEs π
some CE routers are known to automatically send DHCPv6-PD RELEASE messages upon restart events π The catch is that this can accidentally trigger a flash-renumbering scenario, along with the problems discussed in [RFC8978] that this document is trying to mitigate. Not it π
so, requirement WPD-9 from Section 3 says that CE routers SHOULD NOT automatically send DHCPv6-PD RELEASE messages upon restart events π§
3.2. Stability of IAIDs π
[RFC8415] requires that the IAID for an IA MUST be consistent across restarts of the DHCP client π₯ But some popular CE routers are known to pick new random IAIDs, for example every time the underlying PPP session gets established or when the device reboots. This could come from extrapolating the behavior described in [RFC7844], or it could just be a side effect of not storing IAIDs on stable storage, plus not using an algorithm that consistently generates the same IAID across reboots. Either way, requirement WPD-10 from Section 3 stops CE routers from accidentally triggering flash-renumbering events on the local network π«Ά
3.3. Interface between the WAN Side and LAN Side πΈ
the "Preferred Lifetime" and "Valid Lifetime" of Prefix Information Options (PIOs) [RFC4861] for prefixes learned via DHCPv6-PD on the WAN side MUST NOT span past the remaining preferred and valid lifetimes of the corresponding DHCPv6-PD prefixes π Translation: the "Preferred Lifetime" and the "Valid Lifetime" that the CE router advertises in PIOs MUST be dynamically adjusted so they never go past the remaining preferred and valid lifetimes of the matching prefixes delegated via DHCPv6-PD on the WAN side β¨
same energy for the "preferred-lifetime" and "valid-lifetime" of DHCPv6 IA Address options and DHCPv6 IA Prefix options used with DHCPv6 on the LAN side. They MUST NOT span past the remaining preferred and valid lifetimes of the corresponding prefixes learned via DHCPv6-PD on the WAN side. So those values MUST be dynamically adjusted so they never span past the remaining preferred and valid lifetimes of the matching prefixes delegated to the CE router on the WAN side via DHCPv6-PD π
RATIONALE: π§
- The lifetime values used for the "Preferred Lifetime" (AdvPreferredLifetime) and "Valid Lifetime" (AdvValidLifetime) of SLAAC Prefix Information Options must never be larger than the remaining lifetimes of the corresponding prefixes (as learned via DHCPv6-PD on the WAN side). This lines up with the requirement from Section 6.3 of [RFC8415], which says:
In particular, if the delegated prefix or a prefix derived from it is advertised for stateless address autoconfiguration [RFC4862], the advertised preferred and valid lifetimes MUST NOT exceed the corresponding remaining lifetimes of the delegated prefix.
- The lifetime values of prefixes advertised on the LAN side via SLAAC must be dynamically updated (rather than being static values). Otherwise, the advertised lifetimes would eventually span past the DHCPv6-PD lifetimes π
- The same considerations apply to the "valid-lifetime" and "preferred-lifetime" of IA Address options and IA Prefix options used with DHCPv6 on the LAN side π
3.4. LAN-Side Option Lifetimes β¨
Okay bestie, so CE routers SHOULD override the default lifetime values of Neighbor Discovery options that depend in any way on changes in the prefix employed for address configuration on the LAN side π . They should use shorter lifetimes so the network handles renumbering events more gracefully π¦. This still has to follow the requirements from Section 3.3 of this document and the recommendations in [RFC7772] π .
CE routers SHOULD set the Router Lifetime of Router Advertisement (RA) messages to ND_PREFERRED_LIMIT πΈ.
CE routers SHOULD also set the PIO Preferred Lifetime to the lesser of the remaining preferred lifetime of the corresponding prefix (see Section 3.3) and ND_PREFERRED_LIMIT. They should set the PIO Valid Lifetime to the lesser of the remaining valid lifetime of the corresponding prefix and ND_VALID_LIMIT. Also, the Route Lifetime of Route Information Options (RIOs) [RFC4191], the Lifetime of Recursive DNS Server (RDNSS) options [RFC8106], and the Lifetime of DNS Search List (DNSSL) options [RFC8106] SHOULD be set to the lesser of the longest remaining valid lifetime of a prefix (leased via DHCPv6 on the WAN side) and ND_VALID_LIMIT, if any of these options are included in Router Advertisement messages π.
NOTE: In scenarios where the valid lifetime and the preferred lifetime of prefixes learned via DHCPv6 on the WAN side are always larger thanND_VALID_LIMITandND_PREFERRED_LIMIT, respectively, the lifetime values advertised on the LAN side will not experience actual changes.
The above text refers to the Neighbor Discovery options that are typically employed by CE routers. A CE router may need to apply the same policy for setting the lifetime of other Neighbor Discovery options it employs, if and where applicable π§.
CE routers providing stateful address configuration via DHCPv6 SHOULD set the preferred-lifetime of a DHCPv6 IA Address option to the lesser of the remaining preferred lifetime of the corresponding prefix (see Section 3.3) and ND_PREFERRED_LIMIT. They should set the valid-lifetime of the same option to the lesser of the remaining valid lifetime of the corresponding prefix and ND_VALID_LIMIT β¨.
CE routers providing DHCPv6-PD on the LAN side SHOULD set the preferred-lifetime of a DHCPv6 IA Prefix option to the lesser of the remaining preferred lifetime of the corresponding prefix (see Section 3.3) and ND_PREFERRED_LIMIT. They should set the valid-lifetime of the same option to the lesser of the remaining valid lifetime of the corresponding prefix and ND_VALID_LIMIT π.
RATIONALE:
- The
Valid LifetimeandPreferred Lifetimeof PIOs have a direct impact on three different aspects:- The amount of time hosts may end up employing stale network configuration information (see [RFC8978]) π« .
- The amount of time CE routers need to persist trying to deprecate stale network configuration information (e.g., to handle cases where hosts miss Router Advertisement messages and thus still consider the stale information as valid) π.
- The amount of information that CE routers need to maintain when, e.g., multiple crash-and-reboot events occur in the time span represented by the option lifetimes employed on the LAN side π.
- CE routers need not employ the (possibly long) WAN-side DHCPv6-PD lifetimes for the
Valid LifetimeandPreferred Lifetimeof PIOs sent in Router Advertisement messages to advertise sub-prefixes of the leased prefix. Instead, CE routers SHOULD use shorter values for theValid LifetimeandPreferred Lifetimeof PIOs, since subsequent Router Advertisement messages will nevertheless refresh the associated lifetimes, leading to the same effective lifetimes as specified by the WAN-side DHCPv6-PD lifetimes π₯. - Similarly, CE routers need not employ the (possibly long) WAN-side DHCPv6-PD lifetimes for the
valid-lifetimeandpreferred-lifetimeof IA Address options and IA Prefix options employed by DHCPv6 on the LAN side, since the renewal of bindings by DHCPv6 clients will lead to the same effective lifetimes as specified by the WAN-side DHCPv6-PD lifetimes π.
3.5. Signaling Stale Configuration Information π
When a CE router provides LAN-side address-configuration information via SLAAC:
- A CE router sending RAs that advertise prefixes belonging to a dynamically learned prefix (e.g., via DHCPv6-PD) SHOULD record, on stable storage, the list of prefixes being advertised via PIOs on each network segment and the state of the
AandLflags of the corresponding PIOs π. - Upon changes to the advertised prefixes, and after bootstrapping, the CE router advertising prefix information via SLAAC proceeds as follows:
- Any prefixes that were previously advertised by the CE router via PIOs in RA messages, but that have now become stale, MUST be advertised with PIOs that have the
Valid Lifetimeand thePreferred Lifetimeset to 0 and theAandLbits unchanged π. - The aforementioned advertisements MUST be performed for at least the
Valid Lifetimepreviously employed for such prefixes. The CE router MUST advertise this information with unsolicited Router Advertisement messages, as described in Section 6.2.4 of [RFC4861], and MAY advertise this information via unicast Router Advertisement messages when possible and applicable π£.
- Any prefixes that were previously advertised by the CE router via PIOs in RA messages, but that have now become stale, MUST be advertised with PIOs that have the
NOTE: If requirement L-16 (Section 3) is followed, theValid Lifetimeneed not be saved, and the stale prefix can simply be advertised for a period ofND_VALID_LIMIT.
- CE routers receiving DHCPv6 IA Prefix options with a 0
valid-lifetimeMUST advertise the corresponding sub-prefixes (as they would be generated for the same leased prefix with a non-zero lifetime) with PIOs with both thePreferred Lifetimeand theValid Lifetimeset to 0, for at least the WAN-side DHCPv6-PDvalid-lifetime, or for a period ofND_VALID_LIMITif the recommended lifetimes from Section 3.4 are employed π§Ή.
When a CE router provides LAN-side DHCPv6 (address assignment or prefix delegation), then:
- The CE router SHOULD record, on stable storage, the DHCPv6 address and delegated-prefix bindings corresponding to the LAN side ποΈ.
- If the CE router finds that the prefix to be employed for address assignment and/or prefix delegation has changed (e.g., upon a crash-and-reboot event) or the CE router receives DHCPv6 IA Prefix options with 0 lifetimes, the CE router MUST:
- In Replies to DHCPv6 Request, Renew, and Rebind messages, send IA Address options or IA Prefix options (as appropriate) for any address assignments or prefix delegations for the stale prefixes. The aforementioned options MUST be sent with both the
valid-lifetimeand thepreferred-lifetimeset to 0, for at least thevalid-lifetimeoriginally employed for them, or for a period ofND_VALID_LIMITif the recommended lifetimes from Section 3.4 are employed π«Ά. - Initiate sending Reconfigure messages, if possible (i.e., client requests Reconfigure support and the CE router offers it), to those clients with address assignments or prefix delegations for the stale prefixes π.
- In Replies to DHCPv6 Request, Renew, and Rebind messages, send IA Address options or IA Prefix options (as appropriate) for any address assignments or prefix delegations for the stale prefixes. The aforementioned options MUST be sent with both the
RATIONALE:
- IPv6 network renumbering is expected to take place in a planned manner with old/stale prefixes being phased out via reduced prefix lifetimes while new prefixes (with normal lifetimes) are introduced. However, a number of scenarios may lead to the so-called "flash-renumbering" events, where a prefix being employed on a network suddenly becomes invalid and replaced by a new prefix [RFC8978]. One such scenario is when an Internet Service Provider (ISP) employs dynamic prefixes and the CE router crashes and reboots. The requirements in this section are meant to allow CE routers to deprecate stale information in such scenarios πͺοΈ.
- The recommendations in this section expand from requirement L-13 in Section 4.3 of [RFC7084] and Section 6.3 of [RFC8415].
- Hosts configuring addresses via SLAAC on the local network may employ addresses configured for the previously advertised prefixes for at most the
Valid Lifetimeof the corresponding PIOs of the last received Router Advertisement messages. Since Router Advertisement messages may be lost or fail to be received for various reasons, CE routers need to try to deprecate stale prefixes for a period of time equal to theValid Lifetimeof the PIO employed when originally advertising the prefix π°οΈ. - The requirements in this section to store information on stable storage are conveyed as "SHOULD" (as opposed to "MUST"), since they may represent a challenge for some implementations π₯Ί.
- Advertising DHCPv6-leased prefixes with zero lifetimes on the LAN side would handle the case where a CE router has no stable storage but receives the prefixes via DHCPv6 with 0 lifetimes π·.
- The above text does not include DHCPv6 Advertise messages sent in response to DHCPv6 Solicit messages, since Section 18.3.9 of [RFC8415] requires that a DHCPv6 server that is not going to assign an address or delegated prefix received as a hint in the Solicit message MUST NOT include that address or delegated prefix in the Advertise message. Additionally, any subsequent Request messages will trigger the response specified in this section and therefore cause the address or prefix to be deprecated π§ .
4. Recommended Option Lifetimes Configuration Values π
ND_PREFERRED_LIMIT: 2700 seconds (45 minutes)ND_VALID_LIMIT: 5400 seconds (90 minutes)
RATIONALE:
- These values represent a trade-off among a number of factors, including responsiveness and possible impact on the battery life of connected devices [RFC7772] π.
ND_PREFERRED_LIMITis set according to the recommendations in [RFC7772] for theRouter Lifetime, following the rationale from Section 3.2 of [RFC8978] π¦.ND_VALID_LIMITis set to2 * ND_PREFERRED_LIMITto provide some additional leeway before configuration information is finally discarded by the hosts β³.
5. IANA Considerations πΈ
This document has no IANA actions.
6. Security Considerations π
This document discusses a problem that may arise, e.g., in scenarios where dynamic IPv6 prefixes are employed, and it proposes improvements to CE routers [RFC7084] to mitigate the problem for residential or small office scenarios. It does not introduce new security issues; thus, the same security considerations as for [RFC4861], [RFC4862], [RFC7084], and [RFC8415] apply. Take this one seriously, bestie. Stale configuration is a real problem, and these mitigations matter π¨.
7. References π
7.1. Normative References π
okay bestie, these are the normative references, the docs this one leans on so hard that you need them to read it properly π
- [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. - [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and More-Specific Routes", RFC 4191, DOI
10.17487/RFC4191, November 2005,https://www.rfc-editor.org/info/rfc4191. - [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. - [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless Address Autoconfiguration", RFC 4862, DOI
10.17487/RFC4862, September 2007,https://www.rfc-editor.org/info/rfc4862. - [RFC7772] Yourtchenko, A. and L. Colitti, "Reducing Energy Consumption of Router Advertisements", BCP 202, RFC 7772, DOI
10.17487/RFC7772, February 2016,https://www.rfc-editor.org/info/rfc7772. - [RFC7844] Huitema, C., Mrugalski, T., and S. Krishnan, "Anonymity Profiles for DHCP Clients", RFC 7844, DOI
10.17487/RFC7844, May 2016,https://www.rfc-editor.org/info/rfc7844. - [RFC8106] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration", RFC 8106, DOI
10.17487/RFC8106, March 2017,https://www.rfc-editor.org/info/rfc8106. - [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. - [RFC8415] Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., Richardson, M., Jiang, S., Lemon, T., and T. Winters, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 8415, DOI
10.17487/RFC8415, November 2018,https://www.rfc-editor.org/info/rfc8415.
7.2. Informative References π¦
these ones are the extra reading, the "ooh tell me more" section, and they're not required to get the main ideas π§
- [6MAN-SLAAC-RENUM] Gont, F., Zorz, J., and R. Patterson, "Improving the Robustness of Stateless Address Autoconfiguration (SLAAC) to Flash Renumbering Events", Work in Progress, Internet-Draft, draft-ietf-6man-slaac-renum-02, 19 January 2021,
https://datatracker.ietf.org/doc/html/draft-ietf-6man-slaac-renum-02. - [RFC7084] Singh, H., Beebee, W., Donley, C., and B. Stark, "Basic Requirements for IPv6 Customer Edge Routers", RFC 7084, DOI
10.17487/RFC7084, November 2013,https://www.rfc-editor.org/info/rfc7084. - [RFC8978] Gont, F., Ε½orΕΎ, J., and R. Patterson, "Reaction of IPv6 Stateless Address Autoconfiguration (SLAAC) to Flash-Renumbering Events", RFC 8978, DOI
10.17487/RFC8978, March 2021,https://www.rfc-editor.org/info/rfc8978.
Acknowledgments πΈ
the authors wanted to give a huge shoutout to Owen DeLong, Philip Homburg, Erik Kline, and Ted Lemon for helping make this doc better through successive detailed reviews π«Ά
the authors also thanked Mikael Abrahamsson, Luis Balbinot, Brian Carpenter, Tim Chown, Lorenzo Colitti, Alejandro D'Egidio, Gert Doering, Fernando Frediani, Guillermo Gont, Steinar Haug, Nick Hilliard, Lee Howard, Christian Huitema, Sheng Jiang, Benjamin Kaduk, Suresh Krishnan, Warren Kumari, Albert Manfredi, Olorunloba Olopade, Jordi Palet Martinez, Pete Resnick, Michael Richardson, Mark Smith, Job Snijders, Sander Steffann, Tarko Tikan, Ole TrΓΈan, Loganaden Velvindron, Γric Vyncke, Robert Wilton, Timothy Winters, Christopher Wood, and Chongfeng Xie for leaving valuable comments on earlier draft versions π β¨
and Fernando wanted to give an extra special thank you to Brian Carpenter, who has answered so many questions over the years and offered comments that have helped his protocol work π₯Ήπ
Authors' Addresses π
these are the people who wrote it, so you know where to find them if you have questions π
Fernando Gont
SI6 Networks
Segurola y Habana 4310, 7mo Piso
Villa Devoto
Ciudad Autonoma de Buenos Aires
Argentina
Email: fgont@si6networks.com
URI: https://www.si6networks.com
Jan Ε½orΕΎ
6connect
Email: jan@6connect.com
Richard Patterson
Sky UK
Email: richard.patterson@sky.uk
Bernie Volz
Individual Contributor
116 Hawkins Pond Road
Center Harbor, NH 03226
United States of America
Email: bevolz@gmail.com
π¦ where this page comes from
- ietf: rfc9096 2021-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms