summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/dhclient.cat8124
-rw-r--r--common/dhcp-contrib.cat5330
-rw-r--r--common/dhcp-eval.cat5396
-rw-r--r--server/dhcpd.conf.cat5114
4 files changed, 878 insertions, 86 deletions
diff --git a/client/dhclient.cat8 b/client/dhclient.cat8
index a9287f08..76f388e9 100644
--- a/client/dhclient.cat8
+++ b/client/dhclient.cat8
@@ -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,23 +90,76 @@ 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­
- ing 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
+ dhclient will normally identify all network interfaces,
+ elimininating non-broadcast interfaces if possible, and
+ attempt to configure each interface.
+
+ 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­
+ tion port.
+
+ 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.
- 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.
+ 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­
+ 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­
+ sages using the ssyysslloogg ((33)) facility. The --qq flag pre­
+ vents any messages other than errors from being printed to
+ the standard error descriptor.
+
+ The DHCP client normally gets its configuration informa­
+ 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
seperately.
@@ -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
diff --git a/common/dhcp-contrib.cat5 b/common/dhcp-contrib.cat5
new file mode 100644
index 00000000..9b81be98
--- /dev/null
+++ b/common/dhcp-contrib.cat5
@@ -0,0 +1,330 @@
+
+
+
+dhcp-contrib(5) dhcp-contrib(5)
+
+
+NNAAMMEE
+ Contributing to the Internet Software Consortium DHCP Dis­
+ 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­
+ 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­
+ 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­
+ 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­
+ 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­
+ 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­
+ 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­
+ 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­
+ 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­
+ ing to pay what you need, and they have work that's appro­
+ 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­
+ 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­
+ 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
+
+
diff --git a/common/dhcp-eval.cat5 b/common/dhcp-eval.cat5
new file mode 100644
index 00000000..70ea29b4
--- /dev/null
+++ b/common/dhcp-eval.cat5
@@ -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­
+ mented here.
+
+RREEFFEERREENNCCEE:: CCOONNDDIITTIIOONNAALL BBEEHHAAVVIIOOUURR
+ Conditional behaviour is specified using the if statement
+ and the else or elsif statements. A conditional state­
+ 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­
+ 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­
+ 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­
+ sion on the right-hand side evaluate to true. Other­
+ 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_­
+ _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­
+ 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­
+ tion that starts _o_f_f_s_e_t bytes from the beginning, con­
+ 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­
+ 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­
+ 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­
+ bers should be converted. The result of evaluating
+ numeric-expr2 specifies the width in bits of each num­
+ ber, which may be either 8, 16 or 32.
+
+ As an example of the preceding three types of expres­
+ 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­
+ 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
+
+
diff --git a/server/dhcpd.conf.cat5 b/server/dhcpd.conf.cat5
index a9def254..de1cbe16 100644
--- a/server/dhcpd.conf.cat5
+++ b/server/dhcpd.conf.cat5
@@ -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­
+ ting this flag to 'on' for the relevant scope. To avoid
+ creating excess broadcast traffic on your network, we rec­
+ 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­
+ 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­
+ QUEST for a particular lease, the server will automati­
+ cally free any other leases the client holds. This pre­
+ 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­
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­
@@ -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