mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
added new drafts and removed obsolete ones
This commit is contained in:
@@ -1,828 +0,0 @@
|
||||
Network Working Group Yakov Rekhter
|
||||
INTERNET-DRAFT Mark Stapp
|
||||
Cisco Systems
|
||||
|
||||
June 1999
|
||||
Expires
|
||||
December 1999
|
||||
|
||||
Interaction between DHCP and DNS
|
||||
<draft-ietf-dhc-dhcp-dns-10.txt>
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This document is an Internet-Draft and is in full conformance with
|
||||
all provisions of Section 10 of RFC2026.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF), its areas, and its working groups. Note that
|
||||
other groups may also distribute working documents as Internet-
|
||||
Drafts.
|
||||
|
||||
Internet-Drafts are draft documents valid for a maximum of six months
|
||||
and may be updated, replaced, or obsoleted by other documents at any
|
||||
time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
The list of current Internet-Drafts can be accessed at
|
||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
||||
|
||||
The list of Internet-Draft Shadow Directories can be accessed at
|
||||
http://www.ietf.org/shadow.html.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (1999). All Rights Reserved.
|
||||
|
||||
Abstract
|
||||
|
||||
DHCP provides a powerful mechanism for IP host configuration.
|
||||
However, the configuration capability provided by DHCP does not
|
||||
include updating DNS, and specifically updating the name to address
|
||||
and address to name mappings maintained in the DNS.
|
||||
|
||||
This document specifies how DHCP clients and servers should use the
|
||||
Dynamic DNS Updates mechanism in [RFC2136] to update the DNS name to
|
||||
address and address to name mappings so that the mappings for DHCP
|
||||
clients will be consistent with the IP addresses that the clients
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 1]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
acquire via DHCP.
|
||||
|
||||
1. 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 RFC 2119 [RFC2119].
|
||||
|
||||
2. Interaction between DHCP and DNS
|
||||
|
||||
DNS [RFC1034, RFC1035] maintains (among other things) the information
|
||||
about mapping between hosts' Fully Qualified Domain Names (FQDNs)
|
||||
[RFC1594] and IP addresses assigned to the hosts. The information is
|
||||
maintained in two types of Resource Records (RRs): A and PTR. The A
|
||||
RR contains a mapping from an FQDN to an IP address; the PTR RR con-
|
||||
tains a mapping from an IP address to a FQDN. The Dynamic DNS
|
||||
Updates specification [RFC2136] describes a mechanism that enables
|
||||
DNS information to be updated over a network.
|
||||
|
||||
DHCP [RFC2131] provides a mechanism by which a host (a DHCP client)
|
||||
could acquire certain configuration information, and specifically its
|
||||
IP address(es). However, DHCP does not provide any mechanisms to
|
||||
update the DNS RRs that contain the information about mapping between
|
||||
the host's FQDN and its IP address(es) (A and PTR RRs). Thus the
|
||||
information maintained by DNS for a DHCP client may be incorrect - a
|
||||
host (the client) could acquire its address by using DHCP, but the A
|
||||
RR for the host's FQDN wouldn't reflect the address that the host
|
||||
acquired, and the PTR RR for the acquired address wouldn't reflect
|
||||
the host's FQDN.
|
||||
|
||||
The Dynamic DNS Update protocol can be used to maintain consistency
|
||||
between the information stored in the A and PTR RRs and the actual
|
||||
address assignment done via DHCP. When a host with a particular FQDN
|
||||
acquires its IP address via DHCP, the A RR associated with the host's
|
||||
FQDN would be updated (by using the Dynamic DNS Updates protocol) to
|
||||
reflect the new address. Likewise, when an IP address gets assigned
|
||||
to a host with a particular FQDN, the PTR RR associated with this
|
||||
address would be updated (using the Dynamic DNS Updates protocol) to
|
||||
reflect the new FQDN.
|
||||
|
||||
Although this document refers to the A and PTR DNS record types and
|
||||
to DHCP assignment of IPv4 addresses, the same procedures and
|
||||
requirements should apply for updates to the analogous RR types that
|
||||
are used when clients are assigned IPv6 addresses via DHCPv6.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 2]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
3. Models of operation
|
||||
|
||||
When a DHCP client acquires a new address, both the A RR (for the
|
||||
client's FQDN) and the PTR RR (for the acquired address) have to be
|
||||
updated. Therefore, two separate Dynamic DNS Update transactions
|
||||
occur. Acquiring an address via DHCP involves two entities: a DHCP
|
||||
client and a DHCP server. In principle each of these entities could
|
||||
perform none, one, or both of the transactions. However, upon reflec-
|
||||
tion one could realize that not all permutations make sense. This
|
||||
document covers the possible design permutations:
|
||||
|
||||
(1) DHCP client updates the A RR, DHCP server updates the PTR RR
|
||||
|
||||
(2) DHCP server updates both the A and the PTR RRs
|
||||
|
||||
One could observe that the only difference between these two cases is
|
||||
whether the FQDN to IP address mapping is updated by a DHCP client or
|
||||
by a DHCP server. The IP address to FQDN mapping is updated by a DHCP
|
||||
server in both cases.
|
||||
|
||||
The reason these two are important, while others are unlikely, has to
|
||||
do with authority over the respective DNS domain names. A client may
|
||||
be given authority over mapping its own A RRs, or that authority may
|
||||
be restricted to a server to prevent the client from listing arbi-
|
||||
trary addresses or associating its address with arbitrary domain
|
||||
names. In all cases, the only reasonable place for the authority over
|
||||
the PTR RRs associated with the address is in the DHCP server that
|
||||
allocates them.
|
||||
|
||||
In any case, whether a site permits all, some, or no DHCP servers and
|
||||
clients to perform DNS updates into the zones which it controls is
|
||||
entirely a matter of local administrative policy. This document does
|
||||
not require any specific administrative policy, and does not propose
|
||||
one. The range of possible policies is very broad, from sites where
|
||||
only the DHCP servers have been given credentials that the DNS
|
||||
servers will accept, to sites where each individual DHCP client has
|
||||
been configured with credentials which allow the client to modify its
|
||||
own domain name. Compliant implementations will support some or all
|
||||
of these possibilities.
|
||||
|
||||
This document describes a new DHCP option which a client can use to
|
||||
convey all or part of its domain name to a DHCP server. Site-specific
|
||||
policy determines whether DHCP servers use the names that clients
|
||||
offer or not, and what DHCP servers should do in cases where clients
|
||||
do not supply domain names.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 3]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
3.1. Client FQDN Option
|
||||
|
||||
To update the IP address to FQDN mapping a DHCP server needs to know
|
||||
the FQDN of the client to which the server leases the address. To
|
||||
allow the client to convey its FQDN to the server this document
|
||||
defines a new DHCP option, called "Client FQDN". The FQDN Option also
|
||||
contains Flags and RCode fields which DHCP servers can use to convey
|
||||
information about DNS updates to clients.
|
||||
|
||||
Clients MAY send the FQDN option, setting appropriate Flags values,
|
||||
in both their DISCOVER and REQUEST messages. If a client sends the
|
||||
FQDN option in its DISCOVER message, it MUST send the option in sub-
|
||||
sequent REQUEST messages.
|
||||
|
||||
The code for this option is 81. Its minimum length is 4.
|
||||
|
||||
Code Len Flags RCODE1 RCODE2 Domain Name
|
||||
+------+------+------+------+------+------+--
|
||||
| 81 | n | | | | ...
|
||||
+------+------+------+------+------+------+--
|
||||
|
||||
3.1.1. The Flags Field
|
||||
|
||||
This figure presents the format of the Flags field, which is one byte
|
||||
long:
|
||||
|
||||
0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+
|
||||
| MBZ |E|O|S|
|
||||
+-+-+-+-+-+-+-+-+
|
||||
|
||||
When a client sends the FQDN option in its DHCPDISCOVER and/or
|
||||
DHCPREQUEST messages, it sets the right-most bit (labelled "S") to
|
||||
indicate that it will not perform any Dynamic DNS updates, and that
|
||||
it expects the DHCP server to perform any FQDN-to-IP (the A RR) DNS
|
||||
update on its behalf. If this bit is clear, the client indicates that
|
||||
it intends to perform its own FQDN-to-IP mapping update.
|
||||
|
||||
If a DHCP server intends to take responsibility for the A RR update
|
||||
whether or not the client sending the FQDN option has set the "S"
|
||||
bit, it sets both the "O" bit and the "S" bit, and sends the FQDN
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 4]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
option in its corresponding DHCPOFFER and/or DHCPACK messages.
|
||||
|
||||
The data in the Domain Name field may appear in one of two formats:
|
||||
ASCII, or DNS-style binary encoding (without compression, of course).
|
||||
A client which sends the FQDN option sets the "E" bit to indicate
|
||||
that the data in the Domain Name field is DNS-encoded, as described
|
||||
in [RFC1035].
|
||||
|
||||
The remaining bits in the Flags field are reserved for future assign-
|
||||
ment. DHCP clients and servers which send the FQDN option MUST set
|
||||
the MBZ bits to 0, and they MUST ignore values in the part of the
|
||||
field labelled "MBZ".
|
||||
|
||||
3.1.2. The RCODE Fields
|
||||
|
||||
The RCODE1 and RCODE2 fields are used by a DHCP server to indicate to
|
||||
a DHCP client the Response Code from the an A RR Dynamic DNS Update
|
||||
performed on the client's behalf. The server also uses these fields
|
||||
to indicate whether it has attempted such an update before sending
|
||||
the DHCPACK message. Each of these fields is one byte long.
|
||||
|
||||
3.1.3. The Domain Name Field
|
||||
|
||||
The Domain Name part of the option carries the FQDN of a DHCP client.
|
||||
A client may be configured with a fully-qualified domain name, or
|
||||
with a partial name that is not fully-qualified. If a client knows
|
||||
only part of its name, it MAY send a single label, indicating that it
|
||||
knows part of the name but does not necessarily know the zone in
|
||||
which the name is to be embedded. The data in the Domain Name field
|
||||
may appear in one of two formats: ASCII (with no terminating NULL),
|
||||
or DNS encoding as specified in [RFC1035]. If the DHCP client wishes
|
||||
to use DNS encoding, it MUST set the third-from-rightmost bit in the
|
||||
Flags field (the "E" bit); if it uses ASCII encoding, it must clear
|
||||
that Flags bit.
|
||||
|
||||
A DHCP client that can only send a single label using ASCII encoding
|
||||
includes a series of ASCII characters in the Domain Name field,
|
||||
excluding the "." (dot) character. The client SHOULD follow the
|
||||
character-set recommendations of [RFC1034] and [RFC1035]. A client
|
||||
using DNS encoding sends a single label as a single byte count, fol-
|
||||
lowed by that number of bytes of data, without a terminal reference
|
||||
to the root.
|
||||
|
||||
3.2. DHCP Client behavior
|
||||
|
||||
The following describes the behavior of a DHCP client that implements
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 5]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
the Client FQDN option.
|
||||
|
||||
If a client that owns/maintains its own FQDN wants to be responsible
|
||||
for updating the FQDN to IP address mapping for the FQDN and
|
||||
address(es) used by the client, then the client MUST include the
|
||||
Client FQDN option in the DHCPREQUEST message originated by the
|
||||
client. A DHCP client MAY choose to include the Client FQDN option in
|
||||
its DISCOVER messages as well as its REQUEST messages. The rightmost
|
||||
bit in the Flags field in the option MUST be set to 0. Once the
|
||||
client's DHCP configuration is completed (the client receives a
|
||||
DHCPACK message, and successfully completes a final check on the
|
||||
parameters passed in the message), the client SHOULD originate an
|
||||
update for the A RR (associated with the client's FQDN). The update
|
||||
MUST be originated following the procedures described in section 3.4.
|
||||
If the DHCP server from which the client is requesting a lease
|
||||
includes the FQDN option in its ACK message, and if the server sets
|
||||
both the "S" and the "O" bits in the option's Flags field, the client
|
||||
MUST NOT initiate an update for the name in the Domain Name field.
|
||||
|
||||
A client can choose to delegate the responsibility for updating the
|
||||
FQDN to IP address mapping for the FQDN and address(es) used by the
|
||||
client to the server. In order to inform the server of this choice,
|
||||
the client SHOULD include the Client FQDN option in its DHCPREQUEST
|
||||
message. The rightmost (or "S") bit in the Flags field in the option
|
||||
MUST be set to 1. A client which delegates this responsibility MUST
|
||||
NOT attempt to perform a Dynamic DNS update for the name in the
|
||||
Domain Name field of the FQDN option. The client MAY supply an FQDN
|
||||
in the Client FQDN option, or it MAY supply a single label (the
|
||||
most-specific label), or it MAY leave that field empty as a signal to
|
||||
the server to generate an FQDN for the client in any manner the
|
||||
server chooses.
|
||||
|
||||
Since there is a possibility that the DHCP server may be configured
|
||||
to complete or replace a domain name that the client was configured
|
||||
to send, the client might find it useful to send the FQDN option in
|
||||
its DISCOVER messages. If the DHCP server returns different Domain
|
||||
Name data in its OFFER message, the client could use that data in
|
||||
performing its own eventual A RR update, or in forming the FQDN
|
||||
option that it sends in its REQUEST message. There is no requirement
|
||||
that the client send identical FQDN option data in its DISCOVER and
|
||||
REQUEST messages. In particular, if a client has sent the FQDN option
|
||||
to its server, and the configuration of the client changes so that
|
||||
its notion of its domain name changes, it should send the new data in
|
||||
an FQDN option when it communicates with the server again. This may
|
||||
allow the DHCP server to update the name associated with the PTR
|
||||
record, and, if the server updated the A record representing the
|
||||
client, to delete that record and attempt an update for the client's
|
||||
current domain name.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 6]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
A client which delegates the responsibility for updating the FQDN to
|
||||
IP address mapping to a server might not receive any indication
|
||||
(either positive or negative) about the status of the update from the
|
||||
server. The client MAY use a DNS query to check whether the mapping
|
||||
is updated.
|
||||
|
||||
A client MUST set the RCODE1 and RCODE2 fields in the Client FQDN
|
||||
option to 0 when sending the option.
|
||||
|
||||
If a client releases its lease prior to the lease expiration time and
|
||||
the client is responsible for updating its A RR(s), the client SHOULD
|
||||
delete the A RR (following the procedures described in [RFC2136])
|
||||
associated with the leased address before sending a DHCPRELEASE mes-
|
||||
sage. Similarly, if a client was responsible for updating its A RR,
|
||||
but is unable to renew its lease, the client SHOULD attempt to delete
|
||||
the A RR before its lease expires. A client which has not been able
|
||||
to delete an A RR which it added (because it has lost its IP address)
|
||||
SHOULD add an entry to its logfile and/or notify its administrator.
|
||||
|
||||
3.3. DHCP Server behavior
|
||||
|
||||
When a server receives a DHCPREQUEST message from a client, if the
|
||||
message contains the Client FQDN option, and the server replies to
|
||||
the message with a DHCPACK message, the server SHOULD originate an
|
||||
update for the PTR RR associated with the address leased to the
|
||||
client if the server is configured to perform DNS updates. The update
|
||||
MUST be originated following the procedures described in Section 3.4.
|
||||
The server MAY complete the update before the server sends the
|
||||
DHCPACK message to the client. In this case the RCODE from the update
|
||||
[RFC2136] MUST be carried to the client in the RCODE1 field of the
|
||||
Client FQDN option in the DHCPACK message. Alternatively, the server
|
||||
MAY send the DHCPACK message to the client without waiting for the
|
||||
update to be completed. In this case the RCODE1 field of the Client
|
||||
FQDN option in the DHCPACK message MUST be set to 255. The choice
|
||||
between the two alternatives is entirely determined by the configura-
|
||||
tion of the DHCP server. Servers SHOULD support both configuration
|
||||
options.
|
||||
|
||||
In addition, if the Client FQDN option carried in the DHCPREQUEST
|
||||
message has the "S" bit in its Flags field set, then the server MAY
|
||||
originate an update for the A RR (associated with the FQDN carried in
|
||||
the option) if it is configured to do so by the site's administrator,
|
||||
and if it has the necessary credentials. The server MAY be configured
|
||||
to use the name supplied by the client, or it MAY be configured to
|
||||
modify the supplied name, or substitute a different name.
|
||||
|
||||
The update MUST be originated following the procedures described in
|
||||
Section 3.4. The server MAY originate the update before the server
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 7]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
sends the DHCPACK message to the client. In this case the RCODE from
|
||||
the update [RFC2136] MUST be carried to the client in the RCODE2
|
||||
field of the Client FQDN option in the DHCPACK message. Alterna-
|
||||
tively the server MAY send the DHCPACK message to the client without
|
||||
waiting for the update to be completed. In this case the RCODE2 field
|
||||
of the Client FQDN option in the DHCPACK message MUST be set to 255.
|
||||
The choice between the two alternatives is entirely up to the DHCP
|
||||
server. In either case, if the server intends to perform the DNS
|
||||
update and the client's REQUEST message included the FQDN option, the
|
||||
server SHOULD include the FQDN option in its ACK message, and MUST
|
||||
set the "S" bit in the option's Flags field.
|
||||
|
||||
Even if the Client FQDN option carried in the DHCPREQUEST message has
|
||||
the "S" bit its Flags field clear (indicating that the client wants
|
||||
to update the A RR), the server MAY, be configured byt the local
|
||||
administrator to update the A RR on the client's behalf. A server
|
||||
which is configured to override the client's preference SHOULD
|
||||
include an FQDN option in its ACK message, and MUST set both the "O"
|
||||
and "S" bits in the FQDN option's Flags field. The update MUST be
|
||||
originated following the procedures described in Section 3.4. The
|
||||
server MAY originate the update before the server sends the DHCPACK
|
||||
message to the client. In this case the RCODE from the update
|
||||
[RFC2136] MUST be carried to the client in the RCODE2 field of the
|
||||
Client FQDN option in the DHCPACK message. Alternatively, the server
|
||||
MAY send the DHCPACK message to the client without waiting for the
|
||||
update to be completed. In this case the RCODE2 field of the Client
|
||||
FQDN option in the DHCPACK message MUST be set to 255. Whether the
|
||||
DNS update occurs before or after the DHCPACK is sent is entirely up
|
||||
to the DHCP server's configuration.
|
||||
|
||||
When a server receives a DHCPREQUEST message from a client, and the
|
||||
message contains the Client FQDN option, the server MUST ignore the
|
||||
values carried in the RCODE1 and RCODE2 fields of the option.
|
||||
|
||||
When a DHCP server sends the Client FQDN option to a client in the
|
||||
DHCPACK message, the server MUST copy the Domain Name field from the
|
||||
Client FQDN option that the client sent to the server in the DHCPRE-
|
||||
QUEST message. If, however, the client sent only a single label, or
|
||||
if the DHCP server has been configured to assign the client a name
|
||||
different from the one the client has sent, the server SHOULD send
|
||||
its notion of the complete FQDN for the client. The server MUST use
|
||||
the same encoding format (ASCII or DNS-encoding) that the client used
|
||||
in the FQDN option in its DHCPREQUEST, and MUST set the "E" bit in
|
||||
the option's Flags field accordingly.
|
||||
|
||||
If the DHCPREQUEST message received by a DHCP server from a DHCP
|
||||
client doesn't carry the Client FQDN option (e.g., the client doesn't
|
||||
implement the Client FQDN option), and the DHCP client acquires its
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 8]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
FQDN from a DHCP server (as part of a normal DHCP transaction), then
|
||||
the server MAY be configured to update both A and PTR RRs. Any
|
||||
updates MUST be originated following the procedures described in Sec-
|
||||
tion 3.4. In this case, the server MAY NOT wish to return the FQDN
|
||||
option to a client which may not be able to understand it. If it can,
|
||||
the DHCP server MAY (optionally) return the host part of the domain
|
||||
name that it will use for the client in the host-name DHCP option
|
||||
(defined in [RFC2132]). Note that it may not be possible to con-
|
||||
sistently encode some domain name data in the format specified by the
|
||||
host-name option.
|
||||
|
||||
If a server detects that a lease on an address that the server leases
|
||||
to a client has expired or has been released by the client, the
|
||||
server SHOULD delete the PTR RR which it associated with the address
|
||||
via DNS Dynamic Update. In addition, if the server added an A RR on
|
||||
behalf of the client, the server SHOULD also delete the A RR. The
|
||||
deletion MUST follow the procedures described in Section 3.4.
|
||||
|
||||
If a server terminates a lease on an address prior to the lease's
|
||||
expiration time, for instance by sending a DHCPNAK to a client, the
|
||||
server SHOULD delete the PTR RR which it associated with the address
|
||||
via DNS Dynamic Update. In addition, if the server took responsibil-
|
||||
ity for the client's A RR , the server SHOULD also delete that A RR.
|
||||
The deletion MUST follow the procedures described in Section 3.4.
|
||||
|
||||
3.4. Procedures for performing DNS updates
|
||||
|
||||
There are two principal issues that need to be addressed concerning A
|
||||
RR DNS updates:
|
||||
|
||||
o Name Collisions
|
||||
|
||||
If the entity updating the A RR (either the DHCP client or DHCP
|
||||
server) attempts to perform a DNS update to a domain name that
|
||||
has an A RR which is already in use by a different DHCP client,
|
||||
what should be done? Similarly, should a DHCP client or server
|
||||
update a domain name which has an A RR that has been configured
|
||||
by an administrator? In either of these cases, the domain name
|
||||
in question would either have an additional A RR, or would have
|
||||
its original A RR replaced by the new record. Either of these
|
||||
effects may be considered undesirable in some sites. This
|
||||
specification describes behavior designed to prevent these
|
||||
undesirable effects, and requires that implementations make this
|
||||
behavior the default. In some scenarios these name collisions
|
||||
are unlikely, in some scenarios they are very likely:
|
||||
|
||||
1. Client updates A RR, uses DNSSEC: Name collisions in this
|
||||
scenario are unlikely (though not impossible), since for the
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 9]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
client to use DNSSEC, it has already received credentials
|
||||
specific to the name it desires to use. This implies that
|
||||
the name has already been allocated (through some
|
||||
implementation- or organization-specific procedure, and
|
||||
presumably uniquely) to that client.
|
||||
|
||||
2. Client updates A RR, uses some form of TSIG: Name colli-
|
||||
sions in this scenario are possible, since the credentials
|
||||
necessary for the client to update DNS are not necessarily
|
||||
name-specific. Thus, for the client to be attempting to
|
||||
update a unique name requires the existence of some adminis-
|
||||
trative procedure to ensure client configuration with unique
|
||||
names.
|
||||
|
||||
3. Server updates the A RR, uses a name for the client which
|
||||
is known to the server: Name collisions in this scenario are
|
||||
likely unless prevented by the server's name configuration
|
||||
procedures. See Section 5 for security issues with this form
|
||||
of deployment.
|
||||
|
||||
4. Server updates the A RR, uses a name supplied by the
|
||||
client: Name collisions in this scenario are highly likely,
|
||||
even with administrative procedures designed to prevent them.
|
||||
(This scenario is a popular one in real-world deployments in
|
||||
many types of organizations.) See Section 5 for security
|
||||
issues with this type of deployment.
|
||||
|
||||
Scenarios 3 and 4 are much more attractive given some form of
|
||||
DHCP Authentication, but the difficulties remain.
|
||||
|
||||
Scenarios 2, 3, and 4 rely on administrative procedures to
|
||||
ensure name uniqueness for DNS updates, and these procedures may
|
||||
break down. Experience has shown that, in fact, these pro-
|
||||
cedures will break down at least occasionally. The question is
|
||||
what to do when these procedures break down or, for example in
|
||||
scenario #4, may not even exist.
|
||||
|
||||
In all cases of name collisions, the desire is to offer two
|
||||
modes of operation to the administrator of the combined DHCP-DNS
|
||||
capability: first-update-wins (i.e., the first updating entity
|
||||
gets the name) or most-recent-update-wins (i.e., the last updat-
|
||||
ing entity for a name gets the name).
|
||||
|
||||
o Multiple DHCP servers
|
||||
|
||||
If multiple DHCP servers are able to update the same DNS zones,
|
||||
or if DHCP servers are performing A RR updates on behalf of DHCP
|
||||
clients, and more than one DHCP server may be able to serve
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 10]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
addresses to the same population of DHCP clients, the DHCP
|
||||
servers should be able to provide reasonable DNS name update
|
||||
behavior for DHCP clients.
|
||||
|
||||
The solution to both of these problems is for the updating entities
|
||||
(either DHCP clients or DHCP servers) to be able to cooperate when
|
||||
updating DNS A RRs.
|
||||
|
||||
Specifically, a KEY RR, described in [RFC2535] is used to associate
|
||||
client ownership information with a DNS name and the A RR associated
|
||||
with that name. When either a client or server adds an A RR for a
|
||||
client, it also adds a KEY RR which specifies a unique client iden-
|
||||
tity (based on a "client specifier" created from the client's
|
||||
client-id or MAC address: see Appendix A). In this model, only one A
|
||||
RR is associated with a given DNS name at a time.
|
||||
|
||||
By associating this ownership information with each A RR, cooperating
|
||||
DNS updating entities may determine whether their client is the first
|
||||
or last updater of the name (and implement the appropriately config-
|
||||
ured administrative policy), and DHCP clients which currently have a
|
||||
host name may move from one DHCP server to another without losing
|
||||
their DNS name.
|
||||
|
||||
See Appendix A for the details of the use of the KEY RR for this pur-
|
||||
pose.
|
||||
|
||||
The specific algorithms utilizing the KEY RR to signal client owner-
|
||||
ship are explained below. The algorithms only work in the case where
|
||||
the updating entities all cooperate -- this approach is advisory only
|
||||
and does not substitute for DNS security, nor is it replaced by DNS
|
||||
security.
|
||||
|
||||
3.4.1. Adding A RRs to DNS
|
||||
|
||||
When a DHCP client or server intends to update an A RR, it first
|
||||
prepares a DNS UPDATE query which includes as a prerequisite the
|
||||
assertion that the name does not exist. The update section of the
|
||||
query attempts to add the new name and its IP address mapping and the
|
||||
KEY RR with its unique client-identity.
|
||||
|
||||
If this update operation succeeds, the updater can conclude that it
|
||||
has added a new name whose only RRs are the A and KEY RR records.
|
||||
The A RR update is now complete (and a client updater is finished,
|
||||
while a server would then proceed to perform a PTR RR update).
|
||||
|
||||
If the first update operation fails with YXDOMAIN, the updater can
|
||||
conclude that the intended name is in use. The updater then attempts
|
||||
to confirm that the DNS name is not being used by some other host.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 11]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
The updater prepares a second UPDATE query in which the prerequisite
|
||||
is that the desired name has attached to it a KEY RR whose contents
|
||||
match the client identity (see Appendix A). The update section of
|
||||
this query deletes the existing A records on the name, and adds the A
|
||||
record that matches the DHCP binding and the KEY RR with the client
|
||||
identity.
|
||||
|
||||
If this query succeeds, the updater can conclude that the current
|
||||
client was the last user of this name, and that the name now contains
|
||||
the updated A RR. The A RR update is now complete (and a client
|
||||
updater is finished, while a server would then proceed to perform a
|
||||
PTR RR update).
|
||||
|
||||
If the second query fails with NXRRSET, the updater must conclude
|
||||
that the client's desired name is in use by another host. At this
|
||||
juncture, the updater can decide (based on some administrative confi-
|
||||
guration outside of the scope of this document) whether to let the
|
||||
existing owner of the name keep that name, and to (possibly) perform
|
||||
some name disambiguation operation on behalf of the current client,
|
||||
or to 'take-over' the name on behalf of the current client.
|
||||
|
||||
DISCUSSION:
|
||||
|
||||
The updating entity may be configured to allow the existing owner
|
||||
to keep the name, and to perform disambiguation on the name of the
|
||||
current client in order to attempt to generate a similar but
|
||||
unique name for the current client. In this case, once such a
|
||||
similar name has been generated, the updating entity should res-
|
||||
tart the process of adding an A RR as specified in this section.
|
||||
|
||||
3.4.2. Adding PTR RR Entries to DNS
|
||||
|
||||
The DHCP server submits a DNS query which deletes all of the PTR RRs
|
||||
associated with the lease IP address, and adds a PTR RR whose data is
|
||||
the client's (possibly disambiguated) host name. The server also adds
|
||||
a KEY RR whose data is the client's client-identity as described in
|
||||
Appendix A.
|
||||
|
||||
3.4.3. Removing Entries from DNS
|
||||
|
||||
The first rule in removing DNS entries is be sure that an entity
|
||||
removing a DNS entry is only removing an entry for which it is
|
||||
responsible.
|
||||
|
||||
When a lease expires or a DHCP client issues a DHCPRELEASE request,
|
||||
the DHCP server SHOULD delete the PTR RR that matches the DHCP bind-
|
||||
ing, if one was successfully added. The server's update query SHOULD
|
||||
assert that the name in the PTR record matches the name of the client
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 12]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
whose lease has expired or been released.
|
||||
|
||||
The entity chosen to handle the A record for this client (either the
|
||||
client or the server) SHOULD delete the A and KEY records that were
|
||||
added when the lease was made to the client.
|
||||
|
||||
In order to perform this delete, the updater prepares an UPDATE query
|
||||
which contains two prerequisites. The first prerequisite asserts
|
||||
that the KEY RR exists whose data is the client identity described in
|
||||
Appendix A. The second prerequisite asserts that the data in the A RR
|
||||
contains the IP address of the lease that has expired or been
|
||||
released.
|
||||
|
||||
If the query's prerequisites fail, the updater MUST NOT delete the
|
||||
DNS name. It may be that the host whose lease on the server has
|
||||
expired has moved to another network and obtained a lease from a dif-
|
||||
ferent server, which has caused the client's A RR to be replaced. It
|
||||
may also be that some other client has been configured with a name
|
||||
that matches the name of the DHCP client, and the administrative pol-
|
||||
icy at the site was that the last client to specify the name would
|
||||
get the name. In this case, the KEY RR will no longer match the
|
||||
updater's notion of the client-identity of the host pointed to by the
|
||||
DNS name.
|
||||
|
||||
4. Updating other RRs
|
||||
|
||||
The procedures described in this document only cover updates to the A
|
||||
and PTR RRs. Updating other types of RRs is outside the scope of this
|
||||
document.
|
||||
|
||||
5. Security Considerations
|
||||
|
||||
Whether the client may be responsible for updating the FQDN to IP
|
||||
address mapping, or whether the this responsibility lies with the
|
||||
DHCP server is a site-local matter. The choice between the two alter-
|
||||
natives may be based on a particular security model that is used with
|
||||
the Dynamic DNS Update protocol (e.g., only a client may have suffi-
|
||||
cient credentials to perform updates to the FQDN to IP address map-
|
||||
ping for its FQDN).
|
||||
|
||||
Whether a DHCP server is always responsible for updating the FQDN to
|
||||
IP address mapping (in addition to updating the IP to FQDN mapping),
|
||||
regardless of the wishes of a DHCP client, is also a site-local
|
||||
matter. The choice between the two alternatives may be based on a
|
||||
particular security model.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 13]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
The client SHOULD use some form of data origin authentication pro-
|
||||
cedures (e.g. [TSIG], [DNSSEC]) when performing DNS updates.
|
||||
|
||||
While the DHCP client MAY be the one to update the DNS A record, in
|
||||
certain specialized cases a DHCP server MAY do so instead. In this
|
||||
case, the DHCP server MUST be sure of both the name to use for the
|
||||
client, as well as the identity of the client.
|
||||
|
||||
In the general case, both of these conditions are not satisfied --
|
||||
one needs to be mindful of the possibility of MAC address spoofing in
|
||||
a DHCP packet. It is not difficult for a DHCP server to know unambi-
|
||||
guously the DNS name to use for a client, but only in certain cir-
|
||||
cumstances will the DHCP server know for sure the identity of the
|
||||
client. If DHCP authentication [DHCPAUTH] becomes widely deployed
|
||||
this may become more customary. An example of a situation which
|
||||
offers some extra assurances is one where the DHCP client is con-
|
||||
nected to a network through an MCNS cable modem, and the CMTS (head-
|
||||
end) of the cable modem ensures that MAC address spoofing simply does
|
||||
not occur.
|
||||
|
||||
Another example where the DHCP server would know the identity of the
|
||||
client would be in a case where it was interacting with a remote
|
||||
access server which encoded a client identification into the DHCP
|
||||
client-id option. In this case, the remote access server as well as
|
||||
the DHCP server would be operating within a trusted environment, and
|
||||
the DHCP server could trust that the user authentication and authori-
|
||||
zation procedure of the remote access server was sufficient, and
|
||||
would therefore trust the client identification encoded within the
|
||||
DHCP client-id.
|
||||
|
||||
In either of these cases, a DHCP server would be able to correctly
|
||||
enter the DNS A record on behalf of a client, since it would know the
|
||||
name associated with a client (through some administrative procedure
|
||||
outside the scope of this protocol), and it would also know the
|
||||
client's identity in a secure manner.
|
||||
|
||||
6. Appendix A - Use of the KEY RR
|
||||
|
||||
The KEY RR used to hold the DHCP client's identity is formatted as
|
||||
follows:
|
||||
|
||||
The name of the KEY RR is the name of the A or PTR RR which refers to
|
||||
the client.
|
||||
|
||||
The flags field is set to 0x42 - that is, the 1 bit and the 6 bit are
|
||||
set.
|
||||
|
||||
The protocol field is set to [TBD].
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 14]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
The algorithm field is set to [TBD].
|
||||
|
||||
The first byte in the key field contains the length of the client-
|
||||
identity, and is followed by that number of bytes of client-identity
|
||||
data. If a DHCP client sent the client-id option in its request mes-
|
||||
sage, the client-identity MUST be identical to the data in the
|
||||
client-id option. If a client did not send the client-id option, the
|
||||
client-identity is constructed from the htype byte, the hlen byte,
|
||||
and hlen bytes of the client's chaddr from its request message.
|
||||
|
||||
7. References
|
||||
|
||||
[RFC1034] P. Mockapetris, "Domain names - concepts and facilities",
|
||||
RFC1034, 11/01/1987
|
||||
|
||||
[RFC1035] P. Mockapetris, "Domain names - implementation and specif-
|
||||
ication", RFC1035, 11/01/1987
|
||||
|
||||
[RFC2131] R. Droms, "Dynamic Host Configuration Protocol", RFC2131,
|
||||
March 1997.
|
||||
|
||||
[RFC2132] S. Alexander, R. Droms, "DHCP Options and BOOTP Vendor
|
||||
Extensions", RFC2132, March 1997.
|
||||
|
||||
[RFC1594] A. Marine, J. Reynolds, G. Malkin, "FYI on Questions and
|
||||
Answer Answers to Commonly asked ``New Internet User''
|
||||
Questions", RFC1594, 03/11/1994
|
||||
|
||||
[RFC2136] P. Vixie, S. Thomson, Y. Rekhter, J. Bound, "Dynamic
|
||||
Updates in the Domain Name System (DNS UPDATE)", RFC2136,
|
||||
April 1997
|
||||
|
||||
[RFC2119] Bradner, S. "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", RFC2119.
|
||||
|
||||
[DNSSEC] D. Eastlake, "Domain Name System Security Extensions",
|
||||
RFC2535, March 1999.
|
||||
|
||||
[TSIG] P. Vixie, O. Gudmundsson, D. Eastlake, B. Wellington,
|
||||
"Secret Key Transaction Signatures for DNS", draft-ietf-
|
||||
dnsind-tsig-*, Work in Progress.
|
||||
|
||||
[DHCPAUTH] R. Droms, W. Arbaugh, "Authentication for DHCP Messages",
|
||||
draft-ietf-dhc-authentication-*, Work in Progress.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 15]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
8. Acknowledgements
|
||||
|
||||
Many thanks to Mark Beyer, Jim Bound, Ralph Droms, Robert Elz,
|
||||
Peter Ford, Edie Gunter, R. Barr Hibbs, Kim Kinnear, Stuart Kwan,
|
||||
Ted Lemon, Michael Lewis, Michael Patton, and Glenn Stump for
|
||||
their review and comments.
|
||||
|
||||
9. Author information
|
||||
|
||||
Yakov Rekhter
|
||||
Cisco Systems, Inc.
|
||||
170 Tasman Dr.
|
||||
San Jose, CA 95134
|
||||
Phone: (914) 235-2128
|
||||
email: yakov@cisco.com
|
||||
|
||||
Mark Stapp
|
||||
Cisco Systems, Inc.
|
||||
250 Apollo Drive
|
||||
Chelmsford, MA 01824
|
||||
Phone: (978) 244-8498
|
||||
email: mjs@cisco.com
|
||||
|
||||
10. Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (1999). All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished
|
||||
to others, and derivative works that comment on or otherwise
|
||||
explain it or assist in its implementation may be prepared,
|
||||
copied, published and distributed, in whole or in part, without
|
||||
restriction of any kind, provided that the above copyright notice
|
||||
and this paragraph are included on all such copies and derivative
|
||||
works. However, this document itself may not be modified in any
|
||||
way, such as by removing the copyright notice or references to the
|
||||
Internet Society or other Internet organizations, except as needed
|
||||
for the purpose of developing Internet standards in which case
|
||||
the procedures for copyrights defined in the Internet Standards
|
||||
process must be followed, or as required to translate it into
|
||||
languages other than English.
|
||||
|
||||
The limited permissions granted above are perpetual and will not
|
||||
be revoked by the Internet Society or its successors or assigns.
|
||||
|
||||
This document and the information contained herein is provided on
|
||||
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
|
||||
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 16]
|
||||
|
||||
Internet Draft Interaction between DHCP and DNS June 1999
|
||||
|
||||
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
Rekhter, et. al. Expires December 1999 [Page 17]
|
889
doc/draft/draft-ietf-dhc-dhcp-dns-11.txt
Normal file
889
doc/draft/draft-ietf-dhc-dhcp-dns-11.txt
Normal file
@@ -0,0 +1,889 @@
|
||||
DHC Working Group M. Stapp
|
||||
Internet-Draft Y. Rekhter
|
||||
Expires: April 2000 Cisco Systems, Inc.
|
||||
October, 1999
|
||||
|
||||
Interaction between DHCP and DNS
|
||||
<draft-ietf-dhc-dhcp-dns-11.txt>
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This document is an Internet-Draft and is in full conformance with
|
||||
all provisions of Section 10 of RFC2026.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF), its areas, and its working groups. Note that
|
||||
other groups may also distribute working documents as
|
||||
Internet-Drafts.
|
||||
|
||||
Internet-Drafts are draft documents valid for a maximum of six
|
||||
months and may be updated, replaced, or obsoleted by other documents
|
||||
at any time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
The list of current Internet-Drafts can be accessed at
|
||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
||||
|
||||
The list of Internet-Draft Shadow Directories can be accessed at
|
||||
http://www.ietf.org/shadow.html.
|
||||
|
||||
This Internet-Draft will expire April, 2000.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (1999). All Rights Reserved.
|
||||
|
||||
Abstract
|
||||
|
||||
DHCP provides a powerful mechanism for IP host configuration.
|
||||
However, the configuration capability provided by DHCP does not
|
||||
include updating DNS, and specifically updating the name to address
|
||||
and address to name mappings maintained in the DNS.
|
||||
|
||||
This document specifies how DHCP clients and servers should use the
|
||||
Dynamic DNS Updates mechanism in RFC2136[5] to update the DNS name
|
||||
to address and address to name mappings so that the mappings for
|
||||
DHCP clients will be consistent with the IP addresses that the
|
||||
clients acquire via DHCP.
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 1]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3. Models of Operation . . . . . . . . . . . . . . . . . . . . 3
|
||||
4. Client FQDN Option . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4.1 The Flags Field . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
4.2 The RCODE Fields . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
4.3 The Domain Name Field . . . . . . . . . . . . . . . . . . . 6
|
||||
5. DHCP Client behavior . . . . . . . . . . . . . . . . . . . . 6
|
||||
6. DHCP Server behavior . . . . . . . . . . . . . . . . . . . . 8
|
||||
7. Procedures for performing DNS updates . . . . . . . . . . . 10
|
||||
7.1 Name Collisions . . . . . . . . . . . . . . . . . . . . . . 10
|
||||
7.2 Multiple DHCP servers . . . . . . . . . . . . . . . . . . . 11
|
||||
7.3 Use of the KEY RR . . . . . . . . . . . . . . . . . . . . . 11
|
||||
7.3.1 Format of the KEY RR . . . . . . . . . . . . . . . . . . . . 12
|
||||
7.4 DNS RR TTLs . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
7.5 Adding A RRs to DNS . . . . . . . . . . . . . . . . . . . . 13
|
||||
7.6 Adding PTR RR Entries to DNS . . . . . . . . . . . . . . . . 14
|
||||
7.7 Removing Entries from DNS . . . . . . . . . . . . . . . . . 14
|
||||
7.8 Updating other RRs . . . . . . . . . . . . . . . . . . . . . 14
|
||||
8. Security Considerations . . . . . . . . . . . . . . . . . . 15
|
||||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16
|
||||
References . . . . . . . . . . . . . . . . . . . . . . . . . 16
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 17
|
||||
Full Copyright Statement . . . . . . . . . . . . . . . . . . 18
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 2]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
1. 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 RFC 2119[6].
|
||||
|
||||
2. Introduction
|
||||
|
||||
DNS RFC1034[1], RFC1035[2] maintains (among other things) the
|
||||
information about mapping between hosts' Fully Qualified Domain
|
||||
Names (FQDNs) RFC1594[4] and IP addresses assigned to the hosts. The
|
||||
information is maintained in two types of Resource Records (RRs): A
|
||||
and PTR. The A RR contains mapping from a FQDN to an IP address; the
|
||||
PTR RR contains mapping from an IP address to a FQDN. The Dynamic
|
||||
DNS Updates specification RFC2136[5] describes a mechanism that
|
||||
enables DNS information to be updated over a network.
|
||||
|
||||
DHCP RFC2131[3] provides a mechanism by which a host (a DHCP client)
|
||||
can acquire certain configuration information, along with its IP
|
||||
address(es). However, DHCP does not provide any mechanisms to update
|
||||
the DNS RRs that contain the information about mapping between the
|
||||
host's FQDN and its IP address(es) (A and PTR RRs). Thus the
|
||||
information maintained by DNS for a DHCP client may be incorrect - a
|
||||
host (the client) could acquire its address by using DHCP, but the A
|
||||
RR for the host's FQDN wouldn't reflect the address that the host
|
||||
acquired, and the PTR RR for the acquired address wouldn't reflect
|
||||
the host's FQDN.
|
||||
|
||||
The Dynamic DNS Update protocol can be used to maintain consistency
|
||||
between the information stored in the A and PTR RRs and the actual
|
||||
address assignment done via DHCP. When a host with a particular FQDN
|
||||
acquires its IP address via DHCP, the A RR associated with the
|
||||
host's FQDN would be updated (by using the Dynamic DNS Updates
|
||||
protocol) to reflect the new address. Likewise, when an IP address
|
||||
is assigned to a host with a particular FQDN, the PTR RR associated
|
||||
with this address would be updated (using the Dynamic DNS Updates
|
||||
protocol) to reflect the new FQDN.
|
||||
|
||||
Although this document refers to the A and PTR DNS record types and
|
||||
to DHCP assignment of IPv4 addresses, the same procedures and
|
||||
requirements apply for updates to the analogous RR types that are
|
||||
used when clients are assigned IPv6 addresses via DHCPv6.
|
||||
|
||||
3. Models of Operation
|
||||
|
||||
When a DHCP client acquires a new address, a site's administrator
|
||||
may desire that one or both of the A RR for the client's FQDN and
|
||||
the PTR RR for the acquired address be updated. Therefore, two
|
||||
separate Dynamic DNS Update transactions occur. Acquiring an address
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 3]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
via DHCP involves two entities: a DHCP client and a DHCP server. In
|
||||
principle each of these entities could perform none, one, or both of
|
||||
the transactions. However, in practice not all permutations make
|
||||
sense. This document covers these possible design permutations:
|
||||
|
||||
1. DHCP client updates the A RR, DHCP server updates the PTR RR
|
||||
2. DHCP server updates both the A and the PTR RRs
|
||||
|
||||
The only difference between these two cases is whether the FQDN to
|
||||
IP address mapping is updated by a DHCP client or by a DHCP server.
|
||||
The IP address to FQDN mapping is updated by a DHCP server in both
|
||||
cases.
|
||||
|
||||
The reason these two are important, while others are unlikely, has
|
||||
to do with authority over the respective DNS domain names. A DHCP
|
||||
client may be given authority over mapping its own A RRs, or that
|
||||
authority may be restricted to a server to prevent the client from
|
||||
listing arbitrary addresses or associating its address with
|
||||
arbitrary domain names. In all cases, the only reasonable place for
|
||||
the authority over the PTR RRs associated with the address is in the
|
||||
DHCP server that allocates the address.
|
||||
|
||||
In any case, whether a site permits all, some, or no DHCP servers
|
||||
and clients to perform DNS updates into the zones which it controls
|
||||
is entirely a matter of local administrative policy. This document
|
||||
does not require any specific administrative policy, and does not
|
||||
propose one. The range of possible policies is very broad, from
|
||||
sites where only the DHCP servers have been given credentials that
|
||||
the DNS servers will accept, to sites where each individual DHCP
|
||||
client has been configured with credentials which allow the client
|
||||
to modify its own domain name. Compliant implementations MAY support
|
||||
some or all of these possibilities. Furthermore, this specification
|
||||
applies only to DHCP client and server processes: it does not apply
|
||||
to other processes which initiate dynamic DNS updates.
|
||||
|
||||
This document describes a new DHCP option which a client can use to
|
||||
convey all or part of its domain name to a DHCP server.
|
||||
Site-specific policy determines whether DHCP servers use the names
|
||||
that clients offer or not, and what DHCP servers may do in cases
|
||||
where clients do not supply domain names.
|
||||
|
||||
4. Client FQDN Option
|
||||
|
||||
To update the IP address to FQDN mapping a DHCP server needs to know
|
||||
the FQDN of the client to which the server leases the address. To
|
||||
allow the client to convey its FQDN to the server this document
|
||||
defines a new DHCP option, called "Client FQDN". The FQDN Option
|
||||
also contains Flags and RCode fields which DHCP servers can use to
|
||||
convey information about DNS updates to clients.
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 4]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
Clients MAY send the FQDN option, setting appropriate Flags values,
|
||||
in both their DISCOVER and REQUEST messages. If a client sends the
|
||||
FQDN option in its DISCOVER message, it MUST send the option in
|
||||
subsequent REQUEST messages.
|
||||
|
||||
The code for this option is 81. Its minimum length is 4.
|
||||
|
||||
Code Len Flags RCODE1 RCODE2 Domain Name
|
||||
+------+------+------+------+------+------+--
|
||||
| 81 | n | | | | ...
|
||||
+------+------+------+------+------+------+--
|
||||
|
||||
4.1 The Flags Field
|
||||
|
||||
0 1 2 3 4 5 6 7
|
||||
+-+-+-+-+-+-+-+-+
|
||||
| MBZ |E|O|S|
|
||||
+-+-+-+-+-+-+-+-+
|
||||
|
||||
When a DHCP client sends the FQDN option in its DHCPDISCOVER and/or
|
||||
DHCPREQUEST messages, it sets the right-most bit (labelled "S") to
|
||||
indicate that it will not perform any Dynamic DNS updates, and that
|
||||
it expects the DHCP server to perform any FQDN-to-IP (the A RR) DNS
|
||||
update on its behalf. If this bit is clear, the client indicates
|
||||
that it intends to maintain its own FQDN-to-IP mapping update.
|
||||
|
||||
If a DHCP server intends to take responsibility for the A RR update
|
||||
whether or not the client sending the FQDN option has set the "S"
|
||||
bit, it sets both the "O" bit and the "S" bit, and sends the FQDN
|
||||
option in its DHCPOFFER and/or DHCPACK messages.
|
||||
|
||||
The data in the Domain Name field may appear in one of two formats:
|
||||
ASCII, or DNS-style binary encoding (without compression, of
|
||||
course), as described in RFC1035[2]. A client which sends the FQDN
|
||||
option MUST set the "E" bit to indicate that the data in the Domain
|
||||
Name field is DNS-encoded. If a server receives an FQDN option from
|
||||
a client, and intends to include an FQDN option in its reply, it
|
||||
MUST use the same encoding that the client used. The DNS encoding is
|
||||
recommended. The use of ASCII-encoded domain-names is fragile, and
|
||||
the use of ASCII encoding in this option should be considered
|
||||
deprecated.
|
||||
|
||||
The remaining bits in the Flags field are reserved for future
|
||||
assignment. DHCP clients and servers which send the FQDN option MUST
|
||||
set the MBZ bits to 0, and they MUST ignore values in the part of
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 5]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
the field labelled "MBZ".
|
||||
|
||||
4.2 The RCODE Fields
|
||||
|
||||
The RCODE1 and RCODE2 fields are used by a DHCP server to indicate
|
||||
to a DHCP client the Response Code from any A or PTR RR Dynamic DNS
|
||||
Updates it has performed. The server also uses these fields to
|
||||
indicate whether it has attempted such an update before sending the
|
||||
DHCPACK message. Each of these fields is one byte long.
|
||||
|
||||
4.3 The Domain Name Field
|
||||
|
||||
The Domain Name part of the option carries the FQDN of a DHCP
|
||||
client. A client may be configured with a fully-qualified domain
|
||||
name, or with a partial name that is not fully-qualified. If a
|
||||
client knows only part of its name, it MAY send a single label,
|
||||
indicating that it knows part of the name but does not necessarily
|
||||
know the zone in which the name is to be embedded. The data in the
|
||||
Domain Name field may appear in one of two formats: ASCII (with no
|
||||
terminating NULL), or DNS encoding as specified in RFC1035[2]. If
|
||||
the DHCP client wishes to use DNS encoding, it MUST set the
|
||||
third-from-rightmost bit in the Flags field (the "E" bit); if it
|
||||
uses ASCII encoding, it must clear the "E" bit.
|
||||
|
||||
A DHCP client that can only send a single label using ASCII encoding
|
||||
includes a series of ASCII characters in the Domain Name field,
|
||||
excluding the "." (dot) character. The client SHOULD follow the
|
||||
character-set recommendations of RFC1034[1] and RFC1035[2]. A client
|
||||
using DNS encoding which wants to suggest part of its FQDN MAY send
|
||||
a non-terminal sequence of labels in the Domain Name part of the
|
||||
option.
|
||||
|
||||
5. DHCP Client behavior
|
||||
|
||||
The following describes the behavior of a DHCP client that
|
||||
implements the Client FQDN option.
|
||||
|
||||
If a client that owns/maintains its own FQDN wants to be responsible
|
||||
for updating the FQDN to IP address mapping for the FQDN and
|
||||
address(es) used by the client, then the client MUST include the
|
||||
Client FQDN option in the DHCPREQUEST message originated by the
|
||||
client. A DHCP client MAY choose to include the Client FQDN option
|
||||
in its DISCOVER messages as well as its REQUEST messages. The
|
||||
rightmost ("S") bit in the Flags field in the option MUST be set to
|
||||
0. Once the client's DHCP configuration is completed (the client
|
||||
receives a DHCPACK message, and successfully completes a final check
|
||||
on the parameters passed in the message), the client MAY originate
|
||||
an update for the A RR (associated with the client's FQDN). The
|
||||
update MUST be originated following the procedures described in
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 6]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
RFC2136[5], and Section 7. If the DHCP server from which the client
|
||||
is requesting a lease includes the FQDN option in its ACK message,
|
||||
and if the server sets both the "S" and the "O" (the two rightmost)
|
||||
bits in the option's flags field, the DHCP client MUST NOT initiate
|
||||
an update for the name in the Domain Name field.
|
||||
|
||||
A client can choose to delegate the responsibility for updating the
|
||||
FQDN to IP address mapping for the FQDN and address(es) used by the
|
||||
client to the server. In order to inform the server of this choice,
|
||||
the client SHOULD include the Client FQDN option in its DHCPREQUEST
|
||||
message. The rightmost (or "S") bit in the Flags field in the option
|
||||
MUST be set to 1. A client which delegates this responsibility MUST
|
||||
NOT attempt to perform a Dynamic DNS update for the name in the
|
||||
Domain Name field of the FQDN option. The client MAY supply an FQDN
|
||||
in the Client FQDN option, or it MAY supply a single label (the
|
||||
most-specific label), or it MAY leave that field empty as a signal
|
||||
to the server to generate an FQDN for the client in any manner the
|
||||
server chooses.
|
||||
|
||||
Since there is a possibility that the DHCP server may be configured
|
||||
to complete or replace a domain name that the client was configured
|
||||
to send, the client might find it useful to send the FQDN option in
|
||||
its DISCOVER messages. If the DHCP server returns different Domain
|
||||
Name data in its OFFER message, the client could use that data in
|
||||
performing its own eventual A RR update, or in forming the FQDN
|
||||
option that it sends in its REQUEST message. There is no requirement
|
||||
that the client send identical FQDN option data in its DISCOVER and
|
||||
REQUEST messages. In particular, if a client has sent the FQDN
|
||||
option to its server, and the configuration of the client changes so
|
||||
that its notion of its domain name changes, it MAY send the new name
|
||||
data in an FQDN option when it communicates with the server again.
|
||||
This may allow the DHCP server to update the name associated with
|
||||
the PTR record, and, if the server updated the A record representing
|
||||
the client, to delete that record and attempt an update for the
|
||||
client's current domain name.
|
||||
|
||||
A client that delegates the responsibility for updating the FQDN to
|
||||
IP address mapping to a server might not receive any indication
|
||||
(either positive or negative) from the server whether the server was
|
||||
able to perform the update. In this case the client MAY use a DNS
|
||||
query to check whether the mapping is updated.
|
||||
|
||||
A client MUST set the RCODE1 and RCODE2 fields in the Client FQDN
|
||||
option to 0 when sending the option.
|
||||
|
||||
If a client releases its lease prior to the lease expiration time
|
||||
and the client is responsible for updating its A RR, the client
|
||||
SHOULD delete the A RR (following the procedures described in
|
||||
Section 7) associated with the leased address before sending a DHCP
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 7]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
RELEASE message. Similarly, if a client was responsible for updating
|
||||
its A RR, but is unable to renew its lease, the client SHOULD
|
||||
attempt to delete the A RR before its lease expires. A DHCP client
|
||||
which has not been able to delete an A RR which it added (because it
|
||||
has lost the use of its DHCP IP address) should attempt to notify
|
||||
its administrator.
|
||||
|
||||
6. DHCP Server behavior
|
||||
|
||||
When a server receives a DHCPREQUEST message from a client, if the
|
||||
message contains the Client FQDN option, and the server replies to
|
||||
the message with a DHCPACK message, the server may be configured to
|
||||
originate an update for the PTR RR (associated with the address
|
||||
leased to the client). Any such update MUST be originated following
|
||||
the procedures described in Section 7. The server MAY complete the
|
||||
update before the server sends the DHCPACK message to the client. In
|
||||
this case the RCODE from the update MUST be carried to the client in
|
||||
the RCODE1 field of the Client FQDN option in the DHCPACK message.
|
||||
Alternatively, the server MAY send the DHCPACK message to the client
|
||||
without waiting for the update to be completed. In this case the
|
||||
RCODE1 field of the Client FQDN option in the DHCPACK message MUST
|
||||
be set to 255. The choice between the two alternatives is entirely
|
||||
determined by the configuration of the DHCP server. Servers SHOULD
|
||||
support both configuration options.
|
||||
|
||||
When a server receives a DHCPREQUEST message containing the Client
|
||||
FQDN option, the server MUST ignore the values carried in the RCODE1
|
||||
and RCODE2 fields of the option.
|
||||
|
||||
In addition, if the Client FQDN option carried in the DHCPREQUEST
|
||||
message has the "S" bit in its Flags field set, then the server MAY
|
||||
originate an update for the A RR (associated with the FQDN carried
|
||||
in the option) if it is configured to do so by the site's
|
||||
administrator, and if it has the necessary credentials. The server
|
||||
MAY be configured to use the name supplied in the client's FQDN
|
||||
option, or it MAY be configured to modify the supplied name, or
|
||||
substitute a different name.
|
||||
|
||||
Any such update MUST be originated following the procedures
|
||||
described in Section 7. The server MAY originate the update before
|
||||
the server sends the DHCPACK message to the client. In this case the
|
||||
RCODE from the update [RFC2136] MUST be carried to the client in the
|
||||
RCODE2 field of the Client FQDN option in the DHCPACK message.
|
||||
Alternatively the server MAY send the DHCPACK message to the client
|
||||
without waiting for the update to be completed. In this case the
|
||||
RCODE2 field of the Client FQDN option in the DHCPACK message MUST
|
||||
be set to 255. The choice between the two alternatives is entirely
|
||||
up to the DHCP server. In either case, if the server intends to
|
||||
perform the DNS update and the client's REQUEST message included the
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 8]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
FQDN option, the server SHOULD include the FQDN option in its ACK
|
||||
message, and MUST set the "S" bit in the option's Flags field.
|
||||
|
||||
Even if the Client FQDN option carried in the DHCPREQUEST message
|
||||
has the "S" bit in its Flags field clear (indicating that the client
|
||||
wants to update the A RR), the server MAY be configured by the local
|
||||
administrator to update the A RR on the client's behalf. A server
|
||||
which is configured to override the client's preference SHOULD
|
||||
include an FQDN option in its ACK message, and MUST set both the "O"
|
||||
and "S" bits in the FQDN option's Flags field. The update MUST be
|
||||
originated following the procedures described in Section 7. The
|
||||
server MAY originate the update before the server sends the DHCPACK
|
||||
message to the client. In this case the RCODE from the update
|
||||
[RFC2136] MUST be carried to the client in the RCODE2 field of the
|
||||
Client FQDN option in the DHCPACK message. Alternatively, the server
|
||||
MAY send the DHCPACK message to the client without waiting for the
|
||||
update to be completed. In this case the RCODE2 field of the Client
|
||||
FQDN option in the DHCPACK message MUST be set to 255. Whether the
|
||||
DNS update occurs before or after the DHCPACK is sent is entirely up
|
||||
to the DHCP server's configuration.
|
||||
|
||||
When a DHCP server sends the Client FQDN option to a client in the
|
||||
DHCPACK message, the DHCP server SHOULD send its notion of the
|
||||
complete FQDN for the client in the Domain Name field. The server
|
||||
MAY simply copy the Domain Name field from the Client FQDN option
|
||||
that the client sent to the server in the DHCPREQUEST message. The
|
||||
DHCP server MAY be configured to complete or modify the domain name
|
||||
which a client sent, or it MAY be configured to substitute a
|
||||
different name. If the server initiates a DDNS update which is not
|
||||
complete until after the server has replied to the DHCP client, the
|
||||
server's The server MUST use the same encoding format (ASCII or
|
||||
DNS-encoding) that the client used in the FQDN option in its
|
||||
DHCPREQUEST, and MUST set the "E" bit in the option's Flags field
|
||||
accordingly.
|
||||
|
||||
If a client's DHCPREQUEST message doesn't carry the Client FQDN
|
||||
option (e.g., the client doesn't implement the Client FQDN option),
|
||||
the server MAY be configured to update either or both of the A and
|
||||
PTR RRs. The updates MUST be originated following the procedures
|
||||
described in Section 7.
|
||||
|
||||
If a server detects that a lease on an address that the server
|
||||
leases to a client has expired, the server SHOULD delete any PTR RR
|
||||
which it added via dynamic update. In addition, if the server added
|
||||
an A RR on the client's behalf, the server SHOULD also delete the A
|
||||
RR. The deletion MUST follow the procedures described in Section 7.
|
||||
|
||||
If a server terminates a lease on an address prior to the lease's
|
||||
expiration time, for instance by sending a DHCPNAK to a client, the
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 9]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
server SHOULD delete any PTR RR which it associated with the address
|
||||
via DNS Dynamic Update. In addition, if the server took
|
||||
responsibility for an A RR, the server SHOULD also delete that A RR.
|
||||
The deletion MUST follow the procedures described in Section 7.
|
||||
|
||||
7. Procedures for performing DNS updates
|
||||
|
||||
There are two principal issues that need to be addressed concerning
|
||||
A RR DNS updates:
|
||||
|
||||
7.1 Name Collisions
|
||||
|
||||
If the entity updating the A RR (either the DHCP client or DHCP
|
||||
server) attempts to perform a DNS update to a domain name that has
|
||||
an A RR which is already in use by a different DHCP client, what
|
||||
should be done? Similarly, should a DHCP client or server update a
|
||||
domain name which has an A RR that has been configured by an
|
||||
administrator? In either of these cases, the domain name in question
|
||||
would either have an additional A RR, or would have its original A
|
||||
RR replaced by the new record. Either of these effects may be
|
||||
considered undesirable in some sites. This specification describes
|
||||
behavior designed to prevent these undesirable effects, and requires
|
||||
that DHCP implementations make this behavior the default.
|
||||
|
||||
1. Client updates A RR, uses DNSSEC. Name collisions in this
|
||||
scenario are unlikely (though not impossible), since for the
|
||||
client to use DNSSEC, it has already received credentials
|
||||
specific to the name it desires to use. This implies that the
|
||||
name has already been allocated (through some implementation- or
|
||||
organization-specific procedure, and presumably uniquely) to
|
||||
that client.
|
||||
|
||||
2. Client updates A RR, uses some form of TSIG. Name collisions in
|
||||
this scenario are possible, since the credentials necessary for
|
||||
the client to update DNS are not necessarily name-specific.
|
||||
Thus, for the client to be attempting to update a unique name
|
||||
requires the existence of some administrative procedure to
|
||||
ensure client configuration with unique names.
|
||||
|
||||
3. Server updates the A RR, uses a name for the client which is
|
||||
known to the server. Name collisions in this scenario are likely
|
||||
unless prevented by the server's name configuration procedures.
|
||||
See Section 8 for security issues with this form of deployment.
|
||||
|
||||
4. Server updates the A RR, uses a name supplied by the client.
|
||||
Name collisions in this scenario are highly likely, even with
|
||||
administrative procedures designed to prevent them. (This
|
||||
scenario is a popular one in real-world deployments in many
|
||||
types of organizations.) See Section 8 for security issues with
|
||||
this type of deployment.
|
||||
|
||||
Scenarios 3 and 4 are much more attractive given some form of DHCP
|
||||
Authentication, but difficulties remain.
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 10]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
Scenarios 2, 3, and 4 rely on administrative procedures to ensure
|
||||
name uniqueness for DNS updates, and these procedures may break
|
||||
down. Experience has shown that, in fact, these procedures will
|
||||
break down at least occasionally. The question is what to do when
|
||||
these procedures break down or, for example in scenario #4, may not
|
||||
even exist.
|
||||
|
||||
In all cases of name collisions, the desire is to offer two modes of
|
||||
operation to the administrator of the combined DHCP-DNS capability:
|
||||
first-update-wins (i.e., the first updating entity gets the name) or
|
||||
most-recent-update-wins (i.e., the last updating entity for a name
|
||||
gets the name).
|
||||
|
||||
7.2 Multiple DHCP servers
|
||||
|
||||
If multiple DHCP servers are able to update the same DNS zones, or
|
||||
if DHCP servers are performing A RR updates on behalf of DHCP
|
||||
clients, and more than one DHCP server may be able to serve
|
||||
addresses to the same DHCP clients, the DHCP servers should be able
|
||||
to provide reasonable and consistent DNS name update behavior for
|
||||
DHCP clients.
|
||||
|
||||
7.3 Use of the KEY RR
|
||||
|
||||
A solution to both of these problems is for the updating entities
|
||||
(both DHCP clients and DHCP servers) to be able to cooperate when
|
||||
updating DNS A RRs.
|
||||
|
||||
Specifically, a KEY RR, described in RFC2535[7] is used to associate
|
||||
client ownership information with a DNS name and the A RR associated
|
||||
with that name. When either a client or server adds an A RR for a
|
||||
client, it also adds a KEY RR which specifies a unique client
|
||||
identity (based on a "client specifier" created from the client's
|
||||
client-id or MAC address). In this model, only one A RR is
|
||||
associated with a given DNS name at a time.
|
||||
|
||||
By associating this ownership information with each A RR,
|
||||
cooperating DNS updating entities may determine whether their client
|
||||
is the first or last updater of the name (and implement the
|
||||
appropriately configured administrative policy), and DHCP clients
|
||||
which currently have a host name may move from one DHCP server to
|
||||
another without losing their DNS name.
|
||||
|
||||
The specific algorithms utilizing the KEY RR to signal client
|
||||
ownership are explained below. The algorithms only work in the case
|
||||
where the updating entities all cooperate -- this approach is
|
||||
advisory only and does not substitute for DNS security, nor is it
|
||||
replaced by DNS security.
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 11]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
7.3.1 Format of the KEY RR
|
||||
|
||||
The KEY RR used to hold the DHCP client's identity is formatted as
|
||||
follows:
|
||||
|
||||
The name of the KEY RR is the name of the A or PTR RR which refers
|
||||
to the client.
|
||||
|
||||
The flags field is set to 0x4200 - that is, the 1 bit and the 6 bit
|
||||
are set.
|
||||
|
||||
The protocol field is set to [TBD].
|
||||
|
||||
The algorithm field is set to [TBD].
|
||||
|
||||
0 15 31
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Version | Identity-length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
/ Client-identity... /
|
||||
/ /
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
The Version field indicates the version of the data used in this RR.
|
||||
The Version field is a 2-byte integer in network byte-order. Its
|
||||
value MUST be 1.
|
||||
|
||||
The remainder of the Key field contains the length of the
|
||||
client-identity, followed by that number of bytes of client-identity
|
||||
data. The data length is represented as a 2-byte integer in network
|
||||
byte order. If a DHCP client sent the client-id option in its
|
||||
request message, the client-identity MUST be identical to the data
|
||||
in the client-id option. If a client did not send the client-id
|
||||
option, the client-identity is constructed from the htype byte, the
|
||||
hlen byte, and hlen bytes of the client's chaddr from its request
|
||||
message.
|
||||
|
||||
7.4 DNS RR TTLs
|
||||
|
||||
RRs associated with DHCP clients may be more volatile than
|
||||
statically configured RRs. DHCP clients and servers which perform
|
||||
dynamic updates should attempt to specify resource record TTLs which
|
||||
reflect this volatility, in order to minimize the possibility that
|
||||
there will be stale records in resolvers' caches. A reasonable basis
|
||||
for RR TTLs is the lease duration itself: TTLs of 1/2 or 1/3 the
|
||||
expected lease duration might be reasonable defaults. Because
|
||||
configured DHCP lease times vary widely from site to site, it may
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 12]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
also be desirable to establish a fixed TTL ceiling. DHCP clients and
|
||||
servers MAY allow administrators to configure the TTLs they will
|
||||
supply, possibly as a fraction of the actual lease time, or as a
|
||||
fixed value.
|
||||
|
||||
7.5 Adding A RRs to DNS
|
||||
|
||||
When a DHCP client or server intends to update an A RR, it first
|
||||
prepares a DNS UPDATE query which includes as a prerequisite the
|
||||
assertion that the name does not exist. The update section of the
|
||||
query attempts to add the new name and its IP address mapping (an A
|
||||
RR), and the KEY RR with its unique client-identity.
|
||||
|
||||
If this update operation succeeds, the updater can conclude that it
|
||||
has added a new name whose only RRs are the A and KEY RR records.
|
||||
The A RR update is now complete (and a client updater is finished,
|
||||
while a server might proceed to perform a PTR RR update).
|
||||
|
||||
If the first update operation fails with YXDOMAIN, the updater can
|
||||
conclude that the intended name is in use. The updater then
|
||||
attempts to confirm that the DNS name is not being used by some
|
||||
other host. The updater prepares a second UPDATE query in which the
|
||||
prerequisite is that the desired name has attached to it a KEY RR
|
||||
whose contents match the client identity. The update section of
|
||||
this query deletes the existing A records on the name, and adds the
|
||||
A record that matches the DHCP binding and the KEY RR with the
|
||||
client identity.
|
||||
|
||||
If this query succeeds, the updater can conclude that the current
|
||||
client was the last client associated with the domain name, and that
|
||||
the name now contains the updated A RR. The A RR update is now
|
||||
complete (and a client updater is finished, while a server would
|
||||
then proceed to perform a PTR RR update).
|
||||
|
||||
If the second query fails with NXRRSET, the updater must conclude
|
||||
that the client's desired name is in use by another host. At this
|
||||
juncture, the updater can decide (based on some administrative
|
||||
configuration outside of the scope of this document) whether to let
|
||||
the existing owner of the name keep that name, and to (possibly)
|
||||
perform some name disambiguation operation on behalf of the current
|
||||
client, or to replace the RRs on the name with RRs that represent
|
||||
the current client. If the configured policy allows replacement of
|
||||
existing records, the updater submits a query that deletes the
|
||||
existing A RR and the existing KEY RR, adding A and KEY RRs that
|
||||
represent the IP address and client-identity of the new client.
|
||||
|
||||
DISCUSSION:
|
||||
|
||||
The updating entity may be configured to allow the existing DNS
|
||||
records on the domain name to remain unchanged, and to perform
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 13]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
disambiguation on the name of the current client in order to
|
||||
attempt to generate a similar but unique name for the current
|
||||
client. In this case, once another candidate name has been
|
||||
generated, the updater should restart the process of adding an A
|
||||
RR as specified in this section.
|
||||
|
||||
7.6 Adding PTR RR Entries to DNS
|
||||
|
||||
The DHCP server submits a DNS query which deletes all of the PTR RRs
|
||||
associated with the lease IP address, and adds a PTR RR whose data
|
||||
is the client's (possibly disambiguated) host name. The server also
|
||||
adds a KEY RR specified in Section 7.3.
|
||||
|
||||
7.7 Removing Entries from DNS
|
||||
|
||||
The first rule in removing DNS entries is be sure that an entity
|
||||
removing a DNS entry is only removing an entry that it added.
|
||||
|
||||
When a lease expires or a DHCP client issues a DHCPRELEASE request,
|
||||
the DHCP server SHOULD delete the PTR RR that matches the DHCP
|
||||
binding, if one was successfully added. The server's update query
|
||||
SHOULD assert that the name in the PTR record matches the name of
|
||||
the client whose lease has expired or been released.
|
||||
|
||||
The entity chosen to handle the A record for this client (either the
|
||||
client or the server) SHOULD delete the A record that was added when
|
||||
the lease was made to the client.
|
||||
|
||||
In order to perform this delete, the updater prepares an UPDATE
|
||||
query which contains two prerequisites. The first prerequisite
|
||||
asserts that the KEY RR exists whose data is the client identity
|
||||
described in Section 7.3. The second prerequisite asserts that the
|
||||
data in the A RR contains the IP address of the lease that has
|
||||
expired or been released.
|
||||
|
||||
If the query fails, the updater MUST NOT delete the DNS name. It
|
||||
may be that the host whose lease on the server has expired has moved
|
||||
to another network and obtained a lease from a different server,
|
||||
which has caused the client's A RR to be replaced. It may also be
|
||||
that some other client has been configured with a name that matches
|
||||
the name of the DHCP client, and the policy was that the last client
|
||||
to specify the name would get the name. In this case, the KEY RR
|
||||
will no longer match the updater's notion of the client-identity of
|
||||
the host pointed to by the DNS name.
|
||||
|
||||
7.8 Updating other RRs
|
||||
|
||||
The procedures described in this document only cover updates to the
|
||||
A and PTR RRs. Updating other types of RRs is outside the scope of
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 14]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
this document.
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
Unauthenticated updates to the DNS can lead to tremendous confusion,
|
||||
through malicious attack or through inadvertent misconfiguration.
|
||||
Administrators should be wary of unsecured DNS updates to zones
|
||||
which are exposed to the global Internet.
|
||||
|
||||
Whether the client may be responsible for updating the FQDN to IP
|
||||
address mapping, or whether the this responsibility lies with the
|
||||
DHCP server is a site-local matter. The choice between the two
|
||||
alternatives may be based on a particular security model that is
|
||||
used with the Dynamic DNS Update protocol (e.g., only a client may
|
||||
have sufficient credentials to perform updates to the FQDN to IP
|
||||
address mapping for its FQDN).
|
||||
|
||||
Whether a DHCP server is always responsible for updating the FQDN to
|
||||
IP address mapping (in addition to updating the IP to FQDN mapping),
|
||||
regardless of the wishes of a DHCP client, is a site-local matter.
|
||||
The choice between the two alternatives may be based on a particular
|
||||
security model. Both DHCP clients and servers SHOULD use some form
|
||||
of update request origin authentication procedure (e.g., TSIG[8],
|
||||
Simple Secure DNS Update[10]) when performing DNS updates.
|
||||
|
||||
While the DHCP client MAY be the one to update the DNS A record, in
|
||||
certain configurations a DHCP server MAY do so instead. In this
|
||||
case, the DHCP server MUST be sure of both the name to use for the
|
||||
client, as well as the identity of the client.
|
||||
|
||||
In the general case, both of these conditions are difficult to
|
||||
satisfy, given the absence of security from the DHCP protocol
|
||||
itself. There are many ways for a DHCP server to develop a DNS name
|
||||
to use for a client, but only in certain relatively unusual
|
||||
circumstances will the DHCP server know for certain the identity of
|
||||
the client. If DHCP authentication[9] becomes widely deployed this
|
||||
may become more customary.
|
||||
|
||||
One example of a situation which offers some extra assurances is one
|
||||
where the DHCP client is connected to a network through an MCNS
|
||||
cable modem, and the CMTS (head-end) of the cable modem ensures that
|
||||
MAC address spoofing simply does not occur. Another example of a
|
||||
configuration that might be trusted is one where clients obtain
|
||||
network access via a network access server using PPP. The NAS itself
|
||||
might be obtaining IP addresses via DHCP, encoding a client
|
||||
identification into the DHCP client-id option. In this case, the
|
||||
network access server as well as the DHCP server might be operating
|
||||
within a trusted environment, in which case the DHCP server could
|
||||
trust that the user authentication and authorization procedure of
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 15]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
the remote access server was sufficient, and would therefore trust
|
||||
the client identification encoded within the DHCP client-id.
|
||||
|
||||
9. Acknowledgements
|
||||
|
||||
Many thanks to Mark Beyer, Jim Bound, Ralph Droms, Robert Elz, Peter
|
||||
Ford, Edie Gunter, Andreas Gustafsson, R. Barr Hibbs, Kim Kinnear,
|
||||
Stuart Kwan, Ted Lemon, Ed Lewis, Michael Lewis, Josh Littlefield,
|
||||
Michael Patton, and Glenn Stump for their review and comments.
|
||||
|
||||
References
|
||||
|
||||
[1] Mockapetris, P., "Domain names - Concepts and Facilities", RFC
|
||||
1034, Nov 1987.
|
||||
|
||||
[2] Mockapetris, P., "Domain names - Implementation and
|
||||
Specification", RFC 1035, Nov 1987.
|
||||
|
||||
[3] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131,
|
||||
March 1997.
|
||||
|
||||
[4] Marine, A., Reynolds, J. and G. Malkin, "FYI on Questions and
|
||||
Answers to Commonly asked ``New Internet User'' Questions", RFC
|
||||
1594, March 1994.
|
||||
|
||||
[5] Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic
|
||||
Updates in the Domain Name System", RFC 2136, April 1997.
|
||||
|
||||
[6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
||||
Levels", RFC 2119, March 1997.
|
||||
|
||||
[7] Eastlake, D., "Domain Name System Security Extensions", RFC
|
||||
2535, March 1999.
|
||||
|
||||
[8] Vixie, P., Gudmundsson, O., Eastlake, D. and B. Wellington,
|
||||
"Secret Key Transaction Signatures for DNS (TSIG)
|
||||
(draft-ietf-dnsind-tsig-*)", July 1999.
|
||||
|
||||
[9] Droms, R. and W. Arbaugh, "Authentication for DHCP Messages
|
||||
(draft-ietf-dhc-authentication-*)", June 1999.
|
||||
|
||||
[10] Wellington, B., "Simple Secure DNS Dynamic Updates
|
||||
(draft-ietf-dnsind-simple-secure-update-*)", June 1999.
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 16]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Mark Stapp
|
||||
Cisco Systems, Inc.
|
||||
250 Apollo Dr.
|
||||
Chelmsford, MA 01824
|
||||
US
|
||||
|
||||
Phone: 978.244.8498
|
||||
EMail: mjs@cisco.com
|
||||
|
||||
Yakov Rekhter
|
||||
Cisco Systems, Inc.
|
||||
170 Tasman Dr.
|
||||
San Jose, CA 95134
|
||||
US
|
||||
|
||||
Phone: 914.235.2128
|
||||
EMail: yakov@cisco.com
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 17]
|
||||
|
||||
Internet-Draft Interaction between DHCP and DNS October 1999
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (1999). All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished to
|
||||
others, and derivative works that comment on or otherwise explain it
|
||||
or assist in its implmentation may be prepared, copied, published
|
||||
and distributed, in whole or in part, without restriction of any
|
||||
kind, provided that the above copyright notice and this paragraph
|
||||
are included on all such copies and derivative works. However, this
|
||||
document itself may not be modified in any way, such as by removing
|
||||
the copyright notice or references to the Internet Society or other
|
||||
Internet organizations, except as needed for the purpose of
|
||||
developing Internet standards in which case the procedures for
|
||||
copyrights defined in the Internet Standards process must be
|
||||
followed, or as required to translate it into languages other than
|
||||
English.
|
||||
|
||||
The limited permissions granted above are perpetual and will not be
|
||||
revoked by the Internet Society or its successors or assigns.
|
||||
|
||||
This document and the information contained herein is provided on an
|
||||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
||||
TASK FORCE DISCLAIMS 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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC editor function is currently provided by the
|
||||
Internet Society.
|
||||
|
||||
Stapp & Rekhter Expires April 2000 [Page 18]
|
Reference in New Issue
Block a user