URL: http://publib.boulder.ibm.com/infocenter/zvm/v5r4/topic/com.ibm.zvm.v54.kijl0/hcsk7b3014.htm
The type of a IPv6 address is identified by the high-order bits of the address, as follows:
Address type | Binary prefix | IPv6 notation |
---|---|---|
Unspecified | 00 . . . 0 (128 bits) | ::/128 |
Loopback | 00 . . . 1 (128 bits) | ::1/128 |
Multicast | 11111111 | FF00::/8 |
Link-local unicast | 1111111010 | FE80::/10 |
Site-local unicast | 1111111011 | FEC0::/10 |
Global unicast | (everything else) |
Three categories of IP addresses are supported in IPv6:
- Unicast
- An identifier for a single interface. A packet sent to a unicast address is delivered to the interface identified by that address. It can be link-local scope, site-local scope, or global scope.
- Multicast
- An identifier for a group of interfaces (typically belonging to different nodes). A packet sent to a multicast address is delivered to all interfaces identified by that address.
- Anycast
- An identifier for a group of interfaces (typically belonging to different nodes). A packet sent to an anycast address is delivered to the closest member of a group, according to the routing protocols' measure of distance.
Anycast addresses are taken from the unicast address spaces (of any scope) and are not syntactically distinguishable from unicast addresses. Anycast is described as a cross between unicast and multicast. Like multicast, multiple nodes may be listening on an anycast address. Like unicast, a packet sent to an anycast address will be delivered to one (and only one) of those nodes. The exact node to which it is delivered is based on the IP routing tables in the network.
There are no broadcast addresses in IPv6. Multicast addresses have superseded this function.
Unicast IPv6 Addresses
IPv6 unicast addresses can be aggregated with prefixes of arbitrary bit-length similar to IPv4 addresses under Classless Interdomain Routing (CIDR).
A unicast address has the following format:
There are several types of unicast addresses in IPv6: global unicast, site-local unicast, 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.
Global Unicast Addresses
The general format for IPv6 global unicast addresses is:
n bits | m bits | 128-n-m bits |
global routing prefix | subnet ID | interface ID |
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. The interface ID is used to identify an interface on a link; interface IDs are required to be unique within a subnet prefix.
All global unicast addresses other than those that start with B'000' have a 64-bit interface ID field (that is, n + m = 64). Global unicast addresses that start with B'000' have no such constraint on the size or structure of the interface ID field.
Examples of global unicast addresses that start with B'000' are IPv6 address with embedded IPv4 addresses. These include IPv4-mapped IPv6 addresses and IPv4-compatible IPv6 addresses.
Local Use Address
There are two types of local-use unicast addresses defined: link-local and site-local. The link-local address is for use on a single link and the site-local address is for use in a single site.
Link-local Addresses
Link-local addresses have the following format:
A link-local address is required on each physical interface. Link-local addresses are designed to be used for addressing on a single link for purposes such as automatic address configuration, neighbor discovery, or in the absence of routers. It also may be used to communicate with other nodes on the same link. A link-local address is automatically assigned.
Routers will not forward any packets with link-local source or destination addresses to other links.
Site-local Addresses
Site-local addresses have the following format:
10 bits | 38 bits | 16 bits | 64 bits |
1111111011 | 0 | subnet ID | interface ID |
Site-local addresses are designed to be used for addressing inside of a site without the need for a global prefix. A site-local address cannot be reached from another site. A site-local address is not automatically assigned to a node. It must be assigned using automatic or manual configuration.
Routers will not forward any packets with site-local source or destination addresses outside of the site.
Loopback Address
The unicast address 0:0:0:0:0:0:0:1 is called the loopback address. It cannot be assigned to any physical interface. It may be thought of as a link-local unicast address assigned to a virtual interface (typically called the loopback interface) that allows local applications to send messages to each other.
The loopback address cannot be used as the source address in IPv6 packets that are sent outside of a node. An IPv6 packet with a destination address of loopback cannot be sent outside of a node and be forwarded by an IPv6 router. A packet received on an interface with destination address of loopback will be dropped.
Unspecified Address
The address 0:0:0:0:0:0:0:0 is called the unspecified address. It will not 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 cannot be used as the destination address of IPv6 packets or in IPv6 routing headers. An IPv6 packet with a source address of unspecified cannot be forwarded by an IPv6 router.
IPv4-mapped IPv6 Addresses
These addresses hold an embedded global IPv4 address. They are used to represent the addresses of IPv4 nodes as IPv6 addresses to applications that are enabled for IPv6 and are using AF_INET6 sockets. This allows IPv6 enabled applications always to deal with IP addresses in IPv6 format regardless of whether the TCP/IP communications are occurring over IPv4 or IPv6 networks. The dual-mode TCP/IP stack performs the transformation of the IPv4-mapped addresses to and from native IPv4 format. IPv4-mapped addresses have the following format:
Examples:
- In IPv6-IPv4 decimal form:
::FFFF:129.144.52.38
- In IPv6-compressed form
::FFFF:8190:3426
IPv4-compatible IPv6 Addresses
These addresses hold an embedded global IPv4 address. They are used dynamically to tunnel IPv6 packets over IPv4 networks. IPv6 nodes that use this technique are assigned special IPv6 unicast addresses which hold an IPv4 address in the low-order 32-bits. IPv4-compatible IPv6 addresses have the following format:
Examples:
- In IPv6-IPv4 decimal form
::129.144.52.38
- In IPv6-compressed form
::8190:3426
Multicast IPv6 Addresses
An IPv6 multicast address is an identifier for a group of interfaces (typically on different nodes). It is identified with a prefix of 11111111 or FF in hexadecimal notation. It provides a way of sending packets to multiple destinations. An interface may belong to any number of multicast groups.
Multicast address format
Binary 11111111 at the start of the address identifies the address as being a multicast address. Multicast addresses have the following format:
---------------
| 0 | 0 | 0 | T |
---------------
- The 3 high-order flags are reserved, and must be initialized to 0.
- T = 0 indicates a permanently-assigned (well-known) multicast address, assigned by the Internet Assigned Number Authority (IANA).
- T = 1 indicates a non-permanently assigned (transient) multicast address.
Scope is a 4-bit multicast scope value used to limit the scope of the multicast group. Group ID identifies the multicast group, either permanent or transient, within the given scope.
Multicast scope
The scope field indicates the scope of the IPv6 internetwork for which the multicast traffic is intended. The size of this field is 4 bits. In addition to information provided by multicast routing protocols, routers use multicast scope to determine whether multicast traffic can be forwarded. For multicast addresses there are 14 possible scopes (some are still unassigned), ranging from interface-local to global (including both link-local and site-local).
The following table lists the defined values for the scope field:
Value | Scope |
0 | Reserved |
1 | Interface-local scope (same node) |
2 | Link-local scope (same link) |
3 | Subnet-local scope |
4 | Admin-local scope |
5 | Site-local scope (same site) |
8 | Organization-local scope |
E | Global scope |
F | Reserved |
All other scope field values are currently undefined. |
For example, traffic with the multicast address of FF02::2 has a link-local scope. An IPv6 router never forwards this type of traffic beyond the local link.
- Interface-local
- The interface-local scope spans a single interface only. A multicast address of interface-local scope is useful only for loopback delivery of multicasts within a node, for example, as a form of interprocess communication within a computer. Unlike the unicast loopback address, interface-local multicast addresses may be joined on any interface.
- Link-local
- Link-local addresses are used by nodes when communicating with neighboring nodes on the same link. The scope of the link-local address is the local link.
- Subnet-local
- Subnet-local scope is given a different and larger value than link-local to enable possible support for subnets that span multiple links.
- Admin-local
- Admin-local scope is the smallest scope that must be administratively configured, that is, not automatically derived from physical connectivity or other, non-multicast-related configuration.
- Site-local
- The scope of a site-local address is the site or organization internetwork. Addresses must remain within their scope. A router must not forward packets outside of its scope.
- Organization-local
- This scope is intended to span multiple sites belonging to a single organization.
- Global
- Global scope is used for uniquely identifying interfaces anywhere in the Internet.
Multicast groups
Group ID identifies the multicast group, either permanent or transient, within the given scope. The size of this field is 112 bits. Permanently assigned groups can use the group ID with any scope value and still refer to the same group. Transient assigned groups can use the group ID in different scopes to refer to different groups. Multicast addresses from FF01:: through FF0F:: are reserved, well-known addresses. Use of these group IDs for any other scope values, with the T flag equal to 0, is not allowed.
All-nodes multicast groups
These groups identify all IPv6 nodes within a given scope. Defined groups include:
- Interface-local all-nodes group (FF01::1)
- Link-local all-nodes group (FF02::1)
All-routers multicast groups
These groups identify all IPv6 routers within a given scope. Defined groups include:
- Interface-local all-routers group (FF01::2)
- Link-local all-routers group (FF02::2)
- Site-local all-routers group (FF05::2)
Solicited-node multicast group
For each unicast address which is assigned to an interface, the associated solicited-node multicast group is joined on that interface. The solicited-node multicast address facilitates the efficient querying of network nodes during address resolution.
Anycast IPv6 Addresses
An IPv6 anycast address is 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 interface), according to the routing protocols' measure of distance. It uses the same formats as a unicast address, so one cannot differentiate between a unicast and an anycast address simply by examining the address. Instead, anycast addresses are defined administratively.
For more information about IPv6 addressing, see RFC 3513, Internet Protocol Version 6 (IPv6) Addressing Architecture.