summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4291.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc4291.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc4291.txt')
-rw-r--r--doc/rfc/rfc4291.txt1403
1 files changed, 1403 insertions, 0 deletions
diff --git a/doc/rfc/rfc4291.txt b/doc/rfc/rfc4291.txt
new file mode 100644
index 0000000..06ef736
--- /dev/null
+++ b/doc/rfc/rfc4291.txt
@@ -0,0 +1,1403 @@
+
+
+
+
+
+
+Network Working Group R. Hinden
+Request for Comments: 4291 Nokia
+Obsoletes: 3513 S. Deering
+Category: Standards Track Cisco Systems
+ February 2006
+
+
+ IP Version 6 Addressing Architecture
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2006).
+
+Abstract
+
+ This specification defines the addressing architecture of the IP
+ Version 6 (IPv6) protocol. The document includes the IPv6 addressing
+ model, text representations of IPv6 addresses, definition of IPv6
+ unicast addresses, anycast addresses, and multicast addresses, and an
+ IPv6 node's required addresses.
+
+ This document obsoletes RFC 3513, "IP Version 6 Addressing
+ Architecture".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hinden Standards Track [Page 1]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 2. IPv6 Addressing .................................................2
+ 2.1. Addressing Model ...........................................3
+ 2.2. Text Representation of Addresses ...........................4
+ 2.3. Text Representation of Address Prefixes ....................5
+ 2.4. Address Type Identification ................................6
+ 2.5. Unicast Addresses ..........................................6
+ 2.5.1. Interface Identifiers ...............................7
+ 2.5.2. The Unspecified Address .............................9
+ 2.5.3. The Loopback Address ................................9
+ 2.5.4. Global Unicast Addresses ............................9
+ 2.5.5. IPv6 Addresses with Embedded IPv4 Addresses ........10
+ 2.5.6. Link-Local IPv6 Unicast Addresses ..................11
+ 2.5.7. Site-Local IPv6 Unicast Addresses ..................11
+ 2.6. Anycast Addresses .........................................12
+ 2.6.1. Required Anycast Address ...........................12
+ 2.7. Multicast Addresses .......................................13
+ 2.7.1. Pre-Defined Multicast Addresses ....................15
+ 2.8. A Node's Required Addresses ...............................17
+ 3. Security Considerations ........................................18
+ 4. IANA Considerations ............................................18
+ 5. Acknowledgements ...............................................18
+ 6. References .....................................................18
+ 6.1. Normative References ......................................18
+ 6.2. Informative References ....................................18
+ Appendix A: Creating Modified EUI-64 Format Interface Identifiers .20
+ Appendix B: Changes from RFC 3513 .................................22
+
+1. Introduction
+
+ This specification defines the addressing architecture of the IP
+ Version 6 protocol. It includes the basic formats for the various
+ types of IPv6 addresses (unicast, anycast, and multicast).
+
+2. IPv6 Addressing
+
+ IPv6 addresses are 128-bit identifiers for interfaces and sets of
+ interfaces (where "interface" is as defined in Section 2 of [IPV6]).
+ There are three types of addresses:
+
+ Unicast: An identifier for a single interface. A packet sent to a
+ unicast address is delivered to the interface identified
+ by that address.
+
+
+
+
+
+
+Hinden Standards Track [Page 2]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ Anycast: An identifier for a set of interfaces (typically
+ belonging to different nodes). A packet sent to an
+ anycast address is delivered to one of the interfaces
+ identified by that address (the "nearest" one, according
+ to the routing protocols' measure of distance).
+
+ Multicast: An identifier for a set of interfaces (typically
+ belonging to different nodes). A packet sent to a
+ multicast address is delivered to all interfaces
+ identified by that address.
+
+ There are no broadcast addresses in IPv6, their function being
+ superseded by multicast addresses.
+
+ In this document, fields in addresses are given a specific name, for
+ example, "subnet". When this name is used with the term "ID" for
+ identifier after the name (e.g., "subnet ID"), it refers to the
+ contents of the named field. When it is used with the term "prefix"
+ (e.g., "subnet prefix"), it refers to all of the address from the
+ left up to and including this field.
+
+ In IPv6, all zeros and all ones are legal values for any field,
+ unless specifically excluded. Specifically, prefixes may contain, or
+ end with, zero-valued fields.
+
+2.1. Addressing Model
+
+ IPv6 addresses of all types are assigned to interfaces, not nodes.
+ An IPv6 unicast address refers to a single interface. Since each
+ interface belongs to a single node, any of that node's interfaces'
+ unicast addresses may be used as an identifier for the node.
+
+ All interfaces are required to have at least one Link-Local unicast
+ address (see Section 2.8 for additional required addresses). A
+ single interface may also have multiple IPv6 addresses of any type
+ (unicast, anycast, and multicast) or scope. Unicast addresses with a
+ scope greater than link-scope are not needed for interfaces that are
+ not used as the origin or destination of any IPv6 packets to or from
+ non-neighbors. This is sometimes convenient for point-to-point
+ interfaces. There is one exception to this addressing model:
+
+ A unicast address or a set of unicast addresses may be assigned to
+ multiple physical interfaces if the implementation treats the
+ multiple physical interfaces as one interface when presenting it
+ to the internet layer. This is useful for load-sharing over
+ multiple physical interfaces.
+
+
+
+
+
+Hinden Standards Track [Page 3]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ Currently, IPv6 continues the IPv4 model in that a subnet prefix is
+ associated with one link. Multiple subnet prefixes may be assigned
+ to the same link.
+
+2.2. Text Representation of Addresses
+
+ There are three conventional forms for representing IPv6 addresses as
+ text strings:
+
+ 1. The preferred form is x:x:x:x:x:x:x:x, where the 'x's are one to
+ four hexadecimal digits of the eight 16-bit pieces of the address.
+ Examples:
+
+ ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
+
+ 2001:DB8:0:0:8:800:200C:417A
+
+ Note that it is not necessary to write the leading zeros in an
+ individual field, but there must be at least one numeral in every
+ field (except for the case described in 2.).
+
+ 2. Due to some methods of allocating certain styles of IPv6
+ addresses, it will be common for addresses to contain long strings
+ of zero bits. In order to make writing addresses containing zero
+ bits easier, a special syntax is available to compress the zeros.
+ The use of "::" indicates one or more groups of 16 bits of zeros.
+ The "::" can only appear once in an address. The "::" can also be
+ used to compress leading or trailing zeros in an address.
+
+ For example, the following addresses
+
+ 2001:DB8:0:0:8:800:200C:417A a unicast address
+ FF01:0:0:0:0:0:0:101 a multicast address
+ 0:0:0:0:0:0:0:1 the loopback address
+ 0:0:0:0:0:0:0:0 the unspecified address
+
+ may be represented as
+
+ 2001:DB8::8:800:200C:417A a unicast address
+ FF01::101 a multicast address
+ ::1 the loopback address
+ :: the unspecified address
+
+ 3. An alternative form that is sometimes more convenient when dealing
+ with a mixed environment of IPv4 and IPv6 nodes is
+ x:x:x:x:x:x:d.d.d.d, where the 'x's are the hexadecimal values of
+ the six high-order 16-bit pieces of the address, and the 'd's are
+
+
+
+
+Hinden Standards Track [Page 4]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ the decimal values of the four low-order 8-bit pieces of the
+ address (standard IPv4 representation). Examples:
+
+ 0:0:0:0:0:0:13.1.68.3
+
+ 0:0:0:0:0:FFFF:129.144.52.38
+
+ or in compressed form:
+
+ ::13.1.68.3
+
+ ::FFFF:129.144.52.38
+
+2.3. Text Representation of Address Prefixes
+
+ The text representation of IPv6 address prefixes is similar to the
+ way IPv4 address prefixes are written in Classless Inter-Domain
+ Routing (CIDR) notation [CIDR]. An IPv6 address prefix is
+ represented by the notation:
+
+ ipv6-address/prefix-length
+
+ where
+
+ ipv6-address is an IPv6 address in any of the notations listed
+ in Section 2.2.
+
+ prefix-length is a decimal value specifying how many of the
+ leftmost contiguous bits of the address comprise
+ the prefix.
+
+ For example, the following are legal representations of the 60-bit
+ prefix 20010DB80000CD3 (hexadecimal):
+
+ 2001:0DB8:0000:CD30:0000:0000:0000:0000/60
+ 2001:0DB8::CD30:0:0:0:0/60
+ 2001:0DB8:0:CD30::/60
+
+ The following are NOT legal representations of the above prefix:
+
+ 2001:0DB8:0:CD3/60 may drop leading zeros, but not trailing
+ zeros, within any 16-bit chunk of the address
+
+ 2001:0DB8::CD30/60 address to left of "/" expands to
+ 2001:0DB8:0000:0000:0000:0000:0000:CD30
+
+ 2001:0DB8::CD3/60 address to left of "/" expands to
+ 2001:0DB8:0000:0000:0000:0000:0000:0CD3
+
+
+
+Hinden Standards Track [Page 5]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ When writing both a node address and a prefix of that node address
+ (e.g., the node's subnet prefix), the two can be combined as follows:
+
+ the node address 2001:0DB8:0:CD30:123:4567:89AB:CDEF
+ and its subnet number 2001:0DB8:0:CD30::/60
+
+ can be abbreviated as 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60
+
+2.4. Address Type Identification
+
+ The type of an IPv6 address is identified by the high-order bits of
+ the address, as follows:
+
+ Address type Binary prefix IPv6 notation Section
+ ------------ ------------- ------------- -------
+ Unspecified 00...0 (128 bits) ::/128 2.5.2
+ Loopback 00...1 (128 bits) ::1/128 2.5.3
+ Multicast 11111111 FF00::/8 2.7
+ Link-Local unicast 1111111010 FE80::/10 2.5.6
+ Global Unicast (everything else)
+
+ Anycast addresses are taken from the unicast address spaces (of any
+ scope) and are not syntactically distinguishable from unicast
+ addresses.
+
+ The general format of Global Unicast addresses is described in
+ Section 2.5.4. Some special-purpose subtypes of Global Unicast
+ addresses that contain embedded IPv4 addresses (for the purposes of
+ IPv4-IPv6 interoperation) are described in Section 2.5.5.
+
+ Future specifications may redefine one or more sub-ranges of the
+ Global Unicast space for other purposes, but unless and until that
+ happens, implementations must treat all addresses that do not start
+ with any of the above-listed prefixes as Global Unicast addresses.
+
+2.5. Unicast Addresses
+
+ IPv6 unicast addresses are aggregatable with prefixes of arbitrary
+ bit-length, similar to IPv4 addresses under Classless Inter-Domain
+ Routing.
+
+ There are several types of unicast addresses in IPv6, in particular,
+ Global Unicast, site-local unicast (deprecated, see Section 2.5.7),
+ and Link-Local unicast. There are also some special-purpose subtypes
+ of Global Unicast, such as IPv6 addresses with embedded IPv4
+ addresses. Additional address types or subtypes can be defined in
+ the future.
+
+
+
+
+Hinden Standards Track [Page 6]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ IPv6 nodes may have considerable or little knowledge of the internal
+ structure of the IPv6 address, depending on the role the node plays
+ (for instance, host versus router). At a minimum, a node may
+ consider that unicast addresses (including its own) have no internal
+ structure:
+
+ | 128 bits |
+ +-----------------------------------------------------------------+
+ | node address |
+ +-----------------------------------------------------------------+
+
+ A slightly sophisticated host (but still rather simple) may
+ additionally be aware of subnet prefix(es) for the link(s) it is
+ attached to, where different addresses may have different values for
+ n:
+
+ | n bits | 128-n bits |
+ +-------------------------------+---------------------------------+
+ | subnet prefix | interface ID |
+ +-------------------------------+---------------------------------+
+
+ Though a very simple router may have no knowledge of the internal
+ structure of IPv6 unicast addresses, routers will more generally have
+ knowledge of one or more of the hierarchical boundaries for the
+ operation of routing protocols. The known boundaries will differ
+ from router to router, depending on what positions the router holds
+ in the routing hierarchy.
+
+ Except for the knowledge of the subnet boundary discussed in the
+ previous paragraphs, nodes should not make any assumptions about the
+ structure of an IPv6 address.
+
+2.5.1. Interface Identifiers
+
+ Interface identifiers in IPv6 unicast addresses are used to identify
+ interfaces on a link. They are required to be unique within a subnet
+ prefix. It is recommended that the same interface identifier not be
+ assigned to different nodes on a link. They may also be unique over
+ a broader scope. In some cases, an interface's identifier will be
+ derived directly from that interface's link-layer address. The same
+ interface identifier may be used on multiple interfaces on a single
+ node, as long as they are attached to different subnets.
+
+ Note that the uniqueness of interface identifiers is independent of
+ the uniqueness of IPv6 addresses. For example, a Global Unicast
+ address may be created with a local scope interface identifier and a
+ Link-Local address may be created with a universal scope interface
+ identifier.
+
+
+
+Hinden Standards Track [Page 7]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ For all unicast addresses, except those that start with the binary
+ value 000, Interface IDs are required to be 64 bits long and to be
+ constructed in Modified EUI-64 format.
+
+ Modified EUI-64 format-based interface identifiers may have universal
+ scope when derived from a universal token (e.g., IEEE 802 48-bit MAC
+ or IEEE EUI-64 identifiers [EUI64]) or may have local scope where a
+ global token is not available (e.g., serial links, tunnel end-points)
+ or where global tokens are undesirable (e.g., temporary tokens for
+ privacy [PRIV]).
+
+ Modified EUI-64 format interface identifiers are formed by inverting
+ the "u" bit (universal/local bit in IEEE EUI-64 terminology) when
+ forming the interface identifier from IEEE EUI-64 identifiers. In
+ the resulting Modified EUI-64 format, the "u" bit is set to one (1)
+ to indicate universal scope, and it is set to zero (0) to indicate
+ local scope. The first three octets in binary of an IEEE EUI-64
+ identifier are as follows:
+
+ 0 0 0 1 1 2
+ |0 7 8 5 6 3|
+ +----+----+----+----+----+----+
+ |cccc|ccug|cccc|cccc|cccc|cccc|
+ +----+----+----+----+----+----+
+
+ written in Internet standard bit-order, where "u" is the
+ universal/local bit, "g" is the individual/group bit, and "c" is the
+ bits of the company_id. Appendix A, "Creating Modified EUI-64 Format
+ Interface Identifiers", provides examples on the creation of Modified
+ EUI-64 format-based interface identifiers.
+
+ The motivation for inverting the "u" bit when forming an interface
+ identifier is to make it easy for system administrators to hand
+ configure non-global identifiers when hardware tokens are not
+ available. This is expected to be the case for serial links and
+ tunnel end-points, for example. The alternative would have been for
+ these to be of the form 0200:0:0:1, 0200:0:0:2, etc., instead of the
+ much simpler 0:0:0:1, 0:0:0:2, etc.
+
+ IPv6 nodes are not required to validate that interface identifiers
+ created with modified EUI-64 tokens with the "u" bit set to universal
+ are unique.
+
+ The use of the universal/local bit in the Modified EUI-64 format
+ identifier is to allow development of future technology that can take
+ advantage of interface identifiers with universal scope.
+
+
+
+
+
+Hinden Standards Track [Page 8]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ The details of forming interface identifiers are defined in the
+ appropriate "IPv6 over <link>" specification, such as "IPv6 over
+ Ethernet" [ETHER], and "IPv6 over FDDI" [FDDI].
+
+2.5.2. The Unspecified Address
+
+ The address 0:0:0:0:0:0:0:0 is called the unspecified address. It
+ must never be assigned to any node. It indicates the absence of an
+ address. One example of its use is in the Source Address field of
+ any IPv6 packets sent by an initializing host before it has learned
+ its own address.
+
+ The unspecified address must not be used as the destination address
+ of IPv6 packets or in IPv6 Routing headers. An IPv6 packet with a
+ source address of unspecified must never be forwarded by an IPv6
+ router.
+
+2.5.3. The Loopback Address
+
+ The unicast address 0:0:0:0:0:0:0:1 is called the loopback address.
+ It may be used by a node to send an IPv6 packet to itself. It must
+ not be assigned to any physical interface. It is treated as having
+ Link-Local scope, and may be thought of as the Link-Local unicast
+ address of a virtual interface (typically called the "loopback
+ interface") to an imaginary link that goes nowhere.
+
+ The loopback address must not be used as the source address in IPv6
+ packets that are sent outside of a single node. An IPv6 packet with
+ a destination address of loopback must never be sent outside of a
+ single node and must never be forwarded by an IPv6 router. A packet
+ received on an interface with a destination address of loopback must
+ be dropped.
+
+2.5.4. Global Unicast Addresses
+
+ The general format for IPv6 Global Unicast addresses is as follows:
+
+ | n bits | m bits | 128-n-m bits |
+ +------------------------+-----------+----------------------------+
+ | global routing prefix | subnet ID | interface ID |
+ +------------------------+-----------+----------------------------+
+
+ where the global routing prefix is a (typically hierarchically-
+ structured) value assigned to a site (a cluster of subnets/links),
+ the subnet ID is an identifier of a link within the site, and the
+ interface ID is as defined in Section 2.5.1.
+
+
+
+
+
+Hinden Standards Track [Page 9]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ All Global Unicast addresses other than those that start with binary
+ 000 have a 64-bit interface ID field (i.e., n + m = 64), formatted as
+ described in Section 2.5.1. Global Unicast addresses that start with
+ binary 000 have no such constraint on the size or structure of the
+ interface ID field.
+
+ Examples of Global Unicast addresses that start with binary 000 are
+ the IPv6 address with embedded IPv4 addresses described in Section
+ 2.5.5. An example of global addresses starting with a binary value
+ other than 000 (and therefore having a 64-bit interface ID field) can
+ be found in [GLOBAL].
+
+2.5.5. IPv6 Addresses with Embedded IPv4 Addresses
+
+ Two types of IPv6 addresses are defined that carry an IPv4 address in
+ the low-order 32 bits of the address. These are the "IPv4-Compatible
+ IPv6 address" and the "IPv4-mapped IPv6 address".
+
+2.5.5.1. IPv4-Compatible IPv6 Address
+
+ The "IPv4-Compatible IPv6 address" was defined to assist in the IPv6
+ transition. The format of the "IPv4-Compatible IPv6 address" is as
+ follows:
+
+ | 80 bits | 16 | 32 bits |
+ +--------------------------------------+--------------------------+
+ |0000..............................0000|0000| IPv4 address |
+ +--------------------------------------+----+---------------------+
+
+ Note: The IPv4 address used in the "IPv4-Compatible IPv6 address"
+ must be a globally-unique IPv4 unicast address.
+
+ The "IPv4-Compatible IPv6 address" is now deprecated because the
+ current IPv6 transition mechanisms no longer use these addresses.
+ New or updated implementations are not required to support this
+ address type.
+
+2.5.5.2. IPv4-Mapped IPv6 Address
+
+ A second type of IPv6 address that holds an embedded IPv4 address is
+ defined. This address type is used to represent the addresses of
+ IPv4 nodes as IPv6 addresses. The format of the "IPv4-mapped IPv6
+ address" is as follows:
+
+
+
+
+
+
+
+
+Hinden Standards Track [Page 10]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+
+ | 80 bits | 16 | 32 bits |
+ +--------------------------------------+--------------------------+
+ |0000..............................0000|FFFF| IPv4 address |
+ +--------------------------------------+----+---------------------+
+
+ See [RFC4038] for background on the usage of the "IPv4-mapped IPv6
+ address".
+
+2.5.6. Link-Local IPv6 Unicast Addresses
+
+ Link-Local addresses are for use on a single link. Link-Local
+ addresses have the following format:
+
+ | 10 |
+ | bits | 54 bits | 64 bits |
+ +----------+-------------------------+----------------------------+
+ |1111111010| 0 | interface ID |
+ +----------+-------------------------+----------------------------+
+
+ Link-Local addresses are designed to be used for addressing on a
+ single link for purposes such as automatic address configuration,
+ neighbor discovery, or when no routers are present.
+
+ Routers must not forward any packets with Link-Local source or
+ destination addresses to other links.
+
+2.5.7. Site-Local IPv6 Unicast Addresses
+
+ Site-Local addresses were originally designed to be used for
+ addressing inside of a site without the need for a global prefix.
+ Site-local addresses are now deprecated as defined in [SLDEP].
+
+ Site-Local addresses have the following format:
+
+ | 10 |
+ | bits | 54 bits | 64 bits |
+ +----------+-------------------------+----------------------------+
+ |1111111011| subnet ID | interface ID |
+ +----------+-------------------------+----------------------------+
+
+ The special behavior of this prefix defined in [RFC3513] must no
+ longer be supported in new implementations (i.e., new implementations
+ must treat this prefix as Global Unicast).
+
+ Existing implementations and deployments may continue to use this
+ prefix.
+
+
+
+
+Hinden Standards Track [Page 11]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+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:
+
+
+
+
+
+Hinden Standards Track [Page 12]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+
+ | 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.
+
+
+
+
+Hinden Standards Track [Page 13]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ 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].
+
+
+
+
+
+Hinden Standards Track [Page 14]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ 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.
+
+
+
+
+
+
+Hinden Standards Track [Page 15]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ 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
+
+
+
+
+Hinden Standards Track [Page 16]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ 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.
+
+
+
+
+
+
+
+Hinden Standards Track [Page 17]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+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.
+
+
+
+
+
+Hinden Standards Track [Page 18]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ [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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hinden Standards Track [Page 19]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+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|
+ +----------------+----------------+----------------+
+
+
+
+
+Hinden Standards Track [Page 20]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ 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.
+
+
+
+
+Hinden Standards Track [Page 21]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ 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
+ working group is working in this area.
+
+ o Deprecated the Site-Local unicast prefix. Changes include the
+ following:
+
+
+
+
+Hinden Standards Track [Page 22]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+ - Removed Site-Local from special list of prefixes in Section
+ 2.4.
+
+ - Split section titled "Local-use IPv6 Unicast Addresses" into
+ two sections, "Link-Local IPv6 Unicast Addresses" and "Site-
+ Local IPv6 Unicast Addresses".
+
+ - Added text to new section describing Site-Local deprecation.
+
+ o Changes to resolve issues raised in IAB response to Robert Elz
+ appeal. Changes include the following:
+
+ - Added clarification to Section 2.5 that nodes should make no
+ assumptions about the structure of an IPv6 address.
+
+ - Changed the text in Section 2.5.1 and Appendix A to refer to
+ the Modified EUI-64 format interface identifiers with the "u"
+ bit set to one (1) as universal.
+
+ - Added clarification to Section 2.5.1 that IPv6 nodes are not
+ required to validate that interface identifiers created in
+ Modified EUI-64 format with the "u" bit set to one are unique.
+
+ o Changed the reference indicated in Section 2.5.4 "Global Unicast
+ Addresses" to RFC 3587.
+
+ o Removed mention of NSAP addresses in examples.
+
+ o Clarified that the "x" in the textual representation can be one to
+ four digits.
+
+ o Deprecated the "IPv6 Compatible Address" because it is not being
+ used in the IPv6 transition mechanisms.
+
+ o Added the "R" and "P" flags to Section 2.7 on multicast addresses,
+ and pointers to the documents that define them.
+
+ o Editorial changes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hinden Standards Track [Page 23]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+Authors' Addresses
+
+ Robert M. Hinden
+ Nokia
+ 313 Fairchild Drive
+ Mountain View, CA 94043
+ USA
+
+ Phone: +1 650 625-2004
+ EMail: bob.hinden@nokia.com
+
+
+ Stephen E. Deering
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706
+ USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hinden Standards Track [Page 24]
+
+RFC 4291 IPv6 Addressing Architecture February 2006
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2006).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).
+
+
+
+
+
+
+
+Hinden Standards Track [Page 25]
+