RFC 7371
Updates to the IPv6 Multicast Addressing Architecture
RFC 7371: Updates to the IPv6 Multicast Addressing Architecture β¨
Okay bestie, this is RFC 7371 π¦, filed as ISSN 2070-1721. It's called Updates to the IPv6 Multicast Addressing Architecture, and it was written by M. Boucadair (France Telecom) and S. Venaas (Cisco) in September 2014. It's a Standards Track doc, so it's the real deal π . It updates RFCs 3306, 3956, and 4291, and no obsoleted documents are listed. The whole point is to rework the IPv6 multicast addressing architecture, so it's giving major upgrade energy π₯.
Abstract
Okay so the big idea here is that the reserved bits in IPv6 multicast addresses get redefined as generic flag bits π. The doc also clears up some confusion about how those flag bits should be used π«Ά.
This document updates RFCs 3956, 3306, and 4291 π.
Status of This Memo
This is an Internet Standards Track document β¨.
It's a product of the Internet Engineering Task Force (IETF), so it represents IETF community consensus. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) π. If you want more on Internet Standards, check Section 2 of RFC 5741 π§.
For the current status, any errata, or to send feedback, head to http://www.rfc-editor.org/info/rfc7371 π.
Copyright Notice
Copyright (c) 2014 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 (http://trustee.ietf.org/license-info) as they stood on the publication date. Please read them carefully, because they spell out your rights and restrictions. Code Components pulled out of this doc 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 π.
This document may contain material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008. Some of that material's copyright holders may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. Unless you get an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process. The one exceptions are formatting it for publication as an RFC or translating it into languages other than English π .
Table of Contents
1. Introduction ....................................................3
1.1. Requirements Language ......................................3
2. Addressing Architecture Update ..................................3
3. Flag Bits: New Processing Rules .................................4
4. RFC Updates .....................................................4
4.1. Updates to RFC 3306 ........................................4
4.1.1. Update #1 ...........................................4
4.1.2. Update #2 ...........................................6
4.2. Updates to RFC 3956 ........................................6
4.2.1. Update #1 ...........................................6
4.2.2. Update #2 ...........................................7
4.2.3. Update #3 ...........................................8
4.2.4. Update #4 ...........................................9
5. Security Considerations .........................................9
6. Acknowledgements ................................................9
7. References ......................................................9
7.1. Normative References .......................................9
7.2. Informative References ....................................10
1. Introduction π·
This doc updates the IPv6 addressing architecture [RFC4291] by turning reserved bits into generic flag bits (see Section 2). It also explains how those flag bits are supposed to get used (see Section 3) π .
This document updates [RFC3956], [RFC3306], and [RFC4291]. These updates are the logical consequences of the new processing rules in Section 3 π¦.
Any textual representation of IPv6 addresses in the RFC updates follows the recommendation in [RFC5952] π.
1.1. Requirements Language
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 is the rulebook for the capital-letter words, so pay attention to them π.
2. Addressing Architecture Update π§
Okay so bits 17-20 of a multicast address, counting bit 1 as the most significant bit, were defined as reserved bits in [RFC3956] and [RFC3306]. This document flips that: those bits become generic flag bits that apply to any multicast address β¨. They're called "ff2" (flag field 2), and the "flgs" bits from [RFC4291] [RFC3956] get renamed to "ff1" (flag field 1) π.
In this document, "flag bits" means both ff1 and ff2 π.
Making bits 17-20 flags for all IPv6 multicast addresses means addresses can be treated in a more uniform, generic way. It also leaves room to define these bits later for different purposes, no matter what kind of multicast address you're looking at π«Ά. Real talk, this design choice started with the proposal in [ADDR-FORMAT], which wanted to attach a meaning to one of the reserved bits. [ADDR-FORMAT] also looked at using the last remaining flag in ff1, but they dropped that idea because it wasn't clear yet whether the flag had other usage scenarios π.
Section 4 spells out the updated structure of the addressing architecture π.
Other specification documents may define a meaning for these flag bits π§.
3. Flag Bits: New Processing Rules π
Some implementations and specification documents don't treat the flag bits as separate bits. They tend to use the combined value as a 4-bit integer instead, and that's a real hurdle when you want to give a meaning to the remaining flag bits π. Here are a couple of examples, just to illustrate:
- The reading of [RFC3306] may lead one to conclude that
ff3x::/32is the only allowed Source-Specific Multicast (SSM) IPv6 prefix block. - [RFC3956] states that only
ff70::/12applies to Embedded-RP. Particularly, implementations should not treat thefff0::/12range as Embedded-RP.
To avoid this confusion and to unambiguously link a meaning to each remaining flag, the following requirement is made π:
Implementations MUST treat flag bits as separate bits. π₯
4. RFC Updates π
4.1. Updates to RFC 3306 πΈ
4.1.1. Update #1 β¨
This document changes Section 4 of [RFC3306] as follows π .
OLD:
| 8 | 4 | 4 | 8 | 8 | 64 | 32 |
+--------+----+----+--------+--------+----------------+----------+
|11111111|flgs|scop|reserved| plen | network prefix | group ID |
+--------+----+----+--------+--------+----------------+----------+
+-+-+-+-+
flgs is a set of 4 flags: |0|0|P|T|
+-+-+-+-+
- P = 0 indicates a multicast address that is not assigned based on the network prefix. This indicates a multicast address as defined in [ADDRARCH].
- P = 1 indicates a multicast address that is assigned based on the network prefix.
- If P = 1, T MUST be set to 1; otherwise, the setting of the T bit is defined in Section 2.7 of [ADDRARCH].
The reserved field MUST be zero.
Note: [ADDRARCH] is a reference listed in [RFC3306]. [ADDRARCH] has since been obsoleted by [RFC4291] π.
NEW:
| 8 | 4 | 4 | 4 | 4 | 8 | 64 | 32 |
+--------+----+----+----+----+--------+----------------+----------+
|11111111|ff1 |scop|ff2 |rsvd| plen | network prefix | group ID |
+--------+----+----+----+----+--------+----------------+----------+
+-+-+-+-+
ff1 (flag field 1) is a set of 4 flags: |X|Y|P|T|
+-+-+-+-+
X and Y may each be set to 0 or 1. Note that X is for future assignment, while a meaning is associated with Y in RFC 3956 π.
- P = 0 indicates a multicast address that is not assigned based on the network prefix. This indicates a multicast address as defined in [RFC4291].
- P = 1 indicates a multicast address that is assigned based on the network prefix.
- If P = 1, T MUST be set to 1; otherwise, the setting of the T bit is defined in Section 2.7 of [RFC4291].
+-+-+-+-+
ff2 (flag field 2) is a set of 4 flags: |r|r|r|r|
+-+-+-+-+
Here, "rrrr" is reserved for future assignment as additional flag bits. r bits MUST each be sent as zero and MUST be ignored on receipt π.
Flag bits denote both ff1 and ff2 π¦.
4.1.2. Update #2 π
This document changes Section 6 of [RFC3306] as follows π«Ά.
OLD:
These settings create an SSM range of FF3x::/32 (where 'x' is any
valid scope value). The source address field in the IPv6 header
identifies the owner of the multicast address.
NEW:
If the flag bits in ff1 are set to 0011, these settings create an
SSM range of ff3x::/32 (where 'x' is any valid scope value). The
source address field in the IPv6 header identifies the owner of
the multicast address. ff3x::/32 is not the only allowed SSM
prefix range. For example, if the most significant flag bit in
ff1 is set, then we would get the SSM range ffbx::/32.
4.2. Updates to RFC 3956 π§
4.2.1. Update #1 π
This document changes Section 2 of [RFC3956] as follows β¨.
OLD:
As described in [RFC3306], the multicast address format is
as follows:
| 8 | 4 | 4 | 8 | 8 | 64 | 32 |
+--------+----+----+--------+----+----------------+----------+
|11111111|flgs|scop|reserved|plen| network prefix | group ID |
+--------+----+----+--------+----+----------------+----------+
Where flgs are "0011". (The first two bits are as yet undefined,
sent as zero and ignored on receipt.)
NEW:
The multicast address format is as follows π :
| 8 | 4 | 4 | 4 | 4 | 8 | 64 | 32 |
+--------+----+----+----+----+----+----------------+----------+
|11111111|ff1 |scop|ff2 |rsvd|plen| network prefix | group ID |
+--------+----+----+----+----+----+----------------+----------+
+-+-+-+-+
ff1 (flag field 1) is a set of four flags: |X|R|P|T|
+-+-+-+-+
Where X is for future assignment as an additional flag bit. X may be set to 0 or 1 π¦.
+-+-+-+-+
ff2 (flag field 2) is a set of 4 flags: |r|r|r|r|
+-+-+-+-+
Where "rrrr" is for future assignment as additional flag bits. r bits MUST each be sent as zero and MUST be ignored on receipt π₯.
Flag bits denote both ff1 and ff2 π.
Part 1 of 2 is done, bestie! π Part 2 is coming up next with Sections 4.2.2 through the end, so stay tuned π«Άβ¨
4.2.2. Update #2 π
okay so this one changes Section 3 of [RFC3956] π here's the OLD layout first:
| 8 | 4 | 4 | 4 | 4 | 8 | 64 | 32 |
+--------+----+----+----+----+----+----------------+----------+
|11111111|flgs|scop|rsvd|RIID|plen| network prefix | group ID |
+--------+----+----+----+----+----+----------------+----------+
+-+-+-+-+
flgs is a set of four flags: |0|R|P|T|
+-+-+-+-+
so when the highest-order bit is 0, R = 1 means the multicast address embeds the address of the RP π¦ then P MUST be set to 1, and T MUST be set to 1 too, as [RFC3306] says. that basically locks it to the prefix FF70::/12 β¨ the last 4 bits of the old reserved field are used to embed the RP interface ID πΈ
if P or T isn't 1, the behavior is unspecified, because then the prefix wouldn't be FF70::/12 π and the FFF0::/12 range (flgs starting with 11) is intentionally left unspecified until the highest-order bit gets defined. without more IETF specs, implementations SHOULD NOT treat FFF0::/12 as Embedded-RP. bestie, that's a no-go zone for now π
here's the NEW layout:
| 8 | 4 | 4 | 4 | 4 | 8 | 64 | 32 |
+--------+----+----+----+----+----+----------------+----------+
|11111111|ff1 |scop|ff2 |RIID|plen| network prefix | group ID |
+--------+----+----+----+----+----+----------------+----------+
+-+-+-+-+
ff1 is a set of four flags: |X|R|P|T|
+-+-+-+-+
X is for future assignment as an additional flag bit π§ X may be set to 0 or 1.
R = 1 means the multicast address embeds the address of the RP π again P MUST be set to 1, and consequently T MUST be set to 1, according to [RFC3306], because this is a special case of unicast-prefix-based addresses. so now prefixes ff70::/12 and fff0::/12 both count as embedded RP prefixes β¨ when the R-bit is set, the last 4 bits of the field that [RFC3306] reserved are read as the embedded RP interface ID, as this memo specifies. main character energy π
4.2.3. Update #3 π¦
This document changes Section 4 of [RFC3956] as follows:
OLD:
- It MUST be a multicast address with
"flgs"set to 0111, that is, to be of the prefix FF70::/12,
NEW:
- It MUST be a multicast address with the R-bit set to 1.
- It MUST have the P-bit and T-bit both set to 1 when using the embedding in this document as it is a prefix-based address.
4.2.4. Update #4 π
This document changes Section 7.1 of [RFC3956] as follows:
OLD:
To avoid loops and inconsistencies, for addresses in the range
FF70::/12, the Embedded-RP mapping MUST be considered the longest
possible match and higher priority than any other mechanism.
NEW:
To avoid loops and inconsistencies, for addresses with the R-bit
set to 1, the Embedded-RP mapping MUST be considered the longest
possible match and higher priority than any other mechanism.
5. Security Considerations π₯
okay bestie, this part is serious π the same security considerations as those discussed in [RFC3956], [RFC3306], and [RFC4291] are to be taken into account. no skipping these, periodt π
6. Acknowledgements π«Ά
special thanks to Brian Haberman for the discussions before this document got published π and many thanks to Jouni Korhonen, Tatuya Jinmei, Charlie Kaufman, and Ben Campbell for reviewing it. the squad really showed up β¨
7. References π
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3306] Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6
Multicast Addresses", RFC 3306, August 2002.
[RFC3956] Savola, P. and B. Haberman, "Embedding the Rendezvous
Point (RP) Address in an IPv6 Multicast Address",
RFC 3956, November 2004.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006.
[RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6
Address Text Representation", RFC 5952, August 2010.
7.2. Informative References
[ADDR-FORMAT]
Boucadair, M., Qin, J., Lee, Y., Venaas, S., Li, X., and
M. Xu, "IPv6 Multicast Address With Embedded IPv4
Multicast Address", Work in Progress, April 2013.
Authors' Addresses β¨
Mohamed Boucadair
France Telecom
Rennes 35000
France
EMail: mohamed.boucadair@orange.com
Stig Venaas
Cisco
USA
EMail: stig@cisco.com
π¦ where this page comes from
- ietf: rfc7371 2014-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms