prefix.
2.6. Anycast Addresses
An IPv6 anycast address is an address that is assigned to more than
one interface (typically belonging to different nodes), with the
property that a packet sent to an anycast address is routed to the
"nearest" interface having that address, according to the routing
protocols’ measure of distance.
Anycast addresses are allocated from the unicast address space, using
any of the defined unicast address formats. Thus, anycast addresses
are syntactically indistinguishable from unicast addresses. When a
unicast address is assigned to more than one interface, thus turning
it into an anycast address, the nodes to which the address is
assigned must be explicitly configured to know that it is an anycast
address.
For any assigned anycast address, there is a longest prefix P of that
address that identifies the topological region in which all
interfaces belonging to that anycast address reside. Within the
region identified by P, the anycast address must be maintained as a
separate entry in the routing system (commonly referred to as a "host
route"); outside the region identified by P, the anycast address may
be aggregated into the routing entry for prefix P.
Note that in the worst case, the prefix P of an anycast set may be
the null prefix, i.e., the members of the set may have no topological
locality. In that case, the anycast address must be maintained as a
separate routing entry throughout the entire Internet, which presents
a severe scaling limit on how many such "global" anycast sets may be
supported. Therefore, it is expected that support for global anycast
sets may be unavailable or very restricted.
One expected use of anycast addresses is to identify the set of
routers belonging to an organization providing Internet service.
Such addresses could be used as intermediate addresses in an IPv6
Routing header, to cause a packet to be delivered via a particular
service provider or sequence of service providers.
Some other possible uses are to identify the set of routers attached
to a particular subnet, or the set of routers providing entry into a
particular routing domain.
2.6.1. Required Anycast Address
The Subnet-Router anycast address is predefined. Its format is as
follows:
| n bits | 128-n bits |
+------------------------------------------------+----------------+
| subnet prefix | 00000000000000 |
+------------------------------------------------+----------------+
The "subnet prefix" in an anycast address is the prefix that
identifies a specific link. This anycast address is syntactically
the same as a unicast address for an interface on the link with the
interface identifier set to zero.
Packets sent to the Subnet-Router anycast address will be delivered
to one router on the subnet. All routers are required to support the
Subnet-Router anycast addresses for the subnets to which they have
interfaces.
The Subnet-Router anycast address is intended to be used for
applications where a node needs to communicate with any one of the
set of routers.
2.7. Multicast Addresses
An IPv6 multicast address is an identifier for a group of interfaces
(typically on different nodes). An interface may belong to any
number of multicast groups. Multicast addresses have the following
format:
| 8 | 4 | 4 | 112 bits |
+------ -+----+----+---------------------------------------------+
|11111111|flgs|scop| group ID |
+--------+----+----+---------------------------------------------+
binary 11111111 at the start of the address identifies the address
as being a multicast address.
+-+-+-+-+
flgs is a set of 4 flags: |0|R|P|T|
+-+-+-+-+
The high-order flag is reserved, and must be initialized to 0.
T = 0 indicates a permanently-assigned ("well-known") multicast
address, assigned by the Internet Assigned Numbers Authority
(IANA).
T = 1 indicates a non-permanently-assigned ("transient" or
"dynamically" assigned) multicast address.
The P flag’s definition and usage can be found in [RFC3306].
The R flag’s definition and usage can be found in [RFC3956].
scop is a 4-bit multicast scope value used to limit the scope of
the multicast group. The values are as follows:
0 reserved
1 Interface-Local scope
2 Link-Local scope
3 reserved
4 Admin-Local scope
5 Site-Local scope
6 (unassigned)
7 (unassigned)
8 Organization-Local scope
9 (unassigned)
A (unassigned)
B (unassigned)
C (unassigned)
D (unassigned)
E Global scope
F reserved
Interface-Local scope spans only a single interface on a node
and is useful only for loopback transmission of multicast.
Link-Local multicast scope spans the same topological region as
the corresponding unicast scope.
Admin-Local scope is the smallest scope that must be
administratively configured, i.e., not automatically derived
from physical connectivity or other, non-multicast-related
configuration.
Site-Local scope is intended to span a single site.
Organization-Local scope is intended to span multiple sites
belonging to a single organization.
scopes labeled "(unassigned)" are available for administrators
to define additional multicast regions.
group ID identifies the multicast group, either permanent or
transient, within the given scope. Additional definitions of the
multicast group ID field structure are provided in [RFC3306].
The "meaning" of a permanently-assigned multicast address is
independent of the scope value. For example, if the "NTP servers
group" is assigned a permanent multicast address with a group ID of
101 (hex), then
FF01:0:0:0:0:0:0:101 means all NTP servers on the same interface
(i.e., the same node) as the sender.
FF02:0:0:0:0:0:0:101 means all NTP servers on the same link as the
sender.
FF05:0:0:0:0:0:0:101 means all NTP servers in the same site as the
sender.
FF0E:0:0:0:0:0:0:101 means all NTP servers in the Internet.
Non-permanently-assigned multicast addresses are meaningful only
within a given scope. For example, a group identified by the non-
permanent, site-local multicast address FF15:0:0:0:0:0:0:101 at one
site bears no relationship to a group using the same address at a
different site, nor to a non-permanent group using the same group ID
with a different scope, nor to a permanent group with the same group
ID.
Multicast addresses must not be used as source addresses in IPv6
packets or appear in any Routing header.
Routers must not forward any multicast packets beyond of the scope
indicated by the scop field in the destination multicast address.
Nodes must not originate a packet to a multicast address whose scop
field contains the reserved value 0; if such a packet is received, it
must be silently dropped. Nodes should not originate a packet to a
multicast address whose scop field contains the reserved value F; if
such a packet is sent or received, it must be treated the same as
packets destined to a global (scop E) multicast address.
2.7.1. Pre-Defined Multicast Addresses
The following well-known multicast addresses are pre-defined. The
group IDs defined in this section are defined for explicit scope
values.
Use of these group IDs for any other scope values, with the T flag
equal to 0, is not allowed.
Reserved Multicast Addresses: FF00:0:0:0:0:0:0:0
FF01:0:0:0:0:0:0:0
FF02:0:0:0:0:0:0:0
FF03:0:0:0:0:0:0:0
FF04:0:0:0:0:0:0:0
FF05:0:0:0:0:0:0:0
FF06:0:0:0:0:0:0:0
FF07:0:0:0:0:0:0:0
FF08:0:0:0:0:0:0:0
FF09:0:0:0:0:0:0:0
FF0A:0:0:0:0:0:0:0
FF0B:0:0:0:0:0:0:0
FF0C:0:0:0:0:0:0:0
FF0D:0:0:0:0:0:0:0
FF0E:0:0:0:0:0:0:0
FF0F:0:0:0:0:0:0:0
The above multicast addresses are reserved and shall never be
assigned to any multicast group.
All Nodes Addresses: FF01:0:0:0:0:0:0:1
FF02:0:0:0:0:0:0:1
The above multicast addresses identify the group of all IPv6 nodes,
within scope 1 (interface-local) or 2 (link-local).
All Routers Addresses: FF01:0:0:0:0:0:0:2
FF02:0:0:0:0:0:0:2
FF05:0:0:0:0:0:0:2
The above multicast addresses identify the group of all IPv6 routers,
within scope 1 (interface-local), 2 (link-local), or 5 (site-local).
Solicited-Node Address: FF02:0:0:0:0:1:FFXX:XXXX
Solicited-Node multicast address are computed as a function of a
node’s unicast and anycast addresses. A Solicited-Node multicast
address is formed by taking the low-order 24 bits of an address
(unicast or anycast) and appending those bits to the prefix
FF02:0:0:0:0:1:FF00::/104 resulting in a multicast address in the
range
FF02:0:0:0:0:1:FF00:0000
to
FF02:0:0:0:0:1:FFFF:FFFF
For example, the Solicited-Node multicast address corresponding to
the IPv6 address 4037::01:800:200E:8C6C is FF02::1:FF0E:8C6C. IPv6
addresses that differ only in the high-order bits (e.g., due to
multiple high-order prefixes associated with different aggregations)
will map to the same Solicited-Node address, thereby reducing the
number of multicast addresses a node must join.
A node is required to compute and join (on the appropriate interface)
the associated Solicited-Node multicast addresses for all unicast and
anycast addresses that have been configured for the node’s interfaces
(manually or automatically).
2.8. A Node’s Required Addresses
A host is required to recognize the following addresses as
identifying itself:
o Its required Link-Local address for each interface.
o Any additional Unicast and Anycast addresses that have been
configured for the node’s interfaces (manually or
automatically).
o The loopback address.
o The All-Nodes multicast addresses defined in Section 2.7.1.
o The Solicited-Node multicast address for each of its unicast and
anycast addresses.
o Multicast addresses of all other groups to which the node
belongs.
A router is required to recognize all addresses that a host is
required to recognize, plus the following addresses as identifying
itself:
o The Subnet-Router Anycast addresses for all interfaces for which
it is configured to act as a router.
o All other Anycast addresses with which the router has been
configured.
o The All-Routers multicast addresses defined in Section 2.7.1.
3. Security Considerations
IPv6 addressing documents do not have any direct impact on Internet
infrastructure security. Authentication of IPv6 packets is defined
in [AUTH].
4. IANA Considerations
The "IPv4-Compatible IPv6 address" is deprecated by this document.
The IANA should continue to list the address block containing these
addresses at http://www.iana.org/assignments/ipv6-address-space as
"Reserved by IETF" and not reassign it for any other purpose. For
example:
0000::/8 Reserved by IETF [RFC3513] [1]
The IANA has added the following note and link to this address block.
[5] 0000::/96 was previously defined as the "IPv4-Compatible IPv6
address" prefix. This definition has been deprecated by RFC
4291.
The IANA has updated the references for the IPv6 Address Architecture
in the IANA registries accordingly.
5. Acknowledgements
The authors would like to acknowledge the contributions of Paul
Francis, Scott Bradner, Jim Bound, Brian Carpenter, Matt Crawford,
Deborah Estrin, Roger Fajman, Bob Fink, Peter Ford, Bob Gilligan,
Dimitry Haskin, Tom Harsch, Christian Huitema, Tony Li, Greg
Minshall, Thomas Narten, Erik Nordmark, Yakov Rekhter, Bill Simpson,
Sue Thomson, Markku Savela, Larry Masinter, Jun-ichiro Itojun Hagino,
Tatuya Jinmei, Suresh Krishnan, and Mahmood Ali.
6. References
6.1. Normative References
[IPV6] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998.
6.2. Informative References
[AUTH] Kent, S. and R. Atkinson, "IP Authentication Header", RFC
2402, November 1998.
[CIDR] Fuller, V., Li, T., Yu, J., and K. Varadhan, "Classless
Inter-Domain Routing (CIDR): an Address Assignment and
Aggregation Strategy", RFC 1519, September 1993.
[ETHER] Crawford, M., "Transmission of IPv6 Packets over Ethernet
Networks", RFC 2464, December 1998.
[EUI64] IEEE, "Guidelines for 64-bit Global Identifier (EUI-64)
Registration Authority",
http://standards.ieee.org/regauth/oui/tutorials/EUI64.html,
March 1997.
[FDDI] Crawford, M., "Transmission of IPv6 Packets over FDDI
Networks", RFC 2467, December 1998.
[GLOBAL] Hinden, R., Deering, S., and E. Nordmark, "IPv6 Global
Unicast Address Format", RFC 3587, August 2003.
[PRIV] Narten, T. and R. Draves, "Privacy Extensions for Stateless
Address Autoconfiguration in IPv6", RFC 3041, January 2001.
[RFC3513] Hinden, R. and S. Deering, "Internet Protocol Version 6
(IPv6) Addressing Architecture", RFC 3513, April 2005.
[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.
[RFC4038] Shin, M-K., Hong, Y-G., Hagino, J., Savola, P., and E.
Castro, "Application Aspects of IPv6 Transition", RFC 4038,
March 2005.
[SLDEP] Huitema, C. and B. Carpenter, "Deprecating Site Local
Addresses", RFC 3879, September 2004.
Appendix A: Creating Modified EUI-64 Format Interface Identifiers
Depending on the characteristics of a specific link or node, there
are a number of approaches for creating Modified EUI-64 format
interface identifiers. This appendix describes some of these
approaches.
Links or Nodes with IEEE EUI-64 Identifiers
The only change needed to transform an IEEE EUI-64 identifier to an
interface identifier is to invert the "u" (universal/local) bit. An
example is a globally unique IEEE EUI-64 identifier of the form:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
where "c" is the bits of the assigned company_id, "0" is the value of
the universal/local bit to indicate universal scope, "g" is
individual/group bit, and "m" is the bits of the manufacturer-
selected extension identifier. The IPv6 interface identifier would
be of the form:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
The only change is inverting the value of the universal/local bit.
Links or Nodes with IEEE 802 48-bit MACs
[EUI64] defines a method to create an IEEE EUI-64 identifier from an
IEEE 48-bit MAC identifier. This is to insert two octets, with
hexadecimal values of 0xFF and 0xFE (see the Note at the end of
appendix), in the middle of the 48-bit MAC (between the company_id
and vendor-supplied id). An example is the 48-bit IEEE MAC with
Global scope:
|0 1|1 3|3 4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+
where "c" is the bits of the assigned company_id, "0" is the value of
the universal/local bit to indicate Global scope, "g" is
individual/group bit, and "m" is the bits of the manufacturer-
selected extension identifier. The interface identifier would be of
the form:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
When IEEE 802 48-bit MAC addresses are available (on an interface or
a node), an implementation may use them to create interface
identifiers due to their availability and uniqueness properties.
Links with Other Kinds of Identifiers
There are a number of types of links that have link-layer interface
identifiers other than IEEE EUI-64 or IEEE 802 48-bit MACs. Examples
include LocalTalk and Arcnet. The method to create a Modified EUI-64
format identifier is to take the link identifier (e.g., the LocalTalk
8-bit node identifier) and zero fill it to the left. For example, a
LocalTalk 8-bit node identifier of hexadecimal value 0x4F results in
the following interface identifier:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+
Note that this results in the universal/local bit set to "0" to
indicate local scope.
Links without Identifiers
There are a number of links that do not have any type of built-in
identifier. The most common of these are serial links and configured
tunnels. Interface identifiers that are unique within a subnet
prefix must be chosen.
When no built-in identifier is available on a link, the preferred
approach is to use a universal interface identifier from another
interface or one that is assigned to the node itself. When using
this approach, no other interface connecting the same node to the
same subnet prefix may use the same identifier.
If there is no universal interface identifier available for use on
the link, the implementation needs to create a local-scope interface
identifier. The only requirement is that it be unique within a
subnet prefix. There are many possible approaches to select a
subnet-prefix-unique interface identifier. These include the
following:
Manual Configuration
Node Serial Number
Other Node-Specific Token
The subnet-prefix-unique interface identifier should be generated in
a manner such that it does not change after a reboot of a node or if
interfaces are added or deleted from the node.
The selection of the appropriate algorithm is link and implementation
dependent. The details on forming interface identifiers are defined
in the appropriate "IPv6 over <link>" specification. It is strongly
recommended that a collision detection algorithm be implemented as
part of any automatic algorithm.
Note: [EUI-64] actually defines 0xFF and 0xFF as the bits to be
inserted to create an IEEE EUI-64 identifier from an IEEE MAC-
48 identifier. The 0xFF and 0xFE values are used when starting
with an IEEE EUI-48 identifier. The incorrect value was used
in earlier versions of the specification due to a
misunderstanding about the differences between IEEE MAC-48 and
EUI-48 identifiers.
This document purposely continues the use of 0xFF and 0xFE
because it meets the requirements for IPv6 interface
identifiers (i.e., that they must be unique on the link), IEEE
EUI-48 and MAC-48 identifiers are syntactically equivalent, and
that it doesn’t cause any problems in practice.
Appendix B: Changes from RFC 3513
The following changes were made from RFC 3513, "IP Version 6
Addressing Architecture":
o The restrictions on using IPv6 anycast addresses were removed
because there is now sufficient experience with the use of anycast
addresses, the issues are not specific to IPv6, and the GROW