RFC 5453

Reserved IPv6 Interface Identifiers

πŸ“… published February 2009, from ietf

RFC 5453: Reserved IPv6 Interface Identifiers πŸ’–

Okay bestie, this one is a Standards Track doc πŸ“œ written by S. Krishnan at Ericsson, dated February 2009. Its title block doesn't list anything it obsoletes or updates, so it stands on its own πŸ¦‹. It's a Network Working Group document, so the whole thing is an open protocol spec for the Internet community 🌸


Status of This Memo ✨

This doc is an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements πŸ’¬ If you want the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1) πŸ“š Distribution of this memo is unlimited 🌈

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document 🫢

Abstract πŸ”₯

So, interface identifiers in IPv6 unicast addresses are how you tell interfaces apart on a link πŸ”— They're required to be unique within a subnet. Several RFCs have given certain interface identifiers, or ranges of them, a special meaning πŸ™ˆ If an IPv6 node autoconfigures an interface identifier in one of those ranges, it's going to run into unexpected consequences πŸ’€ There's no centralized repository for these reserved identifiers, so this document is basically here to make one ✨

Table of Contents πŸ“–

   1. Introduction ....................................................2
      1.1. Applicability ..............................................2
      1.2. Requirements Notation ......................................3
   2. Issues with Reusing Reserved Interface Identifiers ..............3
      2.1. Possible Solutions .........................................3
   3. IANA Considerations .............................................3
   4. Acknowledgements ................................................4
   5. Security Considerations .........................................4
   6. References ......................................................5
      6.1. Normative References .......................................5
      6.2. Informative References .....................................5
   Appendix A. List of Potentially Affected RFCs ......................6

1. Introduction πŸ¦‹

Okay so an IPv6 unicast address has two parts: a subnet prefix, and an interface identifier (IID) that picks out one specific interface within that subnet prefix 🧚 The structure is laid out in "IPv6 Addressing Architecture" [RFC4291], and it's copied here so you can see it clearly πŸ‘‘

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

                   Figure 1: IPv6 Unicast Address Format

For all unicast addresses, except the ones that start with the binary value 000, Interface IDs are required to be 64 bits long and built in Modified EUI-64 format [RFC4291] πŸ“ Some mechanisms make interface identifiers that don't come from a unique token, like Cryptographically Generated Addresses [RFC3972], Privacy Addresses [RFC4941], Hash-Based Addresses [HBA], and so on 🌸 Non-unique interface identifiers can also be handed out by managed address assignment mechanisms, like DHCPv6 (Dynamic Host Configuration Protocol for IPv6) [RFC3315] πŸ’œ

1.1. Applicability ⭐

This document only applies to interface identifiers formed in the modified EUI-64 format, the way Appendix A of [RFC4291] defines it πŸŽ€ Every other type of interface identifier is out of its scope, so it's not this doc's problem πŸ’…

1.2. Requirements Notation πŸ’–

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] 🌈

2. Issues with Reusing Reserved Interface Identifiers 😭

Let's say a node comes up with an interface identifier that was reserved for something else πŸ™ˆ For example, an IPv6 node using temporary IPv6 addresses [RFC4941] ends up with an IID of fdff:ffff:ffff:ffff. That's a problem, because this node will get requests from every node that wants a service from a Mobile IPv6 home agent, since that identifier was reserved in [RFC2526] to be a MIPv6 home agent's anycast address πŸ’€ At best, it's an annoyance for the node that picked the address πŸ™„ At worst, another node on the link gets denied service and might not go looking for other ways to find a home agent 😱 So honestly, reserved interface identifiers like this one MUST NOT be used for autonomous autoconfiguration or for managed address configuration 🚫

2.1. Possible Solutions 🧠

There are two ways to avoid using these reserved interface identifiers 🍰 One is to add a normative reference to every specification that reserves an interface identifier. The other is to create an IANA registry for these interface identifiers. The normative reference approach has two disadvantages, though πŸ‘€ First, it doesn't scale well, because there are a lot of these specifications that would need updating πŸ“ˆ Second, the maturity level of the document that reserves the IID might be lower than the maturity level of the document that forbids using it, which causes a downward reference problem ⚠️ So the better solution is an IANA registry for this purpose πŸ‘‘

3. IANA Considerations πŸ“‹

This document creates an IANA registry for reserved IPv6 interface identifiers πŸŽ€ The initial values for that registry are given below 🌸

   +-----------------------------------------+-------------------------+
   |        Interface Identifier Range       |       Description       |
   +-----------------------------------------+-------------------------+
   |           0000:0000:0000:0000           |  Subnet-Router Anycast  |
   |                                         |        [RFC4291]        |
   |                                         |                         |
   | FDFF:FFFF:FFFF:FF80-FDFF:FFFF:FFFF:FFFF | Reserved Subnet Anycast |
   |                                         |    Addresses[RFC2526]   |
   +-----------------------------------------+-------------------------+

                       Table 1: Current Assignments

Here's the tea β˜• Some implementations might predate a specific assignment in this registry, which means they might not know the interface identifier is reserved 😬 So future assignments from this registry are discouraged πŸ™…β€β™€οΈ If there are any, they're made through Standards Action [RFC5226] πŸ“œ An assignment is either a single interface identifier or a range of interface identifiers πŸ¦‹

NOTE: The address :: (all zeros in the interface identifier field) is used as the unspecified address, and ::/0 is used as a default route indicator, as specified in [RFC5156]. These uses don't conflict with the reserved interface identifiers defined here, since those reserved identifiers exist to avoid conflicts with stateless address autoconfiguration, which uses a 64-bit prefix length 🫢

4. Acknowledgements 🫢

The author would like to thank Alain Durand, Alex Petrescu, Bernie Volz, Bob Hinden, Christian Huitema, Fred Templin, Jordi Palet Martinez, Pekka Savola, Remi Denis-Courmount, Tim Enos, Ed Jankiewicz, Brian Carpenter, Alfred Hoenes, Jari Arkko, Pasi Eronen, Tim Polk, Lars Eggert, Derek Atkins, and Robert Sparks for reviewing this document and suggesting changes πŸ’œ Iconic squad, thank you all πŸ‘‘

5. Security Considerations 🚨

This part is serious, bestie. By using one of the reserved interface identifiers, an IPv6 node might receive requests it isn't authorized to receive 😱 Any information that creates or updates a registration in this registry needs to be authenticated and authorized by the IANA, based on the instructions set forth by [RFC5226] πŸ”’

6. References πŸ“š

6.1. Normative References πŸ’…

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2526]  Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast
              Addresses", RFC 2526, March 1999.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, February 2006.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              May 2008.

6.2. Informative References 🌸

   [HBA]      Bagnulo, M., "Hash Based Addresses (HBA)", Work in
              Progress, October 2006.

   [RFC3315]  Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins,
              C., and M. Carney, "Dynamic Host Configuration Protocol
              for IPv6 (DHCPv6)", RFC 3315, July 2003.

   [RFC3972]  Aura, T., "Cryptographically Generated Addresses (CGA)",
              RFC 3972, March 2005.

   [RFC4941]  Narten, T., Draves, R., and S. Krishnan, "Privacy
              Extensions for Stateless Address Autoconfiguration in
              IPv6", RFC 4941, September 2007.

   [RFC5156]  Blanchet, M., "Special-Use IPv6 Addresses", RFC 5156,
              April 2008.

Appendix A. List of Potentially Affected RFCs 🧚

Implementations of the following RFCs need to be aware of the reserved interface identifier ranges when they allocate new addresses πŸ‘€ Future revisions of these RFCs should make sure this is either already clear enough, or that the text gets amended to cover it ✨

  • RFC 2590 - Transmission of IPv6 Packets over Frame Relay Networks Specification
  • RFC 3315 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
  • RFC 3972 - Cryptographically Generated Addresses (CGA)
  • RFC 4489 - A Method for Generating Link-Scoped IPv6 Multicast Addresses
  • RFC 4862 - IPv6 Stateless Address Autoconfiguration
  • RFC 4941 - Privacy Extensions for Stateless Address Autoconfiguration in IPv6
  • RFC 4982 - Support for Multiple Hash Algorithms in Cryptographically Generated Addresses (CGAs)
  • RFC 5072 - IP Version 6 over PPP

Author's Address 🌈

   Suresh Krishnan
   Ericsson
   8400 Decarie Blvd.
   Town of Mount Royal, QC
   Canada

   Phone: +1 514 345 7900 x42871
   EMail: suresh.krishnan@ericsson.com

That's the whole spec, bestie! πŸ¦‹πŸ’–βœ¨

πŸ“¦ where this page comes from