Lx4U-book/docs/setup/network-systemd.md

191 lines
11 KiB
Markdown
Raw Normal View History

2021-06-03 04:11:03 +08:00
# Настройка сети
Начиная с версии 209, в systemd имеется служба `systemd-networkd`, которую можно использовать для настройки сети. Кроме того, начиная с версии 213, разрешение имен DNS можно обрабатывать с помощью `systemd-resolved` вместо статического файла `/etc/resolv.conf`. Обе службы включены по умолчанию.
2021-06-03 04:11:03 +08:00
Файлы конфигурации для `systemd-networkd``systemd-resolved`) можно разместить в `/usr/lib/systemd/network` или `/etc/systemd/network`. Файлы в `/etc/systemd/network` имеют более высокий приоритет, чем файлы в `/usr/lib/systemd/network`.
2021-06-03 04:11:03 +08:00
Существует три типа файлов конфигурации: файлы `.link`, `.netdev` и `.network`.
2021-06-03 04:11:03 +08:00
## Именование сетевых устройств
Udev обычно назначает имена интерфейсов сетевых карт на основе физических характеристик системы, таких как `enp2s1`. Если вы не уверены, как называется ваш интерфейс, вы всегда можете запустить `ip link` после загрузки вашей системы.
2021-06-03 04:11:03 +08:00
Для большинства систем существует только один сетевой интерфейс для каждого типа подключения. Например, классическое имя интерфейса для проводного подключения - `eth0`. Беспроводное соединение обычно имеет имя `wifi0` или `wlan0`.
2021-06-03 04:11:03 +08:00
Если вы предпочитаете использовать классические или настраиваемые имена сетевых интерфейсов, есть три способа это сделать:
- Замаскируйте файл .link udev для политики по умолчанию:
```bash
ln -s /dev/null /etc/systemd/network/99-default.link
```
- Создайте схему именования вручную, например, присвоив интерфейсам что-то вроде `internet0`, `dmz0` или `lan0`. Для этого создайте файлы `.link` в `/etc/systemd/network/`, которые выберут явное имя или лучшую схему именования для ваших сетевых интерфейсов. Например:
2021-06-03 04:11:03 +08:00
```bash
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
```
- В файле `/boot/grub/grub.cfg` передайте опцию `net.ifnames=0` в командной строке ядра.
2021-06-03 04:11:03 +08:00
## Настройка DHCP
Приведенная ниже команда создаёт файл базовой конфигурации для настройки IPv4 DHCP:
2021-06-03 04:11:03 +08:00
```bash
cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
[Match]
Name=<network-device-name>
[Network]
DHCP=ipv4
[DHCP]
UseDomains=true
EOF
```
## Настройка статического IP-адреса
Приведенная ниже команда создает базовый файл конфигурации для настройки статического IP-адреса (с использованием как `systemd-networkd`, так и `systemd-resolved`):
2021-06-03 04:11:03 +08:00
```bash
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=<Your Domain Name>
EOF
```
2021-06-03 04:11:03 +08:00
Если у вас несколько DNS-серверов, можно добавить несколько записей DNS. (Замените ключ DNS в команде, расположенной выше)
2021-06-03 04:11:03 +08:00
```bash
DNS=192.168.0.1 8.8.8.8 8.8.4.4
```
Не включайте записи DNS или доменов, если вы собираетесь использовать статический файл `/etc/resolv.conf`.
2021-06-03 04:11:03 +08:00
## Создание файла /etc/resolv.conf
Если система будет подключена к сети Интернет, ей потребуются некоторые средства разрешения доменных имен (DNS) для преобразования доменных имён в IP-адреса и наоборот. Лучше всего это достигается помещением IP-адреса DNS-сервера, доступного у интернет-провайдера или сетевого администратора, в `/etc/resolv.conf`.
2021-06-03 04:11:03 +08:00
### Настройка systemd-resolved
???+ note "Обратите внимание"
При использовании методов, несовместимых с systemd-resolved для настройки сетевых интерфейсов (например, ppp и т. д.), или при использовании любого типа локального преобразователя (например, bind, dnsmasq, unbound и т. д.) или любого другого программного обеспечения, которое генерирует /etc/resolv.conf (например, программа resolvconf, отличная от той, которая предоставляется systemd), службу systemd-resolved использовать не следует.
2021-06-03 04:11:03 +08:00
При использовании службы `systemd-resolved` для настройки DNS, будет создан файл `/run/systemd/resolve/resolv.conf`.
2021-06-03 04:11:03 +08:00
Создайте символическую ссылку, чтобы использовать этот файл в каталоге `/etc`
2021-06-03 04:11:03 +08:00
```bash
ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf
```
### Статическая настройка файла resolv.conf
Если требуется статический файл `/etc/resolv.conf`, создайте его, выполнив следующую команду:
2021-06-03 04:11:03 +08:00
```bash
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
domain <Ваше доменное имя>
nameserver <IP-адрес вашего основного сервера имен>
nameserver <IP-адрес вашего вторичного сервера имен>
2021-06-03 04:11:03 +08:00
# End /etc/resolv.conf
EOF
```
`domain` - можно можно опустить или заменить на `search`
Замените `<Ваше доменное имя>` IP-адресом DNS-сервера. Может присутствовать несколько записей (требования предусматривают наличия вторичных серверов для возможности восстановления). Если вам нужен только один DNS-сервер, удалите вторую строку `nameserver` из файла. IP-адрес также может быть маршрутизатором в локальной сети.
2021-06-03 04:11:03 +08:00
В качестве DNS можно указать адреса, предложенные ниже:
Yandex DNS IPv4 `77.88.8.8` и `77.88.8.1`
2021-06-03 04:11:03 +08:00
The Google Public IPv4 DNS адреса `8.8.8.8` и `8.8.4.4`
2021-06-03 04:11:03 +08:00
The Google Public IPv6 DNS адреса `2001:4860:4860::8888` и `2001:4860:4860::8844`
2021-06-03 04:11:03 +08:00
## Настройка /etc/hostname
Во время процесса загрузки файл `/etc/hostname` используется для определения имени хоста системы.
2021-06-03 04:11:03 +08:00
Создайте файл `/etc/hostname` и введите имя хоста, запустив:
2021-06-03 04:11:03 +08:00
```bash
echo "MyHostName" > /etc/hostname
```
`"MyHostName"` необходимо заменить именем, присвоенным компьютеру. Не вводите здесь полное доменное имя (FQDN). Эта информация помещается в файл `/etc/hosts`.
2021-06-03 04:11:03 +08:00
## Настройка /etc/hosts
Выберите полное доменное имя (FQDN) и возможные псевдонимы для использования в файле `/etc/hosts`. Если вы используете статические IP-адреса, вам также необходимо выбрать IP-адрес. Синтаксис записи файла hosts:
2021-06-03 04:11:03 +08:00
```
IP_address myhost.example.org aliases
```
2021-06-03 04:11:03 +08:00
Если компьютер не должен быть видимым для Интернета (существует зарегистрированный домен и действительный блок назначенных 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
2021-06-03 04:11:03 +08:00
```
2021-06-03 04:11:03 +08:00
`x` - может быть любым числом в диапазоне от 16 до 31
`y` - может быть любым числом в диапазоне от 0 до 255
Корректный локальный IP адрес может быть вида `192.168.1.1`. FQDN, напрмер `mylin.example.org`.
2021-06-03 04:11:03 +08:00
Даже если не используется сетевая карта, всё равно требуется действительное полное доменное имя. Это необходимо для правильной работы определенных программ, таких как MTA (почтовый сервер).
2021-06-03 04:11:03 +08:00
Создайте файл `/etc/hosts`
2021-06-03 04:11:03 +08:00
```bash
cat > /etc/hosts << "EOF"
# Begin /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 <FQDN> <HOSTNAME>
<192.168.0.2> <FQDN> <HOSTNAME> [alias1] [alias2] ...
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# End /etc/hosts
EOF
```
Значения `<192.168.0.2>`, `<FQDN>` и `<HOSTNAME>` необходимо изменить в соответствии с потребностями (если IP-адрес назначен сетевым / системным администратором, и оборудование будет подключено к существующей сети).
Необязательные псевдонимы можно опустить, а строку `192.168.0.2` можно не указывать, если вы используете соединение, настроенное с помощью DHCP или автоконфигурации IPv6.
2021-06-03 04:11:03 +08:00
Запись `::1` является эквивалентом `IPv6 127.0.0.1` и представляет loopback `интерфейс IPv6`.
2021-06-03 04:11:03 +08:00
2021-06-27 15:59:32 +08:00
`127.0.1.1` - так называемый, «местный» от англ. local, или «локальный хост», по смыслу — это компьютер, зарезервированный специально для FQDN.