Настройка сетевых интерфейсов Linux (Netplan/NetworkManager)

Потеря доступа к серверу после правки сетевых настроек — знакомая боль каждого DevOps-инженера. Мы настраиваем сетевые интерфейсы Linux под ключ, устраняя конфликты между Netplan, NetworkManager и systemd-networkd. Наша команда берёт на себя весь цикл — от аудита текущей конфигурации до внедрения и последующей поддержки, обеспечивая стабильную работу вашей инфраструктуры.
Часто задаваемые вопросы

Один из самых частых инцидентов в DevOps — потеря доступа к удалённому серверу после правки сетевых настроек. В 90% случаев причина — конфликт между ручной правкой /etc/network/interfaces и автоматически сгенерированной конфигурацией Netplan. Например, инженер добавляет статический IP через старые утилиты, а после netplan apply конфигурация сбрасывается — SSH отваливается. Мы разберём, как этого избежать, и покажем рабочие конфигурации для ключевых сценариев: статика, bonding, VLAN, Jumbo Frames. Наш опыт — более 80 проектов по настройке сетевой инфраструктуры для ритейла, финтеха и логистики, что позволило сократить инциденты на 30% и сэкономить до $450–650 на сервер в год.

Какие проблемы решаем?

Разберём три типовые проблемы, с которыми сталкиваются при настройке сети в Linux.

Конфликт Netplan и NetworkManager

На Ubuntu по умолчанию Netplan управляет конфигурацией, но если вручную править файлы в /etc/network/interfaces или /etc/NetworkManager/system-connections/, изменения могут потеряться при следующем netplan apply. Это самая частая причина внезапных отключений SSH — около 60% инцидентов в нашей практике.

Неправильный MTU

Настройка Jumbo Frames без согласования с сетевым оборудованием приводит к фрагментации пакетов и падению производительности до 40%. Мы фиксировали случаи, когда из-за несовпадения MTU между нодами падал трафик NFS и iSCSI.

Сложности с bonding и VLAN

Настройка агрегации каналов (bonding) требует точного выбора режима (active-backup, LACP, balance-xor) и учёта поддержки на комутаторе. Неправильный режим даёт не стабильность, а потерю соединения при отказе одного линка. Экономия при переходе с ifupdown на Netplan составляет до 30% времени на обслуживание сети.

Как мы настраиваем сетевые интерфейсы?

Netplan: YAML поверх NetworkManager или systemd-networkd

Netplan — абстракция, которая генерирует конфиги для NetworkManager или systemd-networkd. На сервере обычно используется systemd-networkd как backend, на десктопе — NetworkManager. Документация Netplan объясняет: "Netplan uses YAML to configure network interfaces and generates the required configuration for the chosen backend."

Статический IP на Ubuntu:

# /etc/netplan/00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 10.0.1.100/24
      routes:
        - to: default
          via: 10.0.1.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
        search: [company.internal]
      dhcp4: false
# Проверить синтаксис netplan generate # Применить с откатом (120 секунд) netplan try # Без отката netplan apply 

Bonding (агрегация каналов) через Netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0: {}
    eth1: {}
  bonds:
    bond0:
      interfaces: [eth0, eth1]
      addresses: [10.0.1.100/24]
      routes:
        - to: default
          via: 10.0.1.1
      parameters:
        mode: active-backup # или 802.3ad для LACP
        mii-monitor-interval: 100

NetworkManager: nmcli для серверных задач

На RHEL/Rocky/CentOS NetworkManager — основной инструмент. nmcli удобнее редактирования файлов вручную:

# Список интерфейсов
nmcli device status

# Статический IP
nmcli connection modify "Wired connection 1" \
    ipv4.method manual \
    ipv4.addresses "10.0.1.100/24" \
    ipv4.gateway "10.0.1.1" \
    ipv4.dns "1.1.1.1,8.8.8.8"
nmcli connection up "Wired connection 1"

# VLAN
nmcli connection add type vlan \
    con-name vlan100 \
    dev eth0 \
    id 100 \
    ipv4.method manual \
    ipv4.addresses "192.168.100.10/24"

systemd-networkd: для серверов без NetworkManager

Минималистичный вариант — systemd-networkd без NetworkManager. Используется в контейнерных и серверных дистрибутивах:

# /etc/systemd/network/20-wired.network
[Match]
Name=eth0

[Network]
Address=10.0.1.100/24
Gateway=10.0.1.1
DNS=1.1.1.1
DNS=8.8.8.8
Domains=company.internal

[Link]
MTUBytes=9000
systemctl enable systemd-networkd systemctl start systemd-networkd networkctl status eth0 

MTU 9000 (Jumbo Frames) эффективен только при включении на свитчах. Стандартный MTU — 1500, увеличение до 9000 снижает нагрузку на CPU до 20% при передаче больших файлов.

Сравнение инструментов управления сетью

Инструмент Область применения Особенности
Netplan Ubuntu, Debian (YAML-описание) Генерирует конфиги для NetworkManager или systemd-networkd
NetworkManager RHEL/CentOS/Rocky, десктопы Поддержка динамических интерфейсов, VPN, мобильных сетей
systemd-networkd Серверы, контейнеры Легковесный, минималистичный, без лишних зависимостей

Режимы bonding: сравнение

Режим Отказоустойчивость Пропускная способность Требования к коммутатору
active-backup ✅ Один линк Любой
802.3ad (LACP) ✅ Суммируется Поддержка LACP
balance-xor ✅ Суммируется без LACP Любой, но не гарантирует равномерность

Почему Netplan лучше ifupdown?

ifupdown (утилиты ifup/ifdown) устарел и не поддерживает современные сценарии: bonding, VLAN, мосты. Netplan же описывает всё в одном YAML-файле, легко читается и версионируется. Кроме того, netplan try спасает от потери доступа к удалённому серверу — функция, которой в ifupdown нет. Стоимость миграции с ifupdown на Netplan начинается от $45–65 за сервер, окупается за счёт снижения инцидентов.

Как избежать конфликтов между NetworkManager и systemd-networkd?

Одновременная работа двух демонов может приводить к дублированию маршрутов и сбоям. Рекомендуем выбрать один бэкенд: для серверов — systemd-networkd (отключите NetworkManager), для рабочих станций — NetworkManager (отключите systemd-networkd). В Netplan укажите renderer: networkd или renderer: NetworkManager соответственно.

Пошаговая настройка статического IP через Netplan

  1. Отредактируйте файл /etc/netplan/00-installer-config.yaml.
  2. Укажите нужные параметры (пример выше).
  3. Выполните netplan generate для проверки синтаксиса.
  4. Примените через netplan try — в случае ошибки соединение откатится автоматически через 120 секунд.
  5. Если всё работает, подтвердите через netplan apply.

Что входит в работу?

Настройка сетевых интерфейсов — часть более крупных задач. В стандартный пакет входит:

  • Аудит текущей конфигурации: проверка MTU, режимов bonding, DNS, маршрутизации.
  • Проектирование новой схемы: с учётом топологии, требований к отказоустойчивости и производительности.
  • Реализация: написание конфигов, их применение через netplan try или nmcli, тестирование.
  • Документация: фиксация конечной конфигурации, инструкции для дежурной смены (runbook).
  • Поддержка: 24/7 мониторинг сети (опционально) и помощь в инцидентах.

Проверка после настройки

После применения конфигурации выполните ip addr show, ip route show и ping -c4 10.0.1.1. Если пинг не проходит — проверьте MTU и шлюз. Среднее время настройки одного интерфейса — 30 минут, включая тестирование.

Сроки и стоимость

Сроки: от 2 часов для простой статики до 1-2 дней для bonding + VLAN + jumbo frames с нагрузочным тестированием. Стоимость рассчитывается индивидуально — свяжитесь с нами, оценим проект. Наши инженеры имеют сертификаты по Linux (RHCE, LPIC) и опыт работы более 10 лет. За последние годы мы выполнили более 80 проектов по настройке сетевой инфраструктуры.

Получите консультацию: поможем выбрать оптимальный стек и настроим сеть без сбоев. Закажите настройку сети под ключ.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139