mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-31 14:25:41 +00:00
Regenerate.
This commit is contained in:
@@ -8,7 +8,9 @@ NNAAMMEE
|
||||
dhclient - Dynamic Host Configuration Protocol Client
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ddhhcclliieenntt [ --pp _p_o_r_t ] [ --dd ] [ _i_f_0 [ _._._._i_f_N ] ]
|
||||
ddhhcclliieenntt [ --pp _p_o_r_t ] [ --dd ] [ --DD ] [ --qq ] [ --cc ] [ --llff
|
||||
_l_e_a_s_e_-_f_i_l_e ] [ --ppff _p_i_d_-_f_i_l_e ] [ --ccff _c_o_n_f_i_g_-_f_i_l_e ] [ --ss
|
||||
server ] [ _i_f_0 [ _._._._i_f_N ] ]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
The Internet Software Consortium DHCP Client, dhclient,
|
||||
@@ -56,8 +58,6 @@ OOPPEERRAATTIIOONN
|
||||
leases from the dhclient.leases file which have not yet
|
||||
expired are tested, and if they are determined to be
|
||||
valid, they are used until either they expire or the DHCP
|
||||
server becomes available.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -70,6 +70,8 @@ OOPPEERRAATTIIOONN
|
||||
dhclient(8) dhclient(8)
|
||||
|
||||
|
||||
server becomes available.
|
||||
|
||||
A mobile host which may sometimes need to access a network
|
||||
on which no DHCP server exists may be preloaded with a
|
||||
lease for a fixed address on that network. When all
|
||||
@@ -88,22 +90,75 @@ CCOOMMMMAANNDD LLIINNEE
|
||||
The names of the network interfaces that dhclient should
|
||||
attempt to configure may be specified on the command line.
|
||||
If no interface names are specified on the command line
|
||||
dhclient will identify all network interfaces, elimininat<61>
|
||||
ing non-broadcast interfaces if possible, and attempt to
|
||||
configure each interface.
|
||||
dhclient will normally identify all network interfaces,
|
||||
elimininating non-broadcast interfaces if possible, and
|
||||
attempt to configure each interface.
|
||||
|
||||
If dhclient should listen and transmit on a port other
|
||||
than the standard (port 68), the --pp flag may used. It
|
||||
should be followed by the udp port number that dhclient
|
||||
It is also possible to specify interfaces by name in the
|
||||
ddhhcclliieenntt..ccoonnff((55)) file. If interfaces are specified in
|
||||
this way, then the client will only configure interfaces
|
||||
that are either specified in the configuration file or on
|
||||
the command line, and will ignore all other interfaces.
|
||||
|
||||
If the DHCP client should listen and transmit on a port
|
||||
other than the standard (port 68), the --pp flag may used.
|
||||
It should be followed by the udp port number that dhclient
|
||||
should use. This is mostly useful for debugging purposes.
|
||||
If a different port is specified for the client to listen
|
||||
on and transmit on, the client will also use a different
|
||||
destination port - one greater than the specified destina<6E>
|
||||
tion port.
|
||||
|
||||
Dhclient will normally run in the foreground until it has
|
||||
configured an interface, and then will revert to running
|
||||
in the background. To run force dhclient to always run as
|
||||
a foreground process, the --dd flag should be specified.
|
||||
This is useful when running dhclient under a debugger, or
|
||||
when running it out of inittab on System V systems.
|
||||
The DHCP client normally transmits any protocol messages
|
||||
it sends before acquiring an IP address to,
|
||||
255.255.255.255, the IP limited broadcast address. For
|
||||
debugging purposes, it may be useful to have the server
|
||||
transmit these messages to some other address. This can
|
||||
be specified with the --ss flag, followed by the IP address
|
||||
or domain name of the destination.
|
||||
|
||||
The DHCP client will normally run in the foreground until
|
||||
it has configured an interface, and then will revert to
|
||||
running in the background. To run force dhclient to
|
||||
always run as a foreground process, the --dd flag should be
|
||||
specified. This is useful when running the client under a
|
||||
debugger, or when running it out of inittab on System V
|
||||
systems.
|
||||
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhclient(8) dhclient(8)
|
||||
|
||||
|
||||
The client writes a temporary shell script whenever it
|
||||
invokes dhclient-script. This script is normally deleted
|
||||
after the client runs, but it can be helpful when debug<75>
|
||||
ging the client script to see what the client wrote. The
|
||||
client can be configured not to delete these scripts by
|
||||
specifying the --DD flag.
|
||||
|
||||
The client normally prints a startup message and displays
|
||||
the protocol sequence to the standard error descriptor
|
||||
until it has acquired an address, and then only logs mes<65>
|
||||
sages using the ssyysslloogg ((33)) facility. The --qq flag pre<72>
|
||||
vents any messages other than errors from being printed to
|
||||
the standard error descriptor.
|
||||
|
||||
The DHCP client normally gets its configuration informa<6D>
|
||||
tion from //eettcc//ddhhcclliieenntt..ccoonnff,, its lease database from
|
||||
//vvaarr//ddbb//ddhhcclliieenntt..lleeaasseess and stores its process ID in a
|
||||
file called //vvaarr//rruunn//ddhhcclliieenntt..ppiidd.. To specify different
|
||||
names and/or locations for these files, use the --ccff,, --llff
|
||||
and --ppff flags, respectively, followed by the name of the
|
||||
file. This can be particularly useful if, for example,
|
||||
//vvaarr//ddbb or //vvaarr//rruunn has not yet been mounted when the DHCP
|
||||
client is started.
|
||||
|
||||
CCOONNFFIIGGUURRAATTIIOONN
|
||||
The syntax of the dhclient.conf(8) file is discussed
|
||||
@@ -124,18 +179,6 @@ AAUUTTHHOORR
|
||||
Software Consortium, see hhttttpp::////wwwwww..vviixx..ccoomm//iisscc.. To learn
|
||||
more about Vixie Enterprises, see hhttttpp::////wwwwww..vviixx..ccoomm..
|
||||
|
||||
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhclient(8) dhclient(8)
|
||||
|
||||
|
||||
This client was substantially modified and enhanced by
|
||||
Elliot Poger for use on Linux while he was working on the
|
||||
MosquitoNet project at Stanford.
|
||||
@@ -147,6 +190,18 @@ dhclient(8) dhclient(8)
|
||||
server uses. Much system-specific configuration code was
|
||||
moved into a shell script so that as support for more
|
||||
operating systems is added, it will not be necessary to
|
||||
|
||||
|
||||
|
||||
3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhclient(8) dhclient(8)
|
||||
|
||||
|
||||
port and maintain system-specific configuration code to
|
||||
these operating systems - instead, the shell script can
|
||||
invoke the native tools to accomplish the same purpose.
|
||||
@@ -193,6 +248,17 @@ dhclient(8) dhclient(8)
|
||||
|
||||
|
||||
|
||||
3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4
|
||||
|
||||
|
||||
|
330
common/dhcp-contrib.cat5
Normal file
330
common/dhcp-contrib.cat5
Normal file
@@ -0,0 +1,330 @@
|
||||
|
||||
|
||||
|
||||
dhcp-contrib(5) dhcp-contrib(5)
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
Contributing to the Internet Software Consortium DHCP Dis<69>
|
||||
tribution
|
||||
|
||||
EEXXHHOORRTTAATTIIOONN
|
||||
The Internet Software Consortium DHCP Distribution has
|
||||
historically been funded through the donation of various
|
||||
charitable and non-charitable organizations, as well as by
|
||||
individual contributions. To some degree, support for the
|
||||
distribution has been done on a volunteer basis, but by
|
||||
and large the reason that you have this distribution in
|
||||
your hands right now is because people like you have pro<72>
|
||||
vided funding for it.
|
||||
|
||||
We would like to encourage you to continue to provide such
|
||||
support, or to begin providing it if you have not in the
|
||||
past. You are in no way obliged to provide us with any
|
||||
support at all, and this message is not intended to guilt-
|
||||
trip you about providing support. If you choose not to
|
||||
provide support, for whatever reason, you aren't going to
|
||||
be treated differently on the mailing lists, and your
|
||||
requests for features aren't going to be prioritized any
|
||||
differently. If you want to be treated differently, you
|
||||
can buy a formal support contract, of course, but this
|
||||
document is about contributions, not support contracts.
|
||||
|
||||
FFRREEQQUUEENNTTLLYY AASSKKEEDD QQUUEESSTTIIOONNSS
|
||||
Q: So if I won't be treated differently, why contribute?
|
||||
|
||||
A: The obvious answer is self-interest. If you con<6F>
|
||||
tribute, it means that the author will have time to work
|
||||
on stuff that's not of the utmost high priority. People
|
||||
are constantly asking for things that we would really like
|
||||
to provide, but for which we have no time. By contribut<75>
|
||||
ing, you are literally giving us time to do these things.
|
||||
The amount of time varies with the contribution, of
|
||||
course, but if everybody contributes a little bit, it can
|
||||
add up to a lot.
|
||||
|
||||
Q: But everybody isn't required to contribute. If I con<6F>
|
||||
tribute and nobody else does, doesn't that make me kind of
|
||||
a sucker?
|
||||
|
||||
A: Obviously, we don't think so, but think about this: if
|
||||
you contribute, then we can point out to others that we've
|
||||
received contributions, and this will make the idea of
|
||||
contributing seem more legitimate to them, making it more
|
||||
likely that they will contribute. So your contribution
|
||||
has more value than just the money you provide - it also
|
||||
helps us to raise funds from others.
|
||||
|
||||
Q: If I contribute, I want a say in what work gets done.
|
||||
|
||||
A: We do sell support contracts, and we will also do
|
||||
|
||||
|
||||
|
||||
1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcp-contrib(5) dhcp-contrib(5)
|
||||
|
||||
|
||||
development work on specification if we feel it is rele<6C>
|
||||
vant (although you won't get to own it). This can be
|
||||
quite expensive, though - much more than even the maximum
|
||||
we'd expect you to donate. So no, contributing doesn't
|
||||
buy you a say in what work gets done.
|
||||
|
||||
Q: I work for a charity that feeds the homeless. Should
|
||||
my charity contribute?
|
||||
|
||||
A: Absolutely not! The idea here is not to take food out
|
||||
of the mouths of poor people. If donating to us would
|
||||
mean that somebody in need that you could have helped will
|
||||
go without help, keep the money. It's not worth it to us.
|
||||
This goes for providing shelter, psychiatric aid, legal
|
||||
assistance, and any other similar charity work.
|
||||
|
||||
Q: Cool! I work for a university, helping students who
|
||||
are in need of an education, so we shouldn't contribute,
|
||||
right?
|
||||
|
||||
A: No, that's not quite what we mean. Sure, if you work
|
||||
for an organization that provides free education to needy
|
||||
people, at whatever level, then we'd rather you did that
|
||||
than support us. But if your university has a big budget
|
||||
for running the computer center, can afford to plant nice
|
||||
gardens and maintain nice lawns, and maybe has all its
|
||||
dorms wired for ethernet, then even if you qualify as a
|
||||
nonprofit under federal law (or the law in your own coun<75>
|
||||
try) you should still contribute. DHCP is just as much a
|
||||
part of your infrastructure as your campus wiring.
|
||||
|
||||
Q: This software came on a CD that I bought. Haven't I
|
||||
already contributed?
|
||||
|
||||
A: If you're seeing this notice, and you didn't see a
|
||||
notice saying that the people who sold you your CD con<6F>
|
||||
tributed to us, then no, you haven't already contributed.
|
||||
In general, we encourage people to include this software
|
||||
on their distributions if they feel it would be useful,
|
||||
and we do not require them to contribute in exchange for
|
||||
that privilege.
|
||||
|
||||
Q: I've contributed to the development of this software by
|
||||
submitting bug reports and patches. Why should I also
|
||||
contribute money?
|
||||
|
||||
A: When you contributed these bug reports and patches, was
|
||||
there zero effort involved on our part in integrating the
|
||||
patches or figuring out what was wrong? Probably not.
|
||||
Bug reports and patches can be extremely valuable, and we
|
||||
can't say that in no event do they qualify you to get out
|
||||
of contributing - after all, we're leaving that up to your
|
||||
judgement anyway, aren't we? But unless your contribution
|
||||
was pretty massive, and is actually in this distribution,
|
||||
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcp-contrib(5) dhcp-contrib(5)
|
||||
|
||||
|
||||
we aren't likely to agree with you about this.
|
||||
|
||||
Q: Software should be free. You have no right to ask for
|
||||
money to support this effort.
|
||||
|
||||
A: You are entitled to that opinion, but please don't
|
||||
raise it on the mailing list, as it will tend to get peo<65>
|
||||
ple excited. Please remember that while copying software
|
||||
is generally a very cheap process, creating it is not.
|
||||
The amount of work that's gone into this software package
|
||||
is quite significant, and there's plenty more work to do.
|
||||
If you happen to be in college, working toward your
|
||||
degree, and have no social life (and yes, I've been there
|
||||
and done that) then it can seem like there's no additional
|
||||
cost to hacking on software - after all, it's fun, isn't
|
||||
it? While this is true, it is also true that you're a lot
|
||||
better off with this software than you would have been
|
||||
with the software I wrote in college. Enough said?
|
||||
|
||||
Q: Can't I contribute work instead of software?
|
||||
|
||||
A: We'd like to encourage that to some extent, and are
|
||||
indeed trying to bring some developers into the fold, but
|
||||
you shouldn't expect that your willingness to do this
|
||||
translates directly into an opportunity. For example, you
|
||||
may want very much to work for [insert the name of your
|
||||
favorite commercial Linux vendor here], but unless you
|
||||
have the appropriate skills, they like you, they're will<6C>
|
||||
ing to pay what you need, and they have work that's appro<72>
|
||||
priate to your skills, you're not going to get hired
|
||||
there.
|
||||
|
||||
Q: I don't contribute to the Free Software Foundation -
|
||||
why do you rate?
|
||||
|
||||
A: You should contribute to the Free Software Foundation
|
||||
too!
|
||||
|
||||
Q: I don't contribute to [insert name of your local food
|
||||
bank here]. Why do you rate?
|
||||
|
||||
A: If you feel bad about not contributing to the local
|
||||
food bank, this is a very easy problem to solve, and we
|
||||
encourage you to do so.
|
||||
|
||||
Q: Once I've contributed once, am I done?
|
||||
|
||||
A: We'd like to encourage you to contribute once a year.
|
||||
If you want, we can send you a reminder notice on the year
|
||||
anniversary of your original contribution. If you don't
|
||||
specifically ask for this, we won't force it on you. No
|
||||
salesperson will call. No spam will be sent. We defi<66>
|
||||
nitely won't try to convince you that it's been a year
|
||||
since you last contributed when it hasn't been a year yet.
|
||||
|
||||
|
||||
|
||||
3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcp-contrib(5) dhcp-contrib(5)
|
||||
|
||||
|
||||
Q: I don't have you in my budget this year.
|
||||
|
||||
A: Fine, put us in your budget for next year!
|
||||
|
||||
Q: It's really hard to do charitable contributions at my
|
||||
organization.
|
||||
|
||||
A: We'd be happy to sell you a product instead. If you
|
||||
choose to go down this route, what we'l sell you is a
|
||||
license for some number of clients and a CD. Just let us
|
||||
know how many DHCP clients you have, and we'll use the
|
||||
following schedule to figure out how much to invoice you
|
||||
(shipping is included on orders of $100 or more). Even if
|
||||
you can do charitable contributions, you might want to use
|
||||
this schedule as a guideline for figuring out how much to
|
||||
donate. It is only a guideline, of course - if the
|
||||
amounts listed feel like too much or too little to you, do
|
||||
what seems appropriate.
|
||||
|
||||
$10k for businesses supporting >10k nodes
|
||||
$5k for charities supporting >10k nodes
|
||||
$2.5k for businesses supporting >1k nodes
|
||||
$1k for charities supporting >1k nodes
|
||||
$500 for businesses with >500 nodes
|
||||
$250 for charities with >500 nodes
|
||||
$200 for businesses with >150 nodes
|
||||
$100 for charities with >150 nodes
|
||||
$100 for businesses with <150 nodes
|
||||
$50 for charities with <150 nodes
|
||||
$25 for home use, client or server
|
||||
$0.10 to $1 per client for businesses that are reselling the
|
||||
client, depending on volume.
|
||||
|
||||
Q: Are you nuts? I live in [insert your country name
|
||||
here] and the typical annual salary for a programmer is
|
||||
less than what you're asking me to contribute!
|
||||
|
||||
A: We leave the choice of how much to contribute up to
|
||||
you. Really. We aren't kidding.
|
||||
|
||||
Q: Can I contribute with my credit card?
|
||||
|
||||
A: Yes. The details haven't been ironed out at this
|
||||
writing, but if you send mail to dhcp-contribu<62>
|
||||
tions@isc.org, we'll work it out. By the time you read
|
||||
this, we may have a web interface set up - if so, it will
|
||||
be linked in at http://www.isc.org/dhcp-contrib.html.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
dhcpd.conf(5), dhcpd.leases(5), dhclient.conf(5),
|
||||
dhcpd(8), dhclient(8), RFC2132, RFC2131.
|
||||
|
||||
AAUUTTHHOORR
|
||||
The Internet Software Consortium DHCP Distribution was
|
||||
|
||||
|
||||
|
||||
4
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcp-contrib(5) dhcp-contrib(5)
|
||||
|
||||
|
||||
written by Ted Lemon <mellon@isc.org> under a contract
|
||||
with Vixie Labs. Funding for this project was provided
|
||||
through the Internet Software Consortium. Information
|
||||
about the Internet Software Consortium can be found at
|
||||
hhttttpp::////wwwwww..iisscc..oorrgg//iisscc..
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5
|
||||
|
||||
|
396
common/dhcp-eval.cat5
Normal file
396
common/dhcp-eval.cat5
Normal file
@@ -0,0 +1,396 @@
|
||||
|
||||
|
||||
|
||||
dhcpd-options(5) dhcpd-options(5)
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
dhcp-conditionals - ISC DHCP conditional evaluation
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
The Internet Software Consortium DHCP client and server
|
||||
both provide the ability to perform conditional behavior
|
||||
depending on the contents of packets they receive. The
|
||||
syntax for specifying this conditional behaviour is docu<63>
|
||||
mented here.
|
||||
|
||||
RREEFFEERREENNCCEE:: CCOONNDDIITTIIOONNAALL BBEEHHAAVVIIOOUURR
|
||||
Conditional behaviour is specified using the if statement
|
||||
and the else or elsif statements. A conditional state<74>
|
||||
ment can appear anywhere that a regular statement (e.g.,
|
||||
an option statement) can appear, and can enclose one or
|
||||
more such statements. A typical conditional statement in
|
||||
a server might be:
|
||||
|
||||
if option dhcp-user-class = "accounting" {
|
||||
max-lease-time 17600;
|
||||
option domain-name "accounting.example.org";
|
||||
option domain-name-servers ns1.accounting.example.org,
|
||||
ns2.accounting.example.org;
|
||||
} elsif option dhcp-user-class = "sales" {
|
||||
max-lease-time 17600;
|
||||
option domain-name "sales.example.org";
|
||||
option domain-name-servers ns1.sales.example.org,
|
||||
ns2.sales.example.org;
|
||||
} elsif option dhcp-user-class = "engineering" {
|
||||
max-lease-time 17600;
|
||||
option domain-name "engineering.example.org";
|
||||
option domain-name-servers ns1.engineering.example.org,
|
||||
ns2.engineering.example.org;
|
||||
} else {
|
||||
max-lease-time 600;
|
||||
option domain-name "misc.example.org";
|
||||
option domain-name-servers ns1.misc.example.org,
|
||||
ns2.misc.example.org;
|
||||
}
|
||||
|
||||
On the client side, an example of conditional evaluation
|
||||
might be:
|
||||
|
||||
# example.org filters DNS at its firewall, so we have to use their DNS
|
||||
# servers when we connect to their network. If we are not at
|
||||
# example.org, prefer our own DNS server.
|
||||
if not option domain-name = "example.org" {
|
||||
prepend domain-name-servers 127.0.0.1;
|
||||
}
|
||||
|
||||
The iiff statement and the eellssiiff continuation statement both
|
||||
take boolean expressions as their arguments. That is,
|
||||
they take expressions that, when evaluated, produce a
|
||||
boolean result. If the expression evaluates to true,
|
||||
|
||||
|
||||
|
||||
1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd-options(5) dhcpd-options(5)
|
||||
|
||||
|
||||
then the statements enclosed in braces following the iiff
|
||||
statement are executed, and all subsequent eellssiiff and eellssee
|
||||
clauses are skipped. Otherwise, each subsequent eellssiiff
|
||||
clause's expression is checked, until an elsif clause is
|
||||
encountered whose test evaluates to true. If such a
|
||||
clause is found, the statements in braces following it are
|
||||
executed, and then any subsequent eellssiiff and eellssee clauses
|
||||
are skipped. If all the iiff and eellssiiff clauses are checked
|
||||
but none of their expressions evaluate true, then if there
|
||||
is an eellssee clause, the statements enclosed in braces fol<6F>
|
||||
lowing the eellssee are evaluated. Boolean expressions that
|
||||
evaluate to null are treated as false in conditionals.
|
||||
|
||||
BBOOOOLLEEAANN EEXXPPRREESSSSIIOONNSS
|
||||
The following is the current list of boolean expressions
|
||||
that are supported by the DHCP distribution.
|
||||
|
||||
cchheecckk _c_l_a_s_s_-_n_a_m_e
|
||||
|
||||
The check operator returns a true value if the packet
|
||||
being considered comes from a client that falls into
|
||||
the specified class. _C_l_a_s_s_-_n_a_m_e must be a string that
|
||||
corresponds to the name of a defined class. Classes
|
||||
are only supported in the DHCP server.
|
||||
|
||||
_d_a_t_a_-_e_x_p_r_e_s_s_i_o_n_-_1 == _d_a_t_a_-_e_x_p_r_e_s_s_i_o_n_-_2
|
||||
|
||||
The == operator compares the values of two data expres<65>
|
||||
sions, returning true if they are the same, false if
|
||||
they are not. If either the left-hand side or the
|
||||
right-hand side are null, the result is also null.
|
||||
|
||||
_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_-_1 aanndd _b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_-_2
|
||||
|
||||
The aanndd operator evaluates to true if the boolean
|
||||
expression on the left-hand side and the boolean
|
||||
expression on the right-hand side both evaluate to
|
||||
true. Otherwise, it evaluates to false. If either the
|
||||
expression on the left-hand side or the expression on
|
||||
the right-hand side are null, the result is null.
|
||||
|
||||
_b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_-_1 oorr _b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n_-_2
|
||||
|
||||
The oorr operator evaluates to true if either the boolean
|
||||
expression on the left-hand side or the boolean expres<65>
|
||||
sion on the right-hand side evaluate to true. Other<65>
|
||||
wise, it evaluates to false. If either the expression
|
||||
on the left-hand side or the expression on the right-
|
||||
hand side are null, the result is null.
|
||||
|
||||
nnoott _b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n
|
||||
|
||||
The nnoott operator evaluates to true if _b_o_o_l_e_a_n_-_e_x_p_r_e_s_<08>
|
||||
_s_i_o_n evaluates to false, and returns false if _b_o_o_l_e_a_n_-
|
||||
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd-options(5) dhcpd-options(5)
|
||||
|
||||
|
||||
_e_x_p_r_e_s_s_i_o_n evaluates to true. If _b_o_o_l_e_a_n_-_e_x_p_r_e_s_s_i_o_n
|
||||
evaluates to null, the result is also null.
|
||||
|
||||
eexxiissttss _o_p_t_i_o_n_-_n_a_m_e
|
||||
|
||||
The eexxiissttss expression returns true if the specified
|
||||
option exists in the incoming DHCP packet being pro<72>
|
||||
cessed.
|
||||
kknnoowwnn
|
||||
|
||||
The kknnoowwnn expression returns true if the client whose
|
||||
request is currently being processed is known - that
|
||||
is, if there's a host declaration for it.
|
||||
|
||||
DDAATTAA EEXXPPRREESSSSIIOONNSS
|
||||
Several of the boolean expressions above depend on the
|
||||
results of evaluating data expressions. A list of these
|
||||
expressions is provided here.
|
||||
|
||||
ssuubbssttrriinngg ((_d_a_t_a_-_e_x_p_r,, _o_f_f_s_e_t,, _l_e_n_g_t_h))
|
||||
|
||||
The ssuubbssttrriinngg operator evaluates the data expression
|
||||
and returns the substring of the result of that evalua<75>
|
||||
tion that starts _o_f_f_s_e_t bytes from the beginning, con<6F>
|
||||
tinuing for _l_e_n_g_t_h bytes. _O_f_f_s_e_t and _l_e_n_g_t_h are both
|
||||
numeric expressions. If _d_a_t_a_-_e_x_p_r, _o_f_f_s_e_t or _l_e_n_g_t_h
|
||||
evaluate to null, then the result is also null. If
|
||||
_o_f_f_s_e_t is greater than or equal to the length of the
|
||||
evaluated data, then a zero-length data string is
|
||||
returned. If _l_e_n_g_t_h _i_s _g_r_e_a_t_e_r _t_h_e_n _t_h_e _r_e_m_a_i_n_i_n_g
|
||||
_l_e_n_g_t_h _o_f _t_h_e _e_v_a_l_u_a_t_e_d _d_a_t_a _a_f_t_e_r _o_f_f_s_e_t, then a data
|
||||
string containing all data from _o_f_f_s_e_t to the end of
|
||||
the evaluated data is returned.
|
||||
|
||||
ssuuffffiixx ((_d_a_t_a_-_e_x_p_r,, _l_e_n_g_t_h))
|
||||
|
||||
The ssuuffffiixx operator evaluates _d_a_t_a_-_e_x_p_r and returns the
|
||||
last _l_e_n_g_t_h bytes of the result of that evaluation.
|
||||
_L_e_n_g_t_h is a numeric expression. If _d_a_t_a_-_e_x_p_r or _l_e_n_g_t_h
|
||||
evaluate to null, then the result is also null. If
|
||||
_s_u_f_f_i_x evaluates to a number greater than the length of
|
||||
the evaluated data, then the evaluated data is
|
||||
returned.
|
||||
|
||||
ooppttiioonn _o_p_t_i_o_n_-_n_a_m_e
|
||||
|
||||
The ooppttiioonn operator returns the contents of the speci<63>
|
||||
fied option in the packet to which the server is
|
||||
responding.
|
||||
|
||||
hhaarrddwwaarree
|
||||
|
||||
The hhaarrddwwaarree operator returns a data string whose first
|
||||
element is the _h_t_y_p_e field of the packet being
|
||||
|
||||
|
||||
|
||||
3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd-options(5) dhcpd-options(5)
|
||||
|
||||
|
||||
considered, and whose subsequent elements are first
|
||||
_h_l_e_n bytes of the _c_h_a_d_d_r field of the packet, as speci<63>
|
||||
fied in RRFFCC 22113311 . If there is no packet, or if the
|
||||
_h_l_e_n field is invalid, then the result is null.
|
||||
|
||||
ppaacckkeett ((_o_f_f_s_e_t,, _l_e_n_g_t_h))
|
||||
|
||||
The ppaacckkeett operator returns the specified portion of
|
||||
the packet being considered, or null in contexts where
|
||||
no packet is being considered. _O_f_f_s_e_t and _l_e_n_g_t_h are
|
||||
applied to the contents packet as in the ssuubbssttrriinngg
|
||||
operator.
|
||||
|
||||
_s_t_r_i_n_g
|
||||
|
||||
A string, enclosed in quotes, may be specified as a
|
||||
data expression, and returns the text between the
|
||||
quotes, encoded in ASCII.
|
||||
|
||||
_c_o_l_o_n_-_s_e_p_e_r_a_t_e_d _h_e_x_a_d_e_c_i_m_a_l _l_i_s_t
|
||||
|
||||
A list of hexadecimal octet values, seperated by
|
||||
colons, may be specified as a data expression.
|
||||
|
||||
ccoonnccaatt ((_d_a_t_a_-_e_x_p_r_1,, _d_a_t_a_-_e_x_p_r_2))
|
||||
The two expressions are evaluated, and the result of
|
||||
concatenating the results of the two evaluations is
|
||||
returned. If either subexpression evaluates to null,
|
||||
then the result is the value of the other expression.
|
||||
If both expressions evaluate to null, then the result
|
||||
is null.
|
||||
|
||||
|
||||
rreevveerrssee ((_n_u_m_e_r_i_c_-_e_x_p_r_1,, _d_a_t_a_-_e_x_p_r_2))
|
||||
The two expressions are evaluated, and then the result
|
||||
of evaluating the data expression is reversed in place,
|
||||
using hunks of the size specified in the numeric
|
||||
expression. For example, if the numeric expression
|
||||
evaluates to four, and the data expression evaluates to
|
||||
twelve bytes of data, then the reverse expression will
|
||||
evaluate to twelve bytes of data, consisting of the
|
||||
last four bytes of the the input data, followed by the
|
||||
middle four bytes, followed by the first four bytes.
|
||||
|
||||
lleeaasseedd--aaddddrreessss
|
||||
In any context where the client whose request is being
|
||||
processed has been assigned an IP address, this data
|
||||
expression returns that IP address.
|
||||
|
||||
bbiinnaarryy--ttoo--aasscciiii ((_n_u_m_e_r_i_c_-_e_x_p_r_1,, _n_u_m_e_r_i_c_-_e_x_p_r_2,, _d_a_t_a_-_e_x_p_r_1,,
|
||||
_d_a_t_a_-_e_x_p_r_2))
|
||||
Converts the result of evaluating data-expr2 into a
|
||||
text string containing one number for each element of
|
||||
the result of evaluating data-expr2. Each number is
|
||||
|
||||
|
||||
|
||||
4
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd-options(5) dhcpd-options(5)
|
||||
|
||||
|
||||
seperated from the other by the result of evaluating
|
||||
data-expr1. The result of evaluating numeric-expr1
|
||||
specifies the base (2 through 16) into which the num<75>
|
||||
bers should be converted. The result of evaluating
|
||||
numeric-expr2 specifies the width in bits of each num<75>
|
||||
ber, which may be either 8, 16 or 32.
|
||||
|
||||
As an example of the preceding three types of expres<65>
|
||||
sions, to produce the name of a PTR record for the IP
|
||||
address being assigned to a client, one could write the
|
||||
following expression:
|
||||
|
||||
concat (binary-to-ascii (10, 8, ".",
|
||||
reverse (1, leased-address)),
|
||||
".in-addr.arpa.");
|
||||
|
||||
|
||||
eennccooddee--iinntt ((_n_u_m_e_r_i_c_-_e_x_p_r,, _w_i_d_t_h))
|
||||
Numeric-expr is evaluated and encoded as a data string
|
||||
of the specified width, in network byte order (most
|
||||
significant byte first). If the numeric expression
|
||||
evaluates to the null value, the result is also null.
|
||||
|
||||
|
||||
NNUUMMEERRIICC EEXXPPRREESSSSIIOONNSS
|
||||
Numeric expressions are expressions that evaluate to an
|
||||
integer. In general, the maximum size of such an integer
|
||||
should not be assumed to be representable in fewer than 32
|
||||
bits, but the precision of such integers may be more than
|
||||
32 bits.
|
||||
|
||||
eexxttrraacctt--iinntt ((_d_a_t_a_-_e_x_p_r,, _w_i_d_t_h))
|
||||
|
||||
The eexxttrraacctt--iinntt operator extracts an integer value in
|
||||
network byte order from the result of evaluating the
|
||||
specified data expression. Width is the width in bits
|
||||
of the integer to extract. Currently, the only sup<75>
|
||||
ported widths are 8, 16 and 32. If the evaluation of
|
||||
the data expression doesn't provide sufficient bits to
|
||||
extract an integer of the specified size, the null
|
||||
value is returned.
|
||||
|
||||
_n_u_m_b_e_r
|
||||
|
||||
Any number between zero and the maximum representable
|
||||
size may be specified as a numeric expression.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
dhcpd.conf(5), dhcpd.leases(5), dhclient.conf(5), dhcp-
|
||||
eval(5), dhcpd(8), dhclient(8), RFC2132, RFC2131.
|
||||
|
||||
AAUUTTHHOORR
|
||||
The Internet Software Consortium DHCP Distribution was
|
||||
written by Ted Lemon <mellon@isc.org> under a contract
|
||||
|
||||
|
||||
|
||||
5
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd-options(5) dhcpd-options(5)
|
||||
|
||||
|
||||
with Vixie Labs. Funding for this project was provided
|
||||
through the Internet Software Consortium. Information
|
||||
about the Internet Software Consortium can be found at
|
||||
hhttttpp::////wwwwww..iisscc..oorrgg//iisscc..
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6
|
||||
|
||||
|
@@ -552,7 +552,7 @@ dhcpd.conf(5) dhcpd.conf(5)
|
||||
you can write a class declaration as follows:
|
||||
class "customer" {
|
||||
match if exists agent.circuit-id;
|
||||
spawn with agent.circuit-id;
|
||||
spawn with option agent.circuit-id;
|
||||
lease limit 4;
|
||||
}
|
||||
|
||||
@@ -1179,7 +1179,7 @@ dhcpd.conf(5) dhcpd.conf(5)
|
||||
set in any scope, and will affect all clients covered by
|
||||
that scope.
|
||||
|
||||
TThhee _u_s_e_-_l_e_a_s_e_-_a_d_d_r_-_f_o_r_-_d_e_f_a_u_l_t_-_r_o_u_t_e ssttaatteemmeenntt
|
||||
TThhee _a_l_w_a_y_s_-_b_r_o_a_d_c_a_s_t ssttaatteemmeenntt
|
||||
|
||||
|
||||
|
||||
@@ -1192,6 +1192,38 @@ dhcpd.conf(5) dhcpd.conf(5)
|
||||
dhcpd.conf(5) dhcpd.conf(5)
|
||||
|
||||
|
||||
aallwwaayyss--bbrrooaaddccaasstt _f_l_a_g;;
|
||||
|
||||
The DHCP and BOOTP protocols both require DHCP and BOOTP
|
||||
clients to set the broadcast bit in the flags field of the
|
||||
BOOTP message header. Unfortunately, some DHCP and BOOTP
|
||||
clients do not do this, and therefore may not receive
|
||||
responses from the DHCP server. The DHCP server can be
|
||||
made to always broadcast its responses to clients by set<65>
|
||||
ting this flag to 'on' for the relevant scope. To avoid
|
||||
creating excess broadcast traffic on your network, we rec<65>
|
||||
ommend that you restrict the use of this option to as few
|
||||
clients as possible. For example, the Microsoft DHCP
|
||||
client is known not to have this problem, as are the Open<65>
|
||||
Transport and ISC DHCP clients.
|
||||
|
||||
TThhee _o_n_e_-_l_e_a_s_e_-_p_e_r_-_c_l_i_e_n_t ssttaatteemmeenntt
|
||||
|
||||
oonnee--lleeaassee--ppeerr--cclliieenntt _f_l_a_g;;
|
||||
|
||||
If this flag is enabled, whenever a client sends a DHCPRE<52>
|
||||
QUEST for a particular lease, the server will automati<74>
|
||||
cally free any other leases the client holds. This pre<72>
|
||||
sumes that when the client sends a DHCPREQUEST, it has
|
||||
forgotten any lease not mentioned in the DHCPREQUEST -
|
||||
i.e., the client has only a single network interface _a_n_d
|
||||
it does not remember leases it's holding on networks to
|
||||
which it is not currently attached. Neither of these
|
||||
assumptions are guaranteed or provable, so we urge caution
|
||||
in the use of this statement.
|
||||
|
||||
TThhee _u_s_e_-_l_e_a_s_e_-_a_d_d_r_-_f_o_r_-_d_e_f_a_u_l_t_-_r_o_u_t_e ssttaatteemmeenntt
|
||||
|
||||
uussee--lleeaassee--aaddddrr--ffoorr--ddeeffaauulltt--rroouuttee _f_l_a_g;;
|
||||
|
||||
If the _u_s_e_-_l_e_a_s_e_-_a_d_d_r_-_f_o_r_-_d_e_f_a_u_l_t_-_r_o_u_t_e parameter is true
|
||||
@@ -1214,6 +1246,18 @@ dhcpd.conf(5) dhcpd.conf(5)
|
||||
|
||||
The use of the server-identifier statement is not recom<6F>
|
||||
mended - the only reason to use it is to force a value
|
||||
|
||||
|
||||
|
||||
19
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd.conf(5) dhcpd.conf(5)
|
||||
|
||||
|
||||
other than the default value to be sent on occasions where
|
||||
the default value would be incorrect. The default value
|
||||
is the first IP address associated with the physical net<65>
|
||||
@@ -1246,18 +1290,6 @@ VVEENNDDOORR EENNCCAAPPSSUULLAATTEEDD OOPPTTIIOONNSS
|
||||
You can send this option to clients in one of two ways -
|
||||
either define the data directly, using a text string or a
|
||||
colon-seperated list of hexadecimal values, or define an
|
||||
|
||||
|
||||
|
||||
19
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd.conf(5) dhcpd.conf(5)
|
||||
|
||||
|
||||
option space, define some options in that option space,
|
||||
provide values for them, and specify that that option
|
||||
space should be used to generate the vveennddoorr--eennccaappssuullaatteedd--
|
||||
@@ -1281,6 +1313,17 @@ dhcpd.conf(5) dhcpd.conf(5)
|
||||
option SUNW.server-name code 3 = text;
|
||||
option SUNW.root-path code 4 = text;
|
||||
|
||||
|
||||
|
||||
20
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd.conf(5) dhcpd.conf(5)
|
||||
|
||||
|
||||
Once you have defined an option space and some options,
|
||||
you can set up scopes that define values for those
|
||||
options, and you can say when to use them. For example,
|
||||
@@ -1312,18 +1355,6 @@ dhcpd.conf(5) dhcpd.conf(5)
|
||||
to a particular class in the local scope. The vveennddoorr--
|
||||
ooppttiioonn--ssppaaccee declaration indicates that in that scope, the
|
||||
vveennddoorr--eennccaappssuullaatteedd--ooppttiioonnss option should be constructed
|
||||
|
||||
|
||||
|
||||
20
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dhcpd.conf(5) dhcpd.conf(5)
|
||||
|
||||
|
||||
using the values of all the options in the SUNW option
|
||||
space.
|
||||
|
||||
@@ -1350,37 +1381,6 @@ AAUUTTHHOORR
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
21
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user