1 From d359a7dc30e0423f9b90129291538cad1ee6a6d9 Mon Sep 17 00:00:00 2001
2 From: Pavel Zhukov <pzhukov@redhat.com>
3 Date: Thu, 21 Feb 2019 10:25:53 +0100
4 Subject: [PATCH 06/28] Various man-page-only fixes
7 client/dhclient-script.8 | 22 +++++++++++++++++++++-
8 client/dhclient.conf.5 | 14 +++++++++++++-
9 common/dhcp-options.5 | 15 +++++++++++++++
10 server/dhcpd.conf.5 | 14 +++++++++-----
11 4 files changed, 58 insertions(+), 7 deletions(-)
13 diff --git a/client/dhclient-script.8 b/client/dhclient-script.8
14 index 5e5bd3d..37ecdc5 100644
15 --- a/client/dhclient-script.8
16 +++ b/client/dhclient-script.8
17 @@ -43,7 +43,7 @@ customizations are needed, they should be possible using the enter and
18 exit hooks provided (see HOOKS for details). These hooks will allow the
19 user to override the default behaviour of the client in creating a
22 +file, and to handle DHCP options not handled by default.
24 No standard client script exists for some operating systems, even though
25 the actual client may work, so a pioneering user may well need to create
26 @@ -87,6 +87,26 @@ present. The
27 .B ETCDIR/dhclient-exit-hooks
28 script can modify the valid of exit_status to change the exit status
31 +Immediately after dhclient brings an interface UP with a new IP address,
32 +subnet mask, and routes, in the REBOOT/BOUND states, it will check for the
33 +existence of an executable
34 +.B ETCDIR/dhclient-up-hooks
35 +script, and source it if found. This script can handle DHCP options in
36 +the environment that are not handled by default. A per-interface.
37 +.B ETCDIR/dhclient-${IF}-up-hooks
38 +script will override the generic script and be sourced when interface
39 +$IF has been brought up.
41 +Immediately before dhclient brings an interface DOWN, removing its IP
42 +address, subnet mask, and routes, in the STOP/RELEASE states, it will
43 +check for the existence of an executable
44 +.B ETCDIR/dhclient-down-hooks
45 +script, and source it if found. This script can handle DHCP options in
46 +the environment that are not handled by default. A per-interface
47 +.B ETCDIR/dhclient-${IF}-down-hooks
48 +script will override the generic script and be sourced when interface
49 +$IF is about to be brought down.
51 When dhclient needs to invoke the client configuration script, it
52 defines a set of variables in the environment, and then invokes
53 diff --git a/client/dhclient.conf.5 b/client/dhclient.conf.5
54 index dbe6f7e..8bac980 100644
55 --- a/client/dhclient.conf.5
56 +++ b/client/dhclient.conf.5
57 @@ -228,7 +228,8 @@ responding to the client send the client its values for the specified
58 options. Only the option names should be specified in the request
59 statement - not option parameters. By default, the DHCPv4 client
60 requests the subnet-mask, broadcast-address, time-offset, routers,
61 -domain-name, domain-name-servers and host-name options while the DHCPv6
62 +domain-search, domain-name, domain-name-servers, host-name, nis-domain,
63 +nis-servers, ntp-servers and interface-mtu options while the DHCPv6
64 client requests the dhcp6 name-servers and domain-search options. Note
65 that if you enter a \'request\' statement, you over-ride these defaults
66 and these options will not be requested.
67 @@ -735,6 +736,17 @@ broadcast packets transmitted by DHCP clients, but is only useful if you
68 know the DHCP service(s) anycast MAC address prior to configuring your
69 client. The \fIlink-type\fR and \fImac-address\fR parameters are configured
70 in a similar manner to the \fBhardware\fR statement.
72 + \fBbootp-broadcast-always;\fR
75 +.B bootp-broadcast-always
76 +statement instructs dhclient to always set the bootp broadcast flag in
77 +request packets, so that servers will always broadcast replies.
78 +This is equivalent to supplying the dhclient -B argument, and has
79 +the same effect as specifying 'always-broadcast' in the server's dhcpd.conf.
80 +This option is provided as an extension to enable dhclient to work
81 +on IBM s390 Linux guests.
84 The following configuration file was used on a laptop running NetBSD
85 diff --git a/common/dhcp-options.5 b/common/dhcp-options.5
86 index 51f80f7..a784b32 100644
87 --- a/common/dhcp-options.5
88 +++ b/common/dhcp-options.5
89 @@ -1075,6 +1075,21 @@ classless IP routing - it does not include a subnet mask. Since
90 classless IP routing is now the most widely deployed routing standard,
91 this option is virtually useless, and is not implemented by any of the
92 popular DHCP clients, for example the Microsoft DHCP client.
94 +NOTE to Fedora dhclient users:
96 +dhclient-script interprets trailing 0 octets of the target as indicating
97 +the subnet class of the route, so for the following static-routes value:
99 + option static-routes 172.0.0.0 172.16.2.254,
101 + 192.168.0.0 192.168.2.254;
103 +dhclient-script will create routes:
105 + 172/8 via 172.16.2.254 dev $interface
107 + 192.168/16 via 192.168.2.254 dev $interface
111 diff --git a/server/dhcpd.conf.5 b/server/dhcpd.conf.5
112 index 691e5dd..b7e79ea 100644
113 --- a/server/dhcpd.conf.5
114 +++ b/server/dhcpd.conf.5
115 @@ -527,6 +527,9 @@ pool {
119 +Dynamic BOOTP leases are not compatible with failover, and, as such,
120 +you need to disallow BOOTP in pools that you are using failover for.
122 The server currently does very little sanity checking, so if you
123 configure it wrong, it will just fail in odd ways. I would recommend
124 therefore that you either do failover or don't do failover, but don't
125 @@ -541,9 +544,9 @@ primary server might look like this:
126 failover peer "foo" {
128 address anthrax.rc.example.com;
131 peer address trantor.rc.example.com;
134 max-response-delay 60;
135 max-unacked-updates 10;
137 @@ -1323,7 +1326,7 @@ the zone containing PTR records - for ISC BIND, something like this:
141 - algorithm HMAC-MD5.SIG-ALG.REG.INT;
142 + algorithm hmac-md5;
143 secret pRP5FapFoJ95JEL06sv4PQ==;
146 @@ -1346,7 +1349,7 @@ dhcpd.conf file:
150 - algorithm HMAC-MD5.SIG-ALG.REG.INT;
151 + algorithm hmac-md5;
152 secret pRP5FapFoJ95JEL06sv4PQ==;
155 @@ -2918,7 +2921,8 @@ statement
156 The \fInext-server\fR statement is used to specify the host address of
157 the server from which the initial boot file (specified in the
158 \fIfilename\fR statement) is to be loaded. \fIServer-name\fR should
159 -be a numeric IP address or a domain name.
160 +be a numeric IP address or a domain name. If no \fInext-server\fR statement
161 +applies to a given client, the address 0.0.0.0 is used.
168 From aa328eef58ff93110f2a52cb3a80002ab8cee36e Mon Sep 17 00:00:00 2001
169 From: Pavel Zhukov <pzhukov@redhat.com>
170 Date: Tue, 22 Oct 2019 16:28:04 +0200
171 Subject: [PATCH 26/28] Add dhclient(5) -B option description
173 Bug-Url: https://bugzilla.redhat.com/1764088
175 client/dhclient.8 | 5 +++++
176 1 file changed, 5 insertions(+)
178 diff --git a/client/dhclient.8 b/client/dhclient.8
179 index bacf3bc..76f0cc0 100644
180 --- a/client/dhclient.8
181 +++ b/client/dhclient.8
182 @@ -553,6 +553,11 @@ Path to the network configuration script invoked by
183 when it gets a lease. If unspecified, the default
184 .B CLIENTBINDIR/dhclient-script
185 is used. See \fBdhclient-script(8)\fR for a description of this file.
188 +Always set the bootp broadcast flag in request packets, so that
189 +servers will always broadcast replies. This option is provided as
190 +an extension to enable dhclient to work on IBM s390 Linux guests.
193 During operations the client may use multiple UDP ports