source: networking/connect/dhcp.xml@ 76b71ab

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 76b71ab was 76b71ab, checked in by Bruce Dubbs <bdubbs@…>, 12 years ago

Update to DHCP-4.2.4-P2

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@10712 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 15.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY dhcp-download-http " ">
8 <!ENTITY dhcp-download-ftp "ftp://ftp.isc.org/isc/dhcp/&dhcp-version;/dhcp-&dhcp-version;.tar.gz">
9 <!ENTITY dhcp-md5sum "fe36056f2d274fa4b82a5422f192e65f">
10 <!ENTITY dhcp-size "7.8 MB">
11 <!ENTITY dhcp-buildsize "189 MB">
12 <!ENTITY dhcp-time "0.5 SBU">
13]>
14
15<sect1 id="dhcp" xreflabel="DHCP-&dhcp-version;">
16 <?dbhtml filename="dhcp.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>DHCP-&dhcp-version;</title>
24
25 <indexterm zone="dhcp">
26 <primary sortas="a-DHCP">DHCP</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to ISC DHCP</title>
31
32 <para>
33 The <application>ISC DHCP</application> package contains both the client and
34 server programs for DHCP. <command>dhclient</command> (the client) is
35 used for connecting to a network which uses DHCP to assign network
36 addresses. <command>dhcpd</command> (the server) is used for assigning
37 network addresses on private networks.
38 </para>
39
40 &lfs72_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&dhcp-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&dhcp-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &dhcp-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &dhcp-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &dhcp-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &dhcp-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
77 <itemizedlist spacing="compact">
78 <listitem>
79 <para>
80 Required Patch:
81 <ulink url="&patch-root;/dhcp-&dhcp-version;-client-script-1.patch"/>
82 </para>
83 </listitem>
84 <listitem>
85 <para>
86 Optional Patch:
87 <ulink url="&patch-root;/dhcp-&dhcp-version;-missing_ipv6-1.patch"/>
88 </para>
89 </listitem>
90 </itemizedlist>
91
92 <para condition="html" role="usernotes">User Notes:
93 <ulink url="&blfs-wiki;/dhcp"/>
94 </para>
95 </sect2>
96
97 <sect2 role="kernel" id="dhcp-kernel">
98 <title>Kernel Configuration</title>
99
100 <para>
101 You must have Packet Socket support (Networking Support &rArr;
102 Networking Options &rArr; Packet Socket) compiled into the kernel.
103 If you do not have IPv6 support (Networking Support &rArr;
104 Networking Options &rArr; The IPv6 Protocol) compiled in, then you
105 must use the missing_ipv6 patch.
106 </para>
107
108 <indexterm zone="dhcp dhcp-kernel">
109 <primary sortas="d-DHCP">DHCP</primary>
110 </indexterm>
111
112 </sect2>
113
114 <sect2 role="installation">
115 <title>Installation of ISC DHCP</title>
116
117 <para>
118 If you have not compiled IPv6 support into the kernel, apply the
119 missing_ipv6 patch:
120 </para>
121
122<screen><userinput>patch -Np1 -i ../dhcp-&dhcp-version;-missing_ipv6-1.patch</userinput></screen>
123
124 <note><para>Be careful with the instructions below. The single
125 and double quotes are important beecause the defined variables
126 are used verbatim in the code.</para></note>
127
128 <para>Install <application>ISC DHCP</application> by running
129 the following commands:</para>
130
131<screen><userinput>patch -Np1 -i ../dhcp-&dhcp-version;-client-script-1.patch &amp;&amp;
132CFLAGS="-D_PATH_DHCLIENT_SCRIPT='\"/sbin/dhclient-script\"' \
133 -D_PATH_DHCPD_CONF='\"/etc/dhcp/dhcpd.conf\"' \
134 -D_PATH_DHCLIENT_CONF='\"/etc/dhcp/dhclient.conf\"'" \
135./configure --prefix=/usr \
136 --sysconfdir=/etc/dhcp \
137 --localstatedir=/var \
138 --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
139 --with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases \
140 --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
141 --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases &amp;&amp;
142make</userinput></screen>
143
144 <para>
145 To test the results, issue: <command>make check</command>
146 </para>
147
148 <para>
149 If you only want to install the <application>ISC DHCP</application> client,
150 issue the following commands as the
151 <systemitem class="username">root</systemitem> user:
152 </para>
153
154<screen role="root"><userinput>make -C client install &amp;&amp;
155mv -v /usr/sbin/dhclient /sbin &amp;&amp;
156install -v -m755 client/scripts/linux /sbin/dhclient-script</userinput></screen>
157
158 <para>
159 Skip to <xref linkend="dhclient-config"/> in order to configure the client
160 </para>
161
162 <para>
163 If you only want to install the <application>ISC DHCP</application> server,
164 issue the following command as the
165 <systemitem class="username">root</systemitem> user:
166 </para>
167
168<screen role="root"><userinput>make -C server install</userinput></screen>
169
170 <para>
171 Skip to <xref linkend="dhcpd-config"/> in order to configure the server.
172 </para>
173
174 <para>
175 Alternatively, you can install whole package which includes the client,
176 server, relay, static libraries and development headers by running the
177 following commands as the
178 <systemitem class="username">root</systemitem> user:
179 </para>
180
181<screen role="root"><userinput>make install &amp;&amp;
182mv -v /usr/sbin/dhclient /sbin &amp;&amp;
183install -v -m755 client/scripts/linux /sbin/dhclient-script</userinput></screen>
184
185 </sect2>
186
187 <sect2 role="configuration">
188 <title>Configuring ISC DHCP</title>
189
190 <sect3 id="dhcp-config">
191 <title>Config Files</title>
192
193 <para>
194 <filename>/etc/dhcp/dhclient.conf</filename> and
195 <filename>/etc/dhcp/dhcpd.conf</filename>
196 </para>
197
198 <indexterm zone="dhcp dhcp-config">
199 <primary sortas="e-etc-dhcp-dhclient.conf">/etc/dhcp/dhclient.conf</primary>
200 </indexterm>
201
202 <indexterm zone="dhcp dhcp-config">
203 <primary sortas="e-etc-dhcp-dhcpd.conf">/etc/dhcp/dhcpd.conf</primary>
204 </indexterm>
205
206 </sect3>
207
208 <sect3 id="dhclient-config">
209 <title>Client Configuration</title>
210
211 <para>
212 Create basic <filename>/etc/dhcp/dhclient.conf</filename>
213 by running the following command as the
214 <systemitem class="username">root</systemitem> user:
215 </para>
216
217<screen role="root"><userinput>cat &gt; /etc/dhcp/dhclient.conf &lt;&lt; "EOF"
218<literal># Begin /etc/dhcp/dhclient.conf
219#
220# Basic dhclient.conf(5)
221
222#prepend domain-name-servers 127.0.0.1;
223request subnet-mask, broadcast-address, time-offset, routers,
224 domain-name, domain-name-servers, domain-search, host-name,
225 netbios-name-servers, netbios-scope, interface-mtu,
226 ntp-servers;
227require subnet-mask, domain-name-servers;
228#timeout 60;
229#retry 60;
230#reboot 10;
231#select-timeout 5;
232#initial-interval 2;
233
234# End /etc/dhcp/dhclient.conf</literal>
235EOF</userinput></screen>
236
237 <para>
238 See <command>man 5 dhclient.conf</command> for additional options.
239 </para>
240
241 <para>
242 Now create the <filename class="directory">/var/lib/dhclient</filename>
243 directory which will contain DHCP Client leases by running the following
244 command as the <systemitem class="username">root</systemitem> user:
245 </para>
246
247<screen role="root"><userinput>install -v -dm 755 /var/lib/dhclient</userinput></screen>
248
249 <para>
250 At this point you can test if <command>dhclient</command> is
251 behaving as expected by running the following command as the
252 <systemitem class="username">root</systemitem> user:
253 </para>
254
255<screen role="root"><userinput>dhclient <replaceable>&lt;eth0&gt;</replaceable></userinput></screen>
256
257 <para>
258 Replace <replaceable>&lt;eth0&gt;</replaceable> with your
259 desired interface. If you want more verbose output, add the
260 <command>-v</command> parameter to the command above.
261 </para>
262
263 <para id="dhclient-service">
264 If you want to configure network interfaces at boot using
265 <command>dhclient</command>, you need to install the
266 <filename>/lib/services/dhclient</filename> script
267 included in <xref linkend="bootscripts"/> package:
268 </para>
269
270<screen role="root"><userinput>make install-service-dhclient</userinput></screen>
271
272 <indexterm zone="dhcp dhclient-service">
273 <primary sortas="f-dhclient">dhclient (service script)</primary>
274 </indexterm>
275
276 <para id="dhclient-ifconfig">
277 Next, create the <filename>/etc/sysconfig/ifconfig.eth0</filename>
278 configuration file with the following commands as the
279 <systemitem class="username">root</systemitem> user:
280 </para>
281
282<screen role="root"><userinput>cat &gt; /etc/sysconfig/ifconfig.eth0 &lt;&lt; "EOF"
283<literal>ONBOOT="yes"
284IFACE="eth0"
285SERVICE="dhclient"
286DHCP_START=""
287DHCP_STOP=""
288
289# Set PRINTIP="yes" to have the script print
290# the DHCP assigned IP address
291PRINTIP="no"
292
293# Set PRINTALL="yes" to print the DHCP assigned values for
294# IP, SM, DG, and 1st NS. This requires PRINTIP="yes".
295PRINTALL="no"</literal>
296EOF</userinput></screen>
297
298 <indexterm zone="dhcp dhclient-ifconfig">
299 <primary sortas="e-etc-sysconfig-...-dhclient">/etc/sysconfig/ifconfig.eth0</primary>
300 </indexterm>
301
302 <para>
303 Adjust the file to suit your needs.
304 </para>
305
306 <para>
307 For more information on the appropriate <envar>DHCP_START</envar>
308 and <envar>DHCP_STOP</envar> values see
309 <command>man 8 dhclient</command>.
310 </para>
311
312 </sect3>
313
314 <sect3 id="dhcpd-config">
315 <title>Server Configuration</title>
316
317 <para>
318 Note that you only need the DHCP server if you want to issue
319 LAN addresses over your network. The DHCP client doesn't need
320 the server in order to function properly.
321 </para>
322
323 <para>
324 Start with creating <filename>/etc/dhcp/dhcpd.conf</filename>
325 by running the following command as the
326 <systemitem class="username">root</systemitem> user:
327 </para>
328
329<screen role="root"><userinput>cat &gt; /etc/dhcp/dhcpd.conf &lt;&lt; "EOF"
330<literal># Begin /etc/dhcp/dhcpd.conf
331#
332# Example dhcpd.conf(5)
333
334# Use this to enble / disable dynamic dns updates globally.
335ddns-update-style none;
336
337# option definitions common to all supported networks...
338option domain-name "example.org";
339option domain-name-servers ns1.example.org, ns2.example.org;
340
341default-lease-time 600;
342max-lease-time 7200;
343
344# This is a very basic subnet declaration.
345subnet 10.254.239.0 netmask 255.255.255.224 {
346 range 10.254.239.10 10.254.239.20;
347 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
348}
349
350# End /etc/dhcp/dhcpd.conf</literal>
351EOF</userinput></screen>
352
353 <para>
354 Adjust the file to suit your needs. See
355 <command>man 5 dhcpd.conf</command> for additional options.
356 </para>
357
358 <para>
359 Now create the <filename class="directory">/var/lib/dhcpd</filename>
360 directory which will contain DHCP Server leases by running the following
361 command as the <systemitem class="username">root</systemitem> user:
362 </para>
363
364<screen role="root"><userinput>install -v -dm 755 /var/lib/dhcpd</userinput></screen>
365
366 <para>
367 If you want to start the DHCP Server at boot, install
368 the <filename>/etc/rc.d/init.d/dhcpd</filename>
369 init script included in the <xref linkend="bootscripts"/>
370 package:
371 </para>
372
373<screen role="root"><userinput>make install-dhcpd</userinput></screen>
374
375 <indexterm zone="dhcp dhcpd-config">
376 <primary sortas="f-dhcpd">dhcpd</primary>
377 </indexterm>
378
379 <para>
380 You will need to edit the
381 <filename>/etc/sysconfig/dhcpd</filename> in order
382 to set the interface on which <command>dhcpd</command>
383 will serve the DHCP requests.
384 </para>
385
386 </sect3>
387
388 </sect2>
389
390 <sect2 role="content">
391 <title>Contents</title>
392
393 <segmentedlist>
394 <segtitle>Installed Programs</segtitle>
395 <segtitle>Installed Libraries</segtitle>
396 <segtitle>Installed Directories</segtitle>
397
398 <seglistitem>
399 <seg>
400 dhclient, dhclient-script, dhcpd, dhcrelay and omshell
401 </seg>
402 <seg>
403 libdhcpctl.a, libdst.a and libomapi.a
404 </seg>
405 <seg>
406 /usr/include/dhcpctl,
407 /usr/include/isc-dhcp,
408 /usr/include/omapip,
409 /var/lib/dhclient and
410 /var/lib/dhcpd
411 </seg>
412 </seglistitem>
413 </segmentedlist>
414
415 <variablelist>
416 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
417 <?dbfo list-presentation="list"?>
418 <?dbhtml list-presentation="table"?>
419
420 <varlistentry id="dhclient">
421 <term><command>dhclient</command></term>
422 <listitem>
423 <para>
424 is the implementation of the DHCP client.
425 </para>
426 <indexterm zone="dhcp dhclient">
427 <primary sortas="b-dhclient">dhclient</primary>
428 </indexterm>
429 </listitem>
430 </varlistentry>
431
432 <varlistentry id="dhclient-script">
433 <term><command>dhclient-script</command></term>
434 <listitem>
435 <para>
436 is used by dhclient to (re)configure interfaces. It can make
437 extra changes by invoking custom dhclient-{entry,exit}-hooks.
438 </para>
439 <indexterm zone="dhcp dhclient-script">
440 <primary sortas="b-dhclient-script">dhclient-script</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="dhcpd">
446 <term><command>dhcpd</command></term>
447 <listitem>
448 <para>
449 implements Dynamic Host Configuration Protocol (DHCP) and
450 Internet Bootstrap Protocol (BOOTP) requests for network
451 addresses.
452 </para>
453 <indexterm zone="dhcp dhcpd">
454 <primary sortas="b-dhcpd">dhcpd</primary>
455 </indexterm>
456 </listitem>
457 </varlistentry>
458
459 <varlistentry id="dhcrelay">
460 <term><command>dhcrelay</command></term>
461 <listitem>
462 <para>
463 provides a means to accept DHCP and BOOTP requests on a subnet
464 without a DHCP server and relay them to a DHCP server on another
465 subnet.
466 </para>
467 <indexterm zone="dhcp dhcrelay">
468 <primary sortas="b-dhcrelay">dhcrelay</primary>
469 </indexterm>
470 </listitem>
471 </varlistentry>
472
473 <varlistentry id="omshell">
474 <term><command>omshell</command></term>
475 <listitem>
476 <para>
477 provides an interactive way to connect to, query and
478 possibly change the ISC DHCP Server's state via OMAPI, the
479 Object Management API.
480 </para>
481 <indexterm zone="dhcp omshell">
482 <primary sortas="b-omshell">omshell</primary>
483 </indexterm>
484 </listitem>
485 </varlistentry>
486
487 </variablelist>
488
489 </sect2>
490
491</sect1>
Note: See TracBrowser for help on using the repository browser.