наглядным и менее подверженным ошибкам.

Основная задача Netplan — предоставить унифицированный способ описания сетевой конфигурации, которую затем он преобразует в настройки для низкоуровневых демонов (бэкендов), таких как systemd-networkd или NetworkManager. Такой подход позволяет абстрагироваться от конкретной реализации и гарантирует, что ваша конфигурация будет работать одинаково на разных версиях Ubuntu и других дистрибутивах.

Начиная с Ubuntu 24.04, Netplan 1.0 стал ещё более стабильным и получил ряд улучшений, что делает его стандартом для настройки сети в современных Linux-системах.

Основы работы с конфигурационными файлами YAML

Конфигурация Netplan хранится в файлах с расширением .yaml, которые располагаются в каталоге /etc/netplan/. Эти файлы обрабатываются в лексикографическом порядке, поэтому часто используется числовой префикс для управления приоритетом (например, 01-network-manager-all.yaml или 50-cloud-init.yaml).

Важнейшее правило YAML — строгое соблюдение отступов (пробелами, не табуляциями)!

Базовая структура любого конфигурационного файла выглядит так:

network:
  version: 2
  renderer: networkd # или NetworkManager
  # Здесь будет описание ваших интерфейсов (ethernets, bridges, vlans, bonds)
  • network: Корневой элемент файла.

  • version: 2: Текущая версия схемы конфигурации Netplan (используется только 2).

  • renderer: Указывает, какой бэкенд будет применять настройки. networkd используется по умолчанию в серверных редакциях, а NetworkManager — в десктопных версиях Ubuntu.

⚙️ Главные команды: netplan try и netplan apply

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

🔄 sudo netplan try — Безопасное тестирование

Эта команда — ваш лучший друг, особенно при настройке удалённого сервера. Она временно применяет новую конфигурацию и запускает таймер (по умолчанию 120 секунд). Если вы не подтвердите изменения, Netplan автоматически откатит их обратно, предотвращая потерю доступа к системе.

# Запускаем тестовое применение конфигурации
sudo netplan try

После выполнения команды вы увидите сообщение с предложением подтвердить изменения. Если сеть работает корректно, нажмите ENTER. Если что-то пошло не так, просто дождитесь окончания тайм-аута, и всё вернётся к предыдущему состоянию.

sudo netplan apply — Применение на постоянной основе

Эта команда применяет текущую конфигурацию Netplan к работающей системе и делает её постоянной (она будет использоваться и после перезагрузки). Используйте её, когда полностью уверены в своих изменениях.

# Применяем конфигурацию
sudo netplan apply

Совет: Если netplan apply завершается ошибкой, проверьте синтаксис YAML с помощью команды sudo netplan generate или sudo netplan try

 

📝 Примеры конфигураций для всех случаев

Перейдём от теории к практике. Рассмотрим наиболее частые сценарии настройки сети с помощью Netplan.

Настройка статического IP-адреса и DHCP

Это самые базовые, но важные сценарии.

1. Получение IP-адреса по DHCP (автоматически)

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # Имя вашего сетевого интерфейса
      dhcp4: yes
      dhcp6: no  # Опционально, для IPv6

2. Назначение статического IP-адреса

⚠️ Важно: Начиная с Ubuntu 24.04, директива gateway4 считается устаревшей. Вместо неё необходимо использовать routes для указания маршрута по умолчанию.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.100/24   # IP-адрес и маска подсети
      routes:
        - to: default         # Маршрут по умолчанию
          via: 192.168.1.1    # IP-адрес шлюза
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4] # DNS-серверы

Настройка сетевого моста (Bridge)

Сетевой мост используется для объединения нескольких сетевых интерфейсов в один логический сегмент. Это часто применяется для виртуальных машин или контейнеров

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
  bridges:
    br0: # Имя вашего моста
      dhcp4: no
      addresses:
        - 192.168.1.101/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
      interfaces:
        - enp0s3 # Добавляем физический интерфейс в мост

Настройка VLAN (виртуальной локальной сети)

VLAN позволяют разбить одну физическую сеть на несколько логических, что повышает безопасность и упрощает управление.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
  vlans:
    vlan10: # Имя VLAN-интерфейса
      id: 10  # Номер VLAN
      link: enp0s3 # Физический интерфейс-родитель
      dhcp4: no
      addresses:
        - 10.10.10.10/24
      routes:
        - to: default
          via: 10.10.10.1

Настройка агрегации каналов (Bonding)

Агрегация каналов (bonding) объединяет несколько физических сетевых интерфейсов в один логический для повышения пропускной способности или обеспечения отказоустойчивости.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
    enp0s8:
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces:
        - enp0s3
        - enp0s8
      parameters:
        mode: active-backup # Режим работы: балансировка или отказоустойчивость
        primary: enp0s3
      addresses:
        - 192.168.1.102/24
      routes:
        - to: default
          via: 192.168.1.1

Настройка нескольких IP-адресов и продвинутая маршрутизация

Netplan позволяет гибко настраивать маршрутизацию и присваивать интерфейсу несколько IP-адресов.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.100/24   # Первый IP-адрес
        - 192.168.1.200/24   # Второй IP-адрес
      routes:
        # Маршрут по умолчанию
        - to: default
          via: 192.168.1.1
        # Специфичный маршрут в другую сеть
        - to: 10.0.0.0/8
          via: 192.168.1.254

Netplan и его бэкенды: networkd и NetworkManager

Как уже упоминалось, Netplan — это всего лишь генератор конфигураций. Он транслирует YAML-файлы в настройки для двух основных бэкендов:

  1. networkd: Это системный демон, который обычно используется на серверах, в облачных окружениях и контейнерах. Он хорошо интегрируется с systemd и не требует графического интерфейса.

  2. NetworkManager: Это более мощный и интерактивный демон, который чаще всего встречается на десктопах и ноутбуках. Он предоставляет удобные графические утилиты и CLI-инструменты (nmcli) для управления сетью.

Вы можете указать нужный бэкенд с помощью директивы renderer в вашем YAML-файле.

network:
  version: 2
  renderer: NetworkManager # Или networkd

🚀 Решение проблем и частые ошибки

Даже у опытных администраторов возникают проблемы. Вот несколько типичных ситуаций и способы их решения:

  1. Ошибка синтаксиса YAML: Самая частая проблема. Используйте sudo netplan try перед применением, чтобы увидеть точное место ошибки. Проверьте отступы (только пробелы!) и кавычки.

  2. Предупреждение о gateway4: Как мы уже отмечали, директива gateway4 устарела. Замените её на конструкцию с routes. Это обеспечит совместимость с будущими версиями Ubuntu.

  3. Нет связи после применения настроек: Если вы потеряли доступ к удалённому серверу после netplan apply, не паникуйте. Вероятно, вы не использовали netplan try. В этой ситуации поможет только доступ через консоль (например, VNC или IPMI). Подключившись, исправьте конфигурацию и снова выполните netplan apply.

Заключение

Netplan — это мощный и современный инструмент, который упрощает настройку сети в Linux. Используя простые YAML-файлы и команды netplan try / netplan apply, вы можете безопасно управлять даже самыми сложными сетевыми конфигурациями. Освоив принципы, описанные в этом руководстве, вы сможете эффективно настраивать статические IP-адреса, DHCP, сетевые мосты, VLAN и агрегацию каналов на любых серверах под управлением Ubuntu и Debian.