RFC 4994

DHCPv6 Relay Agent Echo Request Option

๐Ÿ“… published September 2007, from ietf

RFC 4994 ๐ŸŽ€ DHCPv6 Relay Agent Echo Request Option

Network Working Group โœจ Category: Standards Track ๐Ÿ’… (Track.. it's an Internet standards track protocol bestie) Date: September 2007 ๐ŸŒธ Authors: Shengyou Zeng, Bernard Volz, and Kim Kinnear (all Cisco Systems, Inc.), plus John Jason Brzozowski (Comcast Cable) ๐Ÿซถ Obsoletes: none listed ๐Ÿ™ˆ Updates: none listed ๐Ÿ™ˆ


Status of This Memo ๐Ÿ“œ

okay so this doc is an Internet standards track protocol for the Internet community, and it's asking 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 โœจ

this memo defines a Relay Agent Echo Request option for the Dynamic Host Configuration Protocol for IPv6 (DHCPv6) ๐Ÿงš. It lets a DHCPv6 relay agent ask for 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 ๐ŸŒˆ

okay so DHCPv6 [2] is the framework that configures IPv6 clients with addresses and other network parameters, and it has a relay agent capability ๐Ÿ’–. A relay agent is an intermediary node that carries DHCP messages between clients and servers ๐Ÿšš. The relay agent and the server swap info using options in relay agent messages. The relay agent may add relay agent options to the client DHCP message before forwarding it ๐ŸŽ€.

The info relay agents supply can help the server decide about the addresses, delegated prefixes, and configuration parameters the client gets ๐Ÿ‘‘. And honestly, the relay may need some of that same info to send replies back to clients efficiently ๐Ÿ’….

In DHCPv4, the server generally echoes the relay agent option back verbatim to the relay agent in server-to-client replies [3]. But DHCPv6 [2] does not require the server to do that ๐Ÿ˜ญ. This could be a problem, because the relay agent may need some relay options even when the server doesn't recognize them ๐Ÿ’€.

So this memo defines a relay agent echo request option. The relay agent uses it to explicitly ask for 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] ๐Ÿ’œ. These are the BCP 14 key words, so read them exactly as written ๐Ÿซถ.

3. The Relay Agent Echo Request Option ๐Ÿฆ‹

the relay agent adds options in the Relay Forward message, and the server uses them to guide its decisions about address assignment, prefix delegation, and configuration parameters ๐ŸŽฏ. The relay agent also knows which of these options it will need to return replies to the client efficiently ๐Ÿ™Œ. So it uses the relay agent Echo Request option to tell the server the list of relay agent options the server must echo back. (Yes, "must" is doing the work there, babe ๐Ÿ’….)

The format of the DHCPv6 Relay Agent Echo Request option looks like this ๐Ÿ‘€:

 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    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

the fields, explained:

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 tell the server which options the relay agent wants echoed back to it โœจ. If the relay agent does different things depending on whether an option gets echoed back or not, then the relay agent SHOULD NOT put that option in the Echo Request option ๐Ÿ™ˆ. Also, the relay uses the OPTION_ORO [2] to ask 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 do ERO processing after 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 keep processing any remaining options in the ERO ๐Ÿ™…โ€โ™€๏ธ.
  • b. If the option was not in the received Relay-Forward, the server MUST ignore that option and keep processing 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 ๐Ÿ”

โš ๏ธ Okay bestie, this part is SERIOUS. Don't skip it.

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

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 ๐Ÿ’Œ.

๐Ÿ“ฆ where this page comes from