9.2. Настройка сети

Этот раздел применяется только в том случае, если требуется настроить сетевую карту.

9.2.1. Файлы конфигурации сетевого интерфейса

Начиная с версии 209 systemd поставляется со службой настройки сети systemd-networkd, которую можно использовать для базовой настройки. А начиная с версии 213, служба DNS работает через systemd-resolved вместо статичного файла /etc/resolv.conf. Обе службы по умолчанию включены.

[Примечание]

Примечание

Если вы не планируете использовать systemd-networkd для настройки сети (например, когда система не подключена к сети, или вы хотите использовать другую утилиту для настройки, например, NetworkManager), отключите службу, чтобы не получить сообщение об ошибке во время загрузки:

systemctl disable systemd-networkd-wait-online

Конфигурационные файлы для systemd-networkdsystemd-resolved) могут находиться в каталоге /usr/lib/systemd/network или /etc/systemd/network. Файлы в каталоге /etc/systemd/network имеют более высокий приоритет, чем в /usr/lib/systemd/network. Существует три типа конфигурационных файлов: .link, .netdev и .network. Для получения подробной информации с описанием и примерами содержимого этих конфигурационных файлов ознакомьтесь с руководствами systemd.link(5), systemd.netdev(5) и systemd.network(5).

9.2.1.1. Именование сетевых устройств

Udev обычно назначает имена интерфейсам сетевой карты на основе физических характеристик системы, например enp2s1. Если вы не знаете имя вашего интерфейса, вы всегда можете запустить ip link после загрузки системы.

[Примечание]

Примечание

Имена интерфейсов зависят от реализации и конфигурации демона udev, работающего в системе. Демон udev для LFS (установленный в Раздел 8.76, «Systemd-256.4») не запустится, пока система LFS не будет загружена. Таким образом, не правильно определять имена интерфейсов, используемых в системе LFS, путем запуска этой команды в хост-дистрибутиве, даже в среде chroot.

Большинство систем имеют только один сетевой интерфейс для каждого типа соединения. Например, классическое имя интерфейса для проводного соединения - eth0. Беспроводное соединение обычно называется wifi0 или wlan0.

Если вы предпочитаете использовать классические или настраиваемые имена сетевых интерфейсов, есть три способа сделать это:

  • Замаскируйте файл .link для политики по умолчанию:

    ln -s /dev/null /etc/systemd/network/99-default.link
  • Создайте собственную схему именования интерфейсов, например назвав интерфейсы internet0, dmz0 или lan0. Для этого создайте файл .link в каталоге /etc/systemd/network/, в котором явно укажите новое имя интерфейса или более подходящую схему именования. Например:

    cat > /etc/systemd/network/10-ether0.link << "EOF"
    [Match]
    # Change the MAC address as appropriate for your network device
    MACAddress=12:34:45:78:90:AB
    
    [Link]
    Name=ether0
    EOF

    Смотрите справочную страницу systemd.link(5) для получения дополнительной информации.

  • В /boot/grub/grub.cfg передайте опцию net.ifnames=0 в строке параметров загрузки ядра.

9.2.1.2. Настройка статического IP

Приведенная ниже команда создает базовый конфигурационный файл для настройки статического IP (с использованием как systemd-networkd, так и systemd-resolved):

cat > /etc/systemd/network/10-eth-static.network << "EOF"
[Match]
Name=<network-device-name>

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
Domains=<Ваше доменное имя>
EOF

Можно добавить несколько записей DNS, если у вас более одного DNS сервера. Не добавляйте записи DNS и Domains, если вы собираетесь использовать статический файл /etc/resolv.conf.

9.2.1.3. Конфигурация DHCP

Приведенная ниже команда создаёт базовый файл настройки для IPv4 DHCP:

cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
[Match]
Name=<network-device-name>

[Network]
DHCP=ipv4

[DHCPv4]
UseDomains=true
EOF

9.2.2. Создание файла /etc/resolv.conf

Если система будет подключена к интернету, ей понадобится службы разрешения доменных имен - DNS для того чтобы преобразовывать доменные имена в Интернете в IP-адреса и наоборот. Для этого проще всего будет поместить IP адрес DNS сервера, полученного от вашего провайдера интернета или сетевого администратора, в файл /etc/resolv.conf.

9.2.2.1. Настройка systemd-resolved

[Примечание]

Примечание

При использовании сетевых интерфейсов, несовместимых с systemd-resolved (например, ppp и т.д.), или при использовании любого локального DNS-сервера (например, bind, dnsmasq, unbound и т.д.), или любого другого программного обеспечения, которое генерирует /etc/resolv.conf (например: программа resolvconf, не следует использовать службу systemd-resolved.

Чтобы отключить systemd-resolved, выполните следующую команду:

systemctl disable systemd-resolved

При использовании systemd-resolved для настройки DNS, служба создает файл /run/systemd/resolve/stub-resolv.conf. И, если файл /etc/resolv.conf не существует, он будет создан службой systemd-resolved как символическая ссылка на /run/systemd/resolve/stub-resolv.conf. Поэтому не нужно создавать /etc/resolv.conf вручную.

9.2.2.2. Статическая конфигурация resolv.conf

Если требуется статический файл /etc/resolv.conf, создайте его выполнив следующую команду:

cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf

domain <Ваше доменное имя>
nameserver <IP-адрес вашего основного DNS-сервера>
nameserver <IP-адрес вашего дополнительного DNS-сервера>

# End /etc/resolv.conf
EOF

Оператор domain может быть опущен или заменён оператором search. Смотрите справочную страницу resolv.conf для получения подробной информации.

Замените <IP-адрес вашего основного DNS-сервера> адресом наиболее подходящего DNS сервера. DNS серверов, может быть указано более одной записи (дополнительные серверы необходимы для возможности резервного переключения). Если вам нужен только один DNS-сервер, удалите вторую строку nameserver из файла. DNS-сервер также может выступать шлюзом в локальной сети. Другой вариант заключается в использовании общедоступных DNS Google, прописав указанные ниже IP-адреса в качестве DNS-серверов.

[Примечание]

Примечание

Адреса общедоступных DNS серверов Google 8.8.8.8 и 8.8.4.4 для IPv4, а 2001:4860:4860::8888 и 2001:4860:4860::8844 для IPv6.

9.2.3. Настройка имени хоста

В процессе загрузки файл /etc/hostname используется для настройки имени хоста системы.

Создайте файл /etc/hostname и внесите имя хоста, выполнив команду:

echo "<lfs>" > /etc/hostname

<lfs> замените на имя вашего компьютера. Не вносите сюда полное доменное имя(FQDN). Эта информация помещается в файл /etc/hosts.

9.2.4. Настройка файла /etc/hosts

Укажите полное доменное имя (FQDN) и возможные псевдонимы. для использования в файле /etc/hosts. Если используется статический IP адреса, вам также необходимо указать IP-адрес. Синтаксис строки в файла hosts:

IP_address myhost.example.org aliases

Если компьютер не должен быть виден в Интернете (т. е. нет зарегистрированного домена и действительного блока назначенных IP-адресов—у большинства пользователей этого нет), убедитесь, что IP-адрес находится в диапазоне внутренних сетевых IP-адресов. Допустимые диапазоны:

Диапазон адресов локальной сети      Стандартный префикс
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

x может быть любым числом в диапазоне 16-31. y может быть любым числом в диапазоне 0-255.

Правильным IP адресом в локальной сети может быть 192.168.1.1.

Если компьютер должен быть виден в Интернете, действительным полным доменным именем может быть само имя домена или строка, полученная путем объединения префикса (часто имени хоста) и домена с помощью символа «.». Кроме того, вам необходимо обратиться к администратору домена, чтобы связать полное доменное имя и ваш общедоступный IP-адрес.

Даже если компьютер не виден из Интернета, полное доменное имя все равно необходимо для правильной работы некоторых программ, таких как MTA. Для этих целей можно использовать специальное полное доменное имя localhost.localdomain.

Создайте файл /etc/hosts, выполнив команду:

cat > /etc/hosts << "EOF"
# Begin /etc/hosts

<192.168.0.2> <FQDN> [alias1] [alias2] ...
::1       ip6-localhost ip6-loopback
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

# End /etc/hosts
EOF

Значения <192.168.0.2> и <FQDN> должны быть изменены на необходимые в соответствии требованиями сети (если имеется IP-адрес выданный сетевым/системным администратором и машина подключена к существующей сети). Необязательные параметры могут быть опущены, а строку <192.168.0.2> можно опустить, если вы используете подключение, настроенное с помощью DHCP или автоматической настройки IPv6, или используя localhost.localdomain в качестве полного доменного имени.

/etc/hostname не содержит записей для localhost, localhost.localdomain или имени хоста (без домена), поскольку они обрабатываются модулем NSS myhostname, прочтите справочную страницу nss-myhostname(8) для получения подробной информации.

Запись ::1 является IPv6-аналогом 127.0.0.1 и представляет loopback-интерфейс IPv6.