source: networking/connect/dhcp.xml@ 5bc57bb

gnome
Last change on this file since 5bc57bb was cae7a6fb, checked in by Christopher Gregory <cjg@…>, 10 years ago

Converted acpid at autofs bluez fcron gpm sysstat udisks2 upower dhcp nfs-utils cyrus-sasl mitkrb openssh polkit and stunnel pages to systemd

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/gnome@13413 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 15.6 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 "1020d77e1a4c1f01b76279caff9beb80">
10 <!ENTITY dhcp-size "8.6 MB">
11 <!ENTITY dhcp-buildsize "208 MB">
12 <!ENTITY dhcp-time "0.8 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 <note>
373 <para>
374 The interface on which dhcpd will serve requests should be configured before
375 the daemon is started or else it will fail to start.
376 </para>
377 </note>
378
379 <para>
380 If you want to start the DHCP Server at boot, install
381 the systmed unit file included in the <xref linkend="systemd-units"/>
382 package as the <systemitem class="username">root</systemitem> user:
383 </para>
384
385<screen role="root"><userinput>make install-dhcpd</userinput></screen>
386
387 <indexterm zone="dhcp dhcpd-config">
388 <primary sortas="f-dhcpd">dhcpd</primary>
389 </indexterm>
390
391 <para>
392 You will need to edit the
393 <filename>/etc/sysconfig/dhcpd</filename> in order
394 to set the interface on which <command>dhcpd</command>
395 will serve the DHCP requests.
396 </para>
397
398 </sect3>
399
400 </sect2>
401
402 <sect2 role="content">
403 <title>Contents</title>
404
405 <segmentedlist>
406 <segtitle>Installed Programs</segtitle>
407 <segtitle>Installed Libraries</segtitle>
408 <segtitle>Installed Directories</segtitle>
409
410 <seglistitem>
411 <seg>
412 dhclient, dhclient-script, dhcpd, dhcrelay and omshell
413 </seg>
414 <seg>
415 libdhcpctl.a, libdst.a and libomapi.a
416 </seg>
417 <seg>
418 /etc/dhcp,
419 /usr/include/dhcpctl,
420 /usr/include/isc-dhcp,
421 /usr/include/omapip,
422 /var/lib/dhclient and
423 /var/lib/dhcpd
424 </seg>
425 </seglistitem>
426 </segmentedlist>
427
428 <variablelist>
429 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
430 <?dbfo list-presentation="list"?>
431 <?dbhtml list-presentation="table"?>
432
433 <varlistentry id="dhclient">
434 <term><command>dhclient</command></term>
435 <listitem>
436 <para>
437 is the implementation of the DHCP client.
438 </para>
439 <indexterm zone="dhcp dhclient">
440 <primary sortas="b-dhclient">dhclient</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="dhclient-script">
446 <term><command>dhclient-script</command></term>
447 <listitem>
448 <para>
449 is used by dhclient to (re)configure interfaces. It can make
450 extra changes by invoking custom dhclient-{entry,exit}-hooks.
451 </para>
452 <indexterm zone="dhcp dhclient-script">
453 <primary sortas="b-dhclient-script">dhclient-script</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="dhcpd">
459 <term><command>dhcpd</command></term>
460 <listitem>
461 <para>
462 implements Dynamic Host Configuration Protocol (DHCP) and
463 Internet Bootstrap Protocol (BOOTP) requests for network
464 addresses.
465 </para>
466 <indexterm zone="dhcp dhcpd">
467 <primary sortas="b-dhcpd">dhcpd</primary>
468 </indexterm>
469 </listitem>
470 </varlistentry>
471
472 <varlistentry id="dhcrelay">
473 <term><command>dhcrelay</command></term>
474 <listitem>
475 <para>
476 provides a means to accept DHCP and BOOTP requests on a subnet
477 without a DHCP server and relay them to a DHCP server on another
478 subnet.
479 </para>
480 <indexterm zone="dhcp dhcrelay">
481 <primary sortas="b-dhcrelay">dhcrelay</primary>
482 </indexterm>
483 </listitem>
484 </varlistentry>
485
486 <varlistentry id="omshell">
487 <term><command>omshell</command></term>
488 <listitem>
489 <para>
490 provides an interactive way to connect to, query and
491 possibly change the ISC DHCP Server's state via OMAPI, the
492 Object Management API.
493 </para>
494 <indexterm zone="dhcp omshell">
495 <primary sortas="b-omshell">omshell</primary>
496 </indexterm>
497 </listitem>
498 </varlistentry>
499
500 </variablelist>
501
502 </sect2>
503
504</sect1>
Note: See TracBrowser for help on using the repository browser.