RFC 4390

Dynamic Host Configuration Protocol (DHCP) over InfiniBand

πŸ“… published April 2006, from ietf

RFC 4390: Dynamic Host Configuration Protocol (DHCP) over InfiniBand πŸ’–

okay bestie, here's the header tea first 🫢

  • Network Working Group 🌸
  • Author: Vivek Kashyap, IBM 🧚
  • Category: Standards Track πŸ‘‘
  • Date: April 2006 πŸ“…
  • Obsoletes / Updates: nothing listed in the title block πŸ™ˆ

Status of This Memo ✨

ok so this document is an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements πŸŽ€ For the current 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) The Internet Society (2006).

Abstract 🌈

ngl this is the main idea πŸ’… The IP over Infiniband (IPoIB) link-layer address is 20 octets long, which is bigger than the 16 octets reserved for the hardware address in a Dynamic Host Configuration Protocol/Bootstrap Protocol (DHCP/BOOTP) message 😭 That size mismatch puts restrictions on how the DHCP message fields can be used over an IPoIB network. This document describes how to use those DHCP message fields when implementing DHCP over IPoIB πŸ”₯

Table of Contents πŸ“

1. Introduction ....................................................2
2. The DHCP over IPoIB Mechanism ...................................2
   2.1. IPoIB-specific Usage of DHCP Message Fields ................3
   2.2. Use of the BROADCAST flag ..................................3
3. Security Considerations .........................................3
4. Acknowledgement .................................................4
5. References ......................................................4
   5.1. Normative References .......................................4
   5.2. Informative References .....................................4

1. Introduction ✨

okay so DHCP gives hosts on an IP network a framework for getting their configuration info πŸŽ€ [RFC2131] It's built on the Bootstrap Protocol (BOOTP) [RFC951] and adds automatic allocation of reusable network addresses and extra configuration options [RFC2131,RFC2132] iykyk πŸ’–

The DHCP server gets a broadcast request from a client πŸ’… When the client doesn't have an IP address assigned yet, the server uses the client interface's hardware address to unicast a reply. The "chaddr" field in the DHCP message carries that client hardware address πŸ¦‹

Here's the problem 😭 The "chaddr" field is 16 octets long, but the IPoIB link-layer address is 20 octets long [RFC4391]. So the IPoIB link-layer address will not fit in "chaddr", which makes it impossible for the DHCP server to unicast a reply to the client πŸ’€

To keep things interoperable, the usage of the fields and the method for DHCP interaction must be clarified 🫢 This document describes the IPoIB-specific usage of some DHCP fields. For the DHCP mechanism itself and an explanation of each field, see [RFC2131] 🌸

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. The DHCP over IPoIB Mechanism 🧚

like we said above, the server can't see the link-layer address because it's bigger than the "chaddr" field, so the server cannot unicast its reply to the client 😭 Which means a DHCP client MUST request that the server send a broadcast reply by setting the BROADCAST flag when IPoIB Address Resolution Protocol (ARP) is not possible, i.e., in situations where the client does not know its IP address πŸ”₯

[RFC1542] discourages broadcast replies πŸ™ˆ But for IPoIB it's a necessity, since the server doesn't receive the link-layer address. To desynchronise broadcasts at subnet startup, [RFC2131] suggests that a client wait a random time (1 to 10 seconds) before starting server discovery πŸ’œ That same timeout also spreads out the DHCP server broadcast responses generated by the BROADCAST bit πŸ¦‹

The client hardware address, "chaddr", is unique in the subnet, so it can be used to identify a client interface ✨ But if there's no unique "chaddr", another unique client identifier must be used πŸ’…

The DHCP protocol says the "client identifier" option may be used as the unique identifying value for the client [RFC2132] πŸ‘‘ This value must be unique within the client's subnet 🌈

The "client identifier" option includes a type and identifier pair πŸ“ The identifier can be a hardware address or any other unique value, such as the DNS name of the client. When a hardware address is used, the type field should be one of the ARP hardware types listed in [ARPPARAM] πŸŽ€

2.1. IPoIB-specific Usage of DHCP Message Fields πŸ’–

A DHCP client working over an IPoIB interface MUST follow these rules 🫢

  • "htype" (hardware address type) MUST be 32 [ARPPARAM].
  • "hlen" (hardware address length) MUST be 0.
  • "chaddr" (client hardware address) field MUST be zeroed.
  • "client-identifier" option MUST be used in DHCP messages.

The "client identifier" used in DHCP messages MUST conform to [RFC4361] πŸ”₯

2.2. Use of the BROADCAST flag 🌸

A DHCP client on IPoIB MUST set the BROADCAST flag in DHCPDISCOVER and DHCPREQUEST messages (and set "ciaddr" to zero) so the server (or the relay agent) broadcasts its reply to the client πŸ“£

Note: As described in [RFC2131], "ciaddr" MUST be filled in with the client's IP address during BOUND, RENEWING or REBINDING states; therefore, the BROADCAST flag MUST NOT be set. In these cases, the DHCP server unicasts DHCPACK message to the address in "ciaddr". The link address will be resolved by ARP. ✨

3. Security Considerations πŸ”’

[RFC2131] covers the security considerations for DHCP πŸ’… This document does not introduce any new issues πŸ™ˆ

4. Acknowledgement 🫢

This document borrows extensively from [RFC2855] πŸŽ€ Roy Larsen pointed out the length discrepancy between the IPoIB link address and DHCP's "chaddr" field. Iconic work, Roy πŸ‘‘

5. References πŸ“š

5.1. Normative References πŸ’œ

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

[RFC2131]       Droms, R., "Dynamic Host Configuration Protocol", RFC
                2131, March 1997.

[RFC2132]       Alexander, S. and R. Droms, "DHCP Options and BOOTP
                Vendor Extensions", RFC 2132, March 1997.

[RFC951]        Housley, R., Horting, T., and P. Yee, "TELNET
                Authentication Using KEA and SKIPJACK", RFC 2951,
                September 2000.

[RFC4391]       Chu, J. and V. Kashyap "Transmission of IP over
                InfiniBand (IPoIB)", RFC 4391, April 2006.

[ARPPARAM]      http://www.iana.org/numbers.html

[RFC4361]       Lemon, T. and B. Sommerfeld, "Node-specific Client
                Identifiers for Dynamic Host Configuration Protocol
                Version Four (DHCPv4)", RFC 4361, February 2006.

5.2. Informative References πŸ¦‹

[RFC2855]       Fujisawa, K., "DHCP for IEEE 1394", RFC 2855, June
                2000.

[RFC1542]       Wimer, W., "Clarifications and Extensions for the
                Bootstrap Protocol", RFC 1542, October 1993.

Author's Address 🧚

Vivek Kashyap
15350, SW Koll Parkway
Beaverton, OR 97006
USA

Phone: +1 503 578 3422
EMail: vivk@us.ibm.com

Copyright (C) The Internet Society (2006).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

Intellectual Property πŸ”

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. It also doesn't represent that it has made any independent effort to identify any such rights. Information on the procedures for rights in RFC documents can be found in BCP 78 and BCP 79 πŸ’…

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt to get a general license or permission for implementers or users to use these proprietary rights can be found in the IETF online IPR repository at http://www.ietf.org/ipr 🌈

The IETF invites any interested party to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that may cover technology required to implement this standard. Send that information to the IETF at ietf-ipr@ietf.org πŸ¦‹

Acknowledgement πŸ’–

Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA) ✨

πŸ“¦ where this page comes from