RFC 1972

A Method for the Transmission of IPv6 Packets over Ethernet Networks

πŸ“… published August 1996, from ietf

RFC 1972: A Method for the Transmission of IPv6 Packets over Ethernet Networks πŸ¦‹

  • Network Working Group, Request for Comments 1972 πŸŽ€
  • Author: Matt Crawford, from Fermilab πŸ’–
  • Category: Standards Track πŸ‘‘
  • Date: August 1996 🌸
  • Obsoletes/Updates: nothing listed in the header, so this one doesn't obsolete or update any other RFC 🧚

Status of this Memo ✨

This document specifies an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements 🫢. For 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 πŸ’….

Introduction πŸ¦‹

Okay bestie, this one is about how IPv6 packets ride inside Ethernet frames πŸŽ€. It also covers how IPv6 link-local addresses get formed on Ethernet, plus the contents of the Source/Target Link-layer Address option. That option shows up in the Router Solicitation, Router Advertisement, Neighbor Solicitation, and Neighbor Advertisement messages from [DISC], whenever those messages get sent over Ethernet 🧚. The IPv6 packets themselves are described in [IPV6] ✨.

Maximum Transmission Unit πŸ’…

The default MTU for IPv6 on Ethernet is 1500 octets 🌈. A Router Advertisement [DISC] can shrink that by carrying an MTU option with a smaller value, or you can configure each node by hand πŸ™ˆ. But if a Router Advertisement comes in with an MTU option bigger than 1500, or bigger than a manually configured value that's under 1500, that MTU option must be ignored πŸ’€.

Frame Format πŸŽ€

IPv6 packets go into standard Ethernet frames, no cap 🫢. The ethernet header holds the Destination and Source ethernet addresses, plus the ethernet type code. That type code must contain the value 86DD hexadecimal πŸ’–. The data field has the IPv6 header, then the payload right after it, and possibly some padding octets so the frame hits the minimum frame size for Ethernet 🧚.

    +-------+-------+-------+-------+-------+-------+       ^
    |          Destination Ethernet address         |       |
    +-------+-------+-------+-------+-------+-------+    ethernet
    |            Source Ethernet address            |     header
    +-------+-------+-------+-------+-------+-------+       |
    |  86      DD   |                                       v
    +-------+-------+-------+-------+-------+------+------+
    |            IPv6 header and payload ...              /
    +-------+-------+-------+-------+-------+------+------+

The address token [CONF] for an Ethernet interface is the interface's built-in 48-bit IEEE 802 address πŸ¦‹. It's in canonical bit order, with the octets in the same order they'd appear in an ethernet frame header. (The individual/group bit sits in the first octet, and the OUI is in the first three octets.) A different MAC address that's set manually or by software should not be used as the address token πŸ™ˆ.

An IPv6 address prefix used for stateless autoconfiguration of an ethernet interface must be 80 bits in length πŸ’œ.

The IPv6 Link-local address [AARCH] for an Ethernet interface is formed by appending the interface's IEEE 802 address to the 80-bit prefix FE80:: 🌈.

   +-------+-------+-------+-------+-------+-------+------+------+
   |  FE      80      00      00      00      00      00     00  |
   +-------+-------+-------+-------+-------+-------+------+------+
   |  00      00   |               Ethernet Address              |
   +-------+-------+-------+-------+-------+-------+------+------+

Address Mapping -- Unicast 🌸

The way you map IPv6 addresses to Ethernet link-layer addresses is explained in [DISC] 🧚. When the link layer is Ethernet, the Source/Target Link-layer Address option has this form πŸ’–:

  +-------+-------+-------+-------+-------+-------+-------+-------+
  | Type  |Length |               Ethernet Address                |
  +-------+-------+-------+-------+-------+-------+-------+-------+

Option fields:

  • 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 as the address token ✨.

Address Mapping -- Multicast 🌈

An IPv6 packet with a multicast destination address DST gets sent to an Ethernet multicast address πŸ¦‹. The first two octets of that address are 3333 hexadecimal, and the last four octets are the last four octets of DST, ordered from most to least significant πŸ’….

             +-------+-------+-------+-------+-------+-------+
             |   33  |   33  | DST13 | DST14 | DST15 | DST16 |
             +-------+-------+-------+-------+-------+-------+

Security Considerations πŸ’€

🚨 Bestie, this section is serious. The whole thing says: Security issues are not discussed in this memo. Nothing more is covered here, so keep that in mind πŸ™ˆ.

References πŸ“š

[AARCH] Hinden, R., and S. Deering, "IP Version 6 Addressing
        Architecture", RFC 1884, December 1995.

[CONF] Thomson, S., and T. Narten, "IPv6 Stateless Address
       Autoconfiguration", RFC 1971, August 1996.

[DISC] Narten, T., Nordmark, E., and W. Simpson, "Neighbor Discovery
       for IP Version 6 (IPv6)", RFC 1970, August 1996.

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

Author's Address πŸŽ€

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

Phone: +1 708 840-3461
EMail: crawdad@fnal.gov
πŸ“¦ where this page comes from