mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-22 09:57:20 +00:00
[master] Includes DHCP4 option definitions for RFCs 4578,5071, and 5859
Merges in 47062
This commit is contained in:
parent
b94669fa89
commit
efd3b1e291
8
RELNOTES
8
RELNOTES
@ -97,6 +97,14 @@ by Eric Young (eay@cryptsoft.com).
|
|||||||
dad-wait-time is zero (the default), DAD error checking is not peformed.
|
dad-wait-time is zero (the default), DAD error checking is not peformed.
|
||||||
[ISC-Bugs 46805]
|
[ISC-Bugs 46805]
|
||||||
|
|
||||||
|
- Support for sending and receiving additional DHCP4 options has been added
|
||||||
|
to both the dhcpd and dhclient. Specifically: option codes 93,94, and 97
|
||||||
|
(RFC 4578); code 150 (RFC 5859); and codes 209,219, and 211 (RFC 5071).
|
||||||
|
Beyond configuring, sending, requesting, and receiving these options neither
|
||||||
|
server nor client apply any additional logic based on their values.
|
||||||
|
Thanks to Peter Lewis for requesting this change.
|
||||||
|
[ISC-Bugs 47062]
|
||||||
|
|
||||||
Changes since 4.4.0b1 (Bug Fixes)
|
Changes since 4.4.0b1 (Bug Fixes)
|
||||||
|
|
||||||
- Added clarifying text to dhcpd.conf.5 explaining the class match expressions
|
- Added clarifying text to dhcpd.conf.5 explaining the class match expressions
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
.\" $Id: dhcp-options.5,v 1.50 2011/05/20 13:48:32 tomasz Exp $
|
.\" $Id: dhcp-options.5,v 1.50 2011/05/20 13:48:32 tomasz Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2012-2016 by Internet Systems Consortium, Inc. ("ISC")
|
.\" Copyright (c) 2004-2018 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
.\" Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
|
|
||||||
.\" Copyright (c) 1996-2003 by Internet Software Consortium
|
.\" Copyright (c) 1996-2003 by Internet Software Consortium
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" Permission to use, copy, modify, and distribute this software for any
|
||||||
@ -114,7 +113,7 @@ or
|
|||||||
.SH SETTING OPTION VALUES USING EXPRESSIONS
|
.SH SETTING OPTION VALUES USING EXPRESSIONS
|
||||||
Sometimes it's helpful to be able to set the value of a DHCP option
|
Sometimes it's helpful to be able to set the value of a DHCP option
|
||||||
based on some value that the client has sent. To do this, you can
|
based on some value that the client has sent. To do this, you can
|
||||||
use expression evaluation. The
|
use expression evaluation. The
|
||||||
.B dhcp-eval(5)
|
.B dhcp-eval(5)
|
||||||
manual page describes how to write expressions. To assign the result
|
manual page describes how to write expressions. To assign the result
|
||||||
of an evaluation to an option, define the option as follows:
|
of an evaluation to an option, define the option as follows:
|
||||||
@ -135,7 +134,7 @@ will be included in the code based on the definition of an argument for
|
|||||||
the RFC that defines the option in includes/site.h. This provides you
|
the RFC that defines the option in includes/site.h. This provides you
|
||||||
with a method for over-riding the ISC definitions if necessary - for
|
with a method for over-riding the ISC definitions if necessary - for
|
||||||
example if you have previously defined the option with a different
|
example if you have previously defined the option with a different
|
||||||
format using the mechanism from DEFINING NEW OPTIONS below.
|
format using the mechanism from DEFINING NEW OPTIONS below.
|
||||||
.PP
|
.PP
|
||||||
By default all of the options are enabled. In order to disable an option
|
By default all of the options are enabled. In order to disable an option
|
||||||
you would edit the includes/site.h file and comment out the definition for
|
you would edit the includes/site.h file and comment out the definition for
|
||||||
@ -581,6 +580,35 @@ forwarding, and a value of true means enable IP forwarding.
|
|||||||
The IRC server option specifies a list of IRC servers available
|
The IRC server option specifies a list of IRC servers available
|
||||||
to the client. Servers should be listed in order of preference.
|
to the client. Servers should be listed in order of preference.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.B option \fBloader-configfile\fR \fItext\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
This option is used to specify a boot loading configuration file
|
||||||
|
a PXE client should use.
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 5071.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.B option \fBloader-pathprefix\fR \fItext\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
This option is used to specify a path prefix a PXE client should
|
||||||
|
use in conjunction with the boot load configuration file.
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 5071.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.B option \fBloader-reboottime\fR \fIuint32\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
This option is used to dictate the maximum amount of time a
|
||||||
|
PXE client should allow itself to achieve configured network
|
||||||
|
resources before rebooting.
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 5071.
|
||||||
|
.RE
|
||||||
.PP
|
.PP
|
||||||
.B option \fBlog-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR...
|
.B option \fBlog-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR...
|
||||||
]\fB;\fR
|
]\fB;\fR
|
||||||
@ -810,6 +838,33 @@ NetWare/IP suboptions - see the NETWARE/IP SUBOPTIONS section for more
|
|||||||
information.
|
information.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
.B option \fBpxe-system-type\fR \fIuint16\fR [\fB, \fIuint16\fR ... ]\fB;\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
A list of one ore more 16-bit integers which allows a client to specify its
|
||||||
|
pre-boot architecture type(s).
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 4578.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.B option \fBpxe-interface-id\fR \fIuint8\fR \fIuint8\fR \fIuint8\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
A three octet value which allows a client to specify its network interface
|
||||||
|
type.
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 4578.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
.B option \fBpxe-client-id\fR \fIuint8\fR \fIstring\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
A single octet indicating type, followed by a string that allows a
|
||||||
|
client to specify its PXE client identity.
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 4578.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
.B option \fBoption-6rd\fR \fIuint8 uint8 ip6-address ip-address\fR [\fB,\fR
|
.B option \fBoption-6rd\fR \fIuint8 uint8 ip6-address ip-address\fR [\fB,\fR
|
||||||
.I ip-address \fR...]\fB;\fR
|
.I ip-address \fR...]\fB;\fR
|
||||||
.RS 0.25i
|
.RS 0.25i
|
||||||
@ -966,7 +1021,7 @@ If you have an NDS directory agent whose address you need to
|
|||||||
configure, the slp-directory-agent option should work.
|
configure, the slp-directory-agent option should work.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
.B option slp-service-scope \fIboolean text\fR\fB;\fR
|
.B option \fBslp-service-scope\fR \fIboolean text\fR\fB;\fR
|
||||||
.RS 0.25i
|
.RS 0.25i
|
||||||
.PP
|
.PP
|
||||||
The Service Location Protocol Service Scope Option specifies two
|
The Service Location Protocol Service Scope Option specifies two
|
||||||
@ -1067,6 +1122,16 @@ This option is not user configurable in the server.
|
|||||||
This specifies the IP address of the client's swap server.
|
This specifies the IP address of the client's swap server.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
.B option \fBtftp-server-address\fR \fIip-address\fR [\fB,\fR
|
||||||
|
\fIip-address\fR... ]\fB;\fR
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
This option configures a list of one or more IPv4 addresses of
|
||||||
|
tftp servers a client may use.
|
||||||
|
.PP
|
||||||
|
This option is included based on RFC 5859
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
.B option \fBtcp-keepalive-garbage\fR \fIflag\fR\fB;\fR
|
.B option \fBtcp-keepalive-garbage\fR \fIflag\fR\fB;\fR
|
||||||
.RS 0.25i
|
.RS 0.25i
|
||||||
.PP
|
.PP
|
||||||
@ -1648,7 +1713,7 @@ rather than IPv6 addresses, please see the \fBsip-servers-names\fR option
|
|||||||
above.
|
above.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
.B option
|
.B option
|
||||||
.B dhcp6.name-servers
|
.B dhcp6.name-servers
|
||||||
.I ip6-address \fR[\fB,\fR
|
.I ip6-address \fR[\fB,\fR
|
||||||
.I ip6-address \fR... ]
|
.I ip6-address \fR... ]
|
||||||
@ -1682,7 +1747,7 @@ manufactured and consumed by the software.
|
|||||||
.PP
|
.PP
|
||||||
The \fBia-prefix\fR option is placed inside \fBia-pd\fR options in order
|
The \fBia-prefix\fR option is placed inside \fBia-pd\fR options in order
|
||||||
to identify the prefix(es) allocated to the client. It is not directly
|
to identify the prefix(es) allocated to the client. It is not directly
|
||||||
edited in dhcpd.conf(5) or dhclient.conf(5), but rather is
|
edited in dhcpd.conf(5) or dhclient.conf(5), but rather is
|
||||||
manufactured and consumed by the software.
|
manufactured and consumed by the software.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
@ -2177,7 +2242,7 @@ option sql-server-address sql.example.com;
|
|||||||
.B ;
|
.B ;
|
||||||
.PP
|
.PP
|
||||||
An option whose structure is an IPv6 address must be expressed as
|
An option whose structure is an IPv6 address must be expressed as
|
||||||
a valid IPv6 address. The following is an example use of the
|
a valid IPv6 address. The following is an example use of the
|
||||||
ip6-address type:
|
ip6-address type:
|
||||||
.nf
|
.nf
|
||||||
|
|
||||||
@ -2315,7 +2380,7 @@ option static-routes
|
|||||||
10.0.1.0 255.255.255.0 net-1-rtr.example.com 1,
|
10.0.1.0 255.255.255.0 net-1-rtr.example.com 1,
|
||||||
10.2.0.0 255.255.224.0 net-2-0-rtr.example.com 3;
|
10.2.0.0 255.255.224.0 net-2-0-rtr.example.com 3;
|
||||||
|
|
||||||
.fi
|
.fi
|
||||||
.SH VENDOR ENCAPSULATED OPTIONS
|
.SH VENDOR ENCAPSULATED OPTIONS
|
||||||
The DHCP protocol defines the \fBvendor-encapsulated-options\fR
|
The DHCP protocol defines the \fBvendor-encapsulated-options\fR
|
||||||
option, which allows vendors to define their own options that will be
|
option, which allows vendors to define their own options that will be
|
||||||
@ -2359,7 +2424,7 @@ option dhcp6.vendor-opts
|
|||||||
The second way of setting the value of these options is to have the DHCP
|
The second way of setting the value of these options is to have the DHCP
|
||||||
server generate a vendor-specific option buffer. To do this, you
|
server generate a vendor-specific option buffer. To do this, you
|
||||||
must do four things: define an option space, define some options in
|
must do four things: define an option space, define some options in
|
||||||
that option space, provide values for them, and specify that that
|
that option space, provide values for them, and specify that that
|
||||||
option space should be used to generate the relevant option.
|
option space should be used to generate the relevant option.
|
||||||
.PP
|
.PP
|
||||||
To define a new option space in which vendor options can be stored,
|
To define a new option space in which vendor options can be stored,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Tables of information... */
|
Tables of information... */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
|
* Copyright (c) 2004-2018 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
* Copyright (c) 1995-2003 by Internet Software Consortium
|
* Copyright (c) 1995-2003 by Internet Software Consortium
|
||||||
*
|
*
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
@ -191,9 +191,9 @@ static struct option dhcp_options[] = {
|
|||||||
|
|
||||||
{ "client-last-transaction-time", "L", &dhcp_universe, 91, 1 },
|
{ "client-last-transaction-time", "L", &dhcp_universe, 91, 1 },
|
||||||
{ "associated-ip", "Ia", &dhcp_universe, 92, 1 },
|
{ "associated-ip", "Ia", &dhcp_universe, 92, 1 },
|
||||||
#if 0
|
#if defined(RFC4578_OPTIONS)
|
||||||
/* Defined by RFC 4578 */
|
/* Defined by RFC 4578 */
|
||||||
{ "pxe-system-type", "S", &dhcp_universe, 93, 1 },
|
{ "pxe-system-type", "Sa", &dhcp_universe, 93, 1 },
|
||||||
{ "pxe-interface-id", "BBB", &dhcp_universe, 94, 1 },
|
{ "pxe-interface-id", "BBB", &dhcp_universe, 94, 1 },
|
||||||
{ "pxe-client-id", "BX", &dhcp_universe, 97, 1 },
|
{ "pxe-client-id", "BX", &dhcp_universe, 97, 1 },
|
||||||
#endif
|
#endif
|
||||||
@ -250,8 +250,7 @@ static struct option dhcp_options[] = {
|
|||||||
#if defined(RFC6731_OPTIONS)
|
#if defined(RFC6731_OPTIONS)
|
||||||
{ "rdnss-selection", "BIID", &dhcp_universe, 146, 1 },
|
{ "rdnss-selection", "BIID", &dhcp_universe, 146, 1 },
|
||||||
#endif
|
#endif
|
||||||
#if 0
|
#if defined(RFC5859_OPTIONS)
|
||||||
/* Not defined by RFC yet */
|
|
||||||
{ "tftp-server-address", "Ia", &dhcp_universe, 150, 1 },
|
{ "tftp-server-address", "Ia", &dhcp_universe, 150, 1 },
|
||||||
#endif
|
#endif
|
||||||
#if defined(RFC7618_OPTIONS)
|
#if defined(RFC7618_OPTIONS)
|
||||||
@ -260,9 +259,11 @@ static struct option dhcp_options[] = {
|
|||||||
#if defined(RFC7710_OPTIONS)
|
#if defined(RFC7710_OPTIONS)
|
||||||
{ "v4-captive-portal", "t", &dhcp_universe, 160, 1 },
|
{ "v4-captive-portal", "t", &dhcp_universe, 160, 1 },
|
||||||
#endif
|
#endif
|
||||||
#if 0
|
#if defined(RFC5071_OPTIONS)
|
||||||
/* PXELINUX options: defined by RFC 5071 */
|
#if 0
|
||||||
|
/* Option 208 has been officially deprecated. Do NOT define it */
|
||||||
{ "pxelinux-magic", "BBBB", &dhcp_universe, 208, 1 },
|
{ "pxelinux-magic", "BBBB", &dhcp_universe, 208, 1 },
|
||||||
|
#endif
|
||||||
{ "loader-configfile", "t", &dhcp_universe, 209, 1 },
|
{ "loader-configfile", "t", &dhcp_universe, 209, 1 },
|
||||||
{ "loader-pathprefix", "t", &dhcp_universe, 210, 1 },
|
{ "loader-pathprefix", "t", &dhcp_universe, 210, 1 },
|
||||||
{ "loader-reboottime", "L", &dhcp_universe, 211, 1 },
|
{ "loader-reboottime", "L", &dhcp_universe, 211, 1 },
|
||||||
@ -365,10 +366,10 @@ static struct option dhcpv6_options[] = {
|
|||||||
{ "relay-msg", "X", &dhcpv6_universe, 9, 1 },
|
{ "relay-msg", "X", &dhcpv6_universe, 9, 1 },
|
||||||
|
|
||||||
/* Option code 10 is curiously unassigned. */
|
/* Option code 10 is curiously unassigned. */
|
||||||
/*
|
/*
|
||||||
* In draft-ietf-dhc-dhcpv6-25 there were two OPTION_CLIENT_MSG and
|
* In draft-ietf-dhc-dhcpv6-25 there were two OPTION_CLIENT_MSG and
|
||||||
* OPTION_SERVER_MSG options. They were eventually unified as
|
* OPTION_SERVER_MSG options. They were eventually unified as
|
||||||
* OPTION_RELAY_MSG, hence no option with value of 10.
|
* OPTION_RELAY_MSG, hence no option with value of 10.
|
||||||
*/
|
*/
|
||||||
#if 0
|
#if 0
|
||||||
/* XXX: missing suitable atoms for the auth option. We may want
|
/* XXX: missing suitable atoms for the auth option. We may want
|
||||||
|
@ -345,17 +345,20 @@
|
|||||||
|
|
||||||
/* Include definitions for various options. In general these
|
/* Include definitions for various options. In general these
|
||||||
should be left as is, but if you have already defined one
|
should be left as is, but if you have already defined one
|
||||||
of these and prefer your definition you can comment the
|
of these and prefer your definition you can comment the
|
||||||
RFC define out to avoid conflicts */
|
RFC define out to avoid conflicts */
|
||||||
#define RFC2563_OPTIONS
|
#define RFC2563_OPTIONS
|
||||||
#define RFC2937_OPTIONS
|
#define RFC2937_OPTIONS
|
||||||
#define RFC4776_OPTIONS
|
#define RFC4776_OPTIONS
|
||||||
|
#define RFC4578_OPTIONS
|
||||||
#define RFC4833_OPTIONS
|
#define RFC4833_OPTIONS
|
||||||
#define RFC4994_OPTIONS
|
#define RFC4994_OPTIONS
|
||||||
|
#define RFC5071_OPTIONS
|
||||||
#define RFC5192_OPTIONS
|
#define RFC5192_OPTIONS
|
||||||
#define RFC5223_OPTIONS
|
#define RFC5223_OPTIONS
|
||||||
#define RFC5417_OPTIONS
|
#define RFC5417_OPTIONS
|
||||||
#define RFC5460_OPTIONS
|
#define RFC5460_OPTIONS
|
||||||
|
#define RFC5859_OPTIONS
|
||||||
#define RFC5969_OPTIONS
|
#define RFC5969_OPTIONS
|
||||||
#define RFC5970_OPTIONS
|
#define RFC5970_OPTIONS
|
||||||
#define RFC5986_OPTIONS
|
#define RFC5986_OPTIONS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user