Internet-Draft | Variable IID | July 2024 |
Mishra, et al. | Expires 24 January 2025 | [Page] |
This draft proposes the use of a longer prefixes in PIO for SLAAC allowing a maximum prefix length of /80 with an IID of 48 bits. This would eliminate the race to the bottom concerns.¶
This implementation uses the RA/PIO bits to carry the variable IID to ensure backwards compatibility.¶
In the past, various IPv6 addressing models have been proposed based on a subnet hierarchy embedding a 64-bit prefix. The last remnant of IPv6 classful addressing is a inflexible interface identifier boundary at /64. This document proposes flexibility to the fixed position of that boundary for interface addressing.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 24 January 2025.¶
Copyright (c) 2024 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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The Variable IID problem statement document [I-D.mishra-v6ops-variable-iids-problem-statement] goes into detail surrounding the problem we are trying to solve with this document. There are many reasons that have come up as to why the fixed boundary must be changed and the two leading issues are firstly parity between addressing mechanisms SLAAC, DHCPv6 and Static, and secondly that Access Networks (AN) Wireless Mobile Broadband (MBB) and Wireline Fixed Broadband (FBB) provisioning systems are fixed at /64 and cannot be changed and thus shorter prefixes as a solution is not possible. Thus the only solution is variable IID. It is recommended to read the problem statement document before this solutions space document.¶
The lowest common denominator method of configuration for IPv6 nodes is SLAAC [RFC4862], which is carefully designed to allow any prefix length and any interface identifier (IID) length, provided that they do not total more than 128 bits. Until now, specifications of "IPv6 over foo" mappings, starting with [RFC2464], have specified an IID length of 64 bits, consistent with the value specified by [RFC4291].¶
This document allows a router to announce an IID length other than 64 on a given link, and updates RFC [RFC4291], [RFC2464] (and numerous other "IPv6 over foo" documents TBD), and [RFC4862] accordingly. It extends [RFC4861] by defining a new "IID length" mechanism in RA messages.¶
This document proposes longer prefixes in PIO for SLAAC allowing a maximum prefix lenght of /80 and an IID for 48 bits. The recommendation would eliminate the race to the bottom. The implementaion for backwards compatibility leverages the use of 6 LSB bits of the 32 bit Reserved2 field in the PIO options header which today per RFC 4861 is initialized to 0 and is ignored by the receiver. Since the PIO Reserved2 field is initialized to 0 by the sender and is ignored by the receiver, it allows for backwards compatibility for Unmodified hosts.¶
Terminolgoy used in defining the IPv6-Only Edge specification.¶
Modified Host: Supports this specification¶
Unmodified Host: Does not support this specification¶
The predefined IID length specified by [RFC4291], [RFC2464], etc. is used to configure the link-local IPv6 address of a node exactly as described in [RFC4862].¶
On a link where variable IID length is not supported, the predefined IID length will continue to be used to configure all other addresses using SLAAC.¶
On a link where variable IID length is supported, each modified router will include an "IID length" indication in every RA/PIO message with the A bit set. This will override the value defined in [RFC2464] (etc.) and in [RFC4291], for the prefix concerned.¶
In this variable IID specification it is recommended to put the IID length in the 6 LSB bits of the 32 Reserved2 field of the PIO for signaling to Modified hosts supporting variable IID that the prefix being advertised is not 64 bits.¶
00000000 would mean 64, i.e. no change and backwards compatible. Any other value would define an IID length in bits. Values less than 48 (00110000) are NOT RECOMMENDED. Values greater than 64 are impossible.¶
Exmaple of valid IID Length value: "00111011" /69 with 59 bit IID¶
(Note: Reserved1 is not available - see [RFC8425].)¶
When a modified node receives an "IID length" less than 64, it will use that value instead of the default for all unicast address autoconfiguration under that prefix, except link-local.¶
- Unmodified hosts and unmodified routers: no change, all use 64-bit IIDs.¶
- Modified hosts and unmodified routers: no change, all use 64-bit IIDs.¶
- Modified routers and unmodified hosts: no change, all use 64-bit IIDs.¶
- Modified hosts and modified routers: configure to use longer prefixes and shorter IIDs if desired.¶
Modified routers and mixture of modified and unmodified hosts on a link:¶
The modified hosts will use a shorter IID and longer prefix if that is announced.¶
The unmodified hosts, according to RFC 4861, MUST ignore the Reserved1 field. So, according to section 5.5.3 clause d) of RFC 4862, they will ignore any PIO advertising a shorter IID.¶
Therefore, operators have two choices for Unmodified hosts:¶
1. Decide that unmodified hosts will not be supported (i.e. will not be able to configure an address using SLAAC).¶
2. Announce (at least) two prefixes on the link - a /64 and a longer one, with a shorter IID. For that to make sense, we need an extra rule for modified hosts: if a host receives several PIOs from the same router, it prefers all those with the shortest IID and ignores the others.¶
Mixure of Modifiled and Unmodified hosts router on a link is not recommmended.¶
The administrator should be aware to maintain 64 bit interface identifier for privacy when connected directly to the internet so that entropy for optimal heuristics are maintained for security.¶
Variable length interface identifier shorter than 64 bits should be used within networks where there there are out-of-band guarantees that the hosts are trusted (e.g. corporate intranets and private networks).¶
IANA Request for RA PIO registry for RESERVE2¶
Brian Carpenter.¶