RFC 5107

DHCP Server Identifier Override Suboption

πŸ“… published February 2008, from ietf

RFC 5107: DHCP Server Identifier Override Suboption βœ¨πŸŽ€

okay bestie, let's get into this one πŸ’– It's RFC 5107, titled DHCP Server Identifier Override Suboption. It's a Standards Track document from February 2008, written by R. Johnson, J. Jumarasamy, K. Kinnear, and M. Stapp, all from Cisco Systems, Inc. πŸ’… The author block spells the second name as Jay Kumarasamy, so the header and the author block don't match. It doesn't obsolete or update any other RFC, since the title block doesn't list any.


Status of This Memo πŸ“œ

This document specifies an Internet standards track protocol for the Internet community, and it asks 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 🌈

Abstract πŸ¦‹

okay so this memo adds a brand new suboption to the DHCP relay information option πŸŽ€ It lets the DHCP relay pick a new value for the Server Identifier option, which the DHCP Server then puts in its replies ✨ That means the relay can basically act like the actual DHCP server, so RENEW DHCPREQUESTs come to the relay instead of going straight to the server πŸ’… This gives the relay a chance to add the Relay Agent option with the right suboptions even on DHCP RENEW messages, which is so iconic πŸ”₯

Table of Contents πŸ—‚οΈ

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
   2.  Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . 2
   3.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 2
   4.  Server Identifier Override Suboption Definition . . . . . . . . 3
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
   7.  Intellectual Property Rights and Copyright  . . . . . . . . . . 5
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 5
     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 5
     8.2.  Informative References  . . . . . . . . . . . . . . . . . . 5

1. Introduction 🌸

okay so there are tons of situations where a DHCP relay agent is involved, and it can easily stick a Relay Agent Information option [3] with the right suboptions into DHCPDISCOVER messages 🧚 But once the lease is granted, any future DHCPREQUEST messages from a client in RENEWING state go straight to the DHCP server, because that's what the Server Identifier option says 😭 Depending on the network topology, the relay might never see those DHCPREQUESTs, so it can't add the Relay Agent Information option to them. not it πŸ’€

This DHCP relay agent suboption, Server Identifier Override, lets the relay agent tell the DHCP server which value to put into the Server Identifier option [5] πŸ‘‘ With that, the relay can make a host in RENEWING state send its DHCPREQUEST messages to the relay instead of directly to the server πŸ™ˆ The relay then gets to add the Relay Agent Information option with the right suboptions and forward the DHCPREQUEST to the actual server. So the DHCP server still gets the same relay agent information on renewals (things like Circuit-ID, Remote-ID, Device Class, etc.) that it got in the original DHCPDISCOVER 🫢

In short, this new suboption lets the DHCPv4 relay work the same way the DHCPv6 relay [7] already does βœ¨πŸ¦‹

2. Conventions πŸ’œ

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 [1]. These are the capital-letter requirement words, so read them carefully 🫑

3. Terminology πŸ“–

This document uses DHCP terminology as defined in section 1.5 of RFC 2131 [2], with one exception: the term "DHCP relay agent" replaces "BOOTP relay agent" 🌈

Other terms used in this document:

  • RENEW DHCPREQUEST - a DHCPREQUEST message sent by a client in RENEWING state πŸ’–

4. Server Identifier Override Suboption Definition πŸŽ€

Here's the format of the suboption πŸ‘€ Check out the layout in this box, it's so clean πŸ“

   Code   Len    Overriding Server Identifier Address
   +-----+-----+-----+-----+-----+-----+
   | 11  |  n  | a1  | a2  | a3  | a4  |
   +-----+-----+-----+-----+-----+-----+


                                 Figure 1

The option length (n) is 4 ✨ The octets "a1" through "a4" hold the value that the DHCP Server MUST insert into the Server Identifier option in its reply. The MUST here is a hard requirement, bestie πŸ”₯

DHCP servers that implement this Relay Agent Information suboption MUST use this value, if it's present in a DHCP message received from a client, as the value to put into the Server Identifier option in the matching response πŸ‘‘ The DHCP server must also remember the address from the suboption and use it for later messages to that DHCP client, until the next DHCP message comes in from the DHCP relay agent 🧚

Now, if a DHCP server doesn't understand or implement this Relay Information suboption, it will ignore the suboption and insert its own appropriate interface address into the Server Identifier option instead 😭 In that case, the DHCP Relay won't get RENEW DHCPREQUEST messages from the client πŸ’€ So when the relay agent administrator sets up this suboption, they should think about whether the DHCP server the message gets relayed to will actually understand it correctly πŸ™ˆ

When a DHCPREQUEST message is being serviced, the DHCP server normally checks the Server Identifier option to verify that the address there is one of its own addresses. If it doesn't match a configured DHCP server interface address, the server silently ignores the DHCPREQUEST 🌸 But if the DHCPREQUEST message has a Server Identifier Override suboption, the server should compare the address in that suboption with the Server Identifier option instead. If both the Server Identifier Override suboption and the Server Identifier option give the same address, the server should accept the DHCPREQUEST for processing, even if the Server Identifier option doesn't match a DHCP server interface πŸ’…

The DHCP relay agent should fill in the giaddr field when it relays the message, just like it normally would πŸ¦‹

If the DHCP relay agent is set up to forward messages to more than one server, then it SHOULD forward all DHCP messages to all of those servers. This also applies to RENEW DHCPREQUEST messages πŸŽ€ The whole point is that the DHCP relay agent shouldn't need to keep state information about the DHCP lease 🧚✨

DHCP relay agents that implement this suboption SHOULD also implement and use the DHCPv4 Relay Agent Flags Suboption [4], so they can say whether the relay agent got the original message as a broadcast or as a unicast 🌈 The DHCP server that gets a message with the Server Identifier Override Suboption may use that extra info when it processes the message πŸ’–

Last but not least, if the DHCP relay agent becomes unreachable by the DHCP client, or it loses network access to the DHCP server, then further RENEW DHCPREQUEST messages from the DHCP client may not get processed properly, and the client's lease might time out 😭 Yikes, that's a whole vibe check 🫠


Part 1 of 2 wraps here πŸŽ€ Part 2 picks up with Section 5, Security Considerations πŸ”₯

Okay bestie, let's talk copyright πŸŽ€ This whole document is Copyright (C) The IETF Trust (2008). ✨ It's subject to the rights, licenses and restrictions in BCP 78, and except for what BCP 78 says, the authors keep all their rights πŸ¦‹

The disclaimer, no cap 😭: this document and everything in it is provided "AS IS." The contributor, the organization they represent or are sponsored by (if any), the Internet Society, the IETF Trust, and the Internet Engineering Task Force all disclaim every warranty, express or implied. That includes (but isn't limited to) any warranty that using the info won't infringe any rights, and any implied warranty of merchantability or fitness for a particular purpose. Not a single promise, bestie πŸ’€

Intellectual Property 🌈

The IETF doesn't take a position on whether any Intellectual Property Rights (or other rights) that someone might claim over the tech in this document are valid or how far they reach. It also doesn't say whether a license for those rights is available, or whether anyone could actually use them. The IETF hasn't made any independent effort to find those rights either πŸ•΅οΈβ€β™€οΈ If you want the details on how rights work for RFC documents, check out BCP 78 and BCP 79 πŸ“š

Copies of IPR disclosures sent to the IETF Secretariat are a thing, and so are assurances that licenses will be made available. You can also see the results of an attempt to get a general license or permission for implementers or users of this spec to use the proprietary rights. All of that lives in the IETF on-line IPR repository at http://www.ietf.org/ipr πŸ”—

Lastly, the IETF invites anyone who's interested to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org πŸ’œ Thank u, next πŸ‘‘

πŸ“¦ where this page comes from