Ubuntu 16.04 + systemd + networkd

В связи с повальным переходом дистрибутивов на systemd, я решил покопаться в networkd с целью унификации настройки сети для всех дистрибутивов.

Так как некоторые вещи я делал на новой работе, то сюда так же добавлю чуток Ubuntu.

Подготовка Ubuntu

Надо отключить штатную систему управления сетью. Для этого надо закомментировать настройки для нитерфейса:

# /etc/network/interfaces
# The primary network interface
#auto eno1
#iface eno1 inet dhcp

Так же отключить штатную слежбу:

systemctl disable networking

Настройка интерфейсов

Static IP

# /etc/systemd/network/eno1.network
[Match]
Name=eno1

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=8.8.8.8
DNS=8.8.4.4
DHCP
# /etc/systemd/network/eno2.network
[Match]
Name=eno2

[Network]
DHCP=ipv4
Bonding
# /etc/systemd/network/eno.network 
[Match]
Name=eno*

[Network]
Bond=bond0
# /etc/systemd/network/bond0.network 
[Match]
Name=bond0

[Network]
BindCarrier=eno*
DHCP=yes
# /etc/systemd/network/bond0.netdev 
[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=802.3ad
TransmitHashPolicy=layer3+4
MIIMonitorSec=1s
LACPTransmitRate=fast

Forwarding

Для этого к интерфейсу надо добавить:

[Network]
IPForward=1

Запускаем networkd

systemctl enable systemd-networkd
systemctl start systemd-networkd

Полезные материалы

systemd-networkd on Ubuntu 16.04 LTS Configuring bonding with systemd systemd.network — Network configuration systemd.netdev — Virtual Network Device configuration Arch: systemd-networkd