Один из самых частых инцидентов в 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
- Отредактируйте файл
/etc/netplan/00-installer-config.yaml. - Укажите нужные параметры (пример выше).
- Выполните
netplan generateдля проверки синтаксиса. - Примените через
netplan try— в случае ошибки соединение откатится автоматически через 120 секунд. - Если всё работает, подтвердите через
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 проектов по настройке сетевой инфраструктуры.
Получите консультацию: поможем выбрать оптимальный стек и настроим сеть без сбоев. Закажите настройку сети под ключ.







