R. Hinden, Editor Sun Microsystems, Inc. October 1994 IP Next Generation Addressing Architecture Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). This Internet Draft expires April 1, 1995. draft-hinden-ipng-addr-00.txt [Page 1] INTERNET-DRAFT IPng Addressing Architecture October 1994 1.0 INTRODUCTION This specification defines the addressing architecture of the IP Next Generation protocol. It includes a detailed description of the address formats for next generation IP designated IP version 6 [IPV6] The document editor would like to acknowledge the contributions of Paul Francis (NTT), Steve Deering(Xerox PARC), Jim Bound (Digital), Brian Carpenter (CERN), Bob Gilligan (Sun), Christian Huitema (INRIA), Erik Nordmark (Sun), Bill Simpson, and Sue Thomson (Bellcore). 2.0 IP NEXT GENERATION ADDRESSING IPv6 addresses are 128-bit identifiers for nodes and sets of nodes. There are three types of addresses: Unicast: Used to send a datagram to a single node. Cluster: Used to identify a group of nodes, that share a common address prefix, such that a datagram sent to a cluster address will be delivered to one member of the group. Multicast: Used to send a datagram to all members of a group of nodes. There are no broadcast addresses in IPv6, their function being superseded by multicast addresses. IPv6 continues the IP version 4 model that a subnet is associated with one link. IPv6 also allows multiple subnets to be assigned to the same link. In this document fields in addresses are given a specific name, for example "subscriber". When this name is used with the term "ID" for identifier after the name (e.g. subscriber ID), it refers to the contents of the named field. When it is used with the term "prefix" (e.g. "subscriber prefix") it refers to all of the address up to and including this field. 2.1 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 the draft-hinden-ipng-addr-00.txt [Page 2] INTERNET-DRAFT IPng Addressing Architecture October 1994 hexadecimal values of the eight 16-bit pieces of the address. Examples: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 1080: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 the method of allocating certain styles of IPv6 addresses, it will be common for there to be a number of zero bits in the middle of the address. In order to make writing this form easier, a special syntax is available to compress the zeros. The use of of two "::" indicate multiple groups of 16-bits of zeros. For example the multicast address: FF01:0:0:0:0:0:0:43 would be represented as: FF01::43 The "::" can only appear once in an address. The "::" can also be used to compress the leading zeros in an address. 3. An alternative form that is sometimes more convenient when dealing with a mixed environment of IP 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 the decimal values of the four low-order 8-bit pieces of the address (standard IP representation). Examples: 0:0:0:0:0:0:0:13.1.68.3 0:0:0:0:0:0:1:129.144.52.38 or in compressed form: ::13.1.68.3 ::1:129.144.52.38 draft-hinden-ipng-addr-00.txt [Page 3] INTERNET-DRAFT IPng Addressing Architecture October 1994 2.2 Address Type Representation The specific type of IPv6 address is indicated by the leading bits in the address. The variable-length field comprising these leading bits is called the Format Prefix (FP). The initial allocation of these prefixes is as follows: Allocation Prefix Fraction of (binary) Address Space ------------------------------- -------- ------------- Reserved 0000 0000 1/256 Reserved 0000 0001 1/256 NSAP Allocation 0000 001 1/128 IPX Allocation 0000 010 1/128 Reserved 0000 011 1/128 Reserved 0000 100 1/128 Reserved 0000 101 1/128 Reserved 0000 110 1/128 Reserved 0000 111 1/128 Reserved 0001 1/16 Reserved 001 1/8 Provider-Based Unicast Address 010 1/8 Reserved 011 1/8 Reserved for Geographic Addresses 100 1/8 Reserved 101 1/8 Reserved 110 1/8 Reserved 1110 1/16 Reserved 1111 0 1/32 Reserved 1111 10 1/64 Reserved 1111 110 1/128 Local Use Addresses 1111 1110 1/256 Multicast Addresses 1111 1111 1/256 Note: IPv6 unicast addresses for IPv4 only nodes are assigned out of the 0000 0000 format prefix space. See section 2.3.8. This allocation supports the direct allocation of provider addresses, NSAP addresses, IPX addresses, local use addresses, and multicast addresses. Space is reserved for geographic addresses. The remainder of the address space is reserved for future use. This can be used for draft-hinden-ipng-addr-00.txt [Page 4] INTERNET-DRAFT IPng Addressing Architecture October 1994 expansion of existing use (e.g. additional provider addresses, IPX addresses, etc.) or new uses (e.g. separate locators and EID). Fifteen percent of the address space is initially allocated. The remaining 85% is reserved for future use. Unicast addresses are distinguished from multicast addresses by the value of the high-order octet of the addresses: a value of FF (11111111) identifies an address as a multicast address; any other value identifies an address as a unicast address. 2.3 Unicast Addresses The IPv6 unicast address is contiguous bit-wise maskable, similar to IPv4 addresses under Class-less Interdomain Routing [CIDR]. There are several forms of unicast address assignment in IPv6, including the global provider hierarchical unicast address, the geographical hierarchical address, the NSAP hierarchical address, the IPX hierarchical address, the local-use address, and the IP-only host address. Additional addresses types can be defined in the future. 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 | node ID | +---------------------------------------------------+-------------+ Still more sophisticated hosts may be aware of other hierarchical boundaries in the unicast address, primarily in the form of cluster addresses. These include but are not limited to subscriber cluster addresses and provider cluster addresses, and are discussed later. Though a very simple router may have no knowledge of the internal draft-hinden-ipng-addr-00.txt [Page 5] INTERNET-DRAFT IPng Addressing Architecture October 1994 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 hierarchy. 2.3.1 Unicast Address Examples An example of a Unicast address format which will likely to be common on LANs and other environments where IEEE 802 MAC addresses are available is: | n bits | m bits | 48 bits | +--------------------------------+-----------+--------------------+ | subscriber prefix | subnet ID | node ID | +--------------------------------+-----------+--------------------+ Where the 48-bit Node ID is an IEEE-802 MAC address. The use of IEEE 802 MAC addresses as a node ID is expected to be very common in environments where nodes have a IEEE 802 MAC address. In other environments, where IEEE 802 MAC addresses are not available, other types of link layer addresses can be used, such as E.164 addresses, for the node ID. The inclusion of a unique global node identifier, such as an IEEE MAC address, makes possible a very simple form of auto-configuration of addresses. A node may discover a subnet ID by listening to Router Advertisement messages on its attached link(s), and then fabricating a IPv6 address for itself by using its IEEE MAC address as the node ID on that subnet. The details of host auto-configuration are described elsewhere [AUTO]. Another unicast address format example is where a site or organization requires additional layers of internal hierarchy. Its format is: | s bits | n bits | m bits | 128-s-n-m bits | +----------------------+---------+--------------+-----------------+ | subscriber prefix | area ID | subnet ID | node ID | +----------------------+---------+--------------+-----------------+ In this example area plus subnet should be considered to be "N levels of local hierarchy" allowing CIDR style masks to be used. draft-hinden-ipng-addr-00.txt [Page 6] INTERNET-DRAFT IPng Addressing Architecture October 1994 2.3.2 Provider-Based Global Hierarchical Unicast Addresses The global provider-based unicast address is assigned as as describe [ASSN]. It's format is as follows: | 3 | n bits | m bits | p bits | 125-n-m-p | +-----+--------------+-----------------+-----------+-----------+ | 010 | provider ID | subscriber ID | subnet ID | node ID | +-----+--------------+-----------------+-----------+-----------+ The high-order part of the address is assigned to providers, which then assign portions of the address space to subscribers, etc. The term "provider prefix" refers to the high-order part of the address up to and including the provider ID. This is similar to assignment of IP addresses under the CIDR scheme [CIDR]. The subscriber ID distinguishes among multiple subscribers attached to the provider identified by the provider ID. The term "subscriber prefix" refers to the high-order part of the address up to and including the subscriber ID. The subnet ID identifies a specific physical link. There can be multiple subnets on the same physical link. A specific subnet cannot span multiple physical links. The term "subnet prefix" refers to the high-order part of the address up to and including the subnet ID. The group of nodes identified by the subnet ID must be attached to the same link. The node ID identifies a single node among the group of nodes identified by the subnet prefix. 2.3.3 NSAP Addresses This mapping of NSAP address into IPv6 addresses is as follows: | 7 |1| 4 | 12 | 32 bits | 16 bits| 48 bits | +-------+-+-----+-------+------------+--------+-------------------+ |0000001|G| AFC | IDI | Prefix | Area | ID | +-------+-+-----+-------+------------+--------+-------------------+ The complete definition, motivation, and usage can be found in [NSAP]. draft-hinden-ipng-addr-00.txt [Page 7] INTERNET-DRAFT IPng Addressing Architecture October 1994 2.3.4 Local-use IPv6 Unicast Address Local-use addresses are unicast addresses which are only used within a specific subscriber site. Local-use address have the following format: | 8 | | bits | n bits | m bits | p bits | +--------+---------+---------------+------------------------------+ |11111110| 0 | subnet ID | node ID | +--------+---------+---------------+------------------------------+ Local-use addresses may be used for sites or organizations that are not (yet) connected to the global Internet. They do not need to request or "steal" an address prefix from the global Internet address space. A IPv6 local-use addresses can be used instead. When the organization connects to the global Internet, it can then form global addresses by replacing the local use prefix with a subscriber prefix. 2.3.6 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 datagrams 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 datagrams or in IPv6 Routing Headers. 2.3.7 The Loopback Address The unicast address FE00:0:0:0:0:0:0:1 is called the loopback address. It may be used by a node to send a IPv6 datagram to itself. It may never be assigned to any interface. The loopback address must not be used as the source address in IPv6 datagrams that are sent outside of a single node. 2.3.8 IPv6 Addresses with Embedded IPv4 Addresses The Simple IPv6 Transition [SIT_] utilizes two forms of unicast IPv6 addresses that are specifically designed to facilitate the transition of the Internet from IPv4 to IPv6. In both of these forms of address, an IPv4 address is carried in the low-order 32 bits of the IPv6 address. draft-hinden-ipng-addr-00.txt [Page 8] INTERNET-DRAFT IPng Addressing Architecture October 1994 The first form of address is designed to represent the IPv4 addresses of IPv4-only nodes (nodes that *do not* support IPv6) as IPv6 addresses. These are termed "IPv4-Mapped IPv6 Addresses", and have the form: | 80 bits | 16 | 32 bits | +--------------------------------------+--------------------------+ |0000..............................0000|0000| IPv4 address | +--------------------------------------+----+---------------------+ The second form of address is designed to be used by IPv6 nodes that need to interoperate with IPv4 nodes. These addresses are termed "IPv4-Compatible IPv6 Addresses", and have the form: | 80 bits | 16 | 32 bits | +--------------------------------------+--------------------------+ |0000..............................0000|FFFF| IPv4 address | +--------------------------------------+----+---------------------+ 2.4 Cluster Addresses Cluster addresses are unicast addresses that may be used to reach the "nearest" (according to unicast routings notion of nearest) of the set of boundary routers of a cluster of nodes identified by a common prefix in the IPv6 unicast routing hierarchy. A boundary router of cluster C has at least one address with prefix C and at least one link to a node with a prefix other than C. Cluster addresses have the general form: | n bits | 128-n bits | +---------------------------------+-------------------------------+ | cluster prefix |0000000000000000000000000000000| +---------------------------------+-------------------------------+ For example, to reach the nearest boundary router for the routing domain identified by provider D, a datagram may be sent to the following cluster address: | 3 | m bits | 125-m bits | +---+--------------+----------------------------------------------+ |010| provider = D |0000000000000000000000000000000000000000000000| +---+--------------+----------------------------------------------+ draft-hinden-ipng-addr-00.txt [Page 9] INTERNET-DRAFT IPng Addressing Architecture October 1994 To reach the nearest boundary router for subscriber S of provider D, a datagram may be sent to the following cluster address: | 3 | m bits | n bits | 125-m-n bits | +---+--------------+----------------+-----------------------------+ |010| provider = D | subscriber = S |00000000000000000000000000000| +---+--------------+----------------+-----------------------------+ To reach the nearest boundary router for subnet T of subscriber S, of provider D, a datagram may be sent to the following cluster address: | 3 | m bits | n bits | s bits | 125-m-n-s bits | +---+--------------+----------------+-----------+-----------------+ |010| provider = D | subscriber = S |subnet = T |00000000000000000| +---+--------------+----------------+-----------+-----------------+ Cluster boundary routers are required to know that they are boundary routers and to accept datagrams addressed to the corresponding cluster address as being addressed to themselves. Cluster addresses are most commonly used as intermediate addresses in a IPv6 Routing Header, to cause a datagram to be routed to one or more specific clusters on the way to its final destination. The value zero is reserved at each level of the unicast address hierarchy for use in formulating cluster addresses. Cluster addresses MUST NOT be used as source addresses in any IPv6 datagrams. 2.5 Multicast Addresses A IPv6 multicast address is an identifier for a group of nodes. A node may belong to any number of multicast groups. Multicast addresses have the following format: | 8 | 4 | 4 | 112 bits | +------ -+----+----+---------------------------------------------+ |11111111|flgs|scop| group ID | +--------+----+----+---------------------------------------------+ 11111111 at the start of the address identifies the address as being a multicast address. draft-hinden-ipng-addr-00.txt [Page 10] INTERNET-DRAFT IPng Addressing Architecture October 1994 +-+-+-+-+ flgs is a set of 4 flags: |0|0|0|T| +-+-+-+-+ The high-order 3 flags are reserved, and must be initialized to 0. T = 0 indicates a permanently-assigned ("well-known") multicast address, assigned by the global internet numbering authority. T = 1 indicates a non-permanently-assigned ("transient") multicast address. scop is a 4-bit multicast scope value used to limit the scope of the multicast group. The values are: 0 reserved 1 intra-node scope 2 intra-link scope 3 (unassigned) 4 (unassigned) 5 intra-site scope 6 (unassigned) 7 (unassigned) 8 intra-organization scope 9 (unassigned) A (unassigned) B intra-community scope C (unassigned) D (unassigned) E global scope F reserved group ID identifies the multicast group, either permanent or transient, within the given scope. 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 43 (hex), then: FF01:0:0:0:0:0:0:43 means all NTP servers on the same node as the sender. FF02:0:0:0:0:0:0:43 means all NTP servers on the same link as the sender. FF05:0:0:0:0:0:0:43 means all NTP servers at the same site as the draft-hinden-ipng-addr-00.txt [Page 11] INTERNET-DRAFT IPng Addressing Architecture October 1994 sender. FF0E:0:0:0:0:0:0:43 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, intra-site multicast address FF15:0:0:0:0:0:0:43 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 different scope, nor to a permanent group with the same group ID. Multicast addresses must not be used as source addresses in IPv6 datagrams or appear in any routing header. 2.5.1 Pre-Defined Multicast Addresses The following well-known multicast addresses are pre-defined: Reserved Multicast Addresses: FF0s:0:0:0:0:0:0:0 These multicast addresses (with any scope value, s) 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 These multicast addresses identify the group of all IPv6 nodes, within scope 1 (intra-node) or 2 (intra-link). All Hosts Addresses: FF01:0:0:0:0:0:0:2 FF02:0:0:0:0:0:0:2 These multicast addresses identify the group of all IPv6 hosts, within scope 1 (intra-node) or 2 (intra-link). All Routers Addresses: FF01:0:0:0:0:0:0:3 FF02:0:0:0:0:0:0:3 These multicast addresses identify the group of all IPv6 routers, within scope 1 (intra-node) or 2 (intra-link). 2.6 A Node's Required Addresses A host is required to recognize the following addresses as identifying itself: draft-hinden-ipng-addr-00.txt [Page 12] INTERNET-DRAFT IPng Addressing Architecture October 1994 o Assigned Unicast Addresses o Loopback Address o All Nodes Multicast Address o All Hosts Multicast address o All other Multicast Addresses to which the host belongs. A router is required to recognize the following addresses as identifying itself: o Assigned Unicast Addresses o Cluster Addresses of all clusters for which the router is a boundary router o Loopback Address o All Nodes Multicast Address o All Hosts Multicast address o All other Multicast Addresses to which the router belongs. 3.0 ROUTING ALGORITHMS IPv6 routing algorithms are identical to those used with the CIDR version of IP, except that the address used is 128 bits rather than 32 (for instance [OSPF], [RIP_]). draft-hinden-ipng-addr-00.txt [Page 13] INTERNET-DRAFT IPng Addressing Architecture October 1994 REFERENCES [ASSN] Yakov Rekhter, "IPv6 Provider Unicast Address Assignment", Internet Draft, In preparation. [AUTO] D. Katz, S. Thomson, "Automatic Host Address Assignment in IPv6", Internet Draft, In preparation. [CIDR] V. Fuller, T. Li, K. Varadhan, J. Yu, "Supernetting: an Address Assignment and Aggregation Strategy", RFC 1338. [ICMP] S. Deering, A. Conta, "ICMP and IGMP for the Internet Protocol Version 6 (IPv6)" Internet-Draft, September 1994. [IPV6] R. Hinden, Editor, "Internet Protocol, Version 6 (IPv6) Specification", Internet Draft, In preparation. [MULT] S. Deering, "Host Extensions for IP multicasting", RFC 1112. [NSAP] B. Carpenter, J. Bound, "Recommendations for OSI NSAP usage in IPv6", Internet Draft, August 1994. [OSPF] "OSPF for IPv6", Internet Draft in preparation. [RIP_] "RIPv2 for IPv6, Internet Draft in preparation. [SIT_] R. Gilligan, "Simple IPv6 Transition (SIT) Overview, Internet Draft, In preparation. DOCUMENT EDITOR'S ADDRESS Robert M. Hinden Sun Microsystems, Inc. MS MTV5-44 2550 Garcia Ave. Mt. View, CA 94043 USA Phone: (415) 336-2082 FAX: (415) 336-6015 Email: hinden@eng.sun.com draft-hinden-ipng-addr-00.txt [Page 14] INTERNET-DRAFT IPng Addressing Architecture October 1994 APPENDIX Changes from Previous Version This version reflects comments received prior to, during the July IETF meeting, and subsequent to that meeting. The following specific changes were made: o Title and protocol changed to IPng and IPv6. o Address prefixes were redone to put the IPv4, NSAP, and IPX allocations in the 0000 block and to reduce the amount of total address space allocated. Also, the size of the provider based unicast address block initially assigned was reduced. o NSAP format was revised based on Brian Carpenter's latest draft and a reference was included. o The SIT address terminology was updated and the address formats were changed to include 0000 or FFFF in bits above the IPv4 address. o Various clarifications were added and a number of typos were fixed. draft-hinden-ipng-addr-00.txt [Page 15]