RFC 5107 PROPOSED STANDARD DHCP · RELAY · ADDRESSING

DHCP Server ID Override: DHCP Server Identifier Override Suboption

How a DHCP relay can make clients send their lease renewals through it instead of straight to the server.

On rfc-editor.org ↗
PUBLISHED
February 2008
AUTHORS
R. Johnson, J. Kumarasamy, K. Kinnear, M. Stapp
STREAM
IETF
SUBOPTION CODE
11
SUBOPTION LENGTH
4 (one address)
REGISTRY
DHCP Relay Agent Information Option suboption numbers
DOI
10.17487/RFC5107

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         R. Johnson
Request for Comments: 5107                                 J. Jumarasamy
Category: Standards Track                                     K. Kinnear
                                                                M. Stapp
                                                     Cisco Systems, Inc.
                                                           February 2008


               DHCP Server Identifier Override Suboption

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   This memo defines a new suboption of the DHCP relay information
   option that allows the DHCP relay to specify a new value for the
   Server Identifier option, which is inserted by the DHCP Server.  This
   allows the DHCP relay to act as the actual DHCP server such that
   RENEW DHCPREQUESTs will come to the relay instead of going to the
   server directly.  This gives the relay the opportunity to include the
   Relay Agent option with appropriate suboptions even on DHCP RENEW
   messages.

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

   There are many situations where a DHCP relay agent is involved, and
   it can easily insert a Relay Agent Information option [3] with
   appropriate suboptions into DHCPDISCOVER messages.  Once the lease
   has been granted, however, future DHCPREQUEST messages sent by a
   client in RENEWING state are sent directly to the DHCP server, as
   specified in the Server Identifier option.  In this case, the relay
   may not see these DHCPREQUEST messages (depending upon network
   topology) and thus cannot insert the Relay Agent Information option
   in the DHCPREQUEST messages.

   This DHCP relay agent suboption, Server Identifier Override, allows
   the relay agent to tell the DHCP server what value to place into the
   Server Identifier option [5].  Using this, the relay agent can force
   a host in RENEWING state to send DHCPREQUEST messages to the relay
   agent instead of directly to the server.  The relay agent then has
   the opportunity to insert the Relay Agent Information option with
   appropriate suboptions and relay the DHCPREQUEST to the actual
   server.  In this fashion, the DHCP server will be provided with the
   same relay agent information upon renewals (such as Circuit-ID,
   Remote-ID, Device Class, etc.) as was provided in the initial
   DHCPDISCOVER message.

   In short, this new suboption allows the DHCPv4 relay to function in
   the same fashion as the DHCPv6 relay [7] currently 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].

3.  Terminology

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

   Other terms used in this document:

   o  RENEW DHCPREQUEST - a DHCPREQUEST message sent by a client in
      RENEWING state

4.  Server Identifier Override Suboption Definition

   The format of the suboption is:

   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" specify the
   value that MUST be inserted into the Server Identifier option by the
   DHCP Server upon reply.

   DHCP servers that implement this Relay Agent Information suboption
   MUST use this value, if present in a DHCP message received from a
   client, as the value to insert into the Server Identifier option in
   the corresponding response.  The DHCP server must also record the
   address in the suboption for use in subsequent messages to the DHCP
   client until the next DHCP message is received from the DHCP relay
   agent.

   If a DHCP server does not understand/implement this Relay Information
   suboption, it will ignore the suboption, and thus it will insert its
   own appropriate interface address in the Server Identifier option.
   In this case, the DHCP Relay will not receive RENEW DHCPREQUEST
   messages from the client.  When configuring a DHCP relay agent to use
   this suboption, the administrator of the relay agent should take into
   account whether or not the DHCP server to which the message will be
   relayed will correctly understand this suboption.

   When servicing a DHCPREQUEST message, the DHCP server would normally
   look at the Server Identifier option for verification that the
   address specified there is one of the addresses associated with the
   DHCP server, silently ignoring the DHCPREQUEST if it does not match a
   configured DHCP server interface address.  If the DHCPREQUEST message
   contains a Server Identifier Override suboption, however, comparison
   should be made between the address in this suboption and the Server
   Identifier option.  If both the Server Identifier Override suboption
   and the Server Identifier option specify the same address, then the
   server should accept the DHCPREQUEST message for processing,
   regardless of whether or not the Server Identifier option matches a
   DHCP server interface.

   The DHCP relay agent should fill in the giaddr field when relaying
   the message, just as it normally would do.

   In a situation where the DHCP relay agent is configured to forward
   messages to more than one server, the DHCP relay agent SHOULD forward
   all DHCP messages to all servers.  This applies to RENEW DHCPREQUEST
   messages as well.  The intent is that the DHCP relay agent should not
   need to maintain state information about the DHCP lease.

   DHCP relay agents implementing this suboption SHOULD also implement
   and use the DHCPv4 Relay Agent Flags Suboption [4] in order to
   specify whether the DHCP relay agent received the original message as
   a broadcast or unicast.  The DHCP server receiving a message
   containing the Server Identifier Override Suboption may use this
   additional information in processing the message.

   Note that if the DHCP relay agent becomes inaccessible by the DHCP
   client or loses network access to the DHCP server, further RENEW
   DHCPREQUEST messages from the DHCP client may not be properly
   processed and the DHCP client's lease may time out.

5.  Security Considerations

   Message authentication in DHCP for intradomain use where the out-of-
   band exchange of a shared secret is feasible is defined in [6].
   Potential exposures to attack are discussed in Section 7 of the DHCP
   protocol specification in [2].

   The DHCP Relay Agent Information option depends on a trusted
   relationship between the DHCP relay agent and the DHCP server, as
   described in Section 5 of RFC 3046.  While the introduction of
   fraudulent DHCP relay agent information options can be prevented by a
   perimeter defense that blocks these options unless the DHCP relay
   agent is trusted, a deeper defense using the authentication suboption
   for DHCP relay agent information option [8] SHOULD be deployed as
   well.

   If a rogue DHCP relay agent were inserted between the DHCP client and
   the DHCP server, it could redirect clients to itself using this
   suboption.  This would allow such a system to later deny RENEW
   DHCPREQUESTs and thus force clients to discontinue use of their
   allocated addresses.  It could also allow the rogue relay to change,
   insert, or delete DHCP options in DHCPACK messages and extend leases
   beyond what the server has allowed.  DHCP authentication [6] and/or
   DHCP Relay Agent Information option authentication [8] would address
   this case.  (Note that, as is always the case, lack of DHCP
   authentication would allow a rogue DHCP relay agent to change the
   Server Identifier Override option in the DHCPOFFER and DHCPACK
   messages without detection.  This threat is not new to the Server
   Identifier Override suboption.)

   This document does not add any new vulnerabilities that were not
   already present, except in the case where DHCP authentication is
   already in place, and DHCP clients require its use.  It is suggested
   that DHCP Authentication and DHCP Relay Agent Option Authentication
   SHOULD be deployed when this option is used, or protection should be
   provided against the insertion of rogue DHCP relay agents between the
   client and server.

   This relay suboption is not intended, by itself, to provide any
   additional security benefits.

6.  IANA Considerations

   IANA has assigned a suboption number (11) for the Server Identifier
   Override Suboption from the DHCP Relay Agent Information Option [3]
   suboption number space.

7.  Intellectual Property Rights and Copyright

   The IETF has been notified of intellectual property rights claimed in
   regard to some or all of the specification contained in this
   document.  For more information consult the online list of claimed
   rights.

8.  References

8.1.  Normative References

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

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

   [3]  Patrick, M., "DHCP Relay Agent Information Option", RFC 3046,
        January 2001.

   [4]  Kinnear, K., Normoyle, M., and M. Stapp, "The Dynamic Host
        Configuration Protocol Version 4 (DHCPv4) Relay Agent Flags
        Suboption", RFC 5010, September 2007.

8.2.  Informative References

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

   [6]  Droms, R. and W. Arbaugh, "Authentication for DHCP Messages",
        RFC 3118, June 2001.

   [7]  Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M.
        Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)",
        RFC 3315, July 2003.

   [8]  Stapp, M. and T. Lemon, "The Authentication Suboption for the
        Dynamic Host Configuration Protocol (DHCP) Relay Agent Option",
        RFC 4030, March 2005.

Authors' Addresses

   Richard A. Johnson
   Cisco Systems, Inc.
   170 W. Tasman Dr.
   San Jose, CA  95134
   US

   Phone: +1 408 526 4000
   EMail: raj@cisco.com


   Jay Kumarasamy
   Cisco Systems, Inc.
   170 W. Tasman Dr.
   San Jose, CA  95134
   US

   Phone: +1 408 526 4000
   EMail: jayk@cisco.com


   Kim Kinnear
   Cisco Systems, Inc.
   170 W. Tasman Dr.
   San Jose, CA  95134
   US

   Phone: +1 408 526 4000
   EMail: kkinnear@cisco.com


   Mark Stapp
   Cisco Systems, Inc.
   170 W. Tasman Dr.
   San Jose, CA  95134
   US

   Phone: +1 408 526 4000
   EMail: mjs@cisco.com

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   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, THE IETF TRUST 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; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

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

AI ELI5

On this page
PROBLEMAfter a lease is granted, a client in RENEWING state sends its DHCPREQUEST straight to the server named in the Server Identifier option, so a relay agent may never see it and cannot add its Relay Agent Information option.
MECHANISMA new relay agent suboption, Server Identifier Override (code 11, length 4), carries an address that the DHCP server must place in the Server Identifier option of its replies, so the client sends renewals to the relay.
THE CATCHThe server gets the same relay information on renewals as it did on the first DHCPDISCOVER. The catch is that the server must support the suboption, and the relay becomes a point of failure for renewals.

§1The Renewal Problem

A DHCP relay agent sits between clients and a server on another network. It can easily insert a Relay Agent Information option, described in RFC 3046, with suboptions such as Circuit-ID, Remote-ID and Device Class into DHCPDISCOVER messages.

Once a lease has been granted, though, a client in RENEWING state sends its DHCPREQUEST directly to the server named in the Server Identifier option. Depending on the network topology, the relay may not see these RENEW DHCPREQUEST messages, so it cannot insert its information into them.

The new suboption lets the relay tell the server what value to put in the Server Identifier option. The relay can then force a renewing host to send DHCPREQUEST messages to the relay, which adds its information and relays the message to the real server. The server therefore sees the same relay information on renewals as on the first DHCPDISCOVER. The RFC notes that this lets the DHCPv4 relay work the way the DHCPv6 relay already does.

Imagine a receptionist who stamps every visitor's form with the visitor's room number. When you come back later you walk straight to the manager and skip the receptionist, so there is no stamp. This fix makes you go through the receptionist again.

§4The Suboption Format

The Server Identifier Override suboption has a code of 11 and a length field n that is always 4. It is followed by four octets, a1 through a4, which hold the overriding server identifier address.

Those four octets are the value that the DHCP server MUST insert into the Server Identifier option when it replies.

It is a tiny label with a type number, a length, and one address. The address says: when you write your name on the reply, write this name instead.

SERVER IDENTIFIER OVERRIDE SUBOPTION (RFC 5107)
Server Identifier Override suboption
FieldNameSizeValueDescription
CODECode1 byte11Suboption code assigned for this suboption.
LENLen1 byte4Length of the address that follows.
A1a11 byteFirst octet of the overriding server identifier address.
A2a21 byteSecond octet of the address.
A3a31 byteThird octet of the address.
A4a41 byteFourth octet of the address.

§4.1What the Server Does

A server that implements the suboption MUST use the value, if present in a message from a client, as the Server Identifier in its response. It must also record the address for use in later messages to that client, until the next DHCP message arrives from the relay agent.

Normally a server checks the Server Identifier in a DHCPREQUEST against its own interface addresses and silently ignores the request if it does not match. If the message carries the override suboption, the server instead compares the suboption's address with the Server Identifier option. If both give the same address, the server should accept the DHCPREQUEST for processing, whether or not that address matches one of its interfaces.

The relay agent still fills in the giaddr field when relaying, as it normally would.

When the server sees the go-between's name tag, it signs its replies with that name. Later, when a request comes back addressed to the go-between's name, the server knows that is fine and accepts it.

§4.2Relay Behavior and Deployment Caveats

If the relay forwards to more than one server, it SHOULD forward all DHCP messages, including RENEW DHCPREQUESTs, to all of them. The intent is that the relay does not need to keep any state about the lease. Relays that implement this suboption SHOULD also implement and use the DHCPv4 Relay Agent Flags Suboption from RFC 5010, which tells the server whether the original message arrived as a broadcast or unicast.

A server that does not understand the suboption ignores it and inserts its own interface address, so the relay will not receive the renewals. An administrator configuring a relay to use the suboption should check that the target server supports it.

If the client cannot reach the relay, or the relay loses its connection to the server, later renewals may not be processed properly and the client's lease may time out.

The go-between should pass every message to every server so it does not have to remember anything. If the server does not know the trick, nothing changes. If the go-between goes offline, renewals get stuck and the client could lose its address.

§5Security Considerations

The Relay Agent Information option relies on a trusted relationship between relay and server, as described in RFC 3046. A perimeter defense can block fraudulent relay options, but the RFC says a deeper defense using the authentication suboption of RFC 4030 SHOULD be deployed too.

A rogue relay placed between client and server could use this suboption to redirect clients to itself. It could then deny RENEW DHCPREQUESTs and force clients to stop using their addresses, or change, insert or delete options in DHCPACK messages and extend leases beyond what the server allowed. DHCP authentication (RFC 3118) and relay option authentication would address this.

The RFC says it adds no new vulnerabilities except where DHCP authentication is already in place and clients require it. The suboption is not meant to provide any security benefit by itself.

A fake go-between could pull clients toward itself and then cut them off or hand out wrong answers. Using signatures on the messages, so that fakes are caught, is the cure.

§6IANA Assignment

IANA assigned suboption number 11 for the Server Identifier Override Suboption, taken from the DHCP Relay Agent Information Option suboption number space defined in RFC 3046.

The official list of label numbers gave this new label the number 11, so everyone uses the same one.

§7References