source: networking/connect/dhcp-systemd.xml@ e4fd69a

systemd-11177
Last change on this file since e4fd69a was d49cae5, 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
RevLine 
[0931098]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[0931098]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
[697cb83f]6
[ac02266]7 <!ENTITY dhcp-download-http " ">
[697cb83f]8 <!ENTITY dhcp-download-ftp "ftp://ftp.isc.org/isc/dhcp/&dhcp-version;/dhcp-&dhcp-version;.tar.gz">
[03f254d]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">
[0931098]13]>
14
[40330fcd]15<sect1 id="dhcp" xreflabel="DHCP-&dhcp-version;">
[6ad98e12]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">
[697cb83f]26 <primary sortas="a-DHCP">DHCP</primary>
[6ad98e12]27 </indexterm>
28
29 <sect2 role="package">
[697cb83f]30 <title>Introduction to ISC DHCP</title>
[6ad98e12]31
[697cb83f]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>
[6ad98e12]39
[7cadfea]40 &lfs75_checked;
[fa3e12e1]41
[6ad98e12]42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
[697cb83f]45 <para>
46 Download (HTTP): <ulink url="&dhcp-download-http;"/>
47 </para>
[6ad98e12]48 </listitem>
49 <listitem>
[697cb83f]50 <para>
51 Download (FTP): <ulink url="&dhcp-download-ftp;"/>
52 </para>
[6ad98e12]53 </listitem>
54 <listitem>
[697cb83f]55 <para>
56 Download MD5 sum: &dhcp-md5sum;
57 </para>
[6ad98e12]58 </listitem>
59 <listitem>
[697cb83f]60 <para>
61 Download size: &dhcp-size;
62 </para>
[6ad98e12]63 </listitem>
64 <listitem>
[697cb83f]65 <para>
66 Estimated disk space required: &dhcp-buildsize;
67 </para>
[6ad98e12]68 </listitem>
69 <listitem>
[697cb83f]70 <para>
71 Estimated build time: &dhcp-time;
72 </para>
[6ad98e12]73 </listitem>
74 </itemizedlist>
75
[413bf97]76 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
[697cb83f]77 <itemizedlist spacing="compact">
[b89d0335]78 <listitem>
[697cb83f]79 <para>
[54f740f]80 Required patch:
[8b1ce85]81 <ulink url="&patch-root;/dhcp-&dhcp-version;-client_script-1.patch"/>
[697cb83f]82 </para>
[b89d0335]83 </listitem>
[413bf97]84 <listitem>
[697cb83f]85 <para>
[54f740f]86 Optional patch:
[697cb83f]87 <ulink url="&patch-root;/dhcp-&dhcp-version;-missing_ipv6-1.patch"/>
88 </para>
[413bf97]89 </listitem>
90 </itemizedlist>
91
[3cb0c57]92 <para condition="html" role="usernotes">User Notes:
[697cb83f]93 <ulink url="&blfs-wiki;/dhcp"/>
94 </para>
[6ad98e12]95 </sect2>
96
[697cb83f]97 <sect2 role="kernel" id="dhcp-kernel">
[6ad98e12]98 <title>Kernel Configuration</title>
99
[697cb83f]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>
[6ad98e12]107
108 <indexterm zone="dhcp dhcp-kernel">
[697cb83f]109 <primary sortas="d-DHCP">DHCP</primary>
[6ad98e12]110 </indexterm>
111
112 </sect2>
113
114 <sect2 role="installation">
[697cb83f]115 <title>Installation of ISC DHCP</title>
[6ad98e12]116
[697cb83f]117 <para>
118 If you have not compiled IPv6 support into the kernel, apply the
119 missing_ipv6 patch:
120 </para>
[b89d0335]121
[fa3e12e1]122<screen><userinput>patch -Np1 -i ../dhcp-&dhcp-version;-missing_ipv6-1.patch</userinput></screen>
[b89d0335]123
[b33c421]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>
[76b71ab]131
[b33c421]132 <para>
133 Install <application>ISC DHCP</application> by running
134 the following commands:
135 </para>
[6ad98e12]136
[8b1ce85]137<screen><userinput>patch -Np1 -i ../dhcp-&dhcp-version;-client_script-1.patch &amp;&amp;
[697cb83f]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>
[fa3e12e1]163
[697cb83f]164 <para>
165 Skip to <xref linkend="dhclient-config"/> in order to configure the client
166 </para>
[6ad98e12]167
[697cb83f]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>
[fa3e12e1]173
[697cb83f]174<screen role="root"><userinput>make -C server install</userinput></screen>
[fa3e12e1]175
[697cb83f]176 <para>
177 Skip to <xref linkend="dhcpd-config"/> in order to configure the server.
178 </para>
[275b1da]179
[697cb83f]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>
[04a6794]186
[697cb83f]187<screen role="root"><userinput>make install &amp;&amp;
188mv -v /usr/sbin/dhclient /sbin &amp;&amp;
[ac02266]189install -v -m755 client/scripts/linux /sbin/dhclient-script</userinput></screen>
[fa3e12e1]190
[697cb83f]191 </sect2>
[fa3e12e1]192
[697cb83f]193 <sect2 role="configuration">
194 <title>Configuring ISC DHCP</title>
[fa3e12e1]195
[697cb83f]196 <sect3 id="dhcp-config">
197 <title>Config Files</title>
[fa3e12e1]198
[697cb83f]199 <para>
200 <filename>/etc/dhcp/dhclient.conf</filename> and
201 <filename>/etc/dhcp/dhcpd.conf</filename>
202 </para>
[0931098]203
[697cb83f]204 <indexterm zone="dhcp dhcp-config">
205 <primary sortas="e-etc-dhcp-dhclient.conf">/etc/dhcp/dhclient.conf</primary>
206 </indexterm>
[0931098]207
[697cb83f]208 <indexterm zone="dhcp dhcp-config">
209 <primary sortas="e-etc-dhcp-dhcpd.conf">/etc/dhcp/dhcpd.conf</primary>
210 </indexterm>
[0931098]211
[697cb83f]212 </sect3>
[fa3e12e1]213
[697cb83f]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>
[fa3e12e1]242
[697cb83f]243 <para>
244 See <command>man 5 dhclient.conf</command> for additional options.
245 </para>
[fa3e12e1]246
[697cb83f]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>
[fa3e12e1]252
[697cb83f]253<screen role="root"><userinput>install -v -dm 755 /var/lib/dhclient</userinput></screen>
[fa3e12e1]254
[697cb83f]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>
[0931098]260
[697cb83f]261<screen role="root"><userinput>dhclient <replaceable>&lt;eth0&gt;</replaceable></userinput></screen>
[0931098]262
[697cb83f]263 </sect3>
[0931098]264
[697cb83f]265 <sect3 id="dhcpd-config">
266 <title>Server Configuration</title>
[4774914f]267
[697cb83f]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>
[04a6794]273
[697cb83f]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>
[0931098]279
[697cb83f]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)
[0931098]284
[697cb83f]285# Use this to enble / disable dynamic dns updates globally.
286ddns-update-style none;
[0931098]287
[697cb83f]288# option definitions common to all supported networks...
289option domain-name "example.org";
290option domain-name-servers ns1.example.org, ns2.example.org;
[0931098]291
[697cb83f]292default-lease-time 600;
293max-lease-time 7200;
[6ad98e12]294
[697cb83f]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}
[0931098]300
[697cb83f]301# End /etc/dhcp/dhcpd.conf</literal>
[6ad98e12]302EOF</userinput></screen>
303
[697cb83f]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
[d49cae5]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:
[697cb83f]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
[d49cae5]332 <filename>/etc/default/dhcpd</filename> file in order
[697cb83f]333 to set the interface on which <command>dhcpd</command>
334 will serve the DHCP requests.
335 </para>
[6ad98e12]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>
[697cb83f]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>
[03f254d]357 /etc/dhcp,
[697cb83f]358 /usr/include/dhcpctl,
359 /usr/include/isc-dhcp,
360 /usr/include/omapip,
361 /var/lib/dhclient and
362 /var/lib/dhcpd
363 </seg>
[6ad98e12]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>
[697cb83f]375 <para>
376 is the implementation of the DHCP client.
377 </para>
[6ad98e12]378 <indexterm zone="dhcp dhclient">
379 <primary sortas="b-dhclient">dhclient</primary>
380 </indexterm>
381 </listitem>
382 </varlistentry>
383
[fa3e12e1]384 <varlistentry id="dhclient-script">
385 <term><command>dhclient-script</command></term>
386 <listitem>
[697cb83f]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>
[fa3e12e1]391 <indexterm zone="dhcp dhclient-script">
392 <primary sortas="b-dhclient-script">dhclient-script</primary>
393 </indexterm>
394 </listitem>
395 </varlistentry>
396
[6ad98e12]397 <varlistentry id="dhcpd">
398 <term><command>dhcpd</command></term>
399 <listitem>
[697cb83f]400 <para>
401 implements Dynamic Host Configuration Protocol (DHCP) and
402 Internet Bootstrap Protocol (BOOTP) requests for network
403 addresses.
404 </para>
[6ad98e12]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>
[697cb83f]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>
[6ad98e12]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>
[697cb83f]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>
[6ad98e12]433 <indexterm zone="dhcp omshell">
434 <primary sortas="b-omshell">omshell</primary>
435 </indexterm>
436 </listitem>
437 </varlistentry>
438
439 </variablelist>
440
441 </sect2>
[04a6794]442
[f45b1953]443</sect1>
Note: See TracBrowser for help on using the repository browser.