source: networking/connect/dhcp.xml@ 1b777da

10.0 10.1 7.10 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind nosym perl-modules qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 1b777da was 1b777da, checked in by Bruce Dubbs <bdubbs@…>, 5 years ago

Update to notification-daemon-3.20.0.
Update to dhcp-4.3.4.
Update to mercurial-3.7.3.
Update to mesa-11.2.0.
Add BOOK/changelog.xml as a convenience symlink.

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

  • Property mode set to 100644
File size: 15.9 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 "0138319fe2b788cf4bdf34fbeaf9ff54">
10 <!ENTITY dhcp-size "8.9 MB">
11 <!ENTITY dhcp-buildsize "213 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 &lfs79_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:
102 </para>
103
104<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
105 Networking options ---&gt;
106 &lt;*&gt; Packet socket [CONFIG_PACKET]</literal></screen>
107
108 <para>
109 If you do not have IPv6 support:
110 </para>
111
112<screen><literal>[*] Networking support ---&gt; [CONFIG_NET]
113 Networking Options ---&gt;
114 &lt;*&gt; The IPv6 Protocol ---&gt; [CONFIG_IPV6]</literal></screen>
115
116 <para>
117 compiled in, then you must use the <quote>missing_ipv6</quote> patch.
118 </para>
119
120 <indexterm zone="dhcp dhcp-kernel">
121 <primary sortas="d-DHCP">DHCP</primary>
122 </indexterm>
123
124 </sect2>
125
126 <sect2 role="installation">
127 <title>Installation of ISC DHCP</title>
128
129 <note>
130 <para>
131 This package does not support parallel build.
132 </para>
133 </note>
134
135 <para>
136 If you have not compiled IPv6 support into the kernel, apply the
137 missing_ipv6 patch:
138 </para>
139
140<screen><userinput>patch -Np1 -i ../dhcp-&dhcp-version;-missing_ipv6-1.patch</userinput></screen>
141
142 <note>
143 <para>
144 Be careful with the instructions below. The single and
145 double quotes are important because the defined
146 variables are used verbatim in the code.
147 </para>
148 </note>
149
150 <para>
151 Install <application>ISC DHCP</application> by running
152 the following commands:
153 </para>
154
155<screen><userinput>patch -Np1 -i ../dhcp-&dhcp-version;-client_script-1.patch &amp;&amp;
156CFLAGS="-D_PATH_DHCLIENT_SCRIPT='\"/sbin/dhclient-script\"' \
157 -D_PATH_DHCPD_CONF='\"/etc/dhcp/dhcpd.conf\"' \
158 -D_PATH_DHCLIENT_CONF='\"/etc/dhcp/dhclient.conf\"'" \
159./configure --prefix=/usr \
160 --sysconfdir=/etc/dhcp \
161 --localstatedir=/var \
162 --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
163 --with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases \
164 --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
165 --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases &amp;&amp;
166make -j1</userinput></screen>
167
168 <para>
169 <!-- To test the results, issue: <command>make check</command>
170
171 Note: make check builds a library, but otherwise does nothing.
172
173 -->
174 This package does not come with a test suite.
175 </para>
176
177 <para>
178 If you only want to install the <application>ISC DHCP</application> client,
179 issue the following commands as the
180 <systemitem class="username">root</systemitem> user:
181 </para>
182
183<screen role="root"><userinput>make -C client install &amp;&amp;
184mv -v /usr/sbin/dhclient /sbin &amp;&amp;
185install -v -m755 client/scripts/linux /sbin/dhclient-script</userinput></screen>
186
187 <para>
188 Skip to <xref linkend="dhclient-config"/> in order to configure the client
189 </para>
190
191 <para>
192 If you only want to install the <application>ISC DHCP</application> server,
193 issue the following command as the
194 <systemitem class="username">root</systemitem> user:
195 </para>
196
197<screen role="root"><userinput>make -C server install</userinput></screen>
198
199 <para>
200 Skip to <xref linkend="dhcpd-config"/> in order to configure the server.
201 </para>
202
203 <para>
204 Alternatively, you can install whole package which includes the client,
205 server, relay, static libraries and development headers by running the
206 following commands as the
207 <systemitem class="username">root</systemitem> user:
208 </para>
209
210<screen role="root"><userinput>make install &amp;&amp;
211mv -v /usr/sbin/dhclient /sbin &amp;&amp;
212install -v -m755 client/scripts/linux /sbin/dhclient-script</userinput></screen>
213
214 </sect2>
215
216 <sect2 role="configuration">
217 <title>Configuring ISC DHCP</title>
218
219 <sect3 id="dhcp-config">
220 <title>Config Files</title>
221
222 <para>
223 <filename>/etc/dhcp/dhclient.conf</filename> and
224 <filename>/etc/dhcp/dhcpd.conf</filename>
225 </para>
226
227 <indexterm zone="dhcp dhcp-config">
228 <primary sortas="e-etc-dhcp-dhclient.conf">/etc/dhcp/dhclient.conf</primary>
229 </indexterm>
230
231 <indexterm zone="dhcp dhcp-config">
232 <primary sortas="e-etc-dhcp-dhcpd.conf">/etc/dhcp/dhcpd.conf</primary>
233 </indexterm>
234
235 </sect3>
236
237 <sect3 id="dhclient-config">
238 <title>Client Configuration</title>
239
240 <para>
241 Create basic <filename>/etc/dhcp/dhclient.conf</filename>
242 by running the following command as the
243 <systemitem class="username">root</systemitem> user:
244 </para>
245
246<screen role="root"><userinput>cat &gt; /etc/dhcp/dhclient.conf &lt;&lt; "EOF"
247<literal># Begin /etc/dhcp/dhclient.conf
248#
249# Basic dhclient.conf(5)
250
251#prepend domain-name-servers 127.0.0.1;
252request subnet-mask, broadcast-address, time-offset, routers,
253 domain-name, domain-name-servers, domain-search, host-name,
254 netbios-name-servers, netbios-scope, interface-mtu,
255 ntp-servers;
256require subnet-mask, domain-name-servers;
257#timeout 60;
258#retry 60;
259#reboot 10;
260#select-timeout 5;
261#initial-interval 2;
262
263# End /etc/dhcp/dhclient.conf</literal>
264EOF</userinput></screen>
265
266 <para>
267 See <command>man 5 dhclient.conf</command> for additional options.
268 </para>
269
270 <para>
271 Now create the <filename class="directory">/var/lib/dhclient</filename>
272 directory which will contain DHCP Client leases by running the following
273 command as the <systemitem class="username">root</systemitem> user:
274 </para>
275
276<screen role="root"><userinput>install -v -dm 755 /var/lib/dhclient</userinput></screen>
277
278 <para>
279 At this point you can test if <command>dhclient</command> is
280 behaving as expected by running the following command as the
281 <systemitem class="username">root</systemitem> user:
282 </para>
283
284<screen role="root"><userinput>dhclient <replaceable>&lt;eth0&gt;</replaceable></userinput></screen>
285
286 <para>
287 Replace <replaceable>&lt;eth0&gt;</replaceable> with your
288 desired interface. If you want more verbose output, add the
289 <command>-v</command> parameter to the command above.
290 </para>
291
292 <para id="dhclient-service">
293 If you want to configure network interfaces at boot using
294 <command>dhclient</command>, you need to install the
295 <filename>/lib/services/dhclient</filename> script
296 included in <xref linkend="bootscripts"/> package:
297 </para>
298
299<screen role="root"><userinput>make install-service-dhclient</userinput></screen>
300
301 <indexterm zone="dhcp dhclient-service">
302 <primary sortas="f-dhclient">dhclient (service script)</primary>
303 </indexterm>
304
305 <para id="dhclient-ifconfig">
306 Next, create the <filename>/etc/sysconfig/ifconfig.eth0</filename>
307 configuration file with the following commands as the
308 <systemitem class="username">root</systemitem> user:
309 </para>
310
311<screen role="root"><userinput>cat &gt; /etc/sysconfig/ifconfig.eth0 &lt;&lt; "EOF"
312<literal>ONBOOT="yes"
313IFACE="eth0"
314SERVICE="dhclient"
315DHCP_START=""
316DHCP_STOP=""
317
318# Set PRINTIP="yes" to have the script print
319# the DHCP assigned IP address
320PRINTIP="no"
321
322# Set PRINTALL="yes" to print the DHCP assigned values for
323# IP, SM, DG, and 1st NS. This requires PRINTIP="yes".
324PRINTALL="no"</literal>
325EOF</userinput></screen>
326
327 <indexterm zone="dhcp dhclient-ifconfig">
328 <primary sortas="e-etc-sysconfig-...-dhclient">/etc/sysconfig/ifconfig.eth0</primary>
329 </indexterm>
330
331 <para>
332 Adjust the file to suit your needs.
333 </para>
334
335 <para>
336 For more information on the appropriate <envar>DHCP_START</envar>
337 and <envar>DHCP_STOP</envar> values see
338 <command>man 8 dhclient</command>.
339 </para>
340
341 </sect3>
342
343 <sect3 id="dhcpd-config">
344 <title>Server Configuration</title>
345
346 <para>
347 Note that you only need the DHCP server if you want to issue
348 LAN addresses over your network. The DHCP client doesn't need
349 the server in order to function properly.
350 </para>
351
352 <para>
353 Start with creating <filename>/etc/dhcp/dhcpd.conf</filename>
354 by running the following command as the
355 <systemitem class="username">root</systemitem> user:
356 </para>
357
358<screen role="root"><userinput>cat &gt; /etc/dhcp/dhcpd.conf &lt;&lt; "EOF"
359<literal># Begin /etc/dhcp/dhcpd.conf
360#
361# Example dhcpd.conf(5)
362
363# Use this to enble / disable dynamic dns updates globally.
364ddns-update-style none;
365
366# option definitions common to all supported networks...
367option domain-name "example.org";
368option domain-name-servers ns1.example.org, ns2.example.org;
369
370default-lease-time 600;
371max-lease-time 7200;
372
373# This is a very basic subnet declaration.
374subnet 10.254.239.0 netmask 255.255.255.224 {
375 range 10.254.239.10 10.254.239.20;
376 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
377}
378
379# End /etc/dhcp/dhcpd.conf</literal>
380EOF</userinput></screen>
381
382 <para>
383 Adjust the file to suit your needs. See
384 <command>man 5 dhcpd.conf</command> for additional options.
385 </para>
386
387 <para>
388 Now create the <filename class="directory">/var/lib/dhcpd</filename>
389 directory which will contain DHCP Server leases by running the following
390 command as the <systemitem class="username">root</systemitem> user:
391 </para>
392
393<screen role="root"><userinput>install -v -dm 755 /var/lib/dhcpd</userinput></screen>
394
395 <para>
396 If you want to start the DHCP Server at boot, install
397 the <filename>/etc/rc.d/init.d/dhcpd</filename>
398 init script included in the <xref linkend="bootscripts"/>
399 package:
400 </para>
401
402<screen role="root"><userinput>make install-dhcpd</userinput></screen>
403
404 <indexterm zone="dhcp dhcpd-config">
405 <primary sortas="f-dhcpd">dhcpd</primary>
406 </indexterm>
407
408 <para>
409 You will need to edit the
410 <filename>/etc/sysconfig/dhcpd</filename> in order
411 to set the interface on which <command>dhcpd</command>
412 will serve the DHCP requests.
413 </para>
414
415 </sect3>
416
417 </sect2>
418
419 <sect2 role="content">
420 <title>Contents</title>
421
422 <segmentedlist>
423 <segtitle>Installed Programs</segtitle>
424 <segtitle>Installed Libraries</segtitle>
425 <segtitle>Installed Directories</segtitle>
426
427 <seglistitem>
428 <seg>
429 dhclient, dhclient-script, dhcpd, dhcrelay and omshell
430 </seg>
431 <seg>
432 libdhcpctl.a, libdst.a and libomapi.a
433 </seg>
434 <seg>
435 /etc/dhcp,
436 /usr/include/dhcpctl,
437 /usr/include/isc-dhcp,
438 /usr/include/omapip,
439 /var/lib/dhclient and
440 /var/lib/dhcpd
441 </seg>
442 </seglistitem>
443 </segmentedlist>
444
445 <variablelist>
446 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
447 <?dbfo list-presentation="list"?>
448 <?dbhtml list-presentation="table"?>
449
450 <varlistentry id="dhclient">
451 <term><command>dhclient</command></term>
452 <listitem>
453 <para>
454 is the implementation of the DHCP client.
455 </para>
456 <indexterm zone="dhcp dhclient">
457 <primary sortas="b-dhclient">dhclient</primary>
458 </indexterm>
459 </listitem>
460 </varlistentry>
461
462 <varlistentry id="dhclient-script">
463 <term><command>dhclient-script</command></term>
464 <listitem>
465 <para>
466 is used by dhclient to (re)configure interfaces. It can make
467 extra changes by invoking custom dhclient-{entry,exit}-hooks.
468 </para>
469 <indexterm zone="dhcp dhclient-script">
470 <primary sortas="b-dhclient-script">dhclient-script</primary>
471 </indexterm>
472 </listitem>
473 </varlistentry>
474
475 <varlistentry id="dhcpd">
476 <term><command>dhcpd</command></term>
477 <listitem>
478 <para>
479 implements Dynamic Host Configuration Protocol (DHCP) and
480 Internet Bootstrap Protocol (BOOTP) requests for network
481 addresses.
482 </para>
483 <indexterm zone="dhcp dhcpd">
484 <primary sortas="b-dhcpd">dhcpd</primary>
485 </indexterm>
486 </listitem>
487 </varlistentry>
488
489 <varlistentry id="dhcrelay">
490 <term><command>dhcrelay</command></term>
491 <listitem>
492 <para>
493 provides a means to accept DHCP and BOOTP requests on a subnet
494 without a DHCP server and relay them to a DHCP server on another
495 subnet.
496 </para>
497 <indexterm zone="dhcp dhcrelay">
498 <primary sortas="b-dhcrelay">dhcrelay</primary>
499 </indexterm>
500 </listitem>
501 </varlistentry>
502
503 <varlistentry id="omshell">
504 <term><command>omshell</command></term>
505 <listitem>
506 <para>
507 provides an interactive way to connect to, query and
508 possibly change the ISC DHCP Server's state via OMAPI, the
509 Object Management API.
510 </para>
511 <indexterm zone="dhcp omshell">
512 <primary sortas="b-omshell">omshell</primary>
513 </indexterm>
514 </listitem>
515 </varlistentry>
516
517 </variablelist>
518
519 </sect2>
520
521</sect1>
Note: See TracBrowser for help on using the repository browser.