Netplan — это утилита для конфигурации сетевых интерфейсов в операционных системах на базе Linux, таких как Ubuntu. Netplan позволяет настраивать сетевые подключения с использованием простых YAML-файлов, которые обеспечивают декларативный подход к управлению сетью.
Основные возможности Netplan
- Поддержка YAML: Конфигурационные файлы Netplan используют формат YAML, который прост и понятен.
- Совместимость: Netplan поддерживает NetworkManager и systemd-networkd, что позволяет интегрироваться с различными сетевыми менеджерами.
- Управление несколькими интерфейсами: С помощью Netplan можно легко настроить несколько сетевых интерфейсов, включая Ethernet и Wi-Fi.
- Поддержка статической и динамической конфигурации: Netplan поддерживает как статические IP-адреса, так и DHCP.
Установка Netplan
Netplan обычно предустановлен в современных версиях Ubuntu и других дистрибутивах, использующих его по умолчанию. Однако, если по какой-то причине Netplan отсутствует, его можно установить через пакетный менеджер:
sudo apt-get install netplan.io
Основные команды Netplan
netplan generate
: Генерирует файлы конфигурации для backend-менеджеров на основе текущих YAML-файлов.netplan apply
: Применяет текущую конфигурацию сети.netplan try
: Применяет изменения временно, что позволяет протестировать новую конфигурацию и вернуться к предыдущей в случае ошибок.netplan set
: Вносит изменения в конфигурацию через командную строку.
Конфигурационные файлы Netplan
Конфигурационные файлы Netplan находятся в директории /etc/netplan/
. Обычно они имеют расширение .yaml
.
Пример файла конфигурации для Ethernet
network: version: 2 ethernets: eth0: dhcp4: true
Пример файла конфигурации для статического IP
network: version: 2 ethernets: eth0: addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
Пример файла конфигурации для Wi-Fi
network: version: 2 wifis: wlan0: access-points: "SSID_NAME": password: "WiFi_PASSWORD" dhcp4: true
Настройка сети с использованием Netplan
- Откройте конфигурационный файл: Обычно конфигурационный файл находится в директории
/etc/netplan/
и называется01-netcfg.yaml
или аналогично.sudo nano /etc/netplan/01-netcfg.yaml
- Измените конфигурацию: Внесите необходимые изменения в файл в соответствии с вашей сетью.
- Примените конфигурацию: После редактирования сохраните файл и примените новую конфигурацию командой:
sudo netplan apply
Пример настройки статического IP-адреса для Ethernet
1. Откройте файл конфигурации:
sudo nano /etc/netplan/01-netcfg.yaml
2. Внесите следующие изменения:
network: version: 2 ethernets: eth0: addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
3. Примените изменения:
sudo netplan apply
Подключение нескольких интерфейсов с помощью DHCP
Современные сервера часто используют более одного сетевого интерфейса. Обычно серверам необходимо подключаться к нескольким сетям, и может потребоваться, чтобы трафик в Интернет проходил только через определенный интерфейс.
Можно добиться желаемой маршрутизации через DHCP, указав метрику для маршрутов, полученных у DHCP, что обеспечит предпочтение одних маршрутов по сравнению с другими. В этом примере «enred» предпочтительнее «engreen», так как имеет более низкую метрику:
network: version: 2 ethernets: enred: dhcp4: yes dhcp4-overrides: route-metric: 100 engreen: dhcp4: yes dhcp4-overrides: route-metric: 200
Подключение к открытой беспроводной сети
Netplan поддерживает подключение к открытой беспроводной сети (не защищенной паролем), требуя указания имени точки доступа:
network: version: 2 wifis: wl0: access-points: opennetwork: {} dhcp4: yes
Подключение к защищенной беспроводной сети WPA
Для указания что сеть беспроводная используют ключ «wifis» и применяют те же параметры конфигурации, что для проводных устройств Ethernet. Необходимо указать имя и пароль беспроводной точки доступа:
network: version: 2 renderer: networkd wifis: wlp2s0b1: dhcp4: no dhcp6: no addresses: [192.168.0.21/24] nameservers: addresses: [192.168.0.1, 8.8.8.8] access-points: "network_ssid_name": password: "network_password" routes: - to: default via: 192.168.0.1
Подключение к беспроводным сетям WPA Enterprise
Встречаются беспроводные сети, защищенные с помощью WPA или WPA2 Enterprise, что требует дополнительных параметров аутентификации.
Например, если сеть защищена с помощью WPA-EAP и TTLS:
network: version: 2 wifis: wl0: access-points: workplace: auth: key-management: eap method: ttls anonymous-identity: "@internal.example.com" identity: "name@internal.example.com" password: "network_password" dhcp4: yes
Или, если сеть защищена с помощью WPA-EAP и TLS:
network: version: 2 wifis: wl0: access-points: university: auth: key-management: eap method: tls anonymous-identity: "@cust.example.com" identity: "cert-joe@cust.example.com" ca-certificate: /etc/ssl/cust-cacrt.pem client-certificate: /etc/ssl/cust-crt.pem client-key: /etc/ssl/cust-key.pem client-key-password: "d3cryptPr1v4t3K3y" dhcp4: yes
Использование нескольких адресов на одном интерфейсе
Раздел addresses может принимать список адресов для назначения интерфейсу:
network: version: 2 renderer: networkd ethernets: enp3s0: addresses: - 10.100.1.38/24 - 10.100.1.39/24 routes: - to: default via: 10.100.1.1
Псевдонимы интерфейса (например, eth0:0) не поддерживаются.
Использование нескольких адресов с несколькими шлюзами
Как и в приведенном выше примере, интерфейсы с несколькими адресами можно
настроить с несколькими шлюзами по умолчанию.
network: version: 2 renderer: networkd ethernets: enp3s0: addresses: - 10.0.0.10/24 - 11.0.0.11/24 routes: - to: default via: 10.0.0.1 metric: 200 - to: default via: 11.0.0.1 metric: 300
Настройка объединения сетевых интерфейсов
Для настройки объединения физических интерфейсов объявляем сам интерфейс bond вместе со связанными в нем сетевыми интерфейсами и указанием режима самого объединения. Ниже приведен пример, использующей DHCP:
network: version: 2 renderer: networkd bonds: bond0: dhcp4: yes interfaces: - enp3s0 - enp4s0 parameters: mode: active-backup primary: enp3s0
Ниже приведен пример системы, работающей в качестве маршрутизатора, с различными объединенными интерфейсами и разными типами. Обратите внимание на значения ключей «optional: true», которые позволяют выполнять загрузку, не дожидаясь полной активации этих интерфейсов.
network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no enp2s0: dhcp4: no enp3s0: dhcp4: no optional: true enp4s0: dhcp4: no optional: true enp5s0: dhcp4: no optional: true enp6s0: dhcp4: no optional: true bonds: bond-lan: interfaces: [enp2s0, enp3s0] addresses: [192.168.93.2/24] parameters: mode: 802.3ad mii-monitor-interval: 1 bond-wan: interfaces: [enp1s0, enp4s0] addresses: [192.168.1.252/24] nameservers: search: [local] addresses: [8.8.8.8, 8.8.4.4] parameters: mode: active-backup mii-monitor-interval: 1 gratuitious-arp: 5 routes: - to: default via: 192.168.1.1 bond-conntrack: interfaces: [enp5s0, enp6s0] addresses: [192.168.254.2/24] parameters: mode: balance-rr mii-monitor-interval: 1
Настройка сетевых мостов
Чтобы создать простой мост, состоящий из одного устройства, использующего DHCP, напишите:
network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no bridges: br0: dhcp4: yes interfaces: - enp3s0
Если нужен статический адрес для моста используйте вариант:
network: version: 2 renderer: networkd ethernets: enp6s0: dhcp4: no bridges: br0: addresses: [10.0.0.10/24] routes: - to: default via: 10.0.0.1 nameservers: addresses: [8.8.8.8] interfaces: - enp6s0
Отладка и проверка
- Проверка синтаксиса: Перед применением изменений можно проверить синтаксис файла YAML:
sudo netplan try
- Просмотр состояния сети: Используйте команды
ip a
илиifconfig
для проверки текущего состояния сетевых интерфейсов.