source: networking/connect/dhcp-systemd.xml@ 932240d

7.6-blfs 7.6-systemd kde5-14269 kde5-14686 systemd-13485
Last change on this file since 932240d was 932240d, checked in by Krejzi <krejzi@…>, 10 years ago

More systemd integration.

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

  • Property mode set to 100644
File size: 13.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 </sect3>
264
265 <sect3 id="dhcpd-config">
266 <title>Server Configuration</title>
267
268 <para>
269 Note that you only need the DHCP server if you want to issue
270 LAN addresses over your network. The DHCP client doesn't need
271 the server in order to function properly.
272 </para>
273
274 <para>
275 Start with creating <filename>/etc/dhcp/dhcpd.conf</filename>
276 by running the following command as the
277 <systemitem class="username">root</systemitem> user:
278 </para>
279
280<screen role="root"><userinput>cat &gt; /etc/dhcp/dhcpd.conf &lt;&lt; "EOF"
281<literal># Begin /etc/dhcp/dhcpd.conf
282#
283# Example dhcpd.conf(5)
284
285# Use this to enble / disable dynamic dns updates globally.
286ddns-update-style none;
287
288# option definitions common to all supported networks...
289option domain-name "example.org";
290option domain-name-servers ns1.example.org, ns2.example.org;
291
292default-lease-time 600;
293max-lease-time 7200;
294
295# This is a very basic subnet declaration.
296subnet 10.254.239.0 netmask 255.255.255.224 {
297 range 10.254.239.10 10.254.239.20;
298 option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
299}
300
301# End /etc/dhcp/dhcpd.conf</literal>
302EOF</userinput></screen>
303
304 <para>
305 Adjust the file to suit your needs. See
306 <command>man 5 dhcpd.conf</command> for additional options.
307 </para>
308
309 <para>
310 Now create the <filename class="directory">/var/lib/dhcpd</filename>
311 directory which will contain DHCP Server leases by running the following
312 command as the <systemitem class="username">root</systemitem> user:
313 </para>
314
315<screen role="root"><userinput>install -v -dm 755 /var/lib/dhcpd</userinput></screen>
316
317 <para>
318 To start the <command>dhcpd</command> daemon at boot,
319 install the systemd unit from the <xref linkend="bootscripts"/>
320 package by running the following command as the
321 <systemitem class="username">root</systemitem> user:
322 </para>
323
324<screen role="root"><userinput>make install-dhcpd</userinput></screen>
325
326 <indexterm zone="dhcp dhcpd-config">
327 <primary sortas="f-dhcpd">dhcpd</primary>
328 </indexterm>
329
330 <para>
331 You will need to edit the
332 <filename>/etc/default/dhcpd</filename> file in order
333 to set the interface on which <command>dhcpd</command>
334 will serve the DHCP requests.
335 </para>
336
337 </sect3>
338
339 </sect2>
340
341 <sect2 role="content">
342 <title>Contents</title>
343
344 <segmentedlist>
345 <segtitle>Installed Programs</segtitle>
346 <segtitle>Installed Libraries</segtitle>
347 <segtitle>Installed Directories</segtitle>
348
349 <seglistitem>
350 <seg>
351 dhclient, dhclient-script, dhcpd, dhcrelay and omshell
352 </seg>
353 <seg>
354 libdhcpctl.a, libdst.a and libomapi.a
355 </seg>
356 <seg>
357 /etc/dhcp,
358 /usr/include/dhcpctl,
359 /usr/include/isc-dhcp,
360 /usr/include/omapip,
361 /var/lib/dhclient and
362 /var/lib/dhcpd
363 </seg>
364 </seglistitem>
365 </segmentedlist>
366
367 <variablelist>
368 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
369 <?dbfo list-presentation="list"?>
370 <?dbhtml list-presentation="table"?>
371
372 <varlistentry id="dhclient">
373 <term><command>dhclient</command></term>
374 <listitem>
375 <para>
376 is the implementation of the DHCP client.
377 </para>
378 <indexterm zone="dhcp dhclient">
379 <primary sortas="b-dhclient">dhclient</primary>
380 </indexterm>
381 </listitem>
382 </varlistentry>
383
384 <varlistentry id="dhclient-script">
385 <term><command>dhclient-script</command></term>
386 <listitem>
387 <para>
388 is used by dhclient to (re)configure interfaces. It can make
389 extra changes by invoking custom dhclient-{entry,exit}-hooks.
390 </para>
391 <indexterm zone="dhcp dhclient-script">
392 <primary sortas="b-dhclient-script">dhclient-script</primary>
393 </indexterm>
394 </listitem>
395 </varlistentry>
396
397 <varlistentry id="dhcpd">
398 <term><command>dhcpd</command></term>
399 <listitem>
400 <para>
401 implements Dynamic Host Configuration Protocol (DHCP) and
402 Internet Bootstrap Protocol (BOOTP) requests for network
403 addresses.
404 </para>
405 <indexterm zone="dhcp dhcpd">
406 <primary sortas="b-dhcpd">dhcpd</primary>
407 </indexterm>
408 </listitem>
409 </varlistentry>
410
411 <varlistentry id="dhcrelay">
412 <term><command>dhcrelay</command></term>
413 <listitem>
414 <para>
415 provides a means to accept DHCP and BOOTP requests on a subnet
416 without a DHCP server and relay them to a DHCP server on another
417 subnet.
418 </para>
419 <indexterm zone="dhcp dhcrelay">
420 <primary sortas="b-dhcrelay">dhcrelay</primary>
421 </indexterm>
422 </listitem>
423 </varlistentry>
424
425 <varlistentry id="omshell">
426 <term><command>omshell</command></term>
427 <listitem>
428 <para>
429 provides an interactive way to connect to, query and
430 possibly change the ISC DHCP Server's state via OMAPI, the
431 Object Management API.
432 </para>
433 <indexterm zone="dhcp omshell">
434 <primary sortas="b-omshell">omshell</primary>
435 </indexterm>
436 </listitem>
437 </varlistentry>
438
439 </variablelist>
440
441 </sect2>
442
443</sect1>
Note: See TracBrowser for help on using the repository browser.