RFC 6644

Rebind Capability in DHCPv6 Reconfigure Messages

πŸ“… published July 2012, from ietf

RFC 6644: Rebind Capability in DHCPv6 Reconfigure Messages πŸ’–

okay bestie, this one is RFC 6644 and it's giving "DHCPv6 servers finally get to move their people around" πŸ¦‹

  • Request for Comments: 6644
  • Title: Rebind Capability in DHCPv6 Reconfigure Messages
  • Authors: D. Evans (IPfonix, Inc.), R. Droms (Cisco Systems, Inc.), S. Jiang (Huawei Technologies Co., Ltd)
  • Category: Standards Track
  • ISSN: 2070-1721
  • Date: July 2012
  • Updates: RFC 3315 (DHCPv6) πŸŽ€
  • Series: Internet Engineering Task Force (IETF)

Abstract

This doc updates RFC 3315 (DHCPv6) so the Rebind message type can show up in the Reconfigure Message option of a Reconfigure message. It extends the Reconfigure message so a DHCPv6 server can make a DHCPv6 client send a Rebind message. It also clarifies how a DHCPv6 client responds when it gets a Reconfigure message. 🌸

Status of This Memo

This is an Internet Standards Track document. πŸ”₯

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

Info about the current status of this document, any errata, and how to give feedback on it can be found at http://www.rfc-editor.org/info/rfc6644. πŸ’œ

Copyright (c) 2012 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 ....................................................3
2. Terminology .....................................................3
3. The Reconfigure Message Option of the DHCPv6 Reconfigure
   Message .........................................................3
4. Server Behavior .................................................4
5. Client Behavior .................................................7
6. Clarification of Section 19.4.2, RFC 3315 .......................8
7. Security Considerations .........................................8
8. Acknowledgements ................................................9
9. References ......................................................9
   9.1. Normative References .......................................9
   9.2.  Informative References.....................................9

1. Introduction ✨

okay so DHCPv6 [RFC3315] lets a server send an unsolicited Reconfigure message to a client. According to Section 19 of RFC 3315, the client's response to a Reconfigure message is either a Renew or an Information-request message, and which one depends on the contents of the msg-type field in the Reconfigure Message option of the Reconfigure message. If the client sends a Renew message, it includes a Server Identifier option in the Renew message to say which server should respond to it. The spec in RFC 3315 only really works when the client keeps talking to the same DHCPv6 servers. 🧚

BUT there are also times when the client has to talk to a different server. Like, a network admin might shut down a DHCPv6 server and move the clients who most recently talked to it over to a different server. 😭 So this document expands the allowed values of the message type field in the reconfiguration message. That lets the server tell the client to send a Rebind message, which does not include a Server Identifier option, and lets any server respond to the client. πŸ’…

RFC 3315 doesn't say that a Reconfigure message has to come from the server the client most recently talked to. It also doesn't say which server the client should name in a Server Identifier option when it answers the Reconfigure message. This document clarifies that the client should send a Renew message in response to a Reconfigure message, with a Server Identifier option that identifies the same server the client would have identified if it had sent the Renew message after the timer T1 expired. πŸŽ€

2. 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 [RFC2119]. 🌈

This document uses IPv6 and DHCPv6 terms as defined in Section 4 of [RFC3315]. πŸ“

3. The Reconfigure Message Option of the DHCPv6 Reconfigure Message ✨

this section changes Section 22.19 of RFC 3315 so the Rebind message can be specified in a Reconfigure message. It's giving "the option finally does the thing." πŸ‘‘

A server includes a Reconfigure Message option in a Reconfigure message to tell the client whether the client should answer with a Renew, an Information-request, or a Rebind message. πŸ¦‹

The format of this option is:

  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_RECONF_MSG        |         option-len            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    msg-type   |
 +-+-+-+-+-+-+-+-+

and the fields work like this:

option-code         OPTION_RECONF_MSG (19).
option-len          1.
msg-type            5 for Renew message, 6 for Rebind, 11 for
                       Information-request message.
bestie, the msg-type values are the whole game: 5 is Renew, 6 is Rebind, and 11 is Information-request. 🧚

Part 2 picks up at Section 4 (Server Behavior) and that's where the server rules get juicy πŸ”₯

4. Server Behavior ✨

okay so this section updates some specific text in Sections 19.1 and 19.2 of RFC 3315 πŸŽ€

4.1. Section 19.1.1 πŸ¦‹

Here's the before and after, bestie:

Before:

The server MUST include a Reconfigure Message option (defined in section 22.19) to select whether the client responds with a Renew message or an Information-Request message. The server MUST NOT include any other options in the Reconfigure except as specifically allowed in the definition of individual options.

A server sends each Reconfigure message to a single DHCP client, using an IPv6 unicast address of sufficient scope belonging to the DHCP client. If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses a Relay-reply message (as described in section 20.3) to send the Reconfigure message to a relay agent that will relay the message to the client. The server may obtain the address of the client (and the appropriate relay agent, if required) through the information the server has about clients that have been in contact with the server, or through some external agent.

To reconfigure more than one client, the server unicasts a separate message to each client. The server may initiate the reconfiguration of multiple clients concurrently; for example, a server may send a Reconfigure message to additional clients while previous reconfiguration message exchanges are still in progress.

The Reconfigure message causes the client to initiate a Renew/Reply or Information-request/Reply message exchange with the server. The server interprets the receipt of a Renew or Information-request message (whichever was specified in the original Reconfigure message) from the client as satisfying the Reconfigure message request.

After:

The server MUST include a Reconfigure Message option (as defined in Section 3 of RFC 6644) to select whether the client responds with a Renew message, a Rebind message, or an Information-request message. The server MUST NOT include any other options in the Reconfigure, except as specifically allowed in the definition of individual options.

A server sends each Reconfigure message to a single DHCP client, using an IPv6 unicast address of sufficient scope belonging to the DHCP client. If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses a Relay-reply message (as described in Section 20.3) to send the Reconfigure message to a relay agent that will relay the message to the client. The server may obtain the address of the client (and the appropriate relay agent, if required) through the information the server has about clients that have been in contact with the server, or through some external agent.

To reconfigure more than one client, the server unicasts a separate message to each client. The server may initiate the reconfiguration of multiple clients concurrently; for example, a server may send a Reconfigure message to additional clients while previous reconfiguration message exchanges are still in progress.

The Reconfigure message causes the client to initiate a Renew/Reply, a Rebind/Reply message exchange, or an Information-request/Reply message exchange. The server interprets the receipt of a Renew, a Rebind, or an Information-request message (whichever was specified in the original Reconfigure message) from the client as satisfying the Reconfigure message request.

4.2. Section 19.1.2 🌸

Before:

If the server does not receive a Renew or Information-request message from the client in REC_TIMEOUT milliseconds, the server retransmits the Reconfigure message, doubles the REC_TIMEOUT value and waits again. The server continues this process until REC_MAX_RC unsuccessful attempts have been made, at which point the server SHOULD abort the reconfigure process for that client.

After:

If the server does not receive a Renew, Rebind, or Information-request message from the client in REC_TIMEOUT milliseconds, the server retransmits the Reconfigure message, doubles the REC_TIMEOUT value, and waits again. The server continues this process until REC_MAX_RC unsuccessful attempts have been made, at which point the server SHOULD abort the reconfigure process for that client.

4.3. Section 19.2 πŸ’œ

Before:

19.2. Receipt of Renew or Rebind Messages

The server generates and sends a Reply message to the client as described in sections 18.2.3 and 18.2.8, including options for configuration parameters.

The server MAY include options containing the IAs and new values for other configuration parameters in the Reply message, even if those IAs and parameters were not requested in the Renew message from the client.

After:

19.2. Receipt of Renew Messages πŸ’–

In response to a Renew message, the server generates and sends a Reply message to the client as described in Sections 18.2.3 and 18.2.8, including options for configuration parameters.

In response to a Rebind message, the server generates and sends a Reply message to the client as described in Sections 18.2.4 and 18.2.8, including options for configuration parameters.

The server MAY include options containing the identity associations (IAs) and new values for other configuration parameters in the Reply message, even if those IAs and parameters were not requested in the Renew or Rebind message from the client.


5. Client Behavior 🧚

okay this section updates some specific text in Section 19.4 of RFC 3315 πŸ’…

5.1. Section 19.4.1 πŸ“

Before:

Upon receipt of a valid Reconfigure message, the client responds with either a Renew message or an Information-request message as indicated by the Reconfigure Message option (as defined in section 22.19). The client ignores the transaction-id field in the received Reconfigure message. While the transaction is in progress, the client silently discards any Reconfigure messages it receives.

After:

Upon receipt of a valid Reconfigure message, the client responds with a Renew message, a Rebind message, or an Information-request message as indicated by the Reconfigure Message option (as defined in Section 3 of RFC 6644). The client ignores the transaction-id field in the received Reconfigure message. While the transaction is in progress, the client silently discards any Reconfigure messages it receives.

5.2. Section 19.4.2 🫢

This one ADDS new second and third paragraphs:

When responding to a Reconfigure, the client creates and sends the Rebind message in exactly the same manner as outlined in Section 18.1.4 of RFC 3315, with the exception that the client copies the Option Request option and any IA options from the Reconfigure message into the Rebind message.

If a client is currently sending Rebind messages, as described in Section 18.1.4 of RFC 3315, the client ignores any received Reconfigure messages.

5.3. Section 19.4.4 ✨

Before:

The client uses the same variables and retransmission algorithm as it does with Renew or Information-request messages generated as part of a client-initiated configuration exchange. See sections 18.1.3 and 18.1.5 for details. If the client does not receive a response from the server by the end of the retransmission process, the client ignores and discards the Reconfigure message.

After:

The client uses the same variables and retransmission algorithm as it does with Renew, Rebind, or Information-request messages generated as part of a client-initiated configuration exchange. See Sections 18.1.3, 18.1.4, and 18.1.5 of RFC 3315 for details. If the client does not receive a response from the server by the end of the retransmission process, the client ignores and discards the Reconfigure message.

6. Clarification of Section 19.4.2, RFC 3315 πŸ”₯

When sending a Renew message in response to the receipt of a Reconfigure message, the client MUST include a Server Identifier option, identifying the server with which the client most recently communicated.

7. Security Considerations πŸ’€

This is the serious part, bestie, so read carefully πŸ™ˆ

This document allows the Rebind message type to appear in the Reconfigure Message option of a Reconfigure message so that the client rebinds to a different DHCPv6 server. A malicious attacker may use a faked Reconfigure message to force the client to disconnect from the current server and relink to a faked server by quickly responding to the client's Rebind message. A similar attack is available in DHCPv6 by an attacker spoofing itself as a valid DHCPv6 server in response to a Solicit or Request message. These attacks can be prevented by using the AUTH option [RFC3315]. DHCPv6 clients that support Reconfigure-Rebind MUST implement the Reconfigure Key authentication protocol as described in [RFC3315], Section 21.5. Other authentication mechanisms may optionally be implemented. For example, the Secure DHCPv6 [SEC-DHCPv6], based on Cryptographically Generated Addresses (CGA) [RFC3972], can provide source address (for the DHCP server/relay) ownership validation, message origin authentication, and message integrity without requiring symmetric key pairs or support from a key management system.

8. Acknowledgements 🌈

Valuable comments were made by Jari Arkko, Sean Turner, Ted Lemon, and Stephen Farrell. 🫢

9. References πŸ“š

9.1. Normative References

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

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

[RFC3972]  Aura, T., "Cryptographically Generated Addresses (CGA)",
           RFC 3972, March 2005.

9.2. Informative References

[SEC-DHCPv6]
           Jiang, S. and S. Shen, "Secure DHCPv6 Using CGAs", Work in
           Progress, March 2012.

Authors' Addresses πŸŽ€

D. R. Evans
IPfonix, Inc.
330 WCR 16 1/2
Longmont, CO 80504-9467
USA

Phone: +1 303.682.2412
EMail: N7DR@ipfonix.com


Ralph Droms
Cisco Systems, Inc.
1414 Massachusetts Avenue
Boxborough, MA 01719
USA

Phone: +1 978.936.1674
EMail: rdroms@cisco.com


Sheng Jiang
Huawei Technologies Co., Ltd
Q14, Huawei Campus, No.156 Beiqing Road
Hai-Dian District, Beijing, 100095
P.R. China

EMail: jiangsheng@huawei.com
πŸ“¦ where this page comes from