RFC 8948: Structured Local Address Plan (SLAP) Quadrant Selection Option for DHCPv6
- CJ. Bernardos,
- A. Mourad
Abstract
The IEEE originally structured the 48-bit Media Access Control (MAC) address space in such a way that half of it was reserved for local use. In 2017, the IEEE published a new standard (IEEE Std 802c) with a new optional Structured Local Address Plan (SLAP). It specifies different assignment approaches in four specified regions of the local MAC address space.¶
The IEEE is developing protocols to assign addresses (IEEE P802.1CQ). There is also work in the IETF on specifying a new mechanism that extends DHCPv6 operation to handle the local MAC address assignments.¶
This document proposes extensions to DHCPv6 protocols to enable a DHCPv6 client or a DHCPv6 relay to indicate a preferred SLAP quadrant to the server so that the server may allocate MAC addresses in the quadrant requested by the relay or client. A new DHCPv6 option (QUAD) is defined for this purpose.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2020 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
(https://
1. Introduction
The IEEE structures the 48-bit MAC address space in such a way that half of it is reserved for local use (where the Universal/Local (U/L) bit is set to 1). In 2017, the IEEE published a new standard [IEEEStd802c] that defines a new optional Structured Local Address Plan (SLAP) that specifies different assignment approaches in four specified regions of the local MAC address space. These four regions, called SLAP quadrants, are briefly described below (see Figure 1 and Table 1 for details):¶
1.1. Problem Statement
The IEEE is developing mechanisms to assign addresses [IEEE
In the following, we describe two application scenarios in which a need arises to assign local MAC addresses according to preferred SLAP quadrants.¶
1.1.1. Wi-Fi (IEEE 802.11) Devices
Today, most Wi-Fi devices come with interfaces that have a "burned-in" MAC
address, allocated from the universal address space using a 24-bit
Organizationall
1.1.2. Hypervisor: Functions That Are and Are Not Migratable
In large-scale virtualization environments, thousands of virtual machines (VMs) are active. These VMs are typically managed by a hypervisor, which is in charge of spawning and stopping VMs as needed. The hypervisor is also typically in charge of assigning new MAC addresses to the VMs. If a DHCP solution is in place for that, the hypervisor acts as a DHCP client and requests that available DHCP servers assign one or more MAC addresses (an address block). The hypervisor does not use those addresses for itself, but rather it uses them to create new VMs with appropriate MAC addresses. If we assume very large data-center environments, such as the ones that are typically used nowadays, it is expected that the data center is divided in different network regions, each one managing its own local address space. In this scenario, there are two possible situations that need to be tackled:¶
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
Where relevant, the DHCPv6 terminology from [RFC8415] also applies here. Additionally, the following definitions are updated for this document.¶
- address
- Unless specified otherwise, a link-layer (or MAC) address, as specified in [IEEEStd802]. The address is 6 or 8 bytes long.¶
- address block
- A number of consecutive link-layer addresses. An address block is expressed as a first address plus a number that designates the number of additional (extra) addresses. A single address can be represented by the address itself and zero extra addresses.¶
- client
- A node that is interested in obtaining link-layer addresses. It implements the basic DHCP mechanisms needed by a DHCP client, as described in [RFC8415], and supports the options (IA_LL and LLADDR) specified in [RFC8947] as well as the new option (QUAD) specified in this document. The client may or may not support IPv6 address assignment and prefix delegation, as specified in [RFC8415].¶
- IA_LL
- Identity Association for Link-Layer Address, an identity association (IA) used to request or assign link-layer addresses. Section 11.1 of [RFC8947] provides details on the IA_LL option.¶
- LLADDR
- Link-layer address option that is used to request or assign a block of link-layer addresses. Section 11.2 of [RFC8947] provides details on the LLADDR option.¶
- relay
- A node that acts as an intermediary to deliver DHCP messages between clients and servers. A relay, based on local knowledge and policies, may include the preferred SLAP quadrant in a QUAD option sent to the server. The relay implements basic DHCPv6 relay agent functionality, as described in [RFC8415].¶
- server
- A node that manages link-layer address allocation and is able to respond to client queries. It implements basic DHCP server functionality, as described in [RFC8415], and supports the options (IA_LL and LLADDR) specified in [RFC8947] as well as the new option (QUAD) specified in this document. The server may or may not support IPv6 address assignment and prefix delegation, as specified in [RFC8415].¶
3. DHCPv6 Extensions
3.1. Address Assignment from the Preferred SLAP Quadrant Indicated by the Client
Next, we describe the protocol operations for a client to select a preferred SLAP quadrant using the DHCPv6 signaling procedures described in [RFC8947]. The signaling flow is shown in Figure 2.¶
The client SHOULD check if the received MAC address comes from one of the requested quadrants. It MAY repeat the process selecting a different DHCP server.¶
3.2. Address Assignment from the Preferred SLAP Quadrant Indicated by the Relay
Next, we describe the protocol operations for a relay to select a preferred SLAP quadrant using the DHCPv6 signaling procedures described in [RFC8947]. This is useful when a DHCPv6 server is operating over a large infrastructure split in different network regions, where each region might have different requirements. The signaling flow is shown in Figure 3.¶
The server SHOULD implement a configuration parameter to deal with the case
where the client's DHCP message contains an instance of OPTION
The client MAY check if the received MAC address belongs to a quadrant it is willing to use/configure and MAY decide based on that whether to use/configure the received address.¶
4. DHCPv6 Option Definition
4.1. QUAD Option
The QUAD option is used to specify the preferences for the selected quadrants within an IA_LL. The option MUST be encapsulated either in the IA_LL-options field of an IA_LL option or in a Relay-forward message.¶
The format of the QUAD option is:¶
- option-code
-
OPTION
_SLAP _QUAD (140).¶ - option-len
- 2 * number of included (quadrant, preference). This is a 2-byte field containing the total length of all (quadrant, preference) pairs included in the option.¶
- quadrant-n
- Identifier of the quadrant (0: AAI, 1: ELI, 2: Reserved by IEEE [IEEEStd802c], and 3: SAI). Each quadrant MUST only appear once at most in the option. This is a 1-byte field.¶
- pref-n
- Preference associated to quadrant-n. A higher value means a more preferred quadrant. This is a 1-byte field.¶
A quadrant identifier value MUST only appear, at most, once in the option. If an option includes more than one occurrence of the same quadrant identifier, only the first occurrence is processed, and the rest MUST be ignored by the server.¶
If the same preference value is used for more than one quadrant, the server MAY select which quadrant should be preferred (if the server can assign addresses from all or some of the quadrants with the same assigned preference). Note that this is not a simple list of quadrants ordered by preference with no preference value, but a list of quadrants with explicit preference values. This way it can support the case whereby a client really has no preference between two or three quadrants, leaving the decision to the server.¶
If the client or relay agent provides the OPTION
There is no requirement that the client or relay agent order the quadrant/pref
values in any specific order; hence, servers MUST NOT assume that
quadrant
For cases where a server may not be configured to have pools for the client or relay quadrant preferences, clients and relays SHOULD specify all quadrants in the QUAD option to assure the client gets an address (or addresses) -- if any are available. Specifying all quadrants also results in a QUAD option supporting server responding like a non-QUAD option supporting server, i.e., an address (or addresses) from any available quadrants can be returned.¶
5. IANA Considerations
IANA has assigned the QUAD (140)
option code from the "Option Codes" subregistry of the
"Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" registry maintained at
<http://
6. Security Considerations
See [RFC8415] and [RFC7227] for the DHCPv6 security and privacy considerations. See [RFC8200] for the IPv6 security considerations.¶
Also, see [RFC8947] for security considerations regarding link-layer address assignments using DHCP.¶
7. References
7.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8415]
-
Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., Richardson, M., Jiang, S., Lemon, T., and T. Winters, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 8415, DOI 10
.17487 , , <https:///RFC8415 www >..rfc -editor .org /info /rfc8415 - [RFC8947]
-
Volz, B., Mrugalski, T., and CJ. Bernardos, "Link-Layer Address Assignment Mechanism for DHCPv6", RFC 8947, DOI 10
.17487 , , <https:///RFC8947 www >..rfc -editor .org /info /rfc8947
7.2. Informative References
- [IEEE
-P802 .1CQ -Project] -
IEEE, "P802.1CQ - Standard for Local and Metropolitan Area Networks: Multicast and Local Address Assignment", <https://
standards >..ieee .org /project /802 _1CQ .html - [IEEEStd802]
-
IEEE, "IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture", IEEE Std 802-2014, DOI 10
.1109 , , <https:///IEEESTD .2014 .6847097 doi >..org /10 .1109 /IEEESTD .2014 .6847097 - [IEEEStd802c]
-
IEEE, "IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture -- Amendment 2: Local Medium Access Control (MAC) Address Usage", IEEE Std 802c-2017, DOI 10
.1109 , , <https:///IEEESTD .2017 .8016709 doi >..org /10 .1109 /IEEESTD .2017 .8016709 - [RFC7227]
-
Hankins, D., Mrugalski, T., Siodelski, M., Jiang, S., and S. Krishnan, "Guidelines for Creating New DHCPv6 Options", BCP 187, RFC 7227, DOI 10
.17487 , , <https:///RFC7227 www >..rfc -editor .org /info /rfc7227 - [RFC7228]
-
Bormann, C., Ersue, M., and A. Keranen, "Terminology for Constrained
-Node Networks" , RFC 7228, DOI 10.17487 , , <https:///RFC7228 www >..rfc -editor .org /info /rfc7228 - [RFC7548]
-
Ersue, M., Ed., Romascanu, D., Schoenwaelder, J., and A. Sehgal, "Management of Networks with Constrained Devices: Use Cases", RFC 7548, DOI 10
.17487 , , <https:///RFC7548 www >..rfc -editor .org /info /rfc7548 - [RFC8200]
-
Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10
.17487 , , <https:///RFC8200 www >..rfc -editor .org /info /rfc8200
Appendix A. Example Uses of Quadrant Selection Mechanisms
This appendix describes some examples of how the quadrant preference mechanisms could be used.¶
First, let's take an IoT scenario as an example. An IoT device might decide on its own the SLAP quadrant it wants to use to obtain a local MAC address, using the following information to make the decision:¶
The previous parameters are considerations that the device vendor
We now take the Wi-Fi device scenario, considering, for example, that a laptop
or smartphone connects to a network using its built-in MAC address. Due to
privacy
This information can be used by the device to select the SLAP quadrant. For example, if the device is moving around (e.g., while connected to a public network in an airport), it is likely that it might change access points several times; therefore, it is best to minimize the chances of address collision, using the SAI or AAI quadrants. If the device is not expected to move and is attached to a trusted network (e.g., in some scenarios at work), then it is probably best to select the ELI quadrant. These are just some examples of how to use this information to select the quadrant.¶
Additionally, the information can also be used to trigger subsequent changes of MAC address to enhance location privacy. Besides, changing the SLAP quadrant might also be used as an additional enhancement to make it harder to track the user location.¶
Last, if we consider the data-center scenario, a hypervisor might request local MAC addresses be assigned to virtual machines. As in the previous scenarios, the hypervisor might select the preferred SLAP quadrant using information provided by the cloud management system or virtualization infrastructure manager running on top of the hypervisor. This information might include, but is not limited to:¶
Acknowledgments
The authors would like to thank Bernie Volz for his very valuable comments on this document. We also want to thank Ian Farrer, Tomek Mrugalski, Éric Vyncke, Tatuya Jinmei, Carl Wallace, Ines Robles, Ted Lemon, Jaime Jimenez, Robert Wilton, Benjamin Kaduk, Barry Leiba, Alvaro Retana, and Murray Kucherawy for their very detailed and helpful reviews. And thanks to Roger Marks and Antonio de la Oliva for comments related to IEEE work and references.¶
The work in this document has been supported by the H2020 5GROWTH (Grant 856709) and 5G-DIVE projects (Grant 859881).¶