Настройка и использование Netplan в Ubuntu

Netplan — это утилита для конфигурации сетевых интерфейсов в операционных системах на базе Linux, таких как Ubuntu. Netplan позволяет настраивать сетевые подключения с использованием простых YAML-файлов, которые обеспечивают декларативный подход к управлению сетью.

 

Основные возможности Netplan

  1. Поддержка YAML: Конфигурационные файлы Netplan используют формат YAML, который прост и понятен.
  2. Совместимость: Netplan поддерживает NetworkManager и systemd-networkd, что позволяет интегрироваться с различными сетевыми менеджерами.
  3. Управление несколькими интерфейсами: С помощью Netplan можно легко настроить несколько сетевых интерфейсов, включая Ethernet и Wi-Fi.
  4. Поддержка статической и динамической конфигурации: 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

  1. Откройте конфигурационный файл: Обычно конфигурационный файл находится в директории /etc/netplan/ и называется 01-netcfg.yaml или аналогично.
    sudo nano /etc/netplan/01-netcfg.yaml
  2. Измените конфигурацию: Внесите необходимые изменения в файл в соответствии с вашей сетью.
  3. Примените конфигурацию: После редактирования сохраните файл и примените новую конфигурацию командой:
    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

Отладка и проверка

  1. Проверка синтаксиса: Перед применением изменений можно проверить синтаксис файла YAML:
    sudo netplan try
  2. Просмотр состояния сети: Используйте команды ip a или ifconfig для проверки текущего состояния сетевых интерфейсов.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *