Netplan: продвинутая настройка сети (туннели, VLAN, мосты, bonding)
Опубликовано 18.09.2025
Netplan: продвинутая настройка сети (туннели, VLAN, мосты, bonding)
Введение
Netplan — это утилита для декларативной настройки сети в Linux (Ubuntu, Debian и производные).
Обычно её используют для простых случаев вроде Ethernet или Wi-Fi, но она умеет гораздо больше:
- туннельные интерфейсы (IPIP, GRE, VXLAN, WireGuard),
- VLAN,
- мосты (bridges),
- связки интерфейсов (bonding).
Эти возможности позволяют строить сложные сетевые топологии — от домашних VPN до дата-центров и облачных окружений.
Туннельные интерфейсы
Туннели инкапсулируют пакеты одного протокола в другой. Используются для VPN, межсерверных соединений или изоляции сетей.
IPIP (IP-in-IP)
Простейший туннель IPv4-в-IPv4.
network:
version: 2
renderer: networkd
tunnels:
tun0:
mode: ipip
local: 192.168.1.100
remote: 203.0.113.1
addresses: [10.0.0.1/30]
routes:
- to: 10.0.1.0/24
via: 10.0.0.2
GRE (Generic Routing Encapsulation)
Поддерживает больше протоколов, чем IPIP.
network:
version: 2
renderer: networkd
tunnels:
gre0:
mode: gre
local: 192.168.1.100
remote: 203.0.113.1
addresses: [10.0.0.1/30]
routes:
- to: 10.0.2.0/24
via: 10.0.0.2
VXLAN (Virtual Extensible LAN)
Используется в виртуализации и облаках. Поддерживает multicast и кастомные порты.
network:
version: 2
renderer: networkd
tunnels:
vxlan0:
mode: vxlan
id: 42
link: enp0s3
local: 192.168.1.100
group: 239.1.1.1 # multicast группа
port: 4789 # стандартный порт VXLAN
addresses: [10.0.0.1/24]
WireGuard
Современный VPN, поддержка в netplan.io >= 0.99
.
network:
version: 2
renderer: networkd
tunnels:
wg0:
mode: wireguard
addresses: [10.0.0.2/24]
private-key: /etc/wireguard/private.key
peers:
- public-key: <remote-public-key>
endpoint: 203.0.113.1:51820
allowed-ips: [0.0.0.0/0]
persistent-keepalive: 25
VLAN (Virtual LAN)
Сегментация трафика по VLAN ID.
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
vlans:
vlan10:
id: 10
link: enp0s3
addresses: [192.168.10.100/24]
routes:
- to: default
via: 192.168.10.1
Мосты (Bridges)
Объединяют несколько интерфейсов.
network:
version: 2
renderer: networkd
ethernets:
enp0s3: { dhcp4: no }
enp0s8: { dhcp4: no }
bridges:
br0:
interfaces: [enp0s3, enp0s8]
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Bonding (связка интерфейсов)
Для отказоустойчивости и/или увеличения пропускной способности.
network:
version: 2
renderer: networkd
ethernets:
enp0s3: { dhcp4: no }
enp0s8: { dhcp4: no }
bonds:
bond0:
interfaces: [enp0s3, enp0s8]
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
parameters:
mode: 802.3ad # LACP (нужна поддержка на свитче)
transmit-hash-policy: layer3+4
mii-monitor-interval: 100
Дополнительные параметры
- MTU:
mtu: 9000
- MAC-адрес:
macaddress: 00:16:3e:12:34:56
- Метрики маршрутов:
routes: - to: 192.168.2.0/24 via: 192.168.1.1 metric: 100
Применение конфигурации
- Проверка синтаксиса:
sudo netplan generate
- Тест на 120 секунд:
sudo netplan try
- Применение:
sudo netplan apply
Полезные советы
- Права доступа: конфиги
/etc/netplan/*.yaml
должны быть600
или644
, иначе будут предупреждения.sudo chmod 600 /etc/netplan/*.yaml
- Проверка интерфейсов:
ip a
,ip r
,nmcli
(если используется NetworkManager). - Логи:
journalctl -u systemd-networkd
или/var/log/syslog
. - Бэкапы: всегда сохраняйте копии перед экспериментами.
Совместимость возможностей Netplan по версиям
Возможность | Поддержка в Netplan | Минимальная версия Ubuntu | Комментарии |
---|---|---|---|
Ethernet, Wi-Fi | всегда | 17.10+ (по умолчанию) | Базовые сценарии, поддержка всеми рендерерами |
VLAN | всегда | 17.10+ | vlans: работает и с networkd , и с NetworkManager |
Bridges | всегда | 17.10+ | Полная поддержка мостов |
Bonding | всегда | 17.10+ | Режимы: active-backup , balance-rr , 802.3ad и др. |
IPIP | 0.99+ | 20.04+ | mode: ipip , работает через networkd |
GRE | 0.99+ | 20.04+ | mode: gre |
VXLAN | 0.99+ | 20.04+ | Поддержка multicast (group ), порт по умолчанию 4789 |
WireGuard | 0.104+ | 20.04 (через backports) / 22.04 LTS нативно | Использует wireguard-tools , ключи можно хранить в файле |
MAC/MTU/Routes | всегда | 17.10+ | Тонкая настройка маршрутов и интерфейсов |
Практические советы
- Для Ubuntu 18.04: Netplan уже есть, но поддержка туннелей ограничена. Лучше обновиться или поставить
netplan.io
из backports. - Для Ubuntu 20.04: IPIP, GRE, VXLAN работают; WireGuard — через PPA или backports.
- Для Ubuntu 22.04 и новее: полная поддержка, включая WireGuard.
- Проверить свою версию пакета:
apt show netplan.io | grep Version
Часто задаваемые вопросы (FAQ)
❓ Как проверить, работает ли конфигурация Netplan?
Используйте:
sudo netplan try
— у вас будет 120 секунд на подтверждение. Если всё корректно, затем выполните:
sudo netplan apply
❓ Как настроить VLAN через Netplan?
Пример:
vlans:
vlan10:
id: 10
link: enp0s3
addresses: [192.168.10.100/24]
❓ Как сделать WireGuard в Netplan?
Начиная с netplan.io >= 0.104
можно использовать:
tunnels:
wg0:
mode: wireguard
private-key: /etc/wireguard/private.key
peers:
- public-key: <remote-pubkey>
endpoint: 203.0.113.1:51820
allowed-ips: [0.0.0.0/0]
❓ Почему Netplan ругается на права файла?
Конфиги в /etc/netplan/
должны быть с правами 600
или 644
.
sudo chmod 600 /etc/netplan/*.yaml
❓ Поддерживает ли Netplan bonding?
Да. Пример для LACP (802.3ad):
bonds:
bond0:
interfaces: [enp0s3, enp0s8]
parameters:
mode: 802.3ad
Полезные ссылки
Похожие посты
Jitsi Meet против Google Meet: когда полный контроль над данными важнее всего
07.09.2025
073 | Введение в виртуализацию: Зачем она нужна и как экономит время?
04.08.2025
066 | Резервирование каналов связи внутри одного здания: Медь, оптика и bonding
28.07.2025
065 | Почему отказоустойчивость связи — это не роскошь, а необходимость?
27.07.2025