RFC 4994 PROPOSED STANDARD DHCPV6 · RELAY · OPTIONS

DHCPv6 Relay Echo: DHCPv6 Relay Agent Echo Request Option

How a DHCPv6 relay agent asks the server to hand its own options back unchanged.

On rfc-editor.org ↗
PUBLISHED
September 2007
AUTHORS
S. Zeng, B. Volz, K. Kinnear, J. Brzozowski
STREAM
IETF
OPTION NAME
OPTION_ERO
OPTION CODE
43
OPTION-LEN
2 * number of requested options
DOI
10.17487/RFC4994

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                            S. Zeng
Request for Comments: 4994                                       B. Volz
Category: Standards Track                                     K. Kinnear
                                                     Cisco Systems, Inc.
                                                           J. Brzozowski
                                                           Comcast Cable
                                                          September 2007


                 DHCPv6 Relay Agent Echo Request Option

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 Relay Agent Echo Request option for the Dynamic
   Host Configuration Protocol for IPv6 (DHCPv6).  The option allows a
   DHCPv6 relay agent to request a list of relay agent options that the
   server echoes back to the relay agent.

Table of Contents

   1. Introduction ....................................................2
   2. Requirements Terminology ........................................2
   3. The Relay Agent Echo Request Option .............................2
   4. DHCPv6 Relay Agent Behavior .....................................3
   5. DHCPv6 Server Behavior ..........................................3
   6. Security Considerations .........................................4
   7. IANA Considerations .............................................4
   8. Acknowledgements ................................................4
   9. References ......................................................4
      9.1. Normative References .......................................4
      9.2. Informative References .....................................4

1.  Introduction

   DHCPv6 [2] provides a framework for configuring IPv6 clients with
   addresses and other network parameters.  It includes a relay agent
   capability.  A relay agent is an intermediary node that delivers DHCP
   messages between clients and servers.  The relay agent and the server
   exchange information using options in relay agent messages.  The
   relay agent may add relay agent options to the client DHCP message
   before forwarding it.

   The information that relay agents supply can be used in the server's
   decision making about the addresses, delegated prefixes, and
   configuration parameters that the client is to receive.  Likewise,
   the relay may need some of the information to efficiently return
   replies to clients.

   In DHCPv4, the server generally echoes the relay agent option back
   verbatim to the relay agent in server-to-client replies [3].
   However, DHCPv6 [2] does not require the server to do so.  This could
   be problematic, as the relay agent may need to use some relay options
   even if the server does not recognize them.

   This memo defines a relay agent echo request option that the relay
   agent uses to explicitly request a list of options that the server
   echoes back to the relay agent.

2.  Requirements Terminology

   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.  The Relay Agent Echo Request Option

   The relay agent adds options in the Relay Forward message that the
   server uses to guide its decision making with regard to address
   assignment, prefix delegation, and configuration parameters.  The
   relay agent also knows which of these options that it will need to
   efficiently return replies to the client.  It uses the relay agent
   Echo Request option to inform the server of the list of relay agent
   options that the server must echo back.

   The format of the DHCPv6 Relay Agent Echo Request option is shown
   below:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           OPTION_ERO          |           option-len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    requested-option-code-1    |    requested-option-code-2    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   option-code              OPTION_ERO (43).
   option-len               2 * number of requested options.
   requested-option-code-n  The option code for an option requested by
                            the relay agent.

4.  DHCPv6 Relay Agent Behavior

   A relay agent MAY include an Echo Request option in a Relay Forward
   message to inform the server about options the relay agent wants the
   server to echo back to the relay agent.  If the relay agent takes
   different actions based on whether an option is echoed back or not,
   then the relay agent SHOULD NOT include such an option in the Echo
   Request option.  Note that the relay uses the OPTION_ORO [2] to
   request the server to return options (e.g., [4]) other than relay
   agent options in the Relay Forward message.

5.  DHCPv6 Server Behavior

   When a server creates a Relay-Reply, it SHOULD perform ERO processing
   after processing the ORO and other options processing.  For each
   option in the ERO:

   a.  If the option is already in the Relay-Reply, the server MUST
       ignore that option and continue to process any remaining options
       in the ERO.

   b.  If the option was not in the received Relay-Forward, the server
       MUST ignore that option and continue to process any remaining
       options in the ERO.

   c.  Otherwise, the server MUST copy the option, verbatim, from the
       received Relay-Forward to the Relay-Reply, even if the server
       does not otherwise recognize that option.

6.  Security Considerations

   As the Echo Request option is only exchanged between relay agents and
   DHCPv6 servers, section 21.1 of [2] provides details on securing
   DHCPv6 messages sent between servers and relay agents.  And, section
   23 of [2] provides general DHCPv6 security considerations.

7.  IANA Considerations

   IANA has assigned a DHCPv6 option code for the OPTION_ERO (Relay
   Agent Echo Request) Option (43).

8.  Acknowledgements

   Thanks to Ralph Droms, Josh Littlefield, Richard Johnson, and Hemant
   Singh for their consistent input, ideas, and review during the
   production of this document.

9.  References

9.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., Bound, J., Volz, B., Lemon, T., Perkins, C., and M.
        Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)",
        RFC 3315, July 2003.

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

9.2.  Informative References

   [4]  Droms, R., Volz, B., and O. Troan, "DHCPv6 Relay Agent
        Assignment Notification (RAAN) Option", Work in Progress,
        November 2006.

Authors' Addresses

   Shengyou Zeng
   Cisco Systems, Inc.
   1414 Massachusetts Ave.
   Boxborough, MA  01719
   USA

   Phone: +1 978 936 0000
   EMail: szeng@cisco.com


   Bernard Volz
   Cisco Systems, Inc.
   1414 Massachusetts Ave.
   Boxborough, MA  01719
   USA

   Phone: +1 978 936 0000
   EMail: volz@cisco.com


   Kim Kinnear
   Cisco Systems, Inc.
   1414 Massachusetts Ave.
   Boxborough, MA  01719
   USA

   Phone: +1 978 936 0000
   EMail: kkinnear@cisco.com


   John Jason Brzozowski
   Comcast Cable
   1800 Bishops Gate Boulevard
   Mt. Laurel, NJ  08054
   USA

   Phone: +1 856 324 2671
   EMail: john_brzozowski@cable.comcast.com

Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   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
PROBLEMDHCPv6 does not require a server to echo relay agent options back, so a relay may lose options it needs to return replies to clients, especially ones the server does not recognize.
MECHANISMThe relay adds an Echo Request option (OPTION_ERO, code 43) to its Relay-Forward message, listing the option codes it wants echoed. The server copies those options verbatim into the Relay-Reply.
WHY IT MATTERSA relay agent can now reliably get back the relay options it needs, even when the server does not understand them.

§1Why Relays Need Echoes

In DHCPv6 (RFC 3315), a relay agent is an intermediary that delivers DHCP messages between clients and servers. It may add relay agent options to the client message before forwarding it.

The server can use those options when deciding which addresses, delegated prefixes and configuration parameters a client gets. The relay may also need some of them later to return replies to clients efficiently.

A helper passes messages between you and a far-away office. The helper writes small notes on each message and may need those notes later to know where the answer goes.

§2The Gap Compared with DHCPv4

In DHCPv4, the server generally echoes the relay agent option back verbatim in server-to-client replies (RFC 3046). DHCPv6 does not require the server to do so.

That can be a problem: the relay may need some of its options back even if the server does not recognize them. This memo adds an explicit request so the relay no longer depends on server habits.

In the older system the office always sent your notes back. In the newer one it did not have to, so the helper needed a way to ask.

§3The Relay Agent Echo Request Option

The option starts with the code OPTION_ERO, which is 43, and an option-len field. After that comes a list of 16-bit requested-option-code values, one for each option the relay wants echoed.

The length is 2 times the number of requested options. The relay uses this option to tell the server which relay agent options it must echo back.

The request is a short shopping list of option numbers. The list says: please send back these items.

RELAY AGENT ECHO REQUEST OPTION (RFC 4994)
OPTION_ERO
FieldNameSizeValueDescription
OPTION-CODEOPTION_ERO2 bytes43Option code.
OPTION-LENoption-len2 bytes2 * number of requested options.
CODE-1requested-option-code-12 bytesOption code of the first requested option.
CODE-2requested-option-code-22 bytesOption code of the second requested option; more may follow.

§4Relay Agent and Server Behavior

A relay agent MAY include an Echo Request option in a Relay-Forward message. If the relay behaves differently depending on whether an option is echoed, it SHOULD NOT list that option in the Echo Request. To get non-relay options returned, the relay uses OPTION_ORO instead.

When building a Relay-Reply, the server SHOULD process the ERO after the ORO and other option processing. For each option listed, it ignores the option if it is already in the Relay-Reply, and ignores it if it was not in the received Relay-Forward. Otherwise it MUST copy the option verbatim from the Relay-Forward to the Relay-Reply, even if it does not recognize the option.

The server checks each item on the list. If it already sent it, or never got it, it skips it. Otherwise it copies the note back exactly.

§5Security and IANA

The Echo Request option is only exchanged between relay agents and DHCPv6 servers. Section 21.1 of RFC 3315 describes how to secure messages between servers and relays, and section 23 gives general DHCPv6 security considerations.

IANA has assigned the DHCPv6 option code 43 for OPTION_ERO.

The request travels only between the helper and the server, so it is protected the same way their other messages are. It also got its own official number, 43.

§6References