|
楼主 |
发表于 2005-2-25 17:59:57
|
显示全部楼层
1、default-lease-time 600; #如果客户端不能请求一个指定的租用期,就使用该参数来定义该地址租用的时间长度
max-lease-time 7200; #用来指定租用的最长时间,尽管租用的时间长度是根据客户端的请求决定的。
2、
DYNAMIC DNS UPDATES
The DHCP server has the ability to dynamically update the
Domain Name System. Within the configuration files, you
can define how you want the Domain Name System to be
updated. These updates are RFC 2136 compliant so any DNS
server supporting RFC 2136 should be able to accept
updates from the DHCP server.
Two DNS update schemes are currently implemented, and
another is planned. The two that are currently available
are the ad-hoc DNS update mode and the interim DHCP-DNS
interaction draft update mode. If and when the DHCP-DNS
interaction draft and the DHCID draft make it through the
IETF standards process, there will be a third mode, which
will be the standard DNS update method. The DHCP server
must be configured to use one of the two currently-sup-
ported methods, or not to do dns updates. This can be
done with the ddns-update-style configuration parameter.
THE AD-HOC DNS UPDATE SCHEME
The ad-hoc Dynamic DNS update scheme implemented in this
version of the ISC DHCP server is a prototype design,
which does not have much to do with the standard update
method that is being standardized in the IETF DHC working
group, but rather implements some very basic, yet useful,
update capabilities. This mode does not work with the
failover protocol because it does not account for the pos-
sibility of two different DHCP servers updating the same
set of DNS records.
For the ad-hoc DNS update method, the client's FQDN is
derived in two parts. First, the hostname is determined.
Then, the domain name is determined, and appended to the
hostname.
The DHCP server determines the client's hostname by first
looking for a ddns-hostname configuration option, and
using that if it is present. If no such option is pre-
sent, the server looks for a valid hostname in the FQDN
option sent by the client. If one is found, it is used;
otherwise, if the client sent a host-name option, that is
used. Otherwise, if there is a host declaration that
applies to the client, the name from that declaration will
be used. If none of these applies, the server will not
have a hostname for the client, and will not be able to do
a DNS update.
The domain name is determined based strictly on the server
configuration, not on what the client sends. First, if
there is a ddns-domainname configuration option, it is
used. Second, if there is a domain-name option config-
ured, that is used. Otherwise, the server will not do the
DNS update.
The client's fully-qualified domain name, derived as we
have described, is used as the name on which an "A" record
will be stored. The A record will contain the IP address
that the client was assigned in its lease. If there is
already an A record with the same name in the DNS server,
no update of either the A or PTR records will occur - this
prevents a client from claiming that its hostname is the
name of some network server. For example, if you have a
fileserver called "fs.sneedville.edu", and the client
claims its hostname is "fs", no DNS update will be done
for that client, and an error message will be logged.
If the A record update succeeds, a PTR record update for
the assigned IP address will be done, pointing to the A
record. This update is unconditional - it will be done
even if another PTR record of the same name exists.
Since the IP address has been assigned to the DHCP server,
this should be safe.
Please note that the current implementation assumes
clients only have a single network interface. A client
with two network interfaces will see unpredictable behav-
ior. This is considered a bug, and will be fixed in a
later release. It may be helpful to enable the one-
lease-per-client parameter so that roaming clients do not
trigger this same behavior.
The DHCP protocol normally involves a four-packet exchange
- first the client sends a DHCPDISCOVER message, then the
server sends a DHCPOFFER, then the client sends a DHCPRE-
QUEST, then the server sends a DHCPACK. In the current
version of the server, the server will do a DNS update
after it has received the DHCPREQUEST, and before it has
sent the DHCPOFFER. It only sends the DNS update if it
has not sent one for the client's address before, in order
to minimize the impact on the DHCP server.
When the client's lease expires, the DHCP server (if it is
operating at the time, or when next it operates) will
remove the client's A and PTR records from the DNS
database. If the client releases its lease by sending a
DHCPRELEASE message, the server will likewise remove the A
and PTR records.
THE INTERIM DNS UPDATE SCHEME
The interim DNS update scheme operates mostly according to
several drafts that are being considered by the IETF and
are expected to become standards, but are not yet stan-
dards, and may not be standardized exactly as currently
proposed. These are:
draft-ietf-dhc-ddns-resolution-??.txt
draft-ietf-dhc-fqdn-option-??.txt
draft-ietf-dnsext-dhcid-rr-??.txt
Because our implementation is slightly different than the
standard, we will briefly document the operation of this
update style here.
The first point to understand about this style of DNS
update is that unlike the ad-hoc style, the DHCP server
does not necessarily always update both the A and the PTR
records. The FQDN option includes a flag which, when
sent by the client, indicates that the client wishes to
update its own A record. In that case, the server can be
configured either to honor the client's intentions or
ignore them. This is done with the statement allow
client-updates; or the statement ignore client-updates;.
By default, client updates are allowed.
If the server is configured to allow client updates, then
if the client sends a fully-qualified domain name in the
FQDN option, the server will use that name the client sent
in the FQDN option to update the PTR record. For
example, let us say that the client is a visitor from the
"radish.org" domain, whose hostname is "jschmoe". The
server is for the "example.org" domain. The DHCP client
indicates in the FQDN option that its FQDN is
"jschmoe.radish.org.". It also indicates that it wants
to update its own A record. The DHCP server therefore
does not attempt to set up an A record for the client, but
does set up a PTR record for the IP address that it
assigns the client, pointing at jschmoe.radish.org. Once
the DHCP client has an IP address, it can update its own A
record, assuming that the "radish.org" DNS server will
allow it to do so.
If the server is configured not to allow client updates,
or if the client doesn't want to do its own update, the
server will simply choose a name for the client, possibly
using the hostname supplied by the client ("jschmoe" in
the previous example). It will use its own domain name
for the client, just as in the ad-hoc update scheme. It
will then update both the A and PTR record, using the name
that it chose for the client. If the client sends a
fully-qualified domain name in the fqdn option, the server
uses only the leftmost part of the domain name - in the
example above, "jschmoe" instead of "jschmoe.radish.org".
The other difference between the ad-hoc scheme and the
interim scheme is that with the interim scheme, a method
is used that allows more than one DHCP server to update
the DNS database without accidentally deleting A records
that shouldn't be deleted nor failing to add A records
that should be added. The scheme works as follows:
When the DHCP server issues a client a new lease, it cre-
ates a text string that is an MD5 hash over the DHCP
client's identification (see draft-ietf-dnsext-dhcid-
rr-??.txt for details). The update adds an A record with
the name the server chose and a TXT record containing the
hashed identifier string (hashid). If this update suc-
ceeds, the server is done.
If the update fails because the A record already exists,
then the DHCP server attempts to add the A record with the
prerequisite that there must be a TXT record in the same
name as the new A record, and that TXT record's contents
must be equal to hashid. If this update succeeds, then
the client has its A record and PTR record. If it fails,
then the name the client has been assigned (or requested)
is in use, and can't be used by the client. At this
point the DHCP server gives up trying to do a DNS update
for the client until the client chooses a new name.
The interim DNS update scheme is called interim for two
reasons. First, it does not quite follow the drafts.
The current versions of the drafts call for a new DHCID
RRtype, but this is not yet available. The interim DNS
update scheme uses a TXT record instead. Also, the
existing ddns-resolution draft calls for the DHCP server
to put a DHCID RR on the PTR record, but the interim
update method does not do this. It is our position that
this is not useful, and we are working with the author in
hopes of removing it from the next version of the draft,
or better understanding why it is considered useful.
In addition to these differences, the server also does not
update very aggressively. Because each DNS update
involves a round trip to the DNS server, there is a cost
associated with doing updates even if they do not actually
modify the DNS database. So the DHCP server tracks
whether or not it has updated the record in the past (this
information is stored on the lease) and does not attempt
to update records that it thinks it has already updated.
This can lead to cases where the DHCP server adds a
record, and then the record is deleted through some other
mechanism, but the server never again updates the DNS
because it thinks the data is already there. In this
case the data can be removed from the lease through opera-
tor intervention, and once this has been done, the DNS
will be updated the next time the client renews.
3、
The use-host-decl-names statement
use-host-decl-names flag;
If the use-host-decl-names parameter is true in a given
scope, then for every host declaration within that
scope, the name provided for the host declaration will
be supplied to the client as its hostname. So, for
example,
group {
use-host-decl-names on;
host joe {
hardware ethernet 08:00:2b:4c:29:32;
fixed-address joe.fugue.com;
}
}
is equivalent to
host joe {
hardware ethernet 08:00:2b:4c:29:32;
fixed-address joe.fugue.com;
option host-name "joe";
}
An option host-name statement within a host declaration
will override the use of the name in the host declara-
tion.
It should be noted here that most DHCP clients com-
pletely ignore the host-name option sent by the DHCP
server, and there is no way to configure them not to do
this. So you generally have a choice of either not
having any hostname to client IP address mapping that
the client will recognize, or doing DNS updates. It
is beyond the scope of this document to describe how to
make this determination. |
|