lfs-ru/chapter09/networkd.xml

339 lines
19 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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"?>
<title>Настройка сети</title>
<indexterm zone="ch-config-network">
<primary sortas="d-network">network</primary>
<secondary>configuring</secondary></indexterm>
<para>Этот раздел применяется только в том случае, если требуется настроить сетевую карту.</para>
<sect2>
<title>Файлы конфигурации сетевого интерфейса</title>
<para>Начиная с версии 209 systemd поставляется со службой настройки сети
<command>systemd-networkd</command>, которую можно использовать для базовой настройки. А начиная
с версии 213, служба DNS работает через <command>systemd-resolved</command> вместо статичного
файла <filename>/etc/resolv.conf</filename>. Обе службы по умолчанию включены.</para>
<note>
<para>
Если вы не планируете использовать <command>systemd-networkd</command> для настройки сети
(например, когда система не подключена к сети, или вы хотите использовать другую утилиту
для настройки, например, NetworkManager), отключите службу, чтобы не получить сообщение
об ошибке во время загрузки:
</para>
<screen role='nodump'><userinput>systemctl disable systemd-networkd-wait-online</userinput></screen>
</note>
<para>Конфигурационные файлы для <command>systemd-networkd</command>
<command>systemd-resolved</command>) могут находиться в каталоге
<filename class="directory">/usr/lib/systemd/network</filename>
или <filename class="directory">/etc/systemd/network</filename>. Файлы в каталоге
<filename class="directory">/etc/systemd/network</filename> имеют более высокий приоритет, чем в
<filename class="directory">/usr/lib/systemd/network</filename>.
Существует три типа конфигурационных файлов:
<filename class="extension">.link</filename>,
<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>
<sect3 id="systemd-network-devices">
<title>Именование сетевых устройств</title>
<para>
Udev обычно назначает имена интерфейсам сетевой карты на основе физических характеристик
системы, например enp2s1. Если вы не знаете имя вашего интерфейса,
вы всегда можете запустить <command>ip link</command> после загрузки системы.
</para>
<note>
<para>Имена интерфейсов зависят от реализации и конфигурации демона udev, работающего в системе.
Демон udev для LFS (установленный в <xref linkend="ch-system-systemd"/>) не запустится, пока
система LFS не будет загржена. Таким образом, не правильно определять имена интерфейсов,
используемых в системе LFS, путем запуска этой команды в хост-дистрибутиве,
<emphasis>даже в среде chroot</emphasis>.</para>
</note>
<para>
Большинство систем имеют только один сетевой интерфейс для каждого типа соединения.
Например, классическое имя интерфейса для проводного соединения - eth0.
Беспроводное соединение обычно называется wifi0 или wlan0.
</para>
<para>
Если вы предпочитаете использовать классические или настраиваемые имена сетевых интерфейсов,
есть три способа сделать это:</para>
<itemizedlist>
<listitem>
<para>
Замаскируйте файл .link для политики по умолчанию:
<screen role="nodump"><userinput>ln -s /dev/null /etc/systemd/network/99-default.link</userinput></screen>
</para>
</listitem>
<listitem>
<para>
Создайте собственную схему именования интерфейсов, например назвав интерфейсы "internet0",
"dmz0" или "lan0". Для этого создайте файл .link в каталоге /etc/systemd/network/, в
котором явно укажите новое имя интерфейса или более подходящую схема именования. Например:
</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>
Смотрите справочную страницу systemd.link(5) для получения дополнительной информации.
</para>
</listitem>
<listitem>
<para>
В /boot/grub/grub.cfg передайте опцию net.ifnames=0 в строке ядра.
</para>
</listitem>
</itemizedlist>
</sect3>
<sect3 id="systemd-networkd-static">
<title>Настройка статического IP</title>
<para>Приведенная ниже команда создает базовый конфигурационный файл для настройки
статического IP (с использованием как systemd-networkd, так и systemd-resolved):</para>
<!-- 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
Domains=<replaceable>&lt;Ваше доменное имя&gt;</replaceable></literal>
EOF</userinput></screen>
<para>Можно добавить несколько записей DNS, если у вас более одного DNS сервера. Не добавляйте
записи DNS и Domains, если вы собираетесь использовать статический файл <filename>/etc/resolv.conf</filename>.</para>
</sect3>
<sect3 id="systemd-networkd-dhcp">
<title>Конфигурация DHCP</title>
<para>Приведенная ниже команда создаёт базовый файл настройки для IPv4 DHCP:</para>
<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]
UseDomains=true</literal>
EOF</userinput></screen>
</sect3>
</sect2>
<sect2 id="resolv.conf">
<title>Создание файла /etc/resolv.conf</title>
<indexterm zone="resolv.conf">
<primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary>
</indexterm>
<para>Если система будет подключена к интернету, ей понадобится службы разрешения доменных
имен - DNS для того чтобы преобразовывать доменные имена в Интернете в IP-адреса и наоборот.
Для этого проще всего будет поместить IP адрес DNS сервера, полученного от вашего провайдера
интернета или сетевого администратора, в файл <filename>/etc/resolv.conf</filename>.</para>
<sect3 id="resolv-conf-systemd-resolved">
<title>Настройка systemd-resolved</title>
<note><para>При использовании сетевых интерфейсов, несовместимых с systemd-resolved
(например, ppp и т.д.), или при использовании любого локального DNS-сервера (например, bind,
dnsmasq, unbound и т.д.), или любого другого программного обеспечения, которое генерирует
<filename>/etc/resolv.conf</filename> (например: программа <command>resolvconf</command>, не
следует использовать службу <command>systemd-resolved</command>.</para>
<para>Чтобы отключить systemd-resolved, выполните следующую команду:</para>
<screen role="nodump"><userinput>systemctl disable systemd-resolved</userinput></screen></note>
<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>
<!--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">
<title>Статическая конфигурация resolv.conf</title>
<para>Если требуется статический файл <filename>/etc/resolv.conf</filename>, создайте его
выполнив следующую команду:</para>
<screen role="nodump"><userinput>cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
<literal># Begin /etc/resolv.conf
domain <replaceable>&lt;Ваше доменное имя&gt;</replaceable>
nameserver <replaceable>&lt;IP-адрес вашего основного DNS-сервера&gt;</replaceable>
nameserver <replaceable>&lt;IP-адрес вашего дополнительного DNS-сервера&gt;</replaceable>
# End /etc/resolv.conf</literal>
EOF</userinput></screen>
<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>
</sect3>
</sect2>
<sect2 id="ch-config-hostname">
<title>Настройка имени хоста</title>
<indexterm zone="ch-config-hostname">
<primary sortas="d-hostname">hostname</primary>
<secondary>configuring</secondary>
</indexterm>
<para>В процессе загрузки файл <filename>/etc/hostname</filename> используется для
настройки имени хоста системы.</para>
<para>Создайте файл <filename>/etc/hostname</filename> и внесите имя хоста, выполнив команду:</para>
<screen><userinput>echo "<replaceable>&lt;lfs&gt;</replaceable>" &gt; /etc/hostname</userinput></screen>
<para><replaceable>&lt;lfs&gt;</replaceable> замените на имя вашего компьютера. Не вносите сюда
полное доменное имя(FQDN). Эта информация помещается в файл <filename>/etc/hosts</filename>.</para>
</sect2>
<sect2 id="ch-config-hosts">
<title>Настройка файла /etc/hosts</title>
<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>
<para>Укажите полное доменное имя (FQDN) и возможные псевдонимы.
для использования в файле <filename>/etc/hosts</filename>. Если используется статический IP
адреса, вам также необходимо указать IP-адрес. Синтаксис строки в файла hosts:</para>
<screen><literal>IP_address myhost.example.org aliases</literal></screen>
<para>Если компьютер не должен быть виден в Интернете (т. е. нет зарегистрированного домена
и действительного блока назначенных IP-адресов&mdash;у большинства пользователей этого нет),
убедитесь, что IP-адрес находится в диапазоне внутренних сетевых IP-адресов. Допустимые диапазоны:</para>
<screen><literal>Диапазон адресов локальной сети Стандартный префикс
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</literal></screen>
<para>x может быть любым числом в диапазоне 16-31. y может быть любым числом в диапазоне 0-255.</para>
<para>Правильный IP адрес может быть 192.168.1.1. Правильный FQDN для этого IP
адреса может быть lfs.example.org.</para>
<para>Даже если сетевая карта не используется, всё равно требуется указание полного доменного
имени. Это необходимо для правильной работы некоторых программ.</para>
<!--
<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>
-->
<para>Создайте файл <filename>/etc/hosts</filename>, выполнив команду:</para>
<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>
<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>
</sect2>
</sect1>