DHC Working Group                                                 Y. Cui
Internet-Draft                                                    Q. Sun
Updates: RFC3315 3315 (if approved)                          Tsinghua University
Intended status: Standards Track                                T. Lemon
Expires: May 16, June 19, 2014                                     Nominum, Inc.
                                                       November 12,
                                                       December 16, 2013

                    Handling Unknown DHCPv6 Messages


   Dynamic Host Configuration Protocol version 6 (DHCPv6) isn't

   DHCPv6 is not specific about handling messages with unknown types.
   This memo describes the problems and defines how a DHCPv6 function node server,
   client or relay agent should behave in this
   case. when receiving unknown DHCPv6
   messages.  This document updates RFC 3315. RFC3315.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 16, June 19, 2014.

Copyright Notice

   Copyright (c) 2013 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
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   2
   3.  Problem Statement . . . . . . . . . . . . . . . . . . . . . .   2
   4.  Relay Agent Behavior Update . . . . . . . . . . . . . . . . .   2   3
     4.1.  Definition of a  A Valid Message for Constructing a New Relay-forward
           Message . . . . . . . . . . . . . . . . . . . . . . . . .   3
     4.2.  Relaying a Message towards toward Server  . . . . . . . . . . . .   3   4
     4.3.  Relaying a Message towards toward Client  . . . . . . . . . . . .   4
   5.  Client and Server Behavior Update . . . . . . . . . . . . . .   4
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   8.  Contributors List . . . . . . . . . . . . . . . . . . . . . .   5
   9.  Normative References  . . . . . . . . . . . . . . . . . . . .   5
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   Dynamic Host Configuration Protocol version 6 (DHCPv6)

   DHCPv6 [RFC3315] provides a framework for conveying IPv6
   configuration information to hosts on a TCP/IP network.  But
   [RFC3315] is not specific about how to deal with messages with
   unrecognized types.  This document describes the problems and defines
   the behavior of a DHCPv6 function
   node server, client or relay agent when handling
   unknown DHCPv6 messages.

2.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in [RFC2119].

3.  Problem Statement

   When a relay agent is bound receives a message, it decides to send a the message
   either to toward the server or to toward the client.  But RFC3315 doesn't  However, RFC 3315
   does not explicitly describe how the relay agent can find out determine
   whether it should send a message towards toward the server or
   towards the client. client,
   although this is implied by the message definitions in RFC3315.

   Another issue is that, it's not specific in that RFC3315 about does not specify what a relay agent
   should do if it doesn't does not recognize the a received messages.
   The message; the relay
   agent isn't is not required to relay the messages, message, nor advised to drop them. the
   message.  If relaying an unknown message, the relay agent is given no
   guidance about whether to send it toward the server or the client.

   In addition, there is no specific requirement of for dealing with
   unknown messages by the client or server
   on dealing with an unknown message in RFC3315.

   Note it is expected that most future DHCPv6 messages will not be used
   to communicate directly with relay agents (though they may need to be
   relayed by relay agents).

4.  Relay Agent Behavior Update


   Relay agents relay agent relays the message towards the server or the client messages toward servers and clients according to
   the message type.  The Relay-reply messages are message is sent toward the client.
   The Relay-forward message and other types of message messages are sent toward
   the server.

   We say "toward the client" and "toward the server" because relay
   agents may be chained together, so a relay message may be sent
   through multiple relays relay agents along the path to its destination.  Relay-
   Relay-reply messages specify a destination address; the relay agent
   extracts the encapsulated message and sends it to the specified
   destination address.  Any message other than a Relay-reply does not
   have such a specified destination, so it follows the default
   forwarding path configured on the relay agent, which is always toward
   the server.

   The sole purpose of requiring relay agents to relay unknown messages
   is to ensure that when legitimate new messages are defined in the
   protocol, relay agents, even if they were manufactured prior to the
   definition of these new messages, will, by default, succeed in
   relaying such messages.

4.1.  Definition of a  A Valid Message for Constructing a New Relay-forward Message

   Section 20.1 of [RFC3315] states that:

     "When a relay agent receives a valid message to be relayed, it
     constructs a new Relay-forward message."

   It doesn't does not define what a which types of messages are valid message is. for constructing
   Relay-Forward messages.  In this document, we specify the definition
   as follows.

     The message is valid for constructing a new Relay-forward message:

     (a) if the message is a Relay-forward message, or

     (b) if a the relay agent receives the message but the relay agent does for which it is not identify itself as the
     target of the message, and according to the message
     is not a Relay-reply message. type.

   In the case that a new type of relay message is sent by the server to a
   relay agent but the relay agent doesn't does not recognize it, the message is
   put into a Relay-forward message and sent to the server.  Then the server knows
   the relay agent doesn't support the new message.

4.2.  Relaying a Message towards toward Server

   If the relay agent received receives a Relay-forward message, Section 20.1.2
   of [RFC3315] defines the related required behavior.  If the relay agent
   receives messages other than Relay-forward and Relay-reply, Relay-reply and the
   relay agent does not recognize its message type, it MUST forward them
   as is described in Section 20.1.1 of [RFC3315].

4.3.  Relaying a Message towards toward Client

   If the relay agent receives a Relay-reply message, it MUST process
   the message as is defined in Section 20.2 of [RFC3315], regardless of
   the type of the message encapsulated in the Relay Message Option.

5.  Client and Server Behavior Update

   There are chances that the client or server would receive DHCPv6
   messages with unknown types.  In this case, the client or server MUST
   silently discard the unrecognized messages.

6.  Security Considerations

   As the relay agent will forward all unknown types of DHCPv6 messages,
   a malicious attacker can interfere with the relaying function by
   constructing fake DHCPv6 messages with arbitrary type code.  The same
   problem may happen in current DHCPv4 and DHCPv6 practice where the
   attacker has to construct constructs the fake DHCP message with an a known type code.

   Clients and servers that implement this specification will discard
   unknown DHCPv6 messages.  Since RFC3315 did not specify either relay, relay
   agent, client or server behavior in the presence of unknown messages,
   it is possible that some servers or clients that have not been
   updated to conform to this specification might be made vulnerable to
   client attacks through the relay agent.

   For this reason, we recommend that relay agents, clients and servers
   be updated to follow this new specification.  However, in most
   deployment scenarios, it will be much easier to attack clients
   directly than through a relay; relay agent; furthermore, attacks using
   unknown message types are already possible on the local wire.

   So in most cases, if clients are not upgraded there should be minimal
   additional risk; at sites where only servers and relays relay agents can be
   upgraded, the incremental benefit of doing so most likely exceeds any
   risk due to vulnerable clients.

   Nothing in this update should be construed to mean that relay agents
   may not be administratively configurable to drop messages on the
   basis of the message type, for security reasons (e.g., in a

7.  IANA Considerations

   This document does not include an IANA request.

8.  Contributors List

   Many thanks to Bernie Volz, Tomek Mrugalski, Sheng Jiang, Cong Liu
   and Yuchi Chen for their contributions to the document.

9.  Normative References

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

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

Authors' Addresses

   Yong Cui
   Tsinghua University
   Beijing  100084

   Phone: +86-10-6260-3059
   Email: yong@csnet1.cs.tsinghua.edu.cn
   Qi Sun
   Tsinghua University
   Beijing  100084

   Phone: +86-10-6278-5822
   Email: sunqi@csnet1.cs.tsinghua.edu.cn

   Ted Lemon
   Nominum, Inc.
   2000 Seaport Blvd
   Redwood City, CA  94063

   Phone: +1-650-381-6000
   Email: Ted.Lemon@nominum.com