Один із найчастіших інцидентів у DevOps — втрата доступу до віддаленого сервера після правки мережевих налаштувань. У 90% випадків причина — конфлікт між ручним редагуванням /etc/network/interfaces та автоматично згенерованою конфігурацією Netplan. Наприклад, інженер додає статичний IP через старі утиліти, а після netplan apply конфігурація скидається — SSH відвалюється. Ми розберемо, як цього уникнути, і покажемо робочі конфігурації для ключових сценаріїв: статика, bonding, VLAN, Jumbo Frames. Наш досвід — понад 80 проєктів з налаштування мережевої інфраструктури для рітейлу, фінтеху та логістики, що дозволило скоротити інциденти на 30% і заощадити до 50 000 грн на сервер на рік.
Які проблеми вирішуємо?
Розберемо три типові проблеми, з якими стикаються при налаштуванні мережі в 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 як бекенд, на десктопі — 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 визначається індивідуально, але окупається за рахунок зниження інцидентів.
Як уникнути конфліктів між 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).
- Підтримка: цілодобовий моніторинг мережі (опціонально) та допомога в інцидентах.
Перевірка після налаштування
Після застосування конфігурації виконайте 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 проєктів з налаштування мережевої інфраструктури.
Отримайте консультацію: допоможемо вибрати оптимальний стек і налаштуємо мережу без збоїв. Замовте налаштування мережі під ключ.







