lfs-ru/chapter09/networkd.xml

339 lines
19 KiB
XML
Raw Normal View History

2023-05-23 09:22:34 +03:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-config-network" revision="systemd">
<?dbhtml filename="network.html"?>
2023-06-06 22:40:56 +03:00
<title>Настройка сети</title>
2023-05-23 09:22:34 +03:00
<indexterm zone="ch-config-network">
<primary sortas="d-network">network</primary>
<secondary>configuring</secondary></indexterm>
2023-06-06 22:40:56 +03:00
<para>Этот раздел применяется только в том случае, если требуется настроить сетевую карту.</para>
2023-05-23 09:22:34 +03:00
<sect2>
2023-06-06 22:40:56 +03:00
<title>Файлы конфигурации сетевого интерфейса</title>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Начиная с версии 209 systemd поставляется со службой настройки сети
<command>systemd-networkd</command>, которую можно использовать для базовой настройки. А начиная
с версии 213, служба DNS работает через <command>systemd-resolved</command> вместо статичного
файла <filename>/etc/resolv.conf</filename>. Обе службы по умолчанию включены.</para>
2023-05-23 09:22:34 +03:00
<note>
<para>
2023-06-06 22:40:56 +03:00
Если вы не планируете использовать <command>systemd-networkd</command> для настройки сети
(например, когда система не подключена к сети, или вы хотите использовать другую утилиту
для настройки, например, NetworkManager), отключите службу, чтобы не получить сообщение
об ошибке во время загрузки:
2023-05-23 09:22:34 +03:00
</para>
<screen role='nodump'><userinput>systemctl disable systemd-networkd-wait-online</userinput></screen>
</note>
2023-06-06 22:40:56 +03:00
<para>Конфигурационные файлы для <command>systemd-networkd</command>
<command>systemd-resolved</command>) могут находиться в каталоге
2023-05-23 09:22:34 +03:00
<filename class="directory">/usr/lib/systemd/network</filename>
2023-06-06 22:40:56 +03:00
или <filename class="directory">/etc/systemd/network</filename>. Файлы в каталоге
<filename class="directory">/etc/systemd/network</filename> имеют более высокий приоритет, чем в
2023-05-23 09:22:34 +03:00
<filename class="directory">/usr/lib/systemd/network</filename>.
2023-06-06 22:40:56 +03:00
Существует три типа конфигурационных файлов:
2023-05-23 09:22:34 +03:00
<filename class="extension">.link</filename>,
2023-06-06 22:40:56 +03:00
<filename class="extension">.netdev</filename> и
<filename class="extension">.network</filename>. Для получения подробной информации с описанием
и примерами содержимого этих конфигурационных файлов ознакомьтесь с руководствами
<filename>systemd-link(5)</filename>,
<filename>systemd-netdev(5)</filename> и
<filename>systemd-network(5)</filename>.</para>
2023-05-23 09:22:34 +03:00
<sect3 id="systemd-network-devices">
2023-06-06 22:40:56 +03:00
<title>Именование сетевых устройств</title>
2023-05-23 09:22:34 +03:00
<para>
2023-06-06 22:40:56 +03:00
Udev обычно назначает имена интерфейсам сетевой карты на основе физических характеристик
системы, например enp2s1. Если вы не знаете имя вашего интерфейса,
вы всегда можете запустить <command>ip link</command> после загрузки системы.
2023-05-23 09:22:34 +03:00
</para>
<note>
<para>Имена интерфейсов зависят от реализации и конфигурации демона udev, работающего в системе.
Демон udev для LFS (установленный в <xref linkend="ch-system-systemd"/>) не запустится, пока
система LFS не будет загржена. Таким образом, не правильно определять имена интерфейсов,
2023-06-06 22:40:56 +03:00
используемых в системе LFS, путем запуска этой команды в хост-дистрибутиве,
<emphasis>даже в среде chroot</emphasis>.</para>
2023-05-23 09:22:34 +03:00
</note>
<para>
2023-06-06 22:40:56 +03:00
Большинство систем имеют только один сетевой интерфейс для каждого типа соединения.
Например, классическое имя интерфейса для проводного соединения - eth0.
Беспроводное соединение обычно называется wifi0 или wlan0.
2023-05-23 09:22:34 +03:00
</para>
<para>
2023-06-06 22:40:56 +03:00
Если вы предпочитаете использовать классические или настраиваемые имена сетевых интерфейсов,
есть три способа сделать это:</para>
2023-05-23 09:22:34 +03:00
<itemizedlist>
<listitem>
<para>
2023-06-06 22:40:56 +03:00
Замаскируйте файл .link для политики по умолчанию:
2023-05-23 09:22:34 +03:00
<screen role="nodump"><userinput>ln -s /dev/null /etc/systemd/network/99-default.link</userinput></screen>
</para>
</listitem>
<listitem>
<para>
2023-06-06 22:40:56 +03:00
Создайте собственную схему именования интерфейсов, например назвав интерфейсы "internet0",
"dmz0" или "lan0". Для этого создайте файл .link в каталоге /etc/systemd/network/, в
котором явно укажите новое имя интерфейса или более подходящую схема именования. Например:
2023-05-23 09:22:34 +03:00
</para>
<screen role="nodump"><userinput>cat &gt; /etc/systemd/network/10-ether0.link &lt;&lt; "EOF"
<literal>[Match]
# Change the MAC address as appropriate for your network device
MACAddress=12:34:45:78:90:AB
[Link]
Name=ether0</literal>
EOF</userinput></screen>
<para>
2023-06-06 22:40:56 +03:00
Смотрите справочную страницу systemd.link(5) для получения дополнительной информации.
2023-05-23 09:22:34 +03:00
</para>
</listitem>
<listitem>
<para>
2023-06-06 22:40:56 +03:00
В /boot/grub/grub.cfg передайте опцию net.ifnames=0 в строке ядра.
2023-05-23 09:22:34 +03:00
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3 id="systemd-networkd-static">
2023-06-06 22:40:56 +03:00
<title>Настройка статического IP</title>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Приведенная ниже команда создает базовый конфигурационный файл для настройки
статического IP (с использованием как systemd-networkd, так и systemd-resolved):</para>
2023-05-23 09:22:34 +03:00
<!-- jhalfs relies on the values for Name, Address, etc. If you want to change
them, please inform the jhalfs maintainer(s). -->
<screen><userinput>cat &gt; /etc/systemd/network/10-eth-static.network &lt;&lt; "EOF"
<literal>[Match]
Name=<replaceable>&lt;network-device-name&gt;</replaceable>
[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
2023-06-06 22:40:56 +03:00
Domains=<replaceable>&lt;Ваше доменное имя&gt;</replaceable></literal>
2023-05-23 09:22:34 +03:00
EOF</userinput></screen>
2023-06-06 22:40:56 +03:00
<para>Можно добавить несколько записей DNS, если у вас более одного DNS сервера. Не добавляйте
записи DNS и Domains, если вы собираетесь использовать статический файл <filename>/etc/resolv.conf</filename>.</para>
2023-05-23 09:22:34 +03:00
</sect3>
<sect3 id="systemd-networkd-dhcp">
2023-06-06 22:40:56 +03:00
<title>Конфигурация DHCP</title>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Приведенная ниже команда создаёт базовый файл настройки для IPv4 DHCP:</para>
2023-05-23 09:22:34 +03:00
<screen role="nodump"><userinput>cat &gt; /etc/systemd/network/10-eth-dhcp.network &lt;&lt; "EOF"
<literal>[Match]
Name=&lt;network-device-name&gt;
[Network]
DHCP=ipv4
[DHCPv4]
2023-05-23 09:22:34 +03:00
UseDomains=true</literal>
EOF</userinput></screen>
</sect3>
</sect2>
<sect2 id="resolv.conf">
2023-06-06 22:40:56 +03:00
<title>Создание файла /etc/resolv.conf</title>
2023-05-23 09:22:34 +03:00
<indexterm zone="resolv.conf">
<primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary>
</indexterm>
2023-06-06 22:40:56 +03:00
<para>Если система будет подключена к интернету, ей понадобится службы разрешения доменных
имен - DNS для того чтобы преобразовывать доменные имена в Интернете в IP-адреса и наоборот.
Для этого проще всего будет поместить IP адрес DNS сервера, полученного от вашего провайдера
интернета или сетевого администратора, в файл <filename>/etc/resolv.conf</filename>.</para>
2023-05-23 09:22:34 +03:00
<sect3 id="resolv-conf-systemd-resolved">
2023-06-06 22:40:56 +03:00
<title>Настройка systemd-resolved</title>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<note><para>При использовании сетевых интерфейсов, несовместимых с systemd-resolved
(например, ppp и т.д.), или при использовании любого локального DNS-сервера (например, bind,
dnsmasq, unbound и т.д.), или любого другого программного обеспечения, которое генерирует
<filename>/etc/resolv.conf</filename> (например: программа <command>resolvconf</command>, не
следует использовать службу <command>systemd-resolved</command>.</para>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Чтобы отключить systemd-resolved, выполните следующую команду:</para>
2023-05-23 09:22:34 +03:00
<screen role="nodump"><userinput>systemctl disable systemd-resolved</userinput></screen></note>
2023-06-06 22:40:56 +03:00
<para>При использовании <command>systemd-resolved</command> для настройки DNS, служба создает файл
<filename>/run/systemd/resolve/stub-resolv.conf</filename>.
И, если файл <filename>/etc/resolv.conf</filename> не существует, он будет создан службой
<command>systemd-resolved</command> как символическая ссылка на
<filename>/run/systemd/resolve/stub-resolv.conf</filename>. Поэтому не нужно создавать
<filename>/etc/resolv.conf</filename> вручную.</para>
2023-05-23 09:22:34 +03:00
<!--Create a
symlink in <filename>/etc</filename> to use the generated file:</para>
<screen><userinput>ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf</userinput></screen>
At least in systemd-250, this file gets created on first bootup.
-->
</sect3>
<sect3 id="resolv-conf-static">
2023-06-06 22:40:56 +03:00
<title>Статическая конфигурация resolv.conf</title>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Если требуется статический файл <filename>/etc/resolv.conf</filename>, создайте его
выполнив следующую команду:</para>
2023-05-23 09:22:34 +03:00
<screen role="nodump"><userinput>cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
<literal># Begin /etc/resolv.conf
2023-06-06 22:40:56 +03:00
domain <replaceable>&lt;Ваше доменное имя&gt;</replaceable>
nameserver <replaceable>&lt;IP-адрес вашего основного DNS-сервера&gt;</replaceable>
nameserver <replaceable>&lt;IP-адрес вашего дополнительного DNS-сервера&gt;</replaceable>
2023-05-23 09:22:34 +03:00
# End /etc/resolv.conf</literal>
EOF</userinput></screen>
2023-06-06 22:40:56 +03:00
<para>Оператор <varname>domain</varname> может быть опущен или заменён оператором
<varname>search</varname>. Смотрите справочную страницу resolv.conf для получения
подробной информации.</para>
<para>Замените <replaceable>&lt;IP-адрес вашего основного DNS-сервера&gt;</replaceable>
адресом наиболее подходящего DNS сервера. DNS серверов, может быть указано более одной записи
(дополнительные серверы необходимы для возможности резервного переключения). Если вам нужен
только один DNS-сервер, удалите вторую строку <emphasis>nameserver</emphasis> из файла. DNS-сервер
также может выступать шлюзом в локальной сети. Другой вариант заключается в использовании
общедоступных DNS Google, прописав указанные ниже IP-адреса в качестве DNS-серверов.</para>
<note><para>Адреса общедоступных DNS серверов Google
<parameter>8.8.8.8</parameter> и <parameter>8.8.4.4</parameter>
для IPv4, а <parameter>2001:4860:4860::8888</parameter> и
<parameter>2001:4860:4860::8844</parameter> для IPv6.</para></note>
2023-05-23 09:22:34 +03:00
</sect3>
</sect2>
<sect2 id="ch-config-hostname">
2023-06-06 22:40:56 +03:00
<title>Настройка имени хоста</title>
2023-05-23 09:22:34 +03:00
<indexterm zone="ch-config-hostname">
<primary sortas="d-hostname">hostname</primary>
<secondary>configuring</secondary>
</indexterm>
2023-06-06 22:40:56 +03:00
<para>В процессе загрузки файл <filename>/etc/hostname</filename> используется для
настройки имени хоста системы.</para>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Создайте файл <filename>/etc/hostname</filename> и внесите имя хоста, выполнив команду:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput>echo "<replaceable>&lt;lfs&gt;</replaceable>" &gt; /etc/hostname</userinput></screen>
2023-06-06 22:40:56 +03:00
<para><replaceable>&lt;lfs&gt;</replaceable> замените на имя вашего компьютера. Не вносите сюда
полное доменное имя(FQDN). Эта информация помещается в файл <filename>/etc/hosts</filename>.</para>
2023-05-23 09:22:34 +03:00
</sect2>
<sect2 id="ch-config-hosts">
2023-06-06 22:40:56 +03:00
<title>Настройка файла /etc/hosts</title>
2023-05-23 09:22:34 +03:00
<indexterm zone="ch-config-hosts">
<primary sortas="e-/etc/hosts">/etc/hosts</primary>
</indexterm>
<indexterm zone="ch-config-hosts">
<primary sortas="d-localnet">localnet</primary>
<secondary>/etc/hosts</secondary>
</indexterm>
<indexterm zone="ch-config-hosts">
<primary sortas="d-network">network</primary>
<secondary>/etc/hosts</secondary>
</indexterm>
2023-06-06 22:40:56 +03:00
<para>Укажите полное доменное имя (FQDN) и возможные псевдонимы.
для использования в файле <filename>/etc/hosts</filename>. Если используется статический IP
адреса, вам также необходимо указать IP-адрес. Синтаксис строки в файла hosts:</para>
2023-05-23 09:22:34 +03:00
<screen><literal>IP_address myhost.example.org aliases</literal></screen>
2023-06-06 22:40:56 +03:00
<para>Если компьютер не должен быть виден в Интернете (т. е. нет зарегистрированного домена
и действительного блока назначенных IP-адресов&mdash;у большинства пользователей этого нет),
убедитесь, что IP-адрес находится в диапазоне внутренних сетевых IP-адресов. Допустимые диапазоны:</para>
2023-05-23 09:22:34 +03:00
<screen><literal>Private Network Address Range Normal Prefix
10.0.0.1 - 10.255.255.254 8
2023-06-06 22:40:56 +03:00
172.x.0.1 - 172.x.255.254 12
192.168.y.1 - 192.168.y.254 16</literal></screen>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>x может быть любым числом в диапазоне 16-31. y может быть любым числом в диапазоне 0-255.</para>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Правильный IP адрес может быть 192.168.1.1. Правильный FQDN для этого IP
адреса может быть lfs.example.org.</para>
2023-05-23 09:22:34 +03:00
2023-06-06 22:40:56 +03:00
<para>Даже если сетевая карта не используется, всё равно требуется указание полного доменного
имени. Это необходимо для правильной работы некоторых программ.</para>
2023-05-23 09:22:34 +03:00
<!--
<para>Create the /etc/hosts file using the following command:</para>
<screen role="nodump"><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
<literal># Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# End /etc/hosts</literal>
EOF</userinput></screen>
-->
2023-06-06 22:40:56 +03:00
<para>Создайте файл <filename>/etc/hosts</filename>, выполнив команду:</para>
2023-05-23 09:22:34 +03:00
<screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
<literal># Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
<replaceable>&lt;192.168.0.2&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> <replaceable>[alias1] [alias2] ...</replaceable>
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# End /etc/hosts</literal>
EOF</userinput></screen>
2023-06-06 22:40:56 +03:00
<para>Значения <replaceable>&lt;192.168.0.2&gt;</replaceable>,
<replaceable>&lt;FQDN&gt;</replaceable>, и
<replaceable>&lt;HOSTNAME&gt;</replaceable> должны быть изменены на необходимые в
соответствии требованиями сети (если имеется IP-адрес выданный сетевым/системным администратором
и машина подключена к существующей сети). Необязательные параметры могут быть опущены, а строку
<replaceable>&lt;192.168.0.2&gt;</replaceable> можно опустить, если вы используете подключение,
настроенное с помощью DHCP или автоматической настройки IPv6.</para>
<para>Запись ::1 является IPv6-аналогом 127.0.0.1 и представляет loopback-интерфейс IPv6.
127.0.1.1 — это зарезервированная специально для FQDN запись.</para>
2023-05-23 09:22:34 +03:00
</sect2>
</sect1>