merge nick's changes
This commit is contained in:
parent
7ce39e3f1c
commit
d080639bbe
1 changed files with 85 additions and 85 deletions
|
|
@ -4,8 +4,9 @@
|
||||||
|
|
||||||
Network Working Group N. Bourbaki
|
Network Working Group N. Bourbaki
|
||||||
Internet-Draft The Intertubes
|
Internet-Draft The Intertubes
|
||||||
Intended status: Standards Track May 13, 2017
|
Updates: 4291 (if approved) May 15, 2017
|
||||||
Expires: November 14, 2017
|
Intended status: Standards Track
|
||||||
|
Expires: November 16, 2017
|
||||||
|
|
||||||
|
|
||||||
IPv6 is Classless
|
IPv6 is Classless
|
||||||
|
|
@ -14,11 +15,10 @@ Expires: November 14, 2017
|
||||||
Abstract
|
Abstract
|
||||||
|
|
||||||
Over the history of IPv6, various classful address models have been
|
Over the history of IPv6, various classful address models have been
|
||||||
proposed, with the most notable being Top-Level Aggregation (TLA) and
|
proposed, none of which has withstood the test of time. The last
|
||||||
Next-Level Aggregation (NLA) Identifiers. They have all proved to be
|
remnant of IPv6 classful addressing is a rigid network interface
|
||||||
mistakes. The last remnant of classful addressing is a rigid network
|
identifier boundary at /64. This document removes that boundary for
|
||||||
/ interface identifier boundary at /64. This document removes that
|
routing and interface addressing.
|
||||||
boundary as far as routing and addressing are concerned.
|
|
||||||
|
|
||||||
Status of This Memo
|
Status of This Memo
|
||||||
|
|
||||||
|
|
@ -35,7 +35,7 @@ Status of This Memo
|
||||||
time. It is inappropriate to use Internet-Drafts as reference
|
time. It is inappropriate to use Internet-Drafts as reference
|
||||||
material or to cite them other than as "work in progress."
|
material or to cite them other than as "work in progress."
|
||||||
|
|
||||||
This Internet-Draft will expire on November 14, 2017.
|
This Internet-Draft will expire on November 16, 2017.
|
||||||
|
|
||||||
Copyright Notice
|
Copyright Notice
|
||||||
|
|
||||||
|
|
@ -53,7 +53,7 @@ Copyright Notice
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bourbaki Expires November 14, 2017 [Page 1]
|
Bourbaki Expires November 16, 2017 [Page 1]
|
||||||
|
|
||||||
Internet-Draft IPv6 is Classless May 2017
|
Internet-Draft IPv6 is Classless May 2017
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ Table of Contents
|
||||||
|
|
||||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||||
2. Suggested Reading . . . . . . . . . . . . . . . . . . . . . . 2
|
2. Suggested Reading . . . . . . . . . . . . . . . . . . . . . . 2
|
||||||
3. A simple Statement . . . . . . . . . . . . . . . . . . . . . 3
|
3. Identifier and Subnet Length Statements . . . . . . . . . . . 3
|
||||||
4. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 3
|
4. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
|
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
|
||||||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
|
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
|
||||||
|
|
@ -78,38 +78,38 @@ Table of Contents
|
||||||
|
|
||||||
1. Introduction
|
1. Introduction
|
||||||
|
|
||||||
Over the history of IPv6, various classful address models have been
|
Over the history of the IPv6 protocol, several classful addressing
|
||||||
proposed, with the most notable being Top-Level Aggregation (TLA) and
|
models have been proposed. The most notable example recommended Top-
|
||||||
Next-Level Aggregation (NLA) Identifiers; see, for example,
|
Level Aggregation (TLA) and Next-Level Aggregation (NLA) Identifiers
|
||||||
[RFC2450]. They have all proved to be mistakes. For example, TLA
|
[RFC2450], but was obsoleted by [RFC3587], leaving a single remnant
|
||||||
and NLA were obsoleted by [RFC3587]. The last remnant of classful
|
of classful addressing in IPv6: a rigid network interface identifier
|
||||||
addressing is a rigid network / interface identifier boundary at /64.
|
boundary at /64. This document removes that boundary for interface
|
||||||
This document removes that boundary as far as routing and addressing
|
addressing.
|
||||||
are concerned.
|
|
||||||
|
|
||||||
Some confusion has been caused by the IP Version 6 Addressing
|
Recent proposed changes to the IP Version 6 Addressing Architecture
|
||||||
Architecture, [RFC4291], and the proposed changes in
|
specification [RFC4291] have caused controversy. While link prefixes
|
||||||
[I-D.ietf-6man-rfc4291bis] with respect to the minimum subnet size.
|
of varied lengths, e.g. /127, /126, /124, /120, ... /64 have been
|
||||||
|
successfully deployed for many years, glaring mismatches between a
|
||||||
|
formal specification and long-standing field deployment practices are
|
||||||
|
never wise, not least because of the strong risk of mis-
|
||||||
|
implementation, which can easily result in serious operational
|
||||||
|
problems.
|
||||||
|
|
||||||
Meanwhile, link prefixes of varied lengths, /127, /126, /124, /120,
|
This document also clarifies that IPv6 routing subnets may be of any
|
||||||
... /64 have been successfully deployed for many years. Having the
|
length up to 128.
|
||||||
formal specification be unclear risks potential mis-implementation by
|
|
||||||
the naive, which could result in operational disasters.
|
|
||||||
|
|
||||||
2. Suggested Reading
|
2. Suggested Reading
|
||||||
|
|
||||||
It is assumed that the reader understands the history of classful
|
It is assumed that the reader understands the history of classful
|
||||||
addressing in IPv4 and why it was abolished [RFC4632]. Of course,
|
addressing in IPv4 and why it was abolished [RFC4632]. Of course,
|
||||||
the acute need to conserve address space that forced the adoption of
|
the acute need to conserve address space that forced the adoption of
|
||||||
classless addressing for IPv4 does not apply to IPv6; but the
|
classless addressing for IPv4 does not apply to IPv6, but the
|
||||||
arguments for operational flexibility in address allocation remain
|
arguments for operational flexibility in address assignment remain
|
||||||
compelling.
|
compelling.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bourbaki Expires November 16, 2017 [Page 2]
|
||||||
|
|
||||||
Bourbaki Expires November 14, 2017 [Page 2]
|
|
||||||
|
|
||||||
Internet-Draft IPv6 is Classless May 2017
|
Internet-Draft IPv6 is Classless May 2017
|
||||||
|
|
||||||
|
|
@ -117,29 +117,37 @@ Internet-Draft IPv6 is Classless May 2017
|
||||||
It is also assumed that the reader understands IPv6 [RFC2460], the IP
|
It is also assumed that the reader understands IPv6 [RFC2460], the IP
|
||||||
Version 6 Addressing Architecture [RFC4291], the proposed changes to
|
Version 6 Addressing Architecture [RFC4291], the proposed changes to
|
||||||
RFC4291 [I-D.ietf-6man-rfc4291bis] and RFC2464
|
RFC4291 [I-D.ietf-6man-rfc4291bis] and RFC2464
|
||||||
[I-D.hinden-6man-rfc2464bis], and the recent recommendations for the
|
[I-D.hinden-6man-rfc2464bis], and the IETF recommendation for the
|
||||||
generation of stable Interface Identifiers [RFC8064].
|
generation of stable Interface Identifiers [RFC8064].
|
||||||
|
|
||||||
An important recent IPv6 development was that, for host computers on
|
For host computers on local area networks, generation of interface
|
||||||
local area networks, the way in which interface identifiers were
|
identifiers is no longer necessarily bound to layer 2 addresses
|
||||||
formed was no longer bound to layer 2 addresses (MACs) [RFC7217]
|
(MACs) [RFC7217] [RFC8064]. Therefore their length, previously fixed
|
||||||
[RFC8064]. Therefore their length, previously fixed at 64 bits
|
at 64 bits [RFC7136], is in fact a variably-sized parameter as
|
||||||
[RFC7136], is in fact a variably-sized parameter as stated in
|
explicitly acknowledged in Section 5.5.3(d) of [RFC4862] which
|
||||||
[RFC4862].
|
states:
|
||||||
|
|
||||||
3. A simple Statement
|
Note that a future revision of the address architecture [RFC4291]
|
||||||
|
and a future link-type-specific document, which will still be
|
||||||
|
consistent with each other, could potentially allow for an
|
||||||
|
interface identifier of length other than the value defined in the
|
||||||
|
current documents. Thus, an implementation should not assume a
|
||||||
|
particular constant. Rather, it should expect any lengths of
|
||||||
|
interface identifiers.
|
||||||
|
|
||||||
To state it simply, IPv6 unicast subnetting is based on prefixes of
|
3. Identifier and Subnet Length Statements
|
||||||
any valid length up to 128 except for links where an Internet
|
|
||||||
Standard that has nothing to do with routing may impose a particular
|
|
||||||
length. Examples are Stateless Address AutoConfiguration (SLAAC)
|
|
||||||
[RFC4862], or Using 127-Bit IPv6 Prefixes on Inter-Router Links
|
|
||||||
[RFC6164].
|
|
||||||
|
|
||||||
Nodes must always support routing on any valid network prefix length,
|
IPv6 unicast interfaces may use any subnet length up to 128 except
|
||||||
even if SLAAC or other standards are in use, because routing could
|
for situations where an Internet Standard document may impose a
|
||||||
choose to differentiate at a different granularity than is used by
|
particular length, for example Stateless Address Autoconfiguration
|
||||||
any such automated link local address configuration tools.
|
(SLAAC) [RFC4862], or Using 127-Bit IPv6 Prefixes on Inter-Router
|
||||||
|
Links [RFC6164].
|
||||||
|
|
||||||
|
Additionally, this document clarifies that a node or router MUST
|
||||||
|
support routing of any valid network prefix length, even if SLAAC or
|
||||||
|
other standards are in use, because routing could choose to
|
||||||
|
differentiate at a different granularity than is used by any such
|
||||||
|
automated link local address configuration tools.
|
||||||
|
|
||||||
4. Recommendations
|
4. Recommendations
|
||||||
|
|
||||||
|
|
@ -147,32 +155,32 @@ Internet-Draft IPv6 is Classless May 2017
|
||||||
other considerations, a /64 is recommended [RFC7136].
|
other considerations, a /64 is recommended [RFC7136].
|
||||||
|
|
||||||
The length of the Interface Identifier in Stateless Address
|
The length of the Interface Identifier in Stateless Address
|
||||||
AutoConfiguration [RFC4862] is a parameter; its length SHOULD be
|
Autoconfiguration [RFC4862] is a parameter; its length SHOULD be
|
||||||
sufficient for effective randomization for privacy reasons. For
|
sufficient for effective randomization for privacy reasons. For
|
||||||
example, a /48 might be sufficient. But operationally we recommend,
|
example, a /48 might be sufficient. But operationally we recommend,
|
||||||
barring strong considerations to the contrary, using 64-bits for
|
barring strong considerations to the contrary, using 64-bits for
|
||||||
SLAAC in order not to discover bugs where 64 was hard-coded, and to
|
SLAAC in order not to discover bugs where 64 was hard-coded, and to
|
||||||
favor portability of devices and operating systems.
|
favor portability of devices and operating systems.
|
||||||
|
|
||||||
None the less, there is no reason in theory why an IPv6 node should
|
|
||||||
not operate with different interface identfier lengths on different
|
|
||||||
|
|
||||||
|
Bourbaki Expires November 16, 2017 [Page 3]
|
||||||
|
|
||||||
|
Internet-Draft IPv6 is Classless May 2017
|
||||||
|
|
||||||
|
|
||||||
|
Nonetheless, there is no reason in theory why an IPv6 node should not
|
||||||
|
operate with different interface identfier lengths on different
|
||||||
physical interfaces. Thus, a correct implementation of SLAAC must in
|
physical interfaces. Thus, a correct implementation of SLAAC must in
|
||||||
fact allow for any prefix length, with the value being a parameter
|
fact allow for any prefix length, with the value being a parameter
|
||||||
per interface. For instance, the Interface Identifier length in the
|
per interface. For instance, the Interface Identifier length in the
|
||||||
recommended (see [RFC8064]) algorithm for selecting stable interface
|
recommended (see [RFC8064]) algorithm for selecting stable interface
|
||||||
identifiers [RFC7217] is a parameter, rather than a hardcoded value.
|
identifiers [RFC7217] is a parameter, rather than a hardcoded value.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bourbaki Expires November 14, 2017 [Page 3]
|
|
||||||
|
|
||||||
Internet-Draft IPv6 is Classless May 2017
|
|
||||||
|
|
||||||
|
|
||||||
5. Security Considerations
|
5. Security Considerations
|
||||||
|
|
||||||
Assumming that nodes employ unpredictable interface identifiers
|
Assuming that nodes employ unpredictable interface identifiers
|
||||||
[RFC7721], the subnet size may have an impact on some security and
|
[RFC7721], the subnet size may have an impact on some security and
|
||||||
privacy properties of a network. Namely, the smaller the subnet
|
privacy properties of a network. Namely, the smaller the subnet
|
||||||
size, the more feasible it becomes to perform IPv6 address scans
|
size, the more feasible it becomes to perform IPv6 address scans
|
||||||
|
|
@ -210,6 +218,14 @@ Internet-Draft IPv6 is Classless May 2017
|
||||||
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
|
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
|
||||||
(IPv6) Specification", RFC 2460, December 1998.
|
(IPv6) Specification", RFC 2460, December 1998.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bourbaki Expires November 16, 2017 [Page 4]
|
||||||
|
|
||||||
|
Internet-Draft IPv6 is Classless May 2017
|
||||||
|
|
||||||
|
|
||||||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
|
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
|
||||||
Architecture", RFC 4291, February 2006.
|
Architecture", RFC 4291, February 2006.
|
||||||
|
|
||||||
|
|
@ -219,13 +235,6 @@ Internet-Draft IPv6 is Classless May 2017
|
||||||
DOI 10.17487/RFC7217, April 2014,
|
DOI 10.17487/RFC7217, April 2014,
|
||||||
<http://www.rfc-editor.org/info/rfc7217>.
|
<http://www.rfc-editor.org/info/rfc7217>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bourbaki Expires November 14, 2017 [Page 4]
|
|
||||||
|
|
||||||
Internet-Draft IPv6 is Classless May 2017
|
|
||||||
|
|
||||||
|
|
||||||
[RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu,
|
[RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu,
|
||||||
"Recommendation on Stable IPv6 Interface Identifiers",
|
"Recommendation on Stable IPv6 Interface Identifiers",
|
||||||
RFC 8064, DOI 10.17487/RFC8064, February 2017,
|
RFC 8064, DOI 10.17487/RFC8064, February 2017,
|
||||||
|
|
@ -265,23 +274,19 @@ Internet-Draft IPv6 is Classless May 2017
|
||||||
Networks", RFC 7707, DOI 10.17487/RFC7707, March 2016,
|
Networks", RFC 7707, DOI 10.17487/RFC7707, March 2016,
|
||||||
<http://www.rfc-editor.org/info/rfc7707>.
|
<http://www.rfc-editor.org/info/rfc7707>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bourbaki Expires November 16, 2017 [Page 5]
|
||||||
|
|
||||||
|
Internet-Draft IPv6 is Classless May 2017
|
||||||
|
|
||||||
|
|
||||||
[RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy
|
[RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy
|
||||||
Considerations for IPv6 Address Generation Mechanisms",
|
Considerations for IPv6 Address Generation Mechanisms",
|
||||||
RFC 7721, DOI 10.17487/RFC7721, March 2016,
|
RFC 7721, DOI 10.17487/RFC7721, March 2016,
|
||||||
<http://www.rfc-editor.org/info/rfc7721>.
|
<http://www.rfc-editor.org/info/rfc7721>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bourbaki Expires November 14, 2017 [Page 5]
|
|
||||||
|
|
||||||
Internet-Draft IPv6 is Classless May 2017
|
|
||||||
|
|
||||||
|
|
||||||
Author's Address
|
Author's Address
|
||||||
|
|
||||||
Nicolas Bourbaki
|
Nicolas Bourbaki
|
||||||
|
|
@ -328,9 +333,4 @@ Author's Address
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bourbaki Expires November 16, 2017 [Page 6]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bourbaki Expires November 14, 2017 [Page 6]
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue