1572 lines
65 KiB
Plaintext
1572 lines
65 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet Engineering Task Force (IETF) K. Kinnear
|
|||
|
Request for Comments: 7724 M. Stapp
|
|||
|
Updates: 6926 B. Volz
|
|||
|
Category: Standards Track Cisco Systems
|
|||
|
ISSN: 2070-1721 N. Russell
|
|||
|
Staples
|
|||
|
December 2015
|
|||
|
|
|||
|
|
|||
|
Active DHCPv4 Lease Query
|
|||
|
|
|||
|
Abstract
|
|||
|
|
|||
|
The Dynamic Host Configuration Protocol for IPv4 (DHCPv4) has been
|
|||
|
extended with a Leasequery capability that allows a requestor to
|
|||
|
request information about DHCPv4 bindings (RFC 4388). That mechanism
|
|||
|
is limited to queries for individual bindings. In some situations,
|
|||
|
individual binding queries may not be efficient, or even possible.
|
|||
|
In addition, continuous update of an external requestor with
|
|||
|
Leasequery data is sometimes desired. This document expands on the
|
|||
|
DHCPv4 Leasequery protocol, and allows for active transfer of near
|
|||
|
real-time DHCPv4 binding information data via TCP. This document
|
|||
|
updates RFC 6926, "DHCPv4 Bulk Leasequery".
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
Information about the current status of this document, any errata,
|
|||
|
and how to provide feedback on it may be obtained at
|
|||
|
http://www.rfc-editor.org/info/rfc7724.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 1]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
Copyright Notice
|
|||
|
|
|||
|
Copyright (c) 2015 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.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 2]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
|
|||
|
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
|||
|
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 6
|
|||
|
4. Interaction Between Active Leasequery and Bulk Leasequery . . 8
|
|||
|
5. Message and Option Definitions . . . . . . . . . . . . . . . 9
|
|||
|
5.1. Message Framing for TCP . . . . . . . . . . . . . . . . . 9
|
|||
|
5.2. New or Changed Options . . . . . . . . . . . . . . . . . 9
|
|||
|
5.2.1. dhcp-message-type . . . . . . . . . . . . . . . . . . 10
|
|||
|
5.2.2. dhcp-status-code . . . . . . . . . . . . . . . . . . 10
|
|||
|
5.3. Connection and Transmission Parameters . . . . . . . . . 11
|
|||
|
6. Information Communicated by Active Leasequery . . . . . . . . 11
|
|||
|
7. Requestor Behavior . . . . . . . . . . . . . . . . . . . . . 12
|
|||
|
7.1. General Processing . . . . . . . . . . . . . . . . . . . 12
|
|||
|
7.2. Initiating a Connection . . . . . . . . . . . . . . . . . 13
|
|||
|
7.3. Forming an Active Leasequery . . . . . . . . . . . . . . 14
|
|||
|
7.4. Processing Active Replies . . . . . . . . . . . . . . . . 15
|
|||
|
7.4.1. Processing Replies from a Request Containing a
|
|||
|
query-start-time . . . . . . . . . . . . . . . . . . 17
|
|||
|
7.5. Closing Connections . . . . . . . . . . . . . . . . . . . 19
|
|||
|
8. Server Behavior . . . . . . . . . . . . . . . . . . . . . . . 19
|
|||
|
8.1. Accepting Connections . . . . . . . . . . . . . . . . . . 19
|
|||
|
8.1.1. Update to RFC 6926 . . . . . . . . . . . . . . . . . 21
|
|||
|
8.2. Replying to an Active Leasequery . . . . . . . . . . . . 21
|
|||
|
8.3. Multiple or Parallel Queries . . . . . . . . . . . . . . 23
|
|||
|
8.4. Closing Connections . . . . . . . . . . . . . . . . . . . 24
|
|||
|
9. Security Considerations . . . . . . . . . . . . . . . . . . . 24
|
|||
|
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
|
|||
|
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 26
|
|||
|
11.1. Normative References . . . . . . . . . . . . . . . . . . 26
|
|||
|
11.2. Informative References . . . . . . . . . . . . . . . . . 27
|
|||
|
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 27
|
|||
|
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
The DHCPv4 Leasequery capability [RFC4388] extends the basic DHCPv4
|
|||
|
capability [RFC2131] [RFC2132] to allow an external entity to query a
|
|||
|
DHCPv4 server to recover lease state information about a particular
|
|||
|
IPv4 address or client in near real-time.
|
|||
|
|
|||
|
Continuous update of an external requestor with Leasequery data is
|
|||
|
sometimes desired. These requestors need to keep up with the current
|
|||
|
binding activity of the DHCPv4 server. Keeping up with these binding
|
|||
|
activities is termed "active" leasequery.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 3]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
The DHCPv4 Bulk Leasequery [RFC6926] capability can be used to
|
|||
|
recover useful information from a DHCPv4 server when some external
|
|||
|
entity starts up. This entity could be one that is directly involved
|
|||
|
in the DHCPv4 client-server transactions (e.g., a relay agent), or it
|
|||
|
could be an external process that needs information present in the
|
|||
|
DHCPv4 server's lease state database.
|
|||
|
|
|||
|
The Active Leasequery capability documented here is designed to allow
|
|||
|
an entity not directly involved in DHCPv4 client-server transactions
|
|||
|
to nevertheless keep current with the state of the DHCPv4 lease state
|
|||
|
information in real-time.
|
|||
|
|
|||
|
This document updates DHCPv4 Bulk Leasequery [RFC6926] in that it
|
|||
|
specifies the DHCPv4 server must close the TCP connection if it
|
|||
|
receives a DHCPv4 message that is not allowed over the TCP connection
|
|||
|
(for example, DHCPDISCOVER, DHCPLEASEQUERY). See Section 8.1.1.
|
|||
|
|
|||
|
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 the following terms:
|
|||
|
|
|||
|
o "Active Leasequery"
|
|||
|
|
|||
|
Keeping up to date in real-time (or near real-time) with DHCPv4
|
|||
|
binding activity.
|
|||
|
|
|||
|
o "binding"
|
|||
|
|
|||
|
The information that a DHCPv4 server keeps regarding the
|
|||
|
relationship between a DHCPv4 client and an IPv4 address. This
|
|||
|
includes the identity of the DHCPv4 client and the expiration
|
|||
|
time, if any, of any lease that client has on a particular IPv4
|
|||
|
address.
|
|||
|
|
|||
|
o "Bulk Leasequery"
|
|||
|
|
|||
|
Requesting and receiving the information about all or some of the
|
|||
|
existing DHCPv4 binding information in an efficient manner, as
|
|||
|
defined by [RFC6926].
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 4]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
o "blocked TCP connection"
|
|||
|
|
|||
|
A TCP connection is considered blocked if the underlying TCP
|
|||
|
transport will not accept new messages to be sent without blocking
|
|||
|
the thread that is attempting to send the message.
|
|||
|
|
|||
|
o "catch-up information"
|
|||
|
|
|||
|
If a DHCPv4 Active Leasequery requestor sends in a query-start-
|
|||
|
time option in a DHCPACTIVELEASEQUERY message, the DHCPv4 server
|
|||
|
will attempt to send the requestor the information that changed
|
|||
|
since the time specified in the query-start-time option. The
|
|||
|
binding information sent to satisfy this request is the catch-up
|
|||
|
information.
|
|||
|
|
|||
|
o "catch-up phase"
|
|||
|
|
|||
|
The period while the catch-up information is being sent is the
|
|||
|
catch-up phase.
|
|||
|
|
|||
|
o "clock skew"
|
|||
|
|
|||
|
The difference between the absolute time on a DHCPv4 server and
|
|||
|
the absolute time on the system where a requestor of an Active or
|
|||
|
Bulk Leasequery is executing is termed the "clock skew" for that
|
|||
|
Active or Bulk Leasequery connection. It is not absolutely
|
|||
|
constant but is likely to vary only slowly. While it is easy to
|
|||
|
think that this can be calculated precisely after one packet is
|
|||
|
received by a requestor from a DHCPv4 server, a more accurate
|
|||
|
value is derived from continuously examining the instantaneous
|
|||
|
value developed from each packet received from a DHCPv4 server and
|
|||
|
using it to make small adjustments to the existing value held in
|
|||
|
the requestor.
|
|||
|
|
|||
|
o "DHCPv4 client"
|
|||
|
|
|||
|
A DHCPv4 client is an IPv4 node using DHCP to obtain configuration
|
|||
|
parameters such as a network address.
|
|||
|
|
|||
|
o "DHCPv4 relay agent"
|
|||
|
|
|||
|
A DHCPv4 relay agent is a third-party agent that transfers BOOTP
|
|||
|
and DHCPv4 messages between clients and servers residing on
|
|||
|
different subnets, per [RFC951] and [RFC1542].
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 5]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
o "DHCPv4 server"
|
|||
|
|
|||
|
A DHCPv4 server is an IPv4 node that returns configuration
|
|||
|
parameters to DHCPv4 clients.
|
|||
|
|
|||
|
o "insecure mode"
|
|||
|
|
|||
|
When operating in insecure mode, the TCP connection between the
|
|||
|
requestor and DHCPv4 server is not protected in any way. In
|
|||
|
addition, the identity of the requestor is not validated by the
|
|||
|
server nor is the identity of the server validated by the
|
|||
|
requestor.
|
|||
|
|
|||
|
o "MAC address"
|
|||
|
|
|||
|
In the context of a DHCP message, a Media Access Control (MAC)
|
|||
|
address consists of the fields: hardware type "htype", hardware
|
|||
|
length "hlen", and client hardware address "chaddr".
|
|||
|
|
|||
|
o "requestor"
|
|||
|
|
|||
|
The node that sends LEASEQUERY messages to one or more servers to
|
|||
|
retrieve information on the bindings for a client.
|
|||
|
|
|||
|
o "secure mode"
|
|||
|
|
|||
|
When operating in secure mode, the TCP connection between the
|
|||
|
requestor and the DHCPv4 server is protected by TLS [RFC5246]. In
|
|||
|
addition, the requestor uses the certificates exchanged between it
|
|||
|
and the DHCPv4 server while setting up the TLS connection to
|
|||
|
validate the identity of the server. The DHCPv4 server also uses
|
|||
|
these certificates to validate the identity of the requestor.
|
|||
|
|
|||
|
3. Protocol Overview
|
|||
|
|
|||
|
The Active Leasequery mechanism is modeled on the existing individual
|
|||
|
Leasequery protocol in [RFC4388] as well as related work on DHCPv4
|
|||
|
Bulk Leasequery [RFC6926]; most differences arise from the long-term
|
|||
|
nature of the TCP [RFC7414] connection required for Active
|
|||
|
Leasequery. In addition, a DHCPv4 server that supports Active
|
|||
|
Leasequery must support Bulk Leasequery [RFC6926] as well. See
|
|||
|
Section 8.
|
|||
|
|
|||
|
An Active Leasequery requestor opens a TCP connection to a DHCPv4
|
|||
|
Server, using the DHCPv4 port 67. Note that this implies that the
|
|||
|
Leasequery requestor has the server IPv4 address(es) available via
|
|||
|
configuration or some other means, and that it has unicast IP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 6]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
reachability to the DHCPv4 server. The message framing for TCP is
|
|||
|
discussed in Section 5.1. No relaying for Active Leasequery is
|
|||
|
specified.
|
|||
|
|
|||
|
After establishing a connection, the requestor sends an
|
|||
|
DHCPACTIVELEASEQUERY message over the connection. In response, the
|
|||
|
server sends updates to the requestor using DHCPLEASEACTIVE and
|
|||
|
DHCPLEASEUNASSIGNED messages that are extensions of these messages as
|
|||
|
defined in [RFC4388] and [RFC6926]. This response procedure is
|
|||
|
similar to the procedure specified in [RFC6926], except that in the
|
|||
|
case of Active Leasequery the server sends updates whenever some
|
|||
|
activity occurs to change the binding state -- thus the need for the
|
|||
|
long-lived connection. Additionally, the Active Leasequery server
|
|||
|
should provide a mechanism to control which data is allowed to be
|
|||
|
included in the messages sent to the requestor. See Section 8.2.
|
|||
|
|
|||
|
Since [RFC6926] did not specify what to do with an unknown message
|
|||
|
type received over the DHCP TCP connection, system administrators
|
|||
|
SHOULD NOT allow a DHCPACTIVELEASEQUERY message to be sent over a
|
|||
|
DHCP TCP connection to a DHCPv4 server that does not support Active
|
|||
|
Leasequery.
|
|||
|
|
|||
|
Active Leasequery is designed to provide continuous updates of DHCPv4
|
|||
|
binding activity to an external entity.
|
|||
|
|
|||
|
Active Leasequery has features that allow this external entity to
|
|||
|
lose its connection and then reconnect and receive the latest
|
|||
|
information concerning any IPv4 bindings changed while it was not
|
|||
|
connected.
|
|||
|
|
|||
|
These capabilities are designed to allow the Active Leasequery
|
|||
|
requestor to efficiently become current with respect to the lease
|
|||
|
state database after it has been restarted or the machine on which it
|
|||
|
is running has been reinitialized. It is easy to define a protocol
|
|||
|
that works when the requestor is always connected to the DHCPv4
|
|||
|
server. Since that isn't sufficiently robust, much of the mechanism
|
|||
|
in this document is designed to deal efficiently with situations that
|
|||
|
occur when the Active Leasequery requestor becomes disconnected from
|
|||
|
the DHCPv4 server from which it is receiving updates and then becomes
|
|||
|
reconnected to that server.
|
|||
|
|
|||
|
Central to this approach is the concept that, if the Active
|
|||
|
Leasequery requestor loses service, it is allowed to specify the time
|
|||
|
of its most recent update in a subsequent Active Leasequery request,
|
|||
|
and the DHCPv4 server will determine whether or not data was missed
|
|||
|
while the Active Leasequery requestor was not connected.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 7]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
The DHCP server processing the Active Leasequery request MAY limit
|
|||
|
the amount of data saved, and methods exist for the DHCPv4 server to
|
|||
|
inform the Active Leasequery requestor that more data was missed than
|
|||
|
could be saved. In this situation, the Active Leasequery requestor
|
|||
|
would issue a Bulk Leasequery [RFC6926] to recover information not
|
|||
|
available through an Active Leasequery.
|
|||
|
|
|||
|
DHCPv4 servers are not required to keep any data corresponding to
|
|||
|
data missed on an Active Leasequery connection, but will typically
|
|||
|
choose to keep data corresponding to some recent activity available
|
|||
|
for subsequent queries by a DHCPv4 Active Leasequery requestor whose
|
|||
|
connection was temporarily interrupted.
|
|||
|
|
|||
|
An Active Leasequery requestor would typically use Bulk Leasequery to
|
|||
|
initialize its database with all current data when that database
|
|||
|
contains no binding information. In addition, it would use Bulk
|
|||
|
Leasequery to recover missed information in the event that its
|
|||
|
connection with the DHCPv4 server was lost for a longer time than the
|
|||
|
DHCPv4 server would keep track of the specific changes to the IPv4
|
|||
|
binding information.
|
|||
|
|
|||
|
The messages sent by the server in response to an Active Leasequery
|
|||
|
request should be identical to the messages sent by the server to a
|
|||
|
Bulk Leasequery request regarding the way the data is encoded into
|
|||
|
the Active Leasequery responses. In addition, the actions taken by
|
|||
|
the Active Leasequery requestor to interpret the responses to an
|
|||
|
Active Leasequery request should be identical to the way that the
|
|||
|
requestor interprets the responses to a Bulk Leasequery request.
|
|||
|
Thus, the handling of time, clock skew, data source, and other items
|
|||
|
discussed in the Bulk Leasequery specification [RFC6926] are to be
|
|||
|
followed when implementing Active Leasequery, with the exception that
|
|||
|
a server responding to an Active Leasequery request SHOULD be able to
|
|||
|
be configured to prevent specific data items from being included in
|
|||
|
the response to the requestor even if they were requested by
|
|||
|
inclusion in the dhcp-parameter-request-list option.
|
|||
|
|
|||
|
4. Interaction between Active Leasequery and Bulk Leasequery
|
|||
|
|
|||
|
Active Leasequery is an extension of the Bulk Leasequery protocol
|
|||
|
[RFC6926]. The contents of messages returned to an Active Leasequery
|
|||
|
requestor are identical to those defined for the Bulk Leasequery
|
|||
|
protocol.
|
|||
|
|
|||
|
Applications that employ Active Leasequery to keep a database up to
|
|||
|
date with respect to the DHCPv4 server's lease state database should
|
|||
|
use an initial Bulk Leasequery to bring their database into
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 8]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
equivalence with that of the DHCPv4 server, and then use Active
|
|||
|
Leasequery to keep that database current with respect to the DHCPv4
|
|||
|
server's lease state database.
|
|||
|
|
|||
|
There are several differences between the Active and Bulk Leasequery
|
|||
|
protocols. Active Leasequery defines only one qualifier (the query-
|
|||
|
start-time) and no query types, while Bulk Leasequery defines several
|
|||
|
query types and qualifiers. An Active Leasequery connection sends
|
|||
|
all available updates to the requestor.
|
|||
|
|
|||
|
An Active Leasequery connection does not ever "complete", though the
|
|||
|
DHCPv4 server can close the connection for a variety of reasons
|
|||
|
associated with some sort of exception condition.
|
|||
|
|
|||
|
5. Message and Option Definitions
|
|||
|
|
|||
|
5.1. Message Framing for TCP
|
|||
|
|
|||
|
The use of TCP for the Active Leasequery protocol permits one or more
|
|||
|
DHCPv4 messages to be sent in response to a single Active Leasequery
|
|||
|
request. The receiver needs to be able to determine how large each
|
|||
|
message is. The same framing technique used for Bulk Leasequery
|
|||
|
[RFC6926] is used for Active Leasequery.
|
|||
|
|
|||
|
When using TLS to secure a connection [RFC5246], the message framing
|
|||
|
for TLS uses the same format as that used for TCP. One DHCP message
|
|||
|
is carried in one TLS record.
|
|||
|
|
|||
|
5.2. New or Changed Options
|
|||
|
|
|||
|
The existing messages DHCPLEASEUNASSIGNED and DHCPLEASEACTIVE are
|
|||
|
used as the value of the dhcp-message-type option to indicate an IPv4
|
|||
|
address that is currently not leased or is currently leased to a
|
|||
|
DHCPv4 client, respectively.
|
|||
|
|
|||
|
All of the message types and options defined for Bulk Leasequery
|
|||
|
[RFC6926] are also used by Active Leasequery. In addition, new
|
|||
|
message types and option types are defined for Active Leasequery, as
|
|||
|
described below.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 9]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
5.2.1. dhcp-message-type
|
|||
|
|
|||
|
The message type option (option 53) from [RFC2132] requires
|
|||
|
additional values. The values of these message types are shown below
|
|||
|
in an extension of the table from Section 9.6 of [RFC2132]:
|
|||
|
|
|||
|
+-------+----------------------+
|
|||
|
| Value | Message Type |
|
|||
|
+-------+----------------------+
|
|||
|
| 16 | DHCPACTIVELEASEQUERY |
|
|||
|
| 17 | DHCPLEASEQUERYSTATUS |
|
|||
|
| 18 | DHCPTLS |
|
|||
|
+-------+----------------------+
|
|||
|
|
|||
|
5.2.2. dhcp-status-code
|
|||
|
|
|||
|
The dhcp-status-code option defined in [RFC6926] allows greater
|
|||
|
detail to be returned regarding the status of a DHCP request. While
|
|||
|
specified in the Bulk Leasequery document, this DHCPv4 option is also
|
|||
|
used in Active Leasequery.
|
|||
|
|
|||
|
This option has two possible scopes when used with Active Leasequery,
|
|||
|
depending on the context in which it appears. It refers to the
|
|||
|
information in a single leasequery reply if the value of the dhcp-
|
|||
|
message-type is DHCPLEASEACTIVE, DHCPLEASEUNASSIGNED, or DHCPTLS. It
|
|||
|
refers to the message stream related to an entire request if the
|
|||
|
value of the dhcp-message-type is DHCPLEASEQUERYSTATUS.
|
|||
|
|
|||
|
Additional status codes defined for support of Active Leasequery are:
|
|||
|
|
|||
|
+----------------------+-------------+------------------------------+
|
|||
|
| Name | Status-Code | Description |
|
|||
|
+----------------------+-------------+------------------------------+
|
|||
|
| DataMissing | 5 | Indicates that IPv4 binding |
|
|||
|
| | | information requested is not |
|
|||
|
| | | available. |
|
|||
|
| ConnectionActive | 6 | Indicates that this |
|
|||
|
| | | connection remains active. |
|
|||
|
| CatchUpComplete | 7 | Indicates that this Active |
|
|||
|
| | | Leasequery connection has |
|
|||
|
| | | completed sending all of the |
|
|||
|
| | | saved data requested. |
|
|||
|
| TLSConnectionRefused | 8 | Indicates that a TLS |
|
|||
|
| | | connection is not allowed. |
|
|||
|
+----------------------+-------------+------------------------------+
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 10]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
A dhcp-status-code option MAY appear in the options field of a DHCP
|
|||
|
message. If the dhcp-status-code option does not appear, it is
|
|||
|
assumed that the operation was successful. The dhcp-status-code
|
|||
|
option SHOULD NOT appear in a message that is successful unless it is
|
|||
|
needed to convey some text message along with the Success status
|
|||
|
code.
|
|||
|
|
|||
|
5.3. Connection and Transmission Parameters
|
|||
|
|
|||
|
Active Leasequery uses the same port configuration as DHCPv4 Bulk
|
|||
|
Leasequery [RFC6926]. It also uses other transmission parameters
|
|||
|
(BULK_LQ_DATA_TIMEOUT and BULK_LQ_MAX_CONNS) as defined in [RFC6926].
|
|||
|
|
|||
|
This section presents a table of values used to control Active
|
|||
|
Leasequery behavior, including recommended defaults. Implementations
|
|||
|
MAY make these values configurable. However, configuring too-small
|
|||
|
timeout values may lead to harmful behavior both to this application
|
|||
|
as well as to other traffic in the network. As a result, timeout
|
|||
|
values smaller than the default values SHOULD NOT be used.
|
|||
|
|
|||
|
+------------------------+---------+-------------------------------+
|
|||
|
| Parameter | Default | Description |
|
|||
|
+------------------------+---------+-------------------------------+
|
|||
|
| ACTIVE_LQ_RCV_TIMEOUT | 120 s | Active Leasequery receive |
|
|||
|
| | | timeout |
|
|||
|
| ACTIVE_LQ_SEND_TIMEOUT | 120 s | Active Leasequery send |
|
|||
|
| | | timeout |
|
|||
|
| ACTIVE_LQ_IDLE_TIMEOUT | 60 s | Active Leasequery idle |
|
|||
|
| | | timeout |
|
|||
|
+------------------------+---------+-------------------------------+
|
|||
|
|
|||
|
6. Information Communicated by Active Leasequery
|
|||
|
|
|||
|
While the information communicated by a Bulk Leasequery [RFC6926] is
|
|||
|
taken directly from the DHCPv4 server's lease state database, the
|
|||
|
information communicated by an Active Leasequery is real-time
|
|||
|
information. As such, it is the information that is currently
|
|||
|
associated with a particular binding in the DHCPv4 server's lease
|
|||
|
state database.
|
|||
|
|
|||
|
This is of significance, because if the Active Leasequery requestor
|
|||
|
runs slowly or the requestor disconnects from the DHCPv4 server and
|
|||
|
then reconnects with a query-start-time (signaling a catch-up
|
|||
|
operation), the information communicated to the Active Leasequery
|
|||
|
requestor is only the most current information from the DHCPv4
|
|||
|
server's lease state database.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 11]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
The requestor of an Active Leasequery MUST NOT assume that every
|
|||
|
lease state change is communicated across an Active Leasequery
|
|||
|
connection. Even if the Active Leasequery requestor remains
|
|||
|
connected, the DHCPv4 server is only required to transmit information
|
|||
|
about a binding that is current when the packet is created and handed
|
|||
|
off to the TCP stack to send to the requestor.
|
|||
|
|
|||
|
If the TCP connection blocks and the DHCPv4 server is waiting to send
|
|||
|
information down the connection, when the connection becomes
|
|||
|
available to be written, the DHCPv4 server MAY create the packet to
|
|||
|
send at this time. The current state of the binding will be sent,
|
|||
|
and any transition in state or other information that occurred while
|
|||
|
the TCP connection was blocked will be lost.
|
|||
|
|
|||
|
Thus, the Active Leasequery protocol does not allow the requestor to
|
|||
|
build a complete history of every activity on every lease. An
|
|||
|
effective history of the important state changes for a lease can be
|
|||
|
created if the parameters of the DHCPv4 server are tuned to take into
|
|||
|
account the requirements of an Active Leasequery requestor. For
|
|||
|
instance, the period after the expiration or release of a binding
|
|||
|
could be configured long enough (say, several minutes, well more than
|
|||
|
the receive timeout), so that an Active Leasequery requestor would
|
|||
|
never miss any changes in the binding.
|
|||
|
|
|||
|
7. Requestor Behavior
|
|||
|
|
|||
|
7.1. General Processing
|
|||
|
|
|||
|
A requestor attempts to establish a TCP connection to a DHCPv4 server
|
|||
|
in order to initiate a Leasequery exchange. If the attempt fails,
|
|||
|
the Requestor MAY retry. Retries should not be more frequent than
|
|||
|
one every ACTIVE_LQ_IDLE_TIMEOUT. See Section 5.3.
|
|||
|
|
|||
|
If an Active Leasequery is terminated prematurely by a
|
|||
|
DHCPLEASEQUERYDONE with a dhcp-message status-code of QueryTerminated
|
|||
|
or by the failure of the connection over which it was being
|
|||
|
submitted, the requestor MAY retry the request after the creation of
|
|||
|
a new connection. Retries should not be more frequent than one every
|
|||
|
ACTIVE_LQ_IDLE_TIMEOUT. See Section 5.3.
|
|||
|
|
|||
|
Messages from the DHCPv4 server come as multiple responses to a
|
|||
|
single DHCPACTIVELEASEQUERY message. Thus, each DHCPACTIVELEASEQUERY
|
|||
|
or DHCPBULKLEASEQUERY request must have an xid (transaction-id)
|
|||
|
unique on the connection on which it is sent (see Section 7.3), and
|
|||
|
all of the messages that come as a response to it contain the same
|
|||
|
xid as the request.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 12]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
Only one DHCPACTIVELEASEQUERY is allowed on any one TCP connection at
|
|||
|
a time. Parallel DHCPACTIVELEASEQUERY requests on the same TCP
|
|||
|
connection are not allowed.
|
|||
|
|
|||
|
7.2. Initiating a Connection
|
|||
|
|
|||
|
A requestor SHOULD be able to operate in either insecure or secure
|
|||
|
mode. See Section 9. This MAY be a feature that is administratively
|
|||
|
controlled.
|
|||
|
|
|||
|
When operating in insecure mode, the requestor sends a
|
|||
|
DHCPACTIVELEASEQUERY request after the establishment of a TCP
|
|||
|
connection.
|
|||
|
|
|||
|
When operating in secure mode, the requestor MUST attempt to
|
|||
|
negotiate a TLS [RFC5246] connection over the TCP connection. If
|
|||
|
this negotiation fails, the requestor MUST close the TCP connection.
|
|||
|
The recommendations in [RFC7525] apply when negotiating this
|
|||
|
connection.
|
|||
|
|
|||
|
A requestor requests the establishment of a TLS connection by sending
|
|||
|
the DHCPTLS message to the DHCPv4 server as the first message over
|
|||
|
the TCP connection. The DHCPTLS message SHOULD be sent without any
|
|||
|
options. This message indicates to the DHCPv4 server that a TLS
|
|||
|
connection over this TCP connection is desired. There are four
|
|||
|
possibilities after the requestor sends the DHCPTLS message to the
|
|||
|
DHCPV4 server:
|
|||
|
|
|||
|
1. No response from the DHCPv4 server.
|
|||
|
|
|||
|
2. The DHCPv4 server closes the TCP connection after it receives the
|
|||
|
DHCPTLS message.
|
|||
|
|
|||
|
3. DHCPv4 server responds with a DHCPTLS message with a dhcp-status-
|
|||
|
code of TLSConnectionRefused.
|
|||
|
|
|||
|
4. DHCPv4 server responds with DHCPTLS message with no dhcp-status-
|
|||
|
code, indicating success.
|
|||
|
|
|||
|
In any of the first three possibilities, the DHCPv4 server can be
|
|||
|
assumed to not support TLS. In this case, the requestor MUST close
|
|||
|
the connection.
|
|||
|
|
|||
|
In the final possibility, where the DHCPv4 server has responded with
|
|||
|
a DHCPTLS message with no dhcp-status-code in response to the
|
|||
|
requestor's DHCPTLS message, the requestor SHOULD initiate the
|
|||
|
exchange of the messages involved in a TLS handshake [RFC5246].
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 13]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
During the TLS handshake, the requestor MUST validate the DHCPv4
|
|||
|
server's digital certificates.
|
|||
|
|
|||
|
If the handshake exchange yields a functioning TLS connection, then
|
|||
|
the requestor SHOULD transmit a DHCPACTIVELEASEQUERY message over
|
|||
|
that TLS connection and use that TLS connection for all further
|
|||
|
interactions in which it engages with the DHCPv4 server over this TCP
|
|||
|
connection.
|
|||
|
|
|||
|
If the handshake exchange does not yield a functioning TLS
|
|||
|
connection, then the requestor MUST close the TCP connection.
|
|||
|
|
|||
|
7.3. Forming an Active Leasequery
|
|||
|
|
|||
|
The Active Leasequery is designed to create a long-lived connection
|
|||
|
between the requestor and the DHCPv4 server processing the active
|
|||
|
query. The DHCPv4 server SHOULD send binding information back across
|
|||
|
this connection with minimal delay after it learns of the binding
|
|||
|
information. It will learn about the bindings either because it
|
|||
|
makes the bindings itself or because it has received information
|
|||
|
about a binding from another server.
|
|||
|
|
|||
|
An Active Leasequery is a DHCPv4 request with a dhcp-message-type of
|
|||
|
DHCPACTIVELEASEQUERY. The DHCPv4 request MUST NOT have a ciaddr, a
|
|||
|
chaddr, or a dhcp-client-identifier. The DHCPv4 request MUST have an
|
|||
|
xid (transaction-id) unique on the connection on which it is sent.
|
|||
|
The DHCPv4 request SHOULD have a dhcp-parameter-request-list to
|
|||
|
inform the DHCPv4 server which DHCPv4 options are of interest to the
|
|||
|
requestor sending the DHCPACTIVELEASEQUERY message.
|
|||
|
|
|||
|
An important capability of the Active Leasequery is that the
|
|||
|
requestor can specify that some recent data be sent immediately to
|
|||
|
the requestor in parallel with the transmission of the ongoing
|
|||
|
binding information in more or less real time. This capability is
|
|||
|
used in order to allow an Active Leasequery requestor to recover
|
|||
|
missed information in the event that it temporarily loses
|
|||
|
connectivity with the DHCPv4 server processing a previous Active
|
|||
|
Leasequery.
|
|||
|
|
|||
|
This capability is enabled by the transmission of a 4-octet base-time
|
|||
|
option with each Leasequery reply sent as the result of a previous
|
|||
|
Active Leasequery. The requestor SHOULD keep track of the highest
|
|||
|
base-time received from a particular DHCPv4 server over an Active
|
|||
|
Leasequery connection, and in the event that the requestor finds it
|
|||
|
necessary (for whatever reason) to reestablish an Active Leasequery
|
|||
|
connection to that DHCPv4 server, the requestor should place this
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 14]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
highest base-time value into a query-start-time option in the new
|
|||
|
DHCPACTIVELEASEQUERY request. (See Sections 6.2.5 and 7.2 of
|
|||
|
[RFC6926] for information on the query-start-time option.)
|
|||
|
|
|||
|
Note that until all of the recent data (catch-up data) has been
|
|||
|
received, the requestor MUST NOT keep track of the base-time received
|
|||
|
in Leasequery reply messages to use later in a subsequent Bulk
|
|||
|
Leasequery or Active Leasequery request.
|
|||
|
|
|||
|
If the requestor doesn't wish to request an update of information
|
|||
|
missed when it was not connected to the DHCPv4 server, then it does
|
|||
|
not include the query-start-time option in the DHCPACTIVELEASEQUERY
|
|||
|
request.
|
|||
|
|
|||
|
If the TCP connection becomes blocked or stops being writable while
|
|||
|
the requestor is sending its query, the requestor SHOULD terminate
|
|||
|
the connection after BULK_LQ_DATA_TIMEOUT. We make this
|
|||
|
recommendation to allow requestors to control the period of time they
|
|||
|
are willing to wait before abandoning a connection, independent of
|
|||
|
notifications from the TCP implementations they may be using.
|
|||
|
|
|||
|
7.4. Processing Active Replies
|
|||
|
|
|||
|
The Requestor attempts to read a DHCPv4 leasequery reply message from
|
|||
|
the TCP connection.
|
|||
|
|
|||
|
Note that the connection resulting from accepting a
|
|||
|
DHCPACTIVELEASEQUERY request may be long-lived and may not have data
|
|||
|
transferring continuously during its lifetime. Therefore, the DHCPv4
|
|||
|
server SHOULD send a DHCPLEASEQUERYSTATUS message with a dhcp-status-
|
|||
|
code of ConnectionActive every ACTIVE_LQ_IDLE_TIMEOUT seconds
|
|||
|
(default 60) in order for the requestor to know that the connection
|
|||
|
remains alive. This approach is followed only when the connection is
|
|||
|
idle (i.e., the server has no binding data to send). During normal
|
|||
|
binding data exchange, receiving DHCPLEASEACTIVE or
|
|||
|
DHCPLEASEUNASSIGNED messages by the requestor itself signifies that
|
|||
|
the connection is active. Note that the default for
|
|||
|
ACTIVE_LQ_RCV_TIMEOUT is 120 seconds, twice the value of the
|
|||
|
ACTIVE_LQ_IDLE_TIMEOUT's default of 60 seconds, which drives the
|
|||
|
DHCPv4 server to send messages. Thus, ACTIVE_LQ_RCV_TIMEOUT controls
|
|||
|
how sensitive the requestor is to be to delays by the DHCPv4 server
|
|||
|
in sending updates or DHCPLEASEQUERYSTATUS messages.
|
|||
|
|
|||
|
If the stream of replies becomes blocked with no messages being
|
|||
|
received, the Requestor SHOULD terminate the connection after
|
|||
|
ACTIVE_LQ_RCV_TIMEOUT, and MAY begin retry processing if configured
|
|||
|
to do so.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 15]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
A successful query that is returning binding data MUST include a non-
|
|||
|
zero ciaddr. It may also include a non-zero chaddr, htype, and hlen
|
|||
|
as well as additional options. If there are additional bindings to
|
|||
|
be returned, they will be carried in additional Active Leasequery
|
|||
|
messages.
|
|||
|
|
|||
|
Any requestor of an Active Leasequery operation MUST be prepared to
|
|||
|
receive multiple copies of the binding information for a particular
|
|||
|
IPv4 address. See the Bulk Leasequery document [RFC6926] for
|
|||
|
information on how to deal with this situation.
|
|||
|
|
|||
|
A single Active Leasequery can and usually will result in a large
|
|||
|
number of replies. The Requestor MUST be prepared to receive more
|
|||
|
than one reply with transaction-ids matching a single
|
|||
|
DHCPACTIVELEASEQUERY message from a single DHCPv4 server.
|
|||
|
|
|||
|
A DHCPACTIVELEASEQUERY has two regimes -- during the catch-up phase,
|
|||
|
if any, and after any catch-up phase. If the DHCPACTIVELASEQUERY
|
|||
|
request had a query-start-time, then the DHCPACTIVELEASEQUERY starts
|
|||
|
out in the catch-up phase. See Section 7.4.1 for information on
|
|||
|
processing during the catch-up phase, as well as how to determine
|
|||
|
when the catch-up phase is complete.
|
|||
|
|
|||
|
After the catch-up phase, or during the entire series of messages
|
|||
|
received as the response to a DHCPACTIVELEASEQUERY request with no
|
|||
|
query-start-time (and therefore no catch-up phase), the base-time
|
|||
|
option of the most recent message SHOULD be saved as a record of the
|
|||
|
most recent time that data was received. This base-time (in the
|
|||
|
context of the DHCPv4 server) can be used in a subsequent
|
|||
|
DHCPACTIVELEASEQUERY message's query-start-time or in a
|
|||
|
DHCPBULKLEASEQUERY message's query-start-time, if one is required,
|
|||
|
after a loss of the Active Leasequery connection.
|
|||
|
|
|||
|
The DHCPLEASEQUERYSTATUS message MAY unilaterally terminate a
|
|||
|
successful DHCPACTIVELEASEQUERY request that is currently in progress
|
|||
|
in the event that the DHCPv4 server determines that it cannot
|
|||
|
continue processing a DHCPACTIVELEASEQUERY request. For example,
|
|||
|
when a server is requested to shut down, it SHOULD send a
|
|||
|
DHCPLEASEQUERYSTATUS message with a dhcp-status-code of
|
|||
|
QueryTerminated and include in the message a base-time. This MUST be
|
|||
|
the last message on that connection, and once the message has been
|
|||
|
transmitted, the server MUST close the connection.
|
|||
|
|
|||
|
After receiving DHCPLEASEQUERYSTATUS with a QueryTerminated status
|
|||
|
from a server, the Requestor MAY close the TCP connection to that
|
|||
|
server.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 16]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
The DHCPv4 Leasequery protocol uses the associated-ip option as an
|
|||
|
indicator that multiple bindings were present in response to a single
|
|||
|
client-based query. For Active Leasequery, client-based queries are
|
|||
|
not supported, and so the associated-ip option is not used and MUST
|
|||
|
NOT be present in replies.
|
|||
|
|
|||
|
7.4.1. Processing Replies from a Request Containing a query-start-time
|
|||
|
|
|||
|
If the DHCPACTIVELEASEQUERY was requested with a query-start-time,
|
|||
|
the DHCPv4 server will attempt to send information about all bindings
|
|||
|
that changed since the time specified in the query-start-time. This
|
|||
|
is the catch-up phase of the DHCPACTIVELEASEQUERY processing. The
|
|||
|
DHCPv4 server MAY also begin immediate updates over the same
|
|||
|
connection of real-time binding information changes. Thus, the
|
|||
|
catch-up phase can run in parallel with the normal updates generated
|
|||
|
by the DHCPACTIVELEASEQUERY request.
|
|||
|
|
|||
|
A DHCPv4 server MAY keep only a limited amount of time-ordered
|
|||
|
information available to respond to a DHCPACTIVELEASEQUERY request
|
|||
|
containing a query-start-time. Thus, it is possible that the time
|
|||
|
specified in the query-start-time represents a time not covered by
|
|||
|
the time-ordered information kept by the DHCPv4 server. In such
|
|||
|
case, when there is not enough data saved in the DHCPv4 server to
|
|||
|
satisfy the request specified by the query-start-time option, the
|
|||
|
DHCPv4 server will reply immediately with a DHCPLEASEQUERYSTATUS
|
|||
|
message with a dhcp-status-code of DataMissing with a base-time
|
|||
|
option equal to the server's current time. This will signal the end
|
|||
|
of the catch-up phase, and the only updates that will subsequently be
|
|||
|
received on this connection are the real-time updates from the
|
|||
|
DHCPACTIVELEASEQUERY request.
|
|||
|
|
|||
|
If there is enough data saved to satisfy the request, then
|
|||
|
DHCPLEASEACTIVE and DHCPLEASEUNASSIGNED messages will begin arrive
|
|||
|
from the DHCPv4 server. Some of these messages will be related to
|
|||
|
the query-start-time request and be part of the catch-up phase. Some
|
|||
|
of these messages will be real-time updates of binding changes taking
|
|||
|
place in the DHCPv4 server. In general, there is no way to determine
|
|||
|
the source of each message.
|
|||
|
|
|||
|
The updates sent by the DHCPv4 server during the catch-up phase are
|
|||
|
not in the order that the binding data was updated. Therefore, until
|
|||
|
the catch-up phase is complete, the latest base-time value received
|
|||
|
from a DHCPv4 server processing an Active Leasequery request cannot
|
|||
|
be reset from the incoming messages (and used in a subsequent Active
|
|||
|
Leasequery's query-start-time option), because to do so would
|
|||
|
compromise the ability to recover lost information if the
|
|||
|
DHCPACTIVELEASEQUERY were to terminate prior to the completion of the
|
|||
|
catch-up phase.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 17]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
The requestor will know that the catch-up phase is complete because
|
|||
|
the DHCPv4 server will transmit a DHCPLEASEQUERYSTATUS message with
|
|||
|
the dhcp-status-code of CatchUpComplete (or, as discussed above,
|
|||
|
DataMissing). Once this message is transmitted, all additional
|
|||
|
DHCPLEASEACTIVE and DHCPLEASEUNASSIGNED messages will relate to real-
|
|||
|
time ("new") binding changes in the DHCPv4 server.
|
|||
|
|
|||
|
As discussed in Section 6.3, the requestor SHOULD keep track of the
|
|||
|
latest base-time option value received over a particular connection,
|
|||
|
to be used in a subsequent DHCPACTIVELEASEQUERY request -- but only
|
|||
|
if the catch-up phase is complete. Prior to the completion of the
|
|||
|
catch-up phase, if the connection should go away or if the requestor
|
|||
|
receives a DHCPLEASEQUERYDONE message, then when it reconnects it
|
|||
|
MUST use the base-time value from the previous connection and not any
|
|||
|
base-time value received from the recently closed connection.
|
|||
|
|
|||
|
In the event that there was enough data available to the DHCPv4
|
|||
|
server to begin to satisfy the request implied by the query-start-
|
|||
|
time option, but during the processing of that data the server found
|
|||
|
that it was unable to continue (perhaps there was barely enough, the
|
|||
|
connection was very slow, and the aging algorithm caused the saved
|
|||
|
data to become unavailable), the DHCPv4 server will terminate the
|
|||
|
catch-up phase of processing immediately by sending a
|
|||
|
DHCPLEASEQUERYSTATUS message with a dhcp-status-code of DataMissing
|
|||
|
and with a base-time option of the current time.
|
|||
|
|
|||
|
The requestor must not assume that every individual state change of
|
|||
|
every binding during the period from the time specified in the query-
|
|||
|
start-time and the present is replicated in an Active Leasequery
|
|||
|
reply message. See Section 6. The requestor MAY assume that at
|
|||
|
least one Active Leasequery reply message will exist for every
|
|||
|
binding that had one or more changes of state during the period
|
|||
|
specified by the query-start-time and the current time. The last
|
|||
|
message for each binding will contain the state at the current time,
|
|||
|
and there can be one or more messages concerning a single binding
|
|||
|
during the catch-up phase of processing.
|
|||
|
|
|||
|
Bindings can change multiple times while the requestor is not
|
|||
|
connected. The requestor will only receive information about the
|
|||
|
current state of the binding, not information about each state change
|
|||
|
that occurred during the period from the query-start-time to the
|
|||
|
present.
|
|||
|
|
|||
|
If the DHCPLEASEQUERYSTATUS message containing a dhcp-status-code of
|
|||
|
DataMissing is received and the requestor is interested in keeping
|
|||
|
its database up to date with respect to the current state of the
|
|||
|
bindings in the DHCPv4 server, then the requestor SHOULD issue a
|
|||
|
DHCPBULKLEASEQUERY request to recover the information missing from
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 18]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
its database. This DHCPBULKLEASEQUERY should include a query-start-
|
|||
|
time option, set to the same value as the query-start-time option
|
|||
|
previously included in the DHCPACTIVELEASEQUERY responses from the
|
|||
|
DHCPv4 server, and a query-end-time option equal to the base-time
|
|||
|
option returned by the DHCPv4 server in the DHCPLEASEQUERYSTATUS
|
|||
|
message with the dhcp-status-code of DataMissing.
|
|||
|
|
|||
|
Typically, the requestor would have one connection open to a DHCPv4
|
|||
|
server for a DHCPACTIVELEASEQUERY request and possibly one additional
|
|||
|
connection open for a DHCPBULKLEASEQUERY request to the same DHCPv4
|
|||
|
server to fill in the data that might have been missed prior to the
|
|||
|
initiation of the DHCPACTIVELEASEQUERY. The Bulk Leasequery
|
|||
|
connection would typically run to completion and be closed, leaving
|
|||
|
one Active Leasequery connection open to a single DHCPv4 server.
|
|||
|
|
|||
|
7.5. Closing Connections
|
|||
|
|
|||
|
The Requestor or DHCPv4 leasequery server MAY close its end of the
|
|||
|
TCP connection at any time. The Requestor MAY choose to retain the
|
|||
|
connection if it intends to issue additional queries. Note that this
|
|||
|
requestor behavior does not guarantee that the connection will be
|
|||
|
available for additional queries: the server might decide to close
|
|||
|
the connection based on its own configuration.
|
|||
|
|
|||
|
8. Server Behavior
|
|||
|
|
|||
|
A DHCPv4 server that supports Active Leasequery MUST support Bulk
|
|||
|
Leasequery [RFC6926] as well.
|
|||
|
|
|||
|
8.1. Accepting Connections
|
|||
|
|
|||
|
DHCPv4 servers that implement DHCPv4 Active Leasequery listen for
|
|||
|
incoming TCP connections. The approach used in accepting the
|
|||
|
requestor's connection is the same as specified in DHCPv4 Bulk
|
|||
|
Leasequery [RFC6926], with the exception that support for Active
|
|||
|
Leasequery MUST NOT be enabled by default, and MUST require an
|
|||
|
explicit configuration step to be performed before it will operate.
|
|||
|
|
|||
|
DHCPv4 servers SHOULD be able to operate in either insecure or secure
|
|||
|
mode. See Section 9. This MAY be a mode that is administratively
|
|||
|
controlled, where the server will require a TLS connection to operate
|
|||
|
or will only operate without a TLS connection. In either case,
|
|||
|
operation in insecure mode MUST NOT be the default, even if operation
|
|||
|
in secure mode is not supported. Operation in insecure mode MUST
|
|||
|
always require an explicit configuration step, separate from the
|
|||
|
configuration step required to enable support for Active Leasequery.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 19]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
When operating in insecure mode, the DHCPv4 server simply waits for
|
|||
|
the requestor to send the Active Leasequery after the establishment
|
|||
|
of TCP connection. If it receives a DHCPTLS message, it will respond
|
|||
|
with TLSConnectionRefused in a DHCPTLS message.
|
|||
|
|
|||
|
When operating in secure mode, DHCPv4 servers MUST support TLS
|
|||
|
[RFC5246] to protect the integrity and privacy of the data
|
|||
|
transmitted over the TCP connection. When operating in secure mode,
|
|||
|
DHCPv4 servers MUST be configurable with regard to which requestors
|
|||
|
they will communicate. The certificate presented by a requestor when
|
|||
|
initiating the TLS connection is used to distinguish between
|
|||
|
acceptable and unacceptable requestors.
|
|||
|
|
|||
|
When operating in secure mode, a DHCPv4 server MUST begin to
|
|||
|
negotiate a TLS connection with a requestor who asks for one, and
|
|||
|
MUST close TCP connections that are not secured with TLS or for which
|
|||
|
the requestor's certificate is deemed unacceptable. The
|
|||
|
recommendations in [RFC7525] apply when negotiating a TLS connection.
|
|||
|
|
|||
|
A requestor will request a TLS connection by sending a DHCPTLS as the
|
|||
|
first message over a newly created TCP connection. If the DHCPv4
|
|||
|
server supports TLS connections and has not been configured to not
|
|||
|
allow them on this link, the DHCPv4 server MUST respond to this
|
|||
|
DHCPTLS message by sending a DHCPTLS message with no dhcp-status-code
|
|||
|
back to the requestor. This indicates to the requestor that the
|
|||
|
DHCPv4 server will support the negotiation of a TLS connection over
|
|||
|
this existing TCP connection.
|
|||
|
|
|||
|
If a connection is to be rejected because of a limitation of the
|
|||
|
number of open connections, the TCP connection itself should be
|
|||
|
rejected, or the subsequent ACTIVELEASEQUERY message should be
|
|||
|
rejected. Capacity-related rejections SHOULD NOT affect the response
|
|||
|
to the DHCPTLS message.
|
|||
|
|
|||
|
Any options appearing in a DHCPTLS message received by a DHCPv4
|
|||
|
server SHOULD be ignored. This is a "SHOULD" instead of a "MUST" in
|
|||
|
order to allow use of the DHCPTLS message in later documents,
|
|||
|
possibly with the use of options, without requiring those documents
|
|||
|
to update this document.
|
|||
|
|
|||
|
If for some reason the DHCPv4 server cannot support or has been
|
|||
|
configured to not support a TLS connection, then it sends a DHCPTLS
|
|||
|
message with a dhcp-status-code of TLSConnectionRefused back to the
|
|||
|
requestor.
|
|||
|
|
|||
|
In the event that the DHCPv4 server sends a DHCPTLS message with no
|
|||
|
dhcp-status-code option included (which indicates success), the
|
|||
|
requestor is supposed to initiate a TLS handshake [RFC5246] (see
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 20]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
Section 7.2). During the TLS handshake, the DHCPv4 server MUST
|
|||
|
validate the requestor's digital certificate. In addition, the
|
|||
|
digital certificate presented by the requestor is used to decide if
|
|||
|
this requestor is allowed to perform an Active Leasequery. If this
|
|||
|
requestor's certificate is deemed unacceptable, the server MUST abort
|
|||
|
the creation of the TLS connection.
|
|||
|
|
|||
|
All TLS connections established between a requestor and a DHCPv4
|
|||
|
server for the purposes of supporting Active Leasequery MUST be
|
|||
|
mutually authenticated.
|
|||
|
|
|||
|
If the TLS handshake is not successful in creating a TLS connection,
|
|||
|
the server MUST close the TCP connection.
|
|||
|
|
|||
|
If the TCP connection becomes blocked while the server is accepting a
|
|||
|
connection or reading a query, it SHOULD terminate the connection
|
|||
|
after a BULK_LQ_DATA_TIMEOUT. We make this recommendation to allow
|
|||
|
servers to control the period of time they are willing to wait before
|
|||
|
abandoning an inactive connection, independent of the TCP
|
|||
|
implementations they may be using.
|
|||
|
|
|||
|
8.1.1. Update to RFC 6926
|
|||
|
|
|||
|
In an update to the DHCPv4 Bulk Leasequery protocol [RFC6926] (which
|
|||
|
didn't discuss this situation explicitly), if the DHCPv4 server
|
|||
|
receives a DHCPv4 message containing a dhcp-message-type option with
|
|||
|
a value that is not supported over a TCP connection, it MUST close
|
|||
|
the TCP connection.
|
|||
|
|
|||
|
8.2. Replying to an Active Leasequery
|
|||
|
|
|||
|
If the connection becomes blocked while the server is attempting to
|
|||
|
send reply messages, the server SHOULD terminate the TCP connection
|
|||
|
after ACTIVE_LQ_SEND_TIMEOUT. This timeout governs how long the
|
|||
|
DHCPv4 server is prepared to wait for the requestor to read and
|
|||
|
process enough information to unblock the TCP connection. The
|
|||
|
default is two minutes, which means that if more than two minutes
|
|||
|
goes by without the requestor reading enough information to unblock
|
|||
|
the TCP connection, the DHCPv4 server SHOULD close the TCP
|
|||
|
connection.
|
|||
|
|
|||
|
If the DHCPv4 server encounters an error during processing of the
|
|||
|
DHCPACTIVELEASEQUERY message, either during initial processing or
|
|||
|
later during the message processing, it SHOULD send a
|
|||
|
DHCPLEASEQUERYSTATUS containing an error code of some kind in a dhcp-
|
|||
|
status-code option. It SHOULD close the connection after this error
|
|||
|
is signaled.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 21]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
Every reply to a DHCPACTIVELEASEQUERY request MUST contain the
|
|||
|
information specified in replies to a DHCPBULKLEASEQUERY request
|
|||
|
[RFC6926], with the exception that a server implementing Active
|
|||
|
Leasequery SHOULD be able to be configured to prevent specific data
|
|||
|
items from being sent to the requestor even if these data items were
|
|||
|
requested in the dhcp-parameter-request-list option.
|
|||
|
|
|||
|
Some servers can be configured to respond to a DHCPv4 Leasequery
|
|||
|
[RFC4388] or a DHCPBULKLEASEQUERY [RFC6926] for an IPv4 binding that
|
|||
|
is reserved in such a way that it appears that the IPv4 binding is
|
|||
|
leased to the DHCP client for which it is reserved. These servers
|
|||
|
SHOULD also respond to a DHCPACTIVELEASEQUERY request with the same
|
|||
|
information as they would to a DHCPBULKLEASEQUERY request when they
|
|||
|
first determine that the IPv4 binding is reserved to a DHCP client.
|
|||
|
|
|||
|
If a DHCPACTIVELEASEQUERY request contains a query-start-time option,
|
|||
|
it indicates that the requestor would like the DHCPv4 server to send
|
|||
|
it not only messages that correspond to DHCPv4 binding activity that
|
|||
|
occurs subsequent to the receipt of the DHCPLEASEACTIVE request, but
|
|||
|
also messages that correspond to DHCPv4 binding activity that
|
|||
|
occurred prior to the DHCPACTIVELEASEQUERY request.
|
|||
|
|
|||
|
If a query-end-time option appears in a DHCPACTIVELEASEQUERY the
|
|||
|
DHCPv4 server should send a DHCPLEASEQUERYSTATUS message with a dhcp-
|
|||
|
status-code of MalformedQuery and terminate the connection.
|
|||
|
|
|||
|
In order to implement a meaningful response to this query, the DHCPv4
|
|||
|
server MAY keep track of the binding activity and associate changes
|
|||
|
with particular base-time values from the messages. Then, when
|
|||
|
requested to do so by a DHCPACTIVELEASEQUERY request containing a
|
|||
|
query-start-time option, the DHCPv4 server can respond with replies
|
|||
|
for all binding activity occurring on that query-start-time or later
|
|||
|
times.
|
|||
|
|
|||
|
These replies based on the query-start-time MAY be interleaved with
|
|||
|
the messages generated due to current binding activity.
|
|||
|
|
|||
|
Once the transmission of the DHCPv4 Leasequery messages associated
|
|||
|
with the query-start-time option are complete, a DHCPLEASEQUERYSTATUS
|
|||
|
message MUST be sent with a dhcp-status-code value of
|
|||
|
CatchUpComplete.
|
|||
|
|
|||
|
The DHCPv4 server SHOULD keep track of previous binding activity. It
|
|||
|
SHOULD limit the amount of previous binding activity it keeps track
|
|||
|
of. The DHCPv4 server MAY choose to only do this in the event that
|
|||
|
it has received at least one DHCPACTIVELEASEQUERY request in the
|
|||
|
past, as to do so will almost certainly entail some utilization of
|
|||
|
resources that would be wasted if there are no DHCPACTIVELEASEQUERY
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 22]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
requestors for this DHCPv4 server. The DHCPv4 server SHOULD make the
|
|||
|
amount of previous binding activity it retains configurable. There
|
|||
|
is no requirement on the DHCPv4 server to retain this information
|
|||
|
over a server restart (or even to retain such information at all).
|
|||
|
|
|||
|
Unless there is an error or some requirement to cease processing a
|
|||
|
DHCPACTIVELEASEQUERY request yielding a DHCPLEASEQUERYSTATUS message,
|
|||
|
such as a server shutdown, there will be no DHCPLEASEQUERYSTATUS
|
|||
|
message at the conclusion of the DHCPACTIVELEASEQUERY processing
|
|||
|
because that processing will not conclude but will continue until
|
|||
|
either the requestor or the server closes the connection.
|
|||
|
|
|||
|
While the form of the data being sent by a DHCPACTIVELEASEQUERY is
|
|||
|
essentially the same as that being sent by a DHCPBULKLEASEQUERY, the
|
|||
|
reasons for sending information differs considerably between these
|
|||
|
two capabilities. In the DHCPBULKLEASEQUERY context, the entire
|
|||
|
contents of the lease state database (subject to the constraints of
|
|||
|
the various query options) are returned to the requestor. In the
|
|||
|
DHCPACTIVELEASEQUERY context, changes to the lease state database are
|
|||
|
returned to the requestor essentially as they happen. For instance,
|
|||
|
when an IPv4 binding transitions from the leased state to some other
|
|||
|
state, the DHCPACTIVELEASEQUERY will send a DHCPLEASEUNASSIGNED
|
|||
|
packet with information regarding that binding. The server may then
|
|||
|
entirely forget about that IPv4 binding (or not), but it is important
|
|||
|
to tell the DHCPACTIVELEASEQUERY requestor that a binding has
|
|||
|
transitioned away from the leased state.
|
|||
|
|
|||
|
The relationship between the time that the server replies to a DHCP
|
|||
|
client request and the time that the DHCP server sends a reply to a
|
|||
|
DHCPACTIVELEASEQUERY message is a matter of implementation (and thus
|
|||
|
not defined by this document). However, the server SHOULD NOT delay
|
|||
|
responding to the DHCP client in order to transmit a reply to a
|
|||
|
DHCPACTIVELEASEQUERY message, and the server SHOULD send the reply to
|
|||
|
the DHCPACTIVELASEQUERY message as soon as possible after responding
|
|||
|
to the client.
|
|||
|
|
|||
|
8.3. Multiple or Parallel Queries
|
|||
|
|
|||
|
Every Active Leasequery request MUST be made on a single TCP
|
|||
|
connection where there is no other request active at the time the
|
|||
|
request is made. Note that this is different than what was allowed
|
|||
|
in Section 7.7 of [RFC6926] for Bulk Leasequery requests.
|
|||
|
|
|||
|
Typically, a requestor of an Active Leasequery would not need to send
|
|||
|
a second Active Leasequery while the first is still active. However,
|
|||
|
sending an Active Leasequery and a Bulk Leasequery in parallel would
|
|||
|
be possible and reasonable. In case of parallel Active and Bulk
|
|||
|
Leasequery requests, the requestor MUST use different connections.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 23]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
This MAY be a feature that is administratively controlled. Servers
|
|||
|
that are able to process queries in parallel SHOULD offer
|
|||
|
configuration that limits the number of simultaneous queries
|
|||
|
permitted from any one requestor, in order to control resource use if
|
|||
|
there are multiple requestors seeking service.
|
|||
|
|
|||
|
8.4. Closing Connections
|
|||
|
|
|||
|
The server MAY end communication by sending a DHCPLEASEQUERYSTATUS
|
|||
|
message and then immediately closing the TCP connection.
|
|||
|
Alternatively, the server MAY retain the connection and wait for
|
|||
|
additional queries from the requestor. The server SHOULD limit the
|
|||
|
number of connections it maintains and SHOULD close idle connections
|
|||
|
to enforce the limit.
|
|||
|
|
|||
|
The server MUST close its end of the TCP connection if it encounters
|
|||
|
an error sending data on the connection. The server MUST close its
|
|||
|
end of the TCP connection if it finds that it has to abort an in-
|
|||
|
process request. A server aborting an in-process request SHOULD
|
|||
|
attempt to signal that to its requestors by using the QueryTerminated
|
|||
|
status code in the dhcp-status-code option in a DHCPLEASEQUERYSTATUS
|
|||
|
message. If the server detects that the requestor end has been
|
|||
|
closed, the server MUST close its end of the connection.
|
|||
|
|
|||
|
9. Security Considerations
|
|||
|
|
|||
|
The Security Considerations section of [RFC2131] details the general
|
|||
|
threats to DHCPv4. The DHCPv4 Leasequery specification [RFC4388]
|
|||
|
describes recommendations for the Leasequery protocol, especially
|
|||
|
with regard to relayed LEASEQUERY messages, mitigation of packet-
|
|||
|
flooding DoS attacks, restriction to trusted requestors, and use of
|
|||
|
IPsec [RFC4301].
|
|||
|
|
|||
|
The use of TCP introduces some additional concerns. Attacks that
|
|||
|
attempt to exhaust the DHCPv4 server's available TCP connection
|
|||
|
resources can compromise the ability of legitimate clients to receive
|
|||
|
service. Malicious requestors who succeed in establishing
|
|||
|
connections, but who then send invalid queries, partial queries, or
|
|||
|
no queries at all also can exhaust a server's pool of available
|
|||
|
connections.
|
|||
|
|
|||
|
Two modes of operation exist for this protocol, insecure mode and
|
|||
|
secure mode. These two modes exist because there are essentially two
|
|||
|
models of use for this protocol. In one model, the requestor of an
|
|||
|
Active Leasequery is connected to the Internet in an arbitrary
|
|||
|
location, and the information transmitted needs to be protected
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 24]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
during transmission. In addition, the identities of both requestor
|
|||
|
and server need to be verified. For this model of use, the secure
|
|||
|
mode is appropriate.
|
|||
|
|
|||
|
The other model of use is where the requestor of the Active
|
|||
|
Leasequery resides in a network element that is essentially "next to"
|
|||
|
the element containing the DHCP server, and both of these elements
|
|||
|
are inside a protected environment. For this model, the insecure
|
|||
|
mode is sufficient since there are other, more global, protections in
|
|||
|
place to protect this information.
|
|||
|
|
|||
|
When operating in secure mode, TLS [RFC5246] is used to secure the
|
|||
|
connection. The recommendations in [RFC7525] apply when negotiating
|
|||
|
a TLS connection.
|
|||
|
|
|||
|
Operating in insecure mode (see Section 8.1) does not provide any way
|
|||
|
to validate the authorization of requestors of a DHCPV4 Active
|
|||
|
Leasequery request.
|
|||
|
|
|||
|
Servers SHOULD offer configuration parameters to limit the sources of
|
|||
|
incoming connections through validation and use of the digital
|
|||
|
certificates presented to create a TLS connection. They SHOULD also
|
|||
|
limit the number of accepted connections and limit the period of time
|
|||
|
during which an idle connection will be left open.
|
|||
|
|
|||
|
The data acquired by using an Active Leasequery is subject to the
|
|||
|
same potential abuse as the data held by the DHCPv4 server from which
|
|||
|
it was acquired and SHOULD be secured by mechanisms as strong as
|
|||
|
those used for the data held by that DHCPv4 server. The data
|
|||
|
acquired by using an Active Leasequery SHOULD be deleted as soon as
|
|||
|
possible after the use for which it was acquired has passed.
|
|||
|
|
|||
|
Servers that implement the Bulk Leasequery protocol [RFC6926] but do
|
|||
|
not implement the Active Leasequery protocol SHOULD implement the
|
|||
|
update to [RFC6926] discussed in Section 8.1.1.
|
|||
|
|
|||
|
10. IANA Considerations
|
|||
|
|
|||
|
IANA has assigned the following new DHCP message types from the
|
|||
|
registry "DHCP Message Type 53 Values" maintained at
|
|||
|
<http://www.iana.org/assignments/bootp-dhcp-parameters>:
|
|||
|
|
|||
|
1. A dhcp-message-type of 16 for DHCPACTIVELEASEQUERY.
|
|||
|
|
|||
|
2. A dhcp-message-type of 17 for DHCPLEASEQUERYSTATUS.
|
|||
|
|
|||
|
3. A dhcp-message-type of 18 for DHCPTLS.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 25]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
IANA has assigned the following new DHCP status codes from the
|
|||
|
registry "DHCP Status Code Type 151 Values" maintained at
|
|||
|
<http://www.iana.org/assignments/bootp-dhcp-parameters>:
|
|||
|
|
|||
|
+----------------------+-------------+
|
|||
|
| Name | Status-Code |
|
|||
|
+----------------------+-------------+
|
|||
|
| DataMissing | 5 |
|
|||
|
| ConnectionActive | 6 |
|
|||
|
| CatchUpComplete | 7 |
|
|||
|
| TLSConnectionRefused | 8 |
|
|||
|
+----------------------+-------------+
|
|||
|
|
|||
|
11. References
|
|||
|
|
|||
|
11.1. Normative References
|
|||
|
|
|||
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
|||
|
Requirement Levels", BCP 14, RFC 2119,
|
|||
|
DOI 10.17487/RFC2119, March 1997,
|
|||
|
<http://www.rfc-editor.org/info/rfc2119>.
|
|||
|
|
|||
|
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol",
|
|||
|
RFC 2131, DOI 10.17487/RFC2131, March 1997,
|
|||
|
<http://www.rfc-editor.org/info/rfc2131>.
|
|||
|
|
|||
|
[RFC4388] Woundy, R. and K. Kinnear, "Dynamic Host Configuration
|
|||
|
Protocol (DHCP) Leasequery", RFC 4388,
|
|||
|
DOI 10.17487/RFC4388, February 2006,
|
|||
|
<http://www.rfc-editor.org/info/rfc4388>.
|
|||
|
|
|||
|
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
|
|||
|
(TLS) Protocol Version 1.2", RFC 5246,
|
|||
|
DOI 10.17487/RFC5246, August 2008,
|
|||
|
<http://www.rfc-editor.org/info/rfc5246>.
|
|||
|
|
|||
|
[RFC6926] Kinnear, K., Stapp, M., Desetti, R., Joshi, B., Russell,
|
|||
|
N., Kurapati, P., and B. Volz, "DHCPv4 Bulk Leasequery",
|
|||
|
RFC 6926, DOI 10.17487/RFC6926, April 2013,
|
|||
|
<http://www.rfc-editor.org/info/rfc6926>.
|
|||
|
|
|||
|
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
|
|||
|
"Recommendations for Secure Use of Transport Layer
|
|||
|
Security (TLS) and Datagram Transport Layer Security
|
|||
|
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
|
|||
|
2015, <http://www.rfc-editor.org/info/rfc7525>.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 26]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
11.2. Informative References
|
|||
|
|
|||
|
[RFC951] Croft, W. and J. Gilmore, "Bootstrap Protocol", RFC 951,
|
|||
|
DOI 10.17487/RFC0951, September 1985,
|
|||
|
<http://www.rfc-editor.org/info/rfc951>.
|
|||
|
|
|||
|
[RFC1542] Wimer, W., "Clarifications and Extensions for the
|
|||
|
Bootstrap Protocol", RFC 1542, DOI 10.17487/RFC1542,
|
|||
|
October 1993, <http://www.rfc-editor.org/info/rfc1542>.
|
|||
|
|
|||
|
[RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
|
|||
|
Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997,
|
|||
|
<http://www.rfc-editor.org/info/rfc2132>.
|
|||
|
|
|||
|
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
|
|||
|
Internet Protocol", RFC 4301, DOI 10.17487/RFC4301,
|
|||
|
December 2005, <http://www.rfc-editor.org/info/rfc4301>.
|
|||
|
|
|||
|
[RFC7414] Duke, M., Braden, R., Eddy, W., Blanton, E., and A.
|
|||
|
Zimmermann, "A Roadmap for Transmission Control Protocol
|
|||
|
(TCP) Specification Documents", RFC 7414,
|
|||
|
DOI 10.17487/RFC7414, February 2015,
|
|||
|
<http://www.rfc-editor.org/info/rfc7414>.
|
|||
|
|
|||
|
Acknowledgments
|
|||
|
|
|||
|
The ideas in this document came in part from work in DHCPv6 and
|
|||
|
DHCPv4 Bulk Leasequery as well as from in depth discussions between
|
|||
|
the authors. Useful review comments by Ted Lemon, Scott Bradner,
|
|||
|
Francis Dupont, and Stephen Farrell on drafts for DHCPv6 Active
|
|||
|
Leasequery were also included in this draft. Brian Haberman's review
|
|||
|
brought this document into much closer alignment with DHCPv6 Active
|
|||
|
Leasequery. Additional reviews by Alissa Cooper, Spencer Dawkins,
|
|||
|
Christer Holmberg, and Ben Campbell added clarity to this document.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 27]
|
|||
|
|
|||
|
RFC 7724 Active DHCPv4 Lease Query December 2015
|
|||
|
|
|||
|
|
|||
|
Authors' Addresses
|
|||
|
|
|||
|
Kim Kinnear
|
|||
|
Cisco Systems, Inc.
|
|||
|
1414 Massachusetts Ave
|
|||
|
Boxborough, MA 01719
|
|||
|
United States
|
|||
|
|
|||
|
Email: kkinnear@cisco.com
|
|||
|
|
|||
|
|
|||
|
Mark Stapp
|
|||
|
Cisco Systems, Inc.
|
|||
|
1414 Massachusetts Ave
|
|||
|
Boxborough, MA 01719
|
|||
|
United States
|
|||
|
|
|||
|
Email: mjs@cisco.com
|
|||
|
|
|||
|
|
|||
|
Bernie Volz
|
|||
|
Cisco Systems, Inc.
|
|||
|
1414 Massachusetts Ave
|
|||
|
Boxborough, MA 01719
|
|||
|
United States
|
|||
|
|
|||
|
Email: volz@cisco.com
|
|||
|
|
|||
|
|
|||
|
Neil Russell
|
|||
|
Staples
|
|||
|
500 Staples Drive
|
|||
|
Framingham, MA 01702
|
|||
|
United States
|
|||
|
|
|||
|
Email: neil.e.russell@gmail.com
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Kinnear, et al. Standards Track [Page 28]
|
|||
|
|