mirror of
https://github.com/LCTT/LFS-BOOK-7.7-systemd.git
synced 2026-02-01 13:47:25 +00:00
361 lines
13 KiB
HTML
361 lines
13 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content=
|
|
"application/xhtml+xml; charset=utf-8" />
|
|
<title>
|
|
7.2. General Network Configuration
|
|
</title>
|
|
<link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
|
|
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
|
|
<link rel="stylesheet" href="stylesheets/lfs-print.css" type="text/css"
|
|
media="print" />
|
|
</head>
|
|
<body class="lfs" id="lfs-7.7-systemd">
|
|
<div class="navheader">
|
|
<h4>
|
|
Linux From Scratch - Version 7.7-systemd
|
|
</h4>
|
|
<h3>
|
|
Chapter 7. Basic System Configuration
|
|
</h3>
|
|
<ul>
|
|
<li class="prev">
|
|
<a accesskey="p" href="introduction.html" title=
|
|
"Introduction">Prev</a>
|
|
<p>
|
|
Introduction
|
|
</p>
|
|
</li>
|
|
<li class="next">
|
|
<a accesskey="n" href="udev.html" title=
|
|
"Device and Module Handling on an LFS System">Next</a>
|
|
<p>
|
|
Device and Module Handling on an LFS System
|
|
</p>
|
|
</li>
|
|
<li class="up">
|
|
<a accesskey="u" href="chapter07.html" title=
|
|
"Chapter 7. Basic System Configuration">Up</a>
|
|
</li>
|
|
<li class="home">
|
|
<a accesskey="h" href="../index.html" title=
|
|
"Linux From Scratch - Version 7.7-systemd">Home</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="sect1" lang="en" xml:lang="en">
|
|
<h1 class="sect1">
|
|
<a id="ch-scripts-network" name="ch-scripts-network"></a>7.2. General
|
|
Network Configuration
|
|
</h1>
|
|
<p>
|
|
This section only applies if a network card is to be configured.
|
|
</p>
|
|
<div class="sect2" lang="en" xml:lang="en">
|
|
<h2 class="sect2">
|
|
7.2.1. Network Interface Configuration Files
|
|
</h2>
|
|
<p>
|
|
Starting with version 209, systemd ships a network configuration
|
|
daemon called <span class=
|
|
"command"><strong>systemd-networkd</strong></span> which can be
|
|
used for basic network configuration.
|
|
</p>
|
|
<p>
|
|
Configuration files for <span class=
|
|
"command"><strong>systemd-networkd</strong></span> can be placed in
|
|
<code class="filename">/usr/lib/systemd/network</code> or
|
|
<code class="filename">/etc/systemd/network</code>. Note that files
|
|
in <code class="filename">/etc/systemd/network</code> have higher
|
|
priority than the ones in <code class=
|
|
"filename">/usr/lib/systemd/network</code>.
|
|
</p>
|
|
<p>
|
|
There are three types of configuration files: <code class=
|
|
"filename">.link</code>, <code class="filename">.netdev</code> and
|
|
<code class="filename">.network</code> files. For detailed
|
|
explanation about contents of the mentioned configuration files,
|
|
consult <code class="filename">systemd-link(5)</code>, <code class=
|
|
"filename">systemd-netdev(5)</code> and <code class=
|
|
"filename">systemd-network(5)</code> manual pages.
|
|
</p>
|
|
<div class="admon note">
|
|
<img alt="[Note]" src="../images/note.png" />
|
|
<h3>
|
|
Note
|
|
</h3>
|
|
<p>
|
|
Udev may assign network card interface names based on system
|
|
physical characteristics such as enp2s1. If you are not sure what
|
|
your interface name is, you can always run <span class=
|
|
"command"><strong>ip link</strong></span> after you have booted
|
|
your system.
|
|
</p>
|
|
</div>
|
|
<div class="sect3">
|
|
<h3 class="sect3">
|
|
<a id="systemd-networkd-static" name=
|
|
"systemd-networkd-static"></a>7.2.1.1. Static IP Configuration
|
|
</h3>
|
|
<p>
|
|
The command below creates a basic configuration file for Static
|
|
IP setup:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class=
|
|
"command">cat > /etc/systemd/network/10-static-eth0.network << "EOF"
|
|
<code class="literal">[Match]
|
|
Name=eth0
|
|
|
|
[Network]
|
|
Address=192.168.0.2/24
|
|
Gateway=192.168.0.1
|
|
DNS=192.168.0.1</code>
|
|
EOF</kbd>
|
|
</pre>
|
|
<p>
|
|
More than one DNS entry can be specified in the configuration
|
|
file.
|
|
</p>
|
|
</div>
|
|
<div class="sect3">
|
|
<h3 class="sect3">
|
|
<a id="systemd-networkd-dhcp" name=
|
|
"systemd-networkd-dhcp"></a>7.2.1.2. DHCP Configuration
|
|
</h3>
|
|
<p>
|
|
The command below creates a basic configuration file for DHCP
|
|
setup:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class=
|
|
"command">cat > /etc/systemd/network/10-dhcp-eth0.network << "EOF"
|
|
<code class="literal">[Match]
|
|
Name=eth0
|
|
|
|
[Network]
|
|
DHCP=yes</code>
|
|
EOF</kbd>
|
|
</pre>
|
|
<p>
|
|
Note that <span class=
|
|
"command"><strong>systemd-networkd</strong></span> can only
|
|
handle DHCPv4. DHCPv6 support is a work in progress.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="sect2" lang="en" xml:lang="en">
|
|
<h2 class="sect2">
|
|
<a id="resolv.conf" name="resolv.conf"></a>7.2.2. Creating the
|
|
/etc/resolv.conf File
|
|
</h2>
|
|
<p>
|
|
If the system is going to be connected to the Internet, it will
|
|
need some means of Domain Name Service (DNS) name resolution to
|
|
resolve Internet domain names to IP addresses, and vice versa. This
|
|
is best achieved by placing the IP address of the DNS server,
|
|
available from the ISP or network administrator, into <code class=
|
|
"filename">/etc/resolv.conf</code>.
|
|
</p>
|
|
<p>
|
|
If static <code class="filename">/etc/resolv.conf</code> is
|
|
desired, create it by running the following command:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class="command">cat > /etc/resolv.conf << "EOF"
|
|
<code class="literal"># Begin /etc/resolv.conf
|
|
|
|
domain <em class="replaceable"><code><Your Domain Name></code></em>
|
|
nameserver <em class=
|
|
"replaceable"><code><IP address of your primary nameserver></code></em>
|
|
nameserver <em class=
|
|
"replaceable"><code><IP address of your secondary nameserver></code></em>
|
|
|
|
# End /etc/resolv.conf</code>
|
|
EOF</kbd>
|
|
</pre>
|
|
<p>
|
|
The <code class="varname">domain</code> statement can be omitted or
|
|
replaced with a <code class="varname">search</code> statement. See
|
|
the man page for resolv.conf for more details.
|
|
</p>
|
|
<p>
|
|
Replace <em class="replaceable"><code><IP address of the
|
|
nameserver></code></em> with the IP address of the DNS most
|
|
appropriate for the setup. There will often be more than one entry
|
|
(requirements demand secondary servers for fallback capability). If
|
|
you only need or want one DNS server, remove the second
|
|
<span class="emphasis"><em>nameserver</em></span> line from the
|
|
file. The IP address may also be a router on the local network.
|
|
</p>
|
|
<div class="admon note">
|
|
<img alt="[Note]" src="../images/note.png" />
|
|
<h3>
|
|
Note
|
|
</h3>
|
|
<p>
|
|
The Google Public IPv4 DNS addresses are 8.8.8.8 and 8.8.4.4.
|
|
</p>
|
|
</div>
|
|
<p>
|
|
When using <span class=
|
|
"command"><strong>systemd-networkd</strong></span> for network
|
|
configuration, another daemon, <span class=
|
|
"command"><strong>systemd-resolved</strong></span>, is responsible
|
|
for creating the <code class="filename">/etc/resolv.conf</code>
|
|
file. It is, however, placed in a non-standard location which is
|
|
writable since early boot, so it is necessary to create a symlink
|
|
to it by running the following command:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class=
|
|
"command">ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf</kbd>
|
|
</pre>
|
|
<p>
|
|
This is required if you are specifying DNS entries in <code class=
|
|
"filename">.network</code> files or using the built in DHCP client
|
|
to obtain DNS addresses.
|
|
</p>
|
|
</div>
|
|
<div class="sect2" lang="en" xml:lang="en">
|
|
<h2 class="sect2">
|
|
<a id="ch-scripts-hostname" name="ch-scripts-hostname"></a>7.2.3.
|
|
Configuring the system hostname
|
|
</h2>
|
|
<p>
|
|
During the boot process, the file <code class=
|
|
"filename">/etc/hostname</code> is used for establishing the
|
|
system's hostname.
|
|
</p>
|
|
<p>
|
|
Create the <code class="filename">/etc/hostname</code> file and
|
|
enter a hostname by running:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class="command">echo "<em class=
|
|
"replaceable"><code><lfs></code></em>" > /etc/hostname</kbd>
|
|
</pre>
|
|
<p>
|
|
<em class="replaceable"><code><lfs></code></em> needs to be
|
|
replaced with the name given to the computer. Do not enter the
|
|
Fully Qualified Domain Name (FQDN) here. That information is put in
|
|
the <code class="filename">/etc/hosts</code> file.
|
|
</p>
|
|
</div>
|
|
<div class="sect2" lang="en" xml:lang="en">
|
|
<h2 class="sect2">
|
|
<a id="ch-scripts-hosts" name="ch-scripts-hosts"></a>7.2.4.
|
|
Customizing the /etc/hosts File
|
|
</h2>
|
|
<p>
|
|
Decide on the IP address, fully-qualified domain name (FQDN), and
|
|
possible aliases for use in the <code class=
|
|
"filename">/etc/hosts</code> file. The syntax is:
|
|
</p>
|
|
<pre class="screen">
|
|
<code class="literal">IP_address myhost.example.org aliases</code>
|
|
</pre>
|
|
<p>
|
|
Unless the computer is to be visible to the Internet (i.e., there
|
|
is a registered domain and a valid block of assigned IP
|
|
addresses—most users do not have this), make sure that the IP
|
|
address is in the private network IP address range. Valid ranges
|
|
are:
|
|
</p>
|
|
<pre class="screen">
|
|
<code class="literal">Private Network Address Range Normal Prefix
|
|
10.0.0.1 - 10.255.255.254 8
|
|
172.x.0.1 - 172.x.255.254 16
|
|
192.168.y.1 - 192.168.y.254 24</code>
|
|
</pre>
|
|
<p>
|
|
x can be any number in the range 16-31. y can be any number in the
|
|
range 0-255.
|
|
</p>
|
|
<p>
|
|
A valid private IP address could be 192.168.1.1. A valid FQDN for
|
|
this IP could be lfs.example.org.
|
|
</p>
|
|
<p>
|
|
Even if not using a network card, a valid FQDN is still required.
|
|
This is necessary for certain programs to operate correctly.
|
|
</p>
|
|
<p>
|
|
Create the <code class="filename">/etc/hosts</code> file by
|
|
running:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class="command">cat > /etc/hosts << "EOF"
|
|
<code class="literal"># Begin /etc/hosts (network card version)
|
|
|
|
127.0.0.1 localhost
|
|
::1 localhost
|
|
<em class="replaceable"><code><192.168.0.2></code></em> <em class=
|
|
"replaceable"><code><HOSTNAME.example.org></code></em> <em class=
|
|
"replaceable"><code>[alias1] [alias2] ...</code></em>
|
|
|
|
# End /etc/hosts (network card version)</code>
|
|
EOF</kbd>
|
|
</pre>
|
|
<p>
|
|
The <em class="replaceable"><code><192.168.0.2></code></em>
|
|
and <em class=
|
|
"replaceable"><code><HOSTNAME.example.org></code></em> values
|
|
need to be changed for specific uses or requirements (if assigned
|
|
an IP address by a network/system administrator and the machine
|
|
will be connected to an existing network). The optional alias
|
|
name(s) can be omitted.
|
|
</p>
|
|
<p>
|
|
If a network card is not going to be configured, create the
|
|
<code class="filename">/etc/hosts</code> file by running:
|
|
</p>
|
|
<pre class="userinput">
|
|
<kbd class="command">cat > /etc/hosts << "EOF"
|
|
<code class="literal"># Begin /etc/hosts (no network card version)
|
|
|
|
127.0.0.1 <em class=
|
|
"replaceable"><code><HOSTNAME.example.org></code></em> <em class=
|
|
"replaceable"><code><HOSTNAME></code></em> localhost
|
|
::1 localhost
|
|
|
|
# End /etc/hosts (no network card version)</code>
|
|
EOF</kbd>
|
|
</pre>
|
|
<p>
|
|
The ::1 entry is the IPv6 counterpart of 127.0.0.1 and represents
|
|
the IPv6 loopback interface.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="navfooter">
|
|
<ul>
|
|
<li class="prev">
|
|
<a accesskey="p" href="introduction.html" title=
|
|
"Introduction">Prev</a>
|
|
<p>
|
|
Introduction
|
|
</p>
|
|
</li>
|
|
<li class="next">
|
|
<a accesskey="n" href="udev.html" title=
|
|
"Device and Module Handling on an LFS System">Next</a>
|
|
<p>
|
|
Device and Module Handling on an LFS System
|
|
</p>
|
|
</li>
|
|
<li class="up">
|
|
<a accesskey="u" href="chapter07.html" title=
|
|
"Chapter 7. Basic System Configuration">Up</a>
|
|
</li>
|
|
<li class="home">
|
|
<a accesskey="h" href="../index.html" title=
|
|
"Linux From Scratch - Version 7.7-systemd">Home</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|