RFC 1884

IP Version 6 Addressing Architecture

πŸ“… published December 1995, from ietf

IP Version 6 Addressing Architecture πŸŽ€

Okay bestie, let's start with the basics πŸ’… This is RFC 1884, titled IP Version 6 Addressing Architecture. R. Hinden of Ipsilon Networks and S. Deering of Xerox PARC wrote it, and they're listed as the Editors. It's a Standards Track document, dated December 1995 πŸ“… The title block doesn't list anything it obsoletes or updates, so no drama there 🫢

Status of this Memo

This is an Internet standards track protocol spec for the Internet community 🌈 It's asking for discussion and suggestions for improvements. For the official standardization state and status of this protocol, check the current "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited πŸ¦‹

Abstract

This spec defines the addressing architecture of the IP Version 6 protocol [IPV6] 🌸 It covers the IPv6 addressing model, how IPv6 addresses are written as text, and the definitions of IPv6 unicast, anycast, and multicast addresses. It also covers the addresses an IPv6 node is required to have ✨

Table of Contents πŸ“š

1. Introduction................................................3

2. IPv6 Addressing.............................................3
   2.1 Addressing Model........................................4
   2.2 Text Representation of Addresses........................4
   2.3 Address Type Representation.............................5
   2.4 Unicast Addresses.......................................7
     2.4.1 Unicast Address Example.............................8
     2.4.2 The Unspecified Address.............................9
     2.4.3 The Loopback Address................................9
     2.4.4 IPv6 Addresses with Embedded IPv4 Addresses.........9
     2.4.5 NSAP Addresses......................................10
     2.4.6 IPX Addresses.......................................10
     2.4.7 Provider-Based Global Unicast Addresses.............10
     2.4.8 Local-use IPv6 Unicast Addresses....................11
   2.5 Anycast Addresses.......................................12
     2.5.1 Required Anycast Address............................13
   2.6 Multicast Addresses.....................................14
     2.6.1 Pre-Defined Multicast Addresses.....................15
   2.7 A Node's Required Addresses.............................17

REFERENCES.....................................................18

SECURITY CONSIDERATIONS........................................18

DOCUMENT EDITOR'S ADDRESSES....................................18

1.0 Introduction ✨

This spec defines the addressing architecture of the IP Version 6 protocol πŸ’– It includes a detailed description of the address formats currently defined for IPv6 [IPV6].

The editors want to thank Paul Francis, Jim Bound, Brian Carpenter, Deborah Estrin, Peter Ford, Bob Gilligan, Christian Huitema, Tony Li, Greg Minshall, Erik Nordmark, Yakov Rekhter, Bill Simpson, and Sue Thomson for their contributions πŸ™Œ

2.0 IPv6 Addressing πŸ¦‹

IPv6 addresses are 128-bit identifiers for interfaces and sets of interfaces ✨ There are three types:

  • Unicast: An identifier for a single interface. A packet sent to a unicast address is delivered to the interface that address identifies.
  • Anycast: An identifier for a set of interfaces, usually spread across different nodes. A packet sent to an anycast address is delivered to one of those interfaces, the "nearest" one according to the routing protocols' measure of distance.
  • Multicast: An identifier for a set of interfaces, usually spread across different nodes. A packet sent to a multicast address is delivered to all of the interfaces that address identifies.

IPv6 has no broadcast addresses πŸ’€ Multicast addresses took over that job.

In this doc, fields in addresses get a specific name, like "subscriber." When that name is paired with "ID" (like "subscriber ID"), it refers to the contents of the named field. When it's paired with "prefix" (like "subscriber prefix"), it refers to the whole address up to and including that field 🌸

In IPv6, all zeros and all ones are legal values for any field, unless specifically excluded. To be specific, prefixes may contain zero-valued fields or end in zeros πŸ“

2.1 Addressing Model

IPv6 addresses of every type are assigned to interfaces, not nodes πŸ’œ Each interface belongs to a single node, so any of that node's interfaces' unicast addresses can be used as an identifier for the node.

An IPv6 unicast address refers to a single interface. One interface can be assigned multiple IPv6 addresses of any type (unicast, anycast, and multicast). There are two exceptions to this model:

  1. A single address may be assigned to multiple physical interfaces if the implementation treats those physical interfaces as one interface when presenting it to the internet layer. This is handy for load-sharing over multiple physical interfaces ⚑
  2. Routers may have unnumbered interfaces (meaning no IPv6 address is assigned to the interface) on point-to-point links. This removes the need to manually configure and advertise the addresses. Addresses aren't needed for point-to-point interfaces on routers if those interfaces won't be used as the origins or destinations of any IPv6 datagrams 🫢

IPv6 keeps the IPv4 model that a subnet is associated with one link. Multiple subnets may be assigned to the same link 🌈

2.2 Text Representation of Addresses

There are three conventional forms for writing IPv6 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:0:8:800:200C:417A

Leading zeros in an individual field don't have to be written out, but there must be at least one numeral in every field (except for the case described in 2.).

  1. Since certain styles of IPv6 addresses are allocated in a way that makes long strings of zero bits really common, there's a special syntax to compress the zeros and make those addresses easier to write 🧚 The "::" stands for multiple groups of 16 bits of zeros. The "::" can only appear once in an address, and it can also be used to compress the leading and/or trailing zeros in an address. For example, the following addresses:
1080:0:0:0:8:800:200C:417A  a unicast address
FF01:0:0:0:0:0:0:43         a multicast address
0:0:0:0:0:0:0:1             the loopback address
0:0:0:0:0:0:0:0             the unspecified addresses

may be represented as:

1080::8:800:200C:417A       a unicast address
FF01::43                    a multicast address
::1                         the loopback address
::                          the unspecified addresses
  1. An alternative form that's sometimes more convenient in a mixed environment of IPv4 and IPv6 nodes is x:x:x:x:x:x:d.d.d.d πŸ“ 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 (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 Address Type Representation

The specific type of an IPv6 address is shown by the leading bits in the address. That variable-length run of leading bits is called the Format Prefix (FP). The initial allocation of these prefixes looks like this πŸ‘‘

    Allocation                         Prefix         Fraction of
                                       (binary)       Address Space
    -------------------------------    --------       -------------
    Reserved                           0000 0000      1/256
    Unassigned                         0000 0001      1/256

    Reserved for NSAP Allocation       0000 001       1/128
    Reserved for IPX Allocation        0000 010       1/128

    Unassigned                         0000 011       1/128
    Unassigned                         0000 1         1/32
    Unassigned                         0001           1/16
    Unassigned                         001            1/8

    Provider-Based Unicast Address     010            1/8

    Unassigned                         011            1/8

    Reserved for Geographic-
    Based Unicast Addresses            100            1/8

    Unassigned                         101            1/8
    Unassigned                         110            1/8
    Unassigned                         1110           1/16
    Unassigned                         1111 0         1/32
    Unassigned                         1111 10        1/64
    Unassigned                         1111 110       1/128

    Unassigned                         1111 1110 0    1/512

    Link Local Use Addresses           1111 1110 10   1/1024
    Site Local Use Addresses           1111 1110 11   1/1024

    Multicast Addresses                1111 1111      1/256
Note: The "unspecified address" (see section 2.4.2), the loopback address (see section 2.4.3), and the IPv6 addresses with embedded IPv4 addresses (see section 2.4.4) are assigned out of the 0000 0000 format prefix space.

This allocation supports direct allocation of provider addresses, local use addresses, and multicast addresses 🌸 Space is reserved for NSAP addresses, IPX addresses, and geographic addresses. The rest of the address space is unassigned for future use. That can be used to expand existing uses (like extra provider addresses) or for new uses (like separate locators and identifiers). Fifteen percent of the address space is initially allocated, and the remaining 85% is reserved for future use πŸ’–

Unicast addresses are told apart from multicast addresses by the value of the high-order octet. A value of FF (11111111) marks an address as multicast, and any other value marks it as unicast. Anycast addresses are taken from the unicast address space, so they can't be syntactically told apart from unicast addresses πŸ”₯

2.4 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: the global provider based unicast address, the geographic based unicast address, the NSAP address, the IPX hierarchical address, the site-local-use address, the link-local-use address, and the IPv4-capable host address. More address types can be defined in the future ✨

Okay bestie, let's get into the address shapes πŸ’–

IPv6 nodes can know a little or a lot about the inside of an IPv6 address, and it really depends on the job the node has (a host is different from a router) πŸ¦‹ At the bare minimum, a node can treat unicast addresses, including its own, as having no internal structure at all:

|                           128 bits                              |
+-----------------------------------------------------------------+
|                          node address                           |
+-----------------------------------------------------------------+

A slightly fancier host (still pretty simple, don't worry) can also know the subnet prefix for the link(s) it's plugged into πŸŽ€ Different addresses might have different values for n, so it's a little bit of a vibe check:

|                         n bits                 |   128-n bits   |
+------------------------------------------------+----------------+
|                   subnet prefix                | interface ID   |
+------------------------------------------------+----------------+

Then there are the hosts that are even more sophisticated πŸ‘‘ They might know about other hierarchical boundaries in the unicast address. A really basic router might know nothing about the inside of IPv6 unicast addresses, but routers usually know about one or more of those hierarchical boundaries so their routing protocols can do their thing 🧚 Which boundaries a router knows about depends on where it sits in the routing hierarchy, so it's different from router to router. Iconic ✨

2.4.1. Unicast Address Examples

Here's an example format that's probably going to show up on LANs and other places where IEEE 802 MAC addresses are around πŸ’…

|              n bits            | 80-n bits |     48 bits        |
+--------------------------------+-----------+--------------------+
|        subscriber prefix       | subnet ID |   interface ID     |
+--------------------------------+-----------+--------------------+

In this one, the 48-bit Interface ID is an IEEE-802 MAC address 🌸 Using IEEE 802 MAC addresses as an interface ID is expected to be super common in places where nodes have an IEEE 802 MAC address. In environments without them, other link layer addresses can be used for the interface ID instead, like E.164 addresses πŸ“

Having a unique global interface identifier, like an IEEE MAC address, makes a really simple form of address auto-configuration possible 🫢 A node can find out the subnet ID by listening to Router Advertisement messages from a router on its attached link(s). Then it builds its own IPv6 address by using its IEEE MAC address as the interface ID on that subnet. Literally so easy 😭

Another example is for a site or organization that needs extra layers of internal hierarchy πŸ’œ In this one, the subnet ID gets split into an area ID and a subnet ID. The format looks like this:

|         s bits       | n bits  |   m bits     | 128-s-n-m bits  |
+----------------------+---------+--------------+-----------------+
|   subscriber prefix  | area ID |  subnet ID   |  interface ID   |
+----------------------+---------+--------------+-----------------+

You can keep going with this technique so a site or organization can add even more layers of internal hierarchy 🌈 If you want more room for those extra layers, it might be a good idea to use an interface ID that's smaller than a 48-bit IEEE 802 MAC address. Those could be interface IDs that the site or organization creates administratively 🧚

2.4.2. The Unspecified Address

The address 0:0:0:0:0:0:0:0 is called the unspecified address, and it is totally not for anyone πŸ™ˆ It must never be assigned to any node. It means "there's no address here," basically πŸ’€ One example of when it gets used: in the Source Address field of IPv6 datagrams sent by an initializing host that hasn't figured out its own address yet.

The unspecified address must not be used as the destination address of IPv6 datagrams, and it must not be used in IPv6 Routing Headers either 🚫

2.4.3. The Loopback Address

The unicast address 0:0:0:0:0:0:0:1 is called the loopback address πŸ” A node can use it to send an IPv6 datagram to itself. It may never be assigned to any interface, though πŸ™…

The loopback address must not be used as the source address in IPv6 datagrams that are sent outside of a single node 🫣 And an IPv6 datagram with a loopback destination address must never be sent outside of a single node. Keep it at home, babe 🏠

2.4.4. IPv6 Addresses with Embedded IPv4 Addresses

The IPv6 transition mechanisms include a way for hosts and routers to dynamically tunnel IPv6 packets over IPv4 routing infrastructure πŸš‡ Nodes that use this technique get special IPv6 unicast addresses that carry an IPv4 address in the low-order 32 bits. This kind is called an "IPv4-compatible IPv6 address," and it looks like this:

|                80 bits               | 16 |      32 bits        |
+--------------------------------------+--------------------------+
|0000..............................0000|0000|    IPv4 address     |
+--------------------------------------+----+---------------------+

There's also a second type of IPv6 address that holds an embedded IPv4 address πŸ’– This one is used to represent the addresses of IPv4-only nodes (the ones that do not support IPv6) as IPv6 addresses. It's called an "IPv4-mapped IPv6 address," and the format is:

|                80 bits               | 16 |      32 bits        |
+--------------------------------------+--------------------------+
|0000..............................0000|FFFF|    IPv4 address     |
+--------------------------------------+----+---------------------+

2.4.5. NSAP Addresses

Here's how NSAP addresses get mapped into IPv6 addresses 🌸

|   7   |                   121 bits                              |
+-------+---------------------------------------------------------+
|0000001|                 to be defined                           |
+-------+---------------------------------------------------------+

The draft definition, motivation, and usage are still under study [NSAP]. Still cooking 🍳

2.4.6. IPX Addresses

Here's the mapping for IPX addresses into IPv6 addresses 🧁

|   7   |                   121 bits                              |
+-------+---------------------------------------------------------+
|0000010|                 to be defined                           |
+-------+---------------------------------------------------------+

The draft definition, motivation, and usage are still under study too 🫠

2.4.7. Provider-Based Global Unicast Addresses

The global provider-based unicast address is assigned the way [ALLOC] describes 🌍 The starting assignment plan for these unicast addresses is kind of like how IPv4 addresses get assigned under the CIDR scheme [CIDR]. Here's the IPv6 global provider-based unicast address format:

| 3 |  n bits   |  m bits   |   o bits    |   125-n-m-o bits   |
+---+-----------+-----------+-------------+--------------------+
|010|registry ID|provider ID|subscriber ID|  intra-subscriber  |
+---+-----------+-----------+-------------+--------------------+

The high-order part of the address goes to registries, who then hand portions of the address space to providers, who then hand portions to subscribers, and so on πŸ”₯

The registry ID tells you which registry assigns the provider portion of the address. The "registry prefix" is the high-order part of the address up to and including the registry ID πŸ’…

The provider ID identifies a specific provider, and that provider assigns the subscriber portion of the address. The "provider prefix" is the high-order part up to and including the provider ID πŸŽ€

The subscriber ID tells apart multiple subscribers attached to the provider identified by the provider ID. The "subscriber prefix" is the high-order part up to and including the subscriber ID πŸ‘‘

The intra-subscriber portion is defined by each individual subscriber, and it's organized according to the subscriber's own local internet topology πŸ—ΊοΈ It's likely that lots of subscribers will split the intra-subscriber portion into a subnet ID and an interface ID. In that case, the subnet ID identifies a specific physical link, and the interface ID identifies one single interface on that subnet ✨

2.4.8. Local-use IPv6 Unicast Addresses

There are two types of local-use unicast addresses: Link-Local and Site-Local 🫧 Link-Local is for use on a single link, and Site-Local is for use within a single site. Link-Local addresses look like this:

|   10     |
|  bits    |        n bits           |       118-n bits           |
+----------+-------------------------+----------------------------+
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+

Link-Local addresses are meant for addressing on a single link, for things like auto-address configuration, neighbor discovery, or when there aren't any routers around πŸ¦‹

Routers MUST not forward any packets with link-local source addresses. Don't be the router that does that 🚫

Site-Local addresses look like this:

|   10     |
|  bits    | n bits  |    m bits     |       118-n-m bits         |
+----------+---------+---------------+----------------------------+
|1111111011|    0    |   subnet ID   |       interface ID         |
+----------+---------+---------------+----------------------------+

Site-Local addresses can be used by sites or organizations that aren't (yet) connected to the global Internet 🌱 They don't have to request or "steal" an address prefix from the global Internet address space. Site-local IPv6 addresses can be used instead. Later, when the organization connects to the global Internet, it can form global addresses by replacing the site-local prefix with a subscriber prefix πŸ”„

Routers MUST not forward any packets with site-local source addresses outside of the site. Keep it local, no cap 🏑

2.5. Anycast Addresses

An IPv6 anycast address is one that's assigned to more than one interface (usually on different nodes) πŸ“‘ A packet sent to an anycast address gets routed to the "nearest" interface that has that address, based on the routing protocols' measure of distance. Main character routing energy 🎬

Anycast addresses come out of the unicast address space and can use any of the defined unicast address formats πŸ’– So anycast addresses are syntactically indistinguishable from unicast addresses. When a unicast address gets assigned to more than one interface and turns into an anycast address, the nodes it's assigned to must be explicitly configured to know it's an anycast address 🫢

For any assigned anycast address, there's a longest address prefix P that identifies the topological region where all the interfaces belonging to that anycast address live πŸ—ΊοΈ Inside the region identified by P, each member of the anycast set must be advertised as a separate entry in the routing system (commonly called a "host route") 🎯 Outside the region identified by P, the anycast address can be aggregated into the routing advertisement for prefix P. Iykyk, and now you do too 🌈

Okay so the worst case here is kinda spicy 🌢️ The prefix P of an anycast set can be the null prefix, which means the members might have zero topological locality 😭 In that case the anycast address has to be advertised as its own separate routing entry across the ENTIRE internet, and that's a severe scaling limit on how many "global" anycast sets anyone can support. So honestly? Support for global anycast sets may be unavailable or super restricted πŸ’€

Anyway, the fun stuff! One expected use of anycast addresses is identifying the set of routers that belong to an internet service provider 🧚 These addresses could be used as intermediate addresses in an IPv6 Routing header, so a packet gets delivered via a specific provider or a sequence of providers. Other possible uses: identifying the set of routers attached to a particular subnet, or the set of routers giving entry into a particular routing domain. Main character energy for routers πŸ‘‘

Now, there's very little experience with widespread, arbitrary use of internet anycast addresses, and there are known complications and hazards when you use them in their full generality [ANYCST]. So until we've gained more experience and agreed on solutions for those problems, these restrictions apply to IPv6 anycast addresses 🫢

  • An anycast address MUST NOT be used as the source address of an IPv6 packet.
  • An anycast address MUST NOT be assigned to an IPv6 host, that is, it may be assigned to an IPv6 router only.

2.5.1 Required Anycast Address

The Subnet-Router anycast address is predefined πŸŽ€ Its format is as follows:

|                         n bits                 |   128-n bits   |
+------------------------------------------------+----------------+
|                   subnet prefix                | 00000000000000 |
+------------------------------------------------+----------------+

The "subnet prefix" in an anycast address is the prefix that identifies a specific link πŸ’– This anycast address is syntactically the same as a unicast address for an interface on the link, with the interface identifier set to zero. Iconic.

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 they have interfaces on πŸ¦‹

The subnet-router anycast address is meant for applications where a node needs to talk to one of a set of routers on a remote subnet. For example, when a mobile host needs to communicate with one of the mobile agents on its "home" subnet 🌸

2.6 Multicast Addresses

An IPv6 multicast address is an identifier for a group of nodes ✨ A node can 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 it as 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.

scop is a 4-bit multicast scope value used to limit the scope of the multicast group. The values are:

0  reserved
1  node-local scope
2  link-local scope
3  (unassigned)
4  (unassigned)
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

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 only meaningful within a given scope πŸ™ˆ For example, a group identified by the non-permanent, site-local multicast address FF15:0:0:0:0:0:0:43 at one site has 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. Not me being like "wait, why are these all different groups" 😭

Multicast addresses must not be used as source addresses in IPv6 datagrams or appear in any routing header. 🚫

2.6.1 Pre-Defined Multicast Addresses

The following well-known multicast addresses are pre-defined 🌈

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. Hard no, bestie πŸ™…β€β™€οΈ

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 (node-local) or 2 (link-local) 🌸

All Routers Addresses:   FF01:0:0:0:0:0:0:2
                         FF02:0:0:0:0:0:0:2

The above multicast addresses identify the group of all IPv6 routers, within scope 1 (node-local) or 2 (link-local) πŸ‘‘

DHCP Server/Relay-Agent: FF02:0:0:0:0:0:0:C

The above multicast address identifies the group of all IPv6 DHCP Servers and Relay Agents within scope 2 (link-local) 🫢

Solicited-Node Address:  FF02:0:0:0:0:1:XXXX:XXXX

The above multicast address is computed as a function of a node's unicast and anycast addresses. The solicited-node multicast address is formed by taking the low-order 32 bits of the address (unicast or anycast) and appending those bits to the 96-bit prefix FF02:0:0:0:0:1, resulting in a multicast address in the range

FF02:0:0:0:0:1:0000:0000

to

FF02:0:0:0:0:1:FFFF:FFFF

For example, the solicited node multicast address corresponding to the IPv6 address 4037::01:800:200E:8C6C is FF02::1:200E:8C6C. IPv6 addresses that differ only in the high-order bits, e.g., due to multiple high-order prefixes associated with different providers, will map to the same solicited-node address, thereby reducing the number of multicast addresses a node must join. Lowkey genius 🧠✨

A node is required to compute and support a Solicited-Node multicast address for every unicast and anycast address it is assigned. πŸ’…

2.7 A Node's Required Addresses

A host is required to recognize the following addresses as identifying itself πŸ¦‹

  • Its Link-Local Address for each interface
  • Assigned Unicast Addresses
  • Loopback Address
  • All-Nodes Multicast Address
  • Solicited-Node Multicast Address for each of its assigned unicast and anycast addresses
  • Multicast Addresses of all other groups which the host belongs.

A router is required to recognize the following addresses as identifying itself 🌷

  • Its Link-Local Address for each interface
  • Assigned Unicast Addresses
  • Loopback Address
  • The Subnet-Router anycast addresses for the links it has interfaces.
  • All other Anycast addresses with which the router has been configured.
  • All-Nodes Multicast Address
  • All-Router Multicast Address
  • Solicited-Node Multicast Address for each of its assigned unicast and anycast addresses
  • Multicast Addresses of all other groups which the router belongs.

The only address prefixes which should be predefined in an implementation are the:

  • Unspecified Address
  • Loopback Address
  • Multicast Prefix (FF)
  • Local-Use Prefixes (Link-Local and Site-Local)
  • Pre-Defined Multicast Addresses
  • IPv4-Compatible Prefixes

Implementations should assume all other addresses are unicast unless specifically configured (e.g., anycast addresses). Simple rule, big energy ✨


REFERENCES πŸ“š

[ALLOC] Rekhter, Y., and T. Li, "An Architecture for IPv6 Unicast
        Address Allocation", RFC 1887, cisco Systems, December
        1995.

[ANYCST] Partridge, C., Mendez, T., and W. Milliken, "Host
        Anycasting Service", RFC 1546, BBN, November 1993.

[CIDR] Fuller, V., Li, T., Varadhan, K., and J. Yu, "Supernetting:
        an Address Assignment and Aggregation Strategy", RFC 1338,
        BARRNet, cisco, Merit, OARnet, June 1992.

[IPV6] Deering, S., and R. Hinden, Editors, "Internet Protocol,
        Version 6 (IPv6) Specification", RFC 1883, Xerox PARC,
        Ipsilon Networks, December 1995.

[MULT] Deering, S., "Host Extensions for IP multicasting", STD 5,
        RFC 1112, Stanford University, August 1989.

[NSAP] Carpenter, B., Editor, "Mechanisms for OSIN SAPs, CLNP and
        TP over IPv6", Work in Progress.

SECURITY CONSIDERATIONS πŸ”

Security issues are not discussed in this document.

DOCUMENT EDITOR'S ADDRESSES πŸ’Œ

Robert M. Hinden                     Stephen E. Deering
Ipsilon Networks, Inc.               Xerox Palo Alto Research Center
2191 E. Bayshore Road, Suite 100     3333 Coyote Hill Road
Palo Alto, CA 94303                  Palo Alto, CA 94304
USA                                  USA

Phone: +1 415 846 4604               Phone: +1 415 812 4839
Fax:   +1 415 855 1414               Fax:   +1 415 812 4471
EMail: hinden@ipsilon.com            EMail: deering@parc.xerox.com
πŸ“¦ where this page comes from