At Fri, 24 Feb 2017 02:20:09 -0600,
David Farmer <farmer(_at_)umn(_dot_)edu> wrote:
IPv6 unicast routing is based on prefixes of any valid length up to
and including 128 [BCP198]. However, subnet prefixes of 64 bits in
length are REQUIRED for use with Stateless Address Autoconfiguration
(SLAAC)[RFC4862] and are RECOMMENDED for all other general purpose
use. The rationale for the 64 bit boundary in IPv6 addresses can be
found in [RFC7421].
Except RFC4862(SLAAC) does not say anywhere that 64 bits long IIDs are
required.
Only mention I find of 64 is given as an example for EUI-64 for ethernet
links.
I believe most implementations of SLAAC require /64, but I could be wrong.
I don't know about "most implementations", but at least BSD variants
don't unconditionally require /64 for the IID (and therefore prefix)
length of SLAAC. It literally implements what RFC4862 states:
interface identifier - [...] The
exact length of an interface identifier and the way it is created
is defined in a separate link-type specific document that covers
issues related to the transmission of IP over a particular link
type (e.g., [RFC2464]).
That is, for the SLAAC implementation the length of the IID is a
parameter per link-type, not a magic constant value of 64. And, as
specified in RFC2464, the value for Ethernet links is defined to be
64. For an external observer it may not be distinguishable from the
magic number is hardcoded as if required for the entire
implementation, but the actual implementation is far from that.
So, aside from whether the above text is good in the main context of
this thread, just to make it more accurate it should be, e.g.:
IPv6 unicast routing is based on prefixes of any valid length up to
and including 128 [BCP198]. However, subnet prefixes of 64 bits
are REQUIRED for use with Stateless Address Autoconfiguration
(SLAAC)[RFC4862] in some link types such as Ethernet [RFC2464]. [...]
BTW, I think your idea of separating the implementation guidance and
operational guidance can be a compromise. If I correctly interpret
the interests of main stake holders in this thread, these are:
- some educated adults (aka "operators") want to be allowed to
configure there IPv6 addresses with an arbitrary IID (and therefore
arbitrary length of subnet prefix). and they don't want rfc4291bis
to explicitly ban such an operation
- some implementers want to be allowed to write code that only allows
64-bit IIDs for IPv6 addresses (except those that start with the
binary value 000) to configure for that implementation. and they
don't want rfc4291bis to make such an implementation non-compliant.
- maybe some others also want to use the existence of such
implementations as leverage to refuse ISPs offering very small size
of subnet.
If I'm correct that these are main concerns, text like your proposal
seems to meet these even if no one is completely satisfied.
--
JINMEI, Tatuya