P. Francis (NTT) S. Deering (Xerox PARC) R. Hinden (Sun) R. Govindan (Bellcore) July 1994 Simple Internet Protocol Plus (SIPP): 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. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." This Internet Draft expires February 1, 1995. Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. Changes from Version 01 This version reflects the change to SIPP to support 128 bit address (from 64 bit addresses) and the change made to the SIPP transition mechanisms to remove the C-bit [STT]. The following specific changes were made: o Extended Addresses were removed. o The rules for reversing source routes were moved to the main SIPP specification. o Format prefixes were defined to allocate the SIPP address space to specific usage. o The description of bindings of addresses to specific interfaces was removed. draft-ietf-sipp-routing-addr-02.txt [Page 1] INTERNET-DRAFT SIPP Addressing Architecture July 1994 1.0 INTRODUCTION This specification defines the addressing and routing architecture of Simple Internet Protocol Plus [SIPP]. It includes a detailed description of the address formats for SIPP. The authors would like to acknowledge the contributions of Jim Bound (Digital), Brian Carpenter (CERN), Bob Gilligan (Sun), Christian Huitema (INRIA), Erik Nordmark (Sun), and Sue Thomson (Bellcore). 2.0 SIPP ADDRESSING SIPP addresses are 128-bit identifiers for nodes and sets of nodes. There are two types of addresses: Unicast: Used to send a packet to a single node. Multicast: Used to send a packet to all members of a group of nodes. There are no broadcast addresses in SIPP, their function being superseded by multicast addresses. SIPP continues the IP version 4 model that a subnet is associated with one link. SIPP also allow multiple subnets to be assigned to the same link. 2.1 Text Representation of Addresses There are three conventional forms for representing SIPP addresses as text strings: 1. The preferred form is x:x:x:x:x:x:x:x, where the 'x's are the 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 SIPP 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, draft-ietf-sipp-routing-addr-02.txt [Page 2] INTERNET-DRAFT SIPP Addressing Architecture July 1994 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 SIPP 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 2.2 Address Type Representation The specific type of SIPP 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: draft-ietf-sipp-routing-addr-02.txt [Page 3] INTERNET-DRAFT SIPP Addressing Architecture July 1994 Allocation Prefix Fraction of (binary) Address Space ------------------------------- -------- ------------- Reserved ** 00 1/4 Provider-Based Unicast Address 01 1/4 Reserved for Geographic Addresses 10 1/4 Reserved 110 1/8 NSAP Allocation 1110 00 1/64 Reserved 1110 01 1/64 Reserved 1110 10 1/64 IPX Allocation 1110 11 1/64 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 This initial allocation supports 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 this can be for expansion of existing use (e.g. additional provider addresses, IPX addresses, etc.) or new uses (e.g. separate locators and EID). 2.3 Unicast Addresses 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. The SIPP unicast address is contiguous bit-wise maskable, similar to IP addresses under Class-less Interdomain Routing [CIDR]. There are several forms of unicast address assignment in SIPP, including the global provider hierarchical unicast address, the geographical hierarchical address, the NSAP hierarchical address, the IPX _________________________ ** SIPP unicast addresses for IPv4 only nodes are assigned out of the 00 format prefix space. See section 2.3.8. draft-ietf-sipp-routing-addr-02.txt [Page 4] INTERNET-DRAFT SIPP Addressing Architecture July 1994 hierarchical address, the cluster address, the local-use address, and the IP-only host address. Other addresses types can be defined in the future. Different SIPP nodes have greater or lesser knowledge of the internal structure of the SIPP 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 structure of SIPP 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 One example Unicast address which will likely be common on LANs and other environments where IEEE 802 MAC addresses are available. It format is: draft-ietf-sipp-routing-addr-02.txt [Page 5] INTERNET-DRAFT SIPP Addressing Architecture July 1994 | 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 inclusion of a unique global node identifier, such as an IEEE MAC address makes possible a very simple form of auto-configuration of addresses. In particular, a node may discover a subnet ID by listening to Router Advertisement messages on its attached link(s), and then fabricating a SIPP 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 example is for use on serial PPP links. Its format is: | n bits | 126-n bits |bits| +--------------------------------+---------------------------+----+ | subscriber prefix | subnet ID |Node| | | | ID | +--------------------------------+---------------------------+----+ where the Node ID is two bits long and is used to identify each end of the link. The third example is where a site or organization requires additional layers of local hierarchy. Its format is: | s bits | n bits | m bits | 128-s-n-m bits | +----------------------+---------+--------------+-----------------+ | subscriber prefix | area ID | subnet ID | node ID | +----------------------+---------+--------------+-----------------+ 2.3.2 Provider-Based Global Hierarchical Unicast Addresses The global provider-based unicast address is initially assigned as follows [ADDR]: | 2 | n bits | m bits | p bits | 128-n-m-p | +----+---------------+-----------------+-----------+-----------+ | 01 | 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. draft-ietf-sipp-routing-addr-02.txt [Page 6] INTERNET-DRAFT SIPP Addressing Architecture July 1994 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 SIPP addresses was suggested by Brian Carpenter. | 6 |2| 8 | 16 | 24 bits | 16 bits| 48 bits | 8 | +------+-+-----+-------+------------+--------+-------------+------+ |110000| | AFI | IDI | Prefix | Area | ID | NSEL | +------+-+-----+-------+------------+--------+-------------+------+ The AFI will normally be 39 (DCC, digital country code) or 47 (ICD, international code designator). 2.3.4 Local-use SIPP 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 draft-ietf-sipp-routing-addr-02.txt [Page 7] INTERNET-DRAFT SIPP Addressing Architecture July 1994 "steal" an address prefix from the global Internet address space. A SIPP local-use addresses can be used instead. When the organization connects to the global Internet, it can then form global addresses. 2.3.5 Cluster Addresses Cluster addresses are unicast addresses that may be used to reach the "nearest" one (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 SIPP 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 ID D, a packet may be sent to the following cluster address: | 2 | m bits | 128-m bits | +----+--------------+---------------------------------------------+ | 01 | provider = D |000000000000000000000000000000000000000000000| +----+--------------+---------------------------------------------+ To reach the nearest boundary router for subscriber S of provider D, a packet may be sent to the following cluster address: | 2 | m bits | n bits | 128-m-n bits | +----+--------------+----------------+----------------------------+ | 01 | provider = D | subscriber = S |0000000000000000000000000000| +----+--------------+----------------+----------------------------+ To reach the nearest boundary router for subnet T of subscriber S, of provider D, a packet may be sent to the following cluster address: | 2 | m bits | n bits | s bits | 128-m-n-s bits | +----+--------------+----------------+-----------+----------------+ | 01 | provider = D | subscriber = S |subnet = T |0000000000000000| +----+--------------+----------------+-----------+----------------+ draft-ietf-sipp-routing-addr-02.txt [Page 8] INTERNET-DRAFT SIPP Addressing Architecture July 1994 Cluster boundary routers are required to know that they are boundary routers and to accept packets addressed to the corresponding cluster address as being addressed to themselves. Cluster addresses are most commonly used as intermediate addresses in a SIPP Routing Header, to cause a packet 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 may not be used as source addresses in SIPP packets. 2.3.6 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 SIPP packet to itself. It may never be assigned to any interface. The loopback address may not be used as the source address in SIPP packets that are sent outside of a single node. 2.3.7 The Unspecified Address The address 0:0:0:0:0:0:0:0 is called the unspecified address. It shall never be assigned to any node. It may be used anywhere an address appears, to indicate the absence of an address. One example of its use is in the Source Address field of any SIPP packets sent by an initializing host before it has learned its own address. The unspecified address may not be used as the destination address of SIPP packets or in SIPP Routing Headers. 2.3.8 SIPP Addresses for IP-Only Nodes SIPP unicast addresses are assigned to nodes that only support IPv4 as part of the Simple SIPP Transition [SST] scheme for transition from IPv4 to SIPP. The node's 32-bit IPv4 address is carried in the low-order 32 bits of the SIPP address. SIPP addresses with embedded IPv4 addresses are also assigned to SIPP nodes that wish to interoperate with IPv4 nodes. Such addresses are termed "IPv4 compatible" SIPP addresses. The high order bits of an IPv4 compatible SIPP address identify whether the node supports SIPP, or only IPv4. IPv4-compatible SIPP addresses assigned to nodes that only support IPv4 draft-ietf-sipp-routing-addr-02.txt [Page 9] INTERNET-DRAFT SIPP Addressing Architecture July 1994 have the following form: | 96 bits | 32 bits | +-------------------------------------------+---------------------+ |0000...................................0000| IP address | +-------------------------------------------+---------------------+ IPv4-compatible SIPP addresses assigned to nodes that support SIPP have the following form: | 96 bits | 32 bits | +-------------------------------------------+---------------------+ |0000...................................0001| IP address | +-------------------------------------------+---------------------+ 2.4 Multicast Addresses A SIPP 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. +-+-+-+-+ 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. draft-ietf-sipp-routing-addr-02.txt [Page 10] INTERNET-DRAFT SIPP Addressing Architecture July 1994 scop is a 4-bit multicast scope value: 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 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 7F15: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 SIPP packets or appear in any routing header. draft-ietf-sipp-routing-addr-02.txt [Page 11] INTERNET-DRAFT SIPP Addressing Architecture July 1994 2.4.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 SIPP 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 SIPP 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 SIPP routers, within scope 1 (intra-node) or 2 (intra-link). 2.5 A Node's Required Addresses A host is required to recognize the following addresses as identifying itself: its own unicast addresses, the loopback address, the All Nodes and All Hosts multicast addresses, and the multicast addresses of any other groups to which the host belongs. A router is required to recognize the following addresses as identifying itself: its own unicast addresses, the cluster addresses of all clusters for which the router is a boundary router, the loopback address, the All Nodes and All Routers multicast addresses, and any other multicast addresses to which the router belongs. 3.0 ROUTING ALGORITHMS SIPP 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]). draft-ietf-sipp-routing-addr-02.txt [Page 12] INTERNET-DRAFT SIPP Addressing Architecture July 1994 REFERENCES [CIDR] V. Fuller, T. Li, K. Varadhan, J. Yu, "Supernetting: an Address Assignment and Aggregation Strategy", RFC 1338. [MULT] S. Deering, "Host Extensions for IP multicasting", RFC 1112. [SST] R. Gilligan et al, "Simple SIPP Transition Overview", Internet Draft. [SIPP] S. Deering, "Simple Internet Protocol Plus (SIPP) Specification", Internet Draft. [ADDR] P. Francis, "SIPP Address Assignment", Internet Draft in preparation. [ICMP] R. Govindan and S. Deering, "ICMP and IGMP for the Simple Internet Protocol Plus", Internet-Draft in preparation. [AUTO] S. Thomson, "Automatic Host Address Assignment in SIPP", Internet Draft in preparation. [OSPF] P. Francis, "OSPF for SIPP", Internet Draft. AUTHOR'S ADDRESSES Paul Francis, francis@cactus.ntt.jp Steve Deering, deering@parc.xerox.com Robert Hinden, hinden@eng.sun.com Ramesh Govindan, rxg@thumper.bellcore.com draft-ietf-sipp-routing-addr-02.txt [Page 13]