source: chapter07/networkd.xml@ 3fe06fa

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 3fe06fa was 94e3e7bd, checked in by Bruce Dubbs <bdubbs@…>, 6 years ago

Update to linux-4.14.8.
Add discussion of ethernet device names (systemd).
Add discussion of audo file deletion (systemd).
Add discussion of separate /tmp (systemd).

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11340 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 12.5 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
8<sect1 id="ch-scripts-network" revision="systemd">
9 <?dbhtml filename="network.html"?>
10
11 <title>General Network Configuration</title>
12
13 <indexterm zone="ch-scripts-network">
14 <primary sortas="d-network">network</primary>
15 <secondary>configuring</secondary></indexterm>
16
17 <para>This section only applies if a network card is to be
18 configured.</para>
19
20 <sect2>
21 <title>Network Interface Configuration Files</title>
22
23 <para>Starting with version 209, systemd ships a network configuration
24 daemon called <command>systemd-networkd</command> which can be used for
25 basic network configuration. Additionally, since version 213, DNS name
26 resolution can be handled by <command>systemd-resolved</command> in place
27 of a static <filename>/etc/resolv.conf</filename> file. Both services are
28 enabled by default.</para>
29
30 <para>Configuration files for <command>systemd-networkd</command> (and
31 <command>systemd-resolved</command>) can be placed in
32 <filename class="directory">/usr/lib/systemd/network</filename>
33 or <filename class="directory">/etc/systemd/network</filename>. Files in
34 <filename class="directory">/etc/systemd/network</filename> have a
35 higher priority than the ones in
36 <filename class="directory">/usr/lib/systemd/network</filename>.
37 There are three types of configuration files:
38 <filename class="extension">.link</filename>,
39 <filename class="extension">.netdev</filename> and
40 <filename class="extension">.network</filename> files. For detailed
41 descriptions and example contents of these configuration files, consult
42 the <filename>systemd-link(5)</filename>,
43 <filename>systemd-netdev(5)</filename> and
44 <filename>systemd-network(5)</filename> manual pages.</para>
45
46 <sect3 id="systemd-network-devices">
47 <title>Network Device Naming</title>
48
49 <para>
50 Udev normally assigns network card interface names based
51 on system physical characteristics such as enp2s1. If you are
52 not sure what your interface name is, you can always run
53 <command>ip link</command> after you have booted your system.
54 </para>
55
56 <para>
57 For most systems, there is only one network interface for
58 each type of connection. For example, the classic interface
59 name for a wired connection is eth0. A wireless connection
60 will usually have the name wifi0 or wlan0.
61 </para>
62
63 <para>
64 If you prefer to use the classic or customized network interface names,
65 there are three alternative ways to do that:</para>
66
67 <itemizedlist>
68 <listitem>
69 <para>
70 Mask udev's .link file for the default policy:
71<screen role="nodump"><userinput>ln -s /dev/null /etc/systemd/network/99-default.link</userinput></screen>
72 </para>
73 </listitem>
74
75 <listitem>
76 <para>
77 Create a manual naming scheme, for example by naming the
78 interfaces something like "internet0", "dmz0", or "lan0".
79 For that, create .link
80 files in /etc/systemd/network/, that choose an explicit name or a
81 better naming scheme for one, some, or all of your interfaces.
82 For example:
83 </para>
84
85<screen role="nodump"><userinput>cat &gt; /etc/systemd/network/10-ether0.link &lt;&lt; "EOF"
86<literal>[Match]
87# Change the MAC address as appropriate for your network device
88MACAddress=12:34:45:78:90:AB
89
90[Link]
91Name=ether0</literal>
92EOF</userinput></screen>
93
94 <para>
95 See the man page systemd.link(5) for more information.
96 </para>
97 </listitem>
98
99 <listitem>
100 <para>
101 In /boot/grub/grub.cfg, pass the option net.ifnames=0 on the
102 kernel command line.
103 </para>
104 </listitem>
105 </itemizedlist>
106 </sect3>
107
108 <sect3 id="systemd-networkd-static">
109 <title>Static IP Configuration</title>
110
111 <para>The command below creates a basic configuration file for a
112 Static IP setup (using both systemd-networkd and
113 systemd-resolved):</para>
114
115<screen><userinput>cat &gt; /etc/systemd/network/10-eth-static.network &lt;&lt; "EOF"
116<literal>[Match]
117Name=&lt;network-device-name&gt;
118
119[Network]
120Address=192.168.0.2/24
121Gateway=192.168.0.1
122DNS=192.168.0.1
123Domains=<replaceable>&lt;Your Domain Name&gt;</replaceable></literal>
124EOF</userinput></screen>
125
126 <para>Multiple DNS entries can be added if you have more than one DNS
127 server. Do not include DNS or Domains entries if you intend to use a
128 static <filename>/etc/resolv.conf</filename> file.</para>
129
130 </sect3>
131
132 <sect3 id="systemd-networkd-dhcp">
133 <title>DHCP Configuration</title>
134
135 <para>The command below creates a basic configuration file for an IPv4
136 DHCP setup:</para>
137
138<screen role="nodump"><userinput>cat &gt; /etc/systemd/network/10-eth-dhcp.network &lt;&lt; "EOF"
139<literal>[Match]
140Name=&lt;network-device-name&gt;
141
142[Network]
143DHCP=ipv4
144
145[DHCP]
146UseDomains=true</literal>
147EOF</userinput></screen>
148
149 </sect3>
150
151 </sect2>
152
153 <sect2 id="resolv.conf">
154 <title>Creating the /etc/resolv.conf File</title>
155
156 <indexterm zone="resolv.conf">
157 <primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary>
158 </indexterm>
159
160 <para>If the system is going to be connected to the Internet, it will
161 need some means of Domain Name Service (DNS) name resolution to
162 resolve Internet domain names to IP addresses, and vice versa. This is
163 best achieved by placing the IP address of the DNS server, available
164 from the ISP or network administrator, into
165 <filename>/etc/resolv.conf</filename>.</para>
166
167 <sect3 id="resolv-conf-systemd-resolved">
168 <title>systemd-resolved Configuration</title>
169
170 <note><para>If using another means to configure your network
171 interfaces (ex: ppp, network-manager, etc.), or if using any type of
172 local resolver (ex: bind, dnsmasq, etc.), or any other software that
173 generates an <filename>/etc/resolv.conf</filename> (ex: resolvconf), the
174 <command>systemd-resolved</command> service should not be
175 used.</para></note>
176
177 <para>When using <command>systemd-resolved</command> for DNS
178 configuration, it creates the file
179 <filename>/run/systemd/resolve/resolv.conf</filename>. Create a
180 symlink in <filename>/etc</filename> to use the generated file:</para>
181
182<screen><userinput>ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf</userinput></screen>
183
184 </sect3>
185
186 <sect3 id="resolv-conf-static">
187 <title>Static resolv.conf Configuration</title>
188
189 <para>If a static <filename>/etc/resolv.conf</filename> is desired,
190 create it by running the following command:</para>
191
192<screen role="nodump"><userinput>cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
193<literal># Begin /etc/resolv.conf
194
195domain <replaceable>&lt;Your Domain Name&gt;</replaceable>
196nameserver <replaceable>&lt;IP address of your primary nameserver&gt;</replaceable>
197nameserver <replaceable>&lt;IP address of your secondary nameserver&gt;</replaceable>
198
199# End /etc/resolv.conf</literal>
200EOF</userinput></screen>
201
202 <para>The <varname>domain</varname> statement can be omitted
203 or replaced with a <varname>search</varname> statement. See the man page
204 for resolv.conf for more details.</para>
205
206 <para>Replace
207 <replaceable>&lt;IP address of the nameserver&gt;</replaceable>
208 with the IP address of the DNS most appropriate for the setup. There will
209 often be more than one entry (requirements demand secondary servers for
210 fallback capability). If you only need or want one DNS server, remove the
211 second <emphasis>nameserver</emphasis> line from the file. The IP address
212 may also be a router on the local network.</para>
213
214 <note><para>The Google Public IPv4 DNS addresses are
215 <parameter>8.8.8.8</parameter> and <parameter>8.8.4.4</parameter>
216 for IPv4, and <parameter>2001:4860:4860::8888</parameter> and
217 <parameter>2001:4860:4860::8844</parameter> for IPv6.</para></note>
218
219 </sect3>
220
221 </sect2>
222
223 <sect2 id="ch-scripts-hostname">
224 <title>Configuring the system hostname</title>
225
226 <indexterm zone="ch-scripts-hostname">
227 <primary sortas="d-hostname">hostname</primary>
228 <secondary>configuring</secondary>
229 </indexterm>
230
231 <para>During the boot process, the file <filename>/etc/hostname</filename>
232 is used for establishing the system's hostname.</para>
233
234 <para>Create the <filename>/etc/hostname</filename> file and enter a
235 hostname by running:</para>
236
237<screen><userinput>echo "<replaceable>&lt;lfs&gt;</replaceable>" &gt; /etc/hostname</userinput></screen>
238
239 <para><replaceable>&lt;lfs&gt;</replaceable> needs to be replaced with the
240 name given to the computer. Do not enter the Fully Qualified Domain Name
241 (FQDN) here. That information is put in the
242 <filename>/etc/hosts</filename> file.</para>
243
244 </sect2>
245
246 <sect2 id="ch-scripts-hosts">
247 <title>Customizing the /etc/hosts File</title>
248
249 <indexterm zone="ch-scripts-hosts">
250 <primary sortas="e-/etc/hosts">/etc/hosts</primary>
251 </indexterm>
252
253 <indexterm zone="ch-scripts-hosts">
254 <primary sortas="d-localnet">localnet</primary>
255 <secondary>/etc/hosts</secondary>
256 </indexterm>
257
258 <indexterm zone="ch-scripts-hosts">
259 <primary sortas="d-network">network</primary>
260 <secondary>/etc/hosts</secondary>
261 </indexterm>
262
263 <para>Decide on a fully-qualified domain name (FQDN), and possible aliases
264 for use in the <filename>/etc/hosts</filename> file. If using static
265 addresses, you'll also need to decide on an IP address. The syntax
266 for a hosts file entry is:</para>
267
268<screen><literal>IP_address myhost.example.org aliases</literal></screen>
269
270 <para>Unless the computer is to be visible to the Internet (i.e., there is
271 a registered domain and a valid block of assigned IP addresses&mdash;most
272 users do not have this), make sure that the IP address is in the private
273 network IP address range. Valid ranges are:</para>
274
275<screen><literal>Private Network Address Range Normal Prefix
27610.0.0.1 - 10.255.255.254 8
277172.x.0.1 - 172.x.255.254 16
278192.168.y.1 - 192.168.y.254 24</literal></screen>
279
280 <para>x can be any number in the range 16-31. y can be any number in the
281 range 0-255.</para>
282
283 <para>A valid private IP address could be 192.168.1.1. A valid FQDN for
284 this IP could be lfs.example.org.</para>
285
286 <para>Even if not using a network card, a valid FQDN is still required.
287 This is necessary for certain programs to operate correctly.</para>
288
289 <para>If using DHCP, DHCPv6, IPv6 Autoconfiguration, or if a network card
290 is not going to be configured, create the <filename>/etc/hosts</filename>
291 file by running the following command:</para>
292
293<screen role="nodump"><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
294<literal># Begin /etc/hosts
295
296127.0.0.1 localhost
297127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
298::1 localhost ip6-localhost ip6-loopback
299ff02::1 ip6-allnodes
300ff02::2 ip6-allrouters
301
302# End /etc/hosts</literal>
303EOF</userinput></screen>
304
305 <para>The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents
306 the IPv6 loopback interface. 127.0.1.1 is a loopback entry reserved
307 specifically for the FQDN.</para>
308
309 <para>If using a static address, create the <filename>/etc/hosts</filename>
310 file by running this command instead:</para>
311
312<screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
313<literal># Begin /etc/hosts
314
315127.0.0.1 localhost
316127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
317<replaceable>&lt;192.168.0.2&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> <replaceable>[alias1] [alias2] ...</replaceable>
318::1 localhost ip6-localhost ip6-loopback
319ff02::1 ip6-allnodes
320ff02::2 ip6-allrouters
321
322# End /etc/hosts</literal>
323EOF</userinput></screen>
324
325 <para>The <replaceable>&lt;192.168.0.2&gt;</replaceable>,
326 <replaceable>&lt;FQDN&gt;</replaceable>, and
327 <replaceable>&lt;HOSTNAME&gt;</replaceable> values need to be
328 changed for specific uses or requirements (if assigned an IP address by a
329 network/system administrator and the machine will be connected to an
330 existing network). The optional alias name(s) can be omitted.</para>
331
332 </sect2>
333
334</sect1>
Note: See TracBrowser for help on using the repository browser.