RFC 2464

Transmission of IPv6 Packets over Ethernet Networks

πŸ“… published December 1998, from ietf

RFC 2464: Transmission of IPv6 Packets over Ethernet Networks ✨

Okay bestie, this is RFC 2464 πŸŽ€, a Standards Track doc from the Network Working Group. It was written by M. Crawford at Fermilab and dated December 1998. It obsoletes RFC 1972, so 1972 is basically retired and this one is the new main character πŸ‘‘.

Status of This Memo

This doc specifies an Internet standards track protocol for the Internet community, and it wants your discussion and suggestions for improvements πŸ’¬. For the current standardization state and status of this protocol, check the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited 🌸.

Copyright (C) The Internet Society (1998). All Rights Reserved. πŸ’œ

1. Introduction πŸ¦‹

Okay so this doc explains how IPv6 packets get framed when they travel over Ethernet 🧚. It also covers how IPv6 link-local addresses and statelessly autoconfigured addresses get formed on Ethernet. And it spells out what goes in the Source/Target Link-layer Address option inside Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement and Redirect messages when those messages ride over Ethernet πŸ”₯.

This doc replaces RFC 1972, "A Method for the Transmission of IPv6 Packets over Ethernet Networks", which will become historic. Bye bye 1972 🫢.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc mean what [RFC 2119] says they mean. Be careful with these, they're serious πŸ’….

2. Maximum Transmission Unit 🌈

The default MTU for IPv6 [IPV6] packets on Ethernet is 1500 octets. That size may be reduced by a Router Advertisement [DISC] that has an MTU option specifying a smaller MTU, or by manual configuration of each node πŸ“. If a Router Advertisement arrives on an Ethernet interface with an MTU option bigger than 1500, or bigger than a manually configured value, that MTU option may be logged to system management but must be otherwise ignored. Not that one πŸ™ˆ.

For the purposes of this doc, info received from DHCP counts as "manually configured". Also, "Ethernet" here includes CSMA/CD and full-duplex subnetworks based on ISO/IEC 8802-3, at various data rates ⭐.

3. Frame Format πŸŽ€

IPv6 packets get sent inside standard Ethernet frames πŸ“¦. The Ethernet header holds the Destination and Source Ethernet addresses plus the Ethernet type code, which must contain the value 86DD hexadecimal. The data field has the IPv6 header, then the payload right after it, and possibly padding octets to hit the minimum frame size for the Ethernet link. Iconic layout, honestly 😭.

                     0                   1
                     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    |          Destination          |
                    +-                             -+
                    |            Ethernet           |
                    +-                             -+
                    |            Address            |
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    |             Source            |
                    +-                             -+
                    |            Ethernet           |
                    +-                             -+
                    |            Address            |
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    |1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 1|
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    |             IPv6              |
                    +-                             -+
                    |            header             |
                    +-                             -+
                    |             and               |
                    +-                             -+
                    /            payload ...        /
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    (Each tic mark represents one bit.)

4. Stateless Autoconfiguration 🧁

The Interface Identifier [AARCH] for an Ethernet interface is based on the EUI-64 identifier [EUI64], which comes from the interface's built-in 48-bit IEEE 802 address. Here's how the EUI-64 gets formed. (Canonical bit order is assumed throughout.) πŸ€“

The OUI of the Ethernet address (the first three octets) becomes the company_id of the EUI-64 (also the first three octets). The fourth and fifth octets of the EUI are set to the fixed value FFFE hexadecimal. The last three octets of the Ethernet address become the last three octets of the EUI-64. Easy peasy πŸ¦‹.

Then the Interface Identifier is formed from the EUI-64 by complementing the "Universal/Local" (U/L) bit. That's the next-to-lowest order bit of the first octet of the EUI-64. Complementing this bit will generally change a 0 to a 1, because an interface's built-in address is expected to come from a universally administered space and so have a globally unique value 🌍. A universally administered IEEE 802 address or an EUI-64 has a 0 in the U/L bit position, while a globally unique IPv6 Interface Identifier has a 1 there. For more on this, see [AARCH].

Here's an example. An Ethernet interface whose built-in address is, in hexadecimal,

34-56-78-9A-BC-DE

ends up with an Interface Identifier of

36-56-78-FF-FE-9A-BC-DE
A different MAC address that's set manually or by software should not be used to derive the Interface Identifier. If such a MAC address has to be used, its global uniqueness property should be reflected in the value of the U/L bit. Be careful, bestie πŸ’€.

An IPv6 address prefix used for stateless autoconfiguration [ACONF] of an Ethernet interface must have a length of 64 bits πŸ’–.

The IPv6 link-local address [AARCH] for an Ethernet interface is formed by appending the Interface Identifier (from above) to the prefix FE80::/64. Sooo pretty 😍.

    10 bits            54 bits                  64 bits
  +----------+-----------------------+----------------------------+
  |1111111010|         (zeros)       |    Interface Identifier    |
  +----------+-----------------------+----------------------------+

6. Address Mapping -- Unicast πŸ¦‹

The way IPv6 unicast addresses get mapped into Ethernet link-layer addresses is described in [DISC]. When the link layer is Ethernet, the Source/Target Link-layer Address option looks like this 🧚.

                 0                   1
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |     Type      |    Length     |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |                               |
                +-          Ethernet           -+
                |                               |
                +-           Address           -+
                |                               |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Option fields, bestie:

  • Type: 1 for Source Link-layer address. 2 for Target Link-layer address.
  • Length: 1 (in units of 8 octets).
  • Ethernet Address: The 48 bit Ethernet IEEE 802 address, in canonical bit order. This is the address the interface currently responds to, and it may be different from the built-in address used to derive the Interface Identifier 🫢.

7. Address Mapping -- Multicast πŸ’œ

An IPv6 packet with a multicast destination address DST, made of the sixteen octets DST[1] through DST[16], gets sent to the Ethernet multicast address whose first two octets are the value 3333 hexadecimal and whose last four octets are the last four octets of DST. Multicast glow-up ✨.

              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              |0 0 1 1 0 0 1 1|0 0 1 1 0 0 1 1|
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              |   DST[13]     |   DST[14]     |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              |   DST[15]     |   DST[16]     |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

8. Differences From RFC 1972 πŸ“

Here's what changed from RFC 1972 πŸ”„. The Address Token, which was a node's 48-bit MAC address, got replaced by the Interface Identifier. That's 64 bits long and based on the EUI-64 format [EUI64]. There's an IEEE-defined mapping from 48-bit MAC addresses to EUI-64 form, so you're not left hanging πŸ™Œ.

Also, a prefix used for stateless autoconfiguration must now be 64 bits long instead of 80. The link-local prefix is shortened to 64 bits too πŸ“‰.

9. Security Considerations πŸ’€

Okay, serious moment. The way Interface Identifiers get derived from MAC addresses is intended to preserve global uniqueness when possible. However, there is no protection from duplication through accident or forgery. So a duplicate can happen by accident, or somebody can forge one on purpose. Keep your eyes open, bestie πŸ‘€πŸ”₯.

10. References πŸ“š

  • [AARCH] Hinden, R. and S. Deering "IP Version 6 Addressing Architecture", RFC 2373, July 1998.
  • [ACONF] Thomson, S. and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC 2462, December 1998.
  • [DISC] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)", RFC 2461, December 1998.
  • [EUI64] "Guidelines For 64-bit Global Identifier (EUI-64)", http://standards.ieee.org/db/oui/tutorials/EUI64.html
  • [IPV6] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
  • [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

11. Author's Address πŸŽ€

Matt Crawford Fermilab MS 368 PO Box 500 Batavia, IL 60510 USA

Phone: +1 630 840-3461 EMail: crawdad@fnal.gov

Copyright (C) The Internet Society (1998). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 🌈

πŸ“¦ where this page comes from