source: networking/connect/dhcp.xml@ 9885c0be

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind 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 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9885c0be was 9885c0be, checked in by Igor Živković <igor@…>, 10 years ago

typo

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

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