<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
   <!ENTITY rfc2119 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
   <!ENTITY rfc2131 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2131.xml'>
   <!ENTITY rfc2132 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2132.xml'>
   <!ENTITY rfc3118 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3118.xml'>
   <!ENTITY rfc4030 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4030.xml'>
   <!ENTITY rfc3046 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3046.xml'>
   <!ENTITY rfc5010 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5010.xml'>
   <!ENTITY rfc3315 PUBLIC '' 
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml'>
]>

<rfc number="5107" category="std">
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc toc="yes"?>
<?rfc symrefs="no"?>
abbrev="Server ID Override Suboption">


<front>
<title abbrev="Server ID Override Suboption">DHCP Server Identifier Override Suboption
</title>

<author initials="R.A." surname="Johnson" fullname="Richard A. Johnson">
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 W. Tasman Dr.</street>
<city>San Jose</city> <region>CA</region> <code>95134</code>
<country>US</country>
</postal>
<phone>+1 408 526 4000</phone>
<email>raj@cisco.com</email>
</address>
</author>

<author initials="J." surname="Jumarasamy" fullname="Jay Kumarasamy">
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 W. Tasman Dr.</street>
<city>San Jose</city> <region>CA</region> <code>95134</code>
<country>US</country>
</postal>
<phone>+1 408 526 4000</phone>
<email>jayk@cisco.com</email>
</address>
</author>

<author initials="K." surname="Kinnear" fullname="Kim Kinnear">
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 W. Tasman Dr.</street>
<city>San Jose</city> <region>CA</region> <code>95134</code>
<country>US</country>
</postal>
<phone>+1 408 526 4000</phone>
<email>kkinnear@cisco.com</email>
</address>
</author>

<author initials="M." surname="Stapp" fullname="Mark Stapp">
<organization>Cisco Systems, Inc.</organization>
<address>
<postal>
<street>170 W. Tasman Dr.</street>
<city>San Jose</city> <region>CA</region> <code>95134</code>
<country>US</country>
</postal>
<phone>+1 408 526 4000</phone>
<email>mjs@cisco.com</email>
</address>
</author>

<date month="January" year="2008" />
<keyword>RFC</keyword>
<keyword>Request for Comments</keyword>
<keyword>XML</keyword>
<keyword>Extensible Markup Language</keyword>

 <!-- [rfced] Please insert any keywords (beyond those that appear in
    the title) for use on http://www.rfc-editor.org/rfcsearch.html. -->

<!--[rfced] Please note the inconsistencies in the following that
 occur throughout the document: DHCP Server / DHCP server, Relay Agent
 option / relay agent option / relay-agent options, Server Identifier
 Override Suboption / Server-ID-Override suboption, Relay Suboption /
 relay suboption, DHCP Client / DHCP client, DHCP Authentication /
 DHCP authentication / suboption / sub-option,
 DHCP relay agent suboption / Relay Suboption.  Should these be made
 uniform? -->
  
<abstract>
<t>
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.
</t></abstract>

</front>

<middle>
<section title="Introduction">
<t>
There are many situations where a DHCP relay agent is involved, and it can easily
insert a Relay Agent Information option <xref target="RFC3046" /> 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.
</t>
<t>
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 <xref target="RFC2132" />.
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 effect, this makes a
RENEWAL into a REBINDING. -->
</t>
<!-- <t>
This new suboption could also be used by the DHCP relay in order to
allow the relay to appear as the actual DHCP server to the client.
This has the advantage that the relay can more easily keep up-to-date
information about leases granted, etc.
</t>
-->
<t>
In short, this new suboption allows the DHCPv4 relay to function in
the same fashion as the DHCPv6 relay <xref target="RFC3315" /> currently does.
</t>
</section>

<section title="Conventions">

<t>
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 <xref target="RFC2119" />.
</t>
</section>

<section title="Terminology">
<t>
This document uses DHCP terminology as defined in section 1.5 of <xref target="RFC2131">RFC 2131</xref>, with the exception of the term "DHCP relay agent" replacing "BOOTP relay agent".
</t>
<t>
Other terms used in this document:
<list style="symbols">
<t>RENEW DHCPREQUEST - a DHCPREQUEST message sent by a client in RENEWING state</t>
</list>
</t>

</section>


<section title="Server Identifier Override Suboption Definition">
<figure anchor="format">
<preamble>The format of the suboption is:</preamble>
<artwork>
Code   Len    Overriding Server Identifier Address
+-----+-----+-----+-----+-----+-----+ 
| 11  |  n  | a1  | a2  | a3  | a4  |
+-----+-----+-----+-----+-----+-----+ 

</artwork>
</figure>

<t>
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.
</t>
<t>
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.
</t>
<t>
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.
</t>
<t>
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.
</t>
<t>
The DHCP relay agent should fill in the giaddr field when relaying the
message, just as it normally would do.
</t>
<t>
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. 
</t>
<t>
DHCP relay agents implementing this suboption SHOULD also implement and use the DHCPv4 Relay Agent Flags Suboption <xref target="RFC5010" /> 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.
</t>
<t>
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.
</t>

</section>

<section title="Security Considerations">
<t>
Message authentication in DHCP for intradomain use where the out-of-
band exchange of a shared secret is feasible is defined in 
<xref target="RFC3118" />.  Potential exposures to attack are discussed in Section 7 of the
DHCP protocol specification in <xref target="RFC2131" />.
</t>
<t>
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 <xref target="RFC4030" /> SHOULD be deployed as well.
</t>
<t>
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.

<!--[rfced] In the text immediately above, should the second sentence be 
changed to "RENEW DHCPREQUESTs" and "addresses" ? -->
DHCP authentication
<xref target="RFC3118" /> and/or
DHCP Relay Agent Information option authentication <xref target="RFC4030" /> 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.)
</t>
<t>
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.
</t>

<!--[rfced] In the sentence above, should the ending be "insertion of
rogue DHCP relays into servers" or "insertion of rogue DHCP relays
and servers" ? -->

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

</section>

<section title="IANA Considerations">
<t>
IANA has assigned a suboption number (11) for the
Server Identifier Override Suboption from the DHCP Relay Agent
Information Option <xref target="RFC3046" /> suboption number space.
</t>
</section>

<section title="Intellectual Property Rights and Copyright">
<t>
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.
</t>
</section>

</middle>

<back>

<references title="Normative References">
&rfc2119;
&rfc2131;
&rfc3046;
&rfc5010;

</references>
<references title="Informative References">
&rfc2132;
&rfc3118;
&rfc3315;
&rfc4030;

</references>

</back>

</rfc>
