# Настройка сети

Настройка сети при помощи systemd-networkd по руководству в [Arch Linux wiki](https://wiki.archlinux.org/title/Systemd-networkd). Приведены примеры статической и динамической (DHCP) настройки сети.

## Беспроводная сеть (Wi-Fi)

Для настройки Wi-Fi совместно с systemd требуется установить подключение с точкой доступа при помощи [wpa\_supplicant](https://wiki.archlinux.org/title/Wpa_supplicant) или [iwd](https://wiki.archlinux.org/title/Iwd). Далее рассматривается настройка на основе iwd.

Установить необходимые пакеты:

```shell
pikaur -S iwd iwgtk
```

Запустить сервис iwd:

```shell
sudo systemctl enable --now iwd.service
```

Настройку подключения к точке доступа можно выполнить либо по инструкции к [iwd](https://wiki.archlinux.org/title/Iwd), либо через графический интерфейс iwgtk.

## Бондинг

Настройка бондинга тоже описана в [Arch Linux wiki](https://wiki.archlinux.org/title/Systemd-networkd#Bonding_a_wired_and_wireless_interface). Порядок действий примерно следующий.

Создать файл `/etc/systemd/network/30-bond0.netdev` со следующим содержимым:

```
[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=active-backup
PrimaryReselectPolicy=always
MIIMonitorSec=1s
```

Создать файл `/etc/systemd/network/30-ethernet-bond0.network` со следующим содержимым:

```
[Match]
Name=enp0s13f0u1u1i5

[Network]
Bond=bond0
PrimarySlave=true
```

Создать файл `/etc/systemd/network/30-wifi-bond0.network` со следующим содержимым:

```
[Match]
Name=wlan0

[Network]
Bond=bond0
```

Создать файл `/etc/systemd/network/30-bond0.network` со следующим содержимым:

```
[Match]
Name=bond0

[Network]
BindCarrier=enp0s13f0u1u1i5 wlan0
#DHCP=yes
Address=192.168.21.??/24
Gateway=192.168.21.20
DNS=192.168.21.20
```

Если использовать DHCP для конфигурации интерфейса, то сеть работает работает, но отваливаются подключения по VPN и SSH при переключение с Ethernet на Wi-Fi.

Не указано в wiki, но без следующего шага не работал интерфейс. Создать файл `/etc/modprobe.d/bonding.conf` со следующим содержимым:

```
options bonding max_bonds=0 miimon=1000 mode=active-backup fail_over_mac=active
```

Удалить старую конфигурацию сети из `/etc/systemd/network` и выполнить перезагрузку системы. После этого вывод `networkctl` должен иметь следующий вид:

```
IDX LINK            TYPE     OPERATIONAL SETUP     
  1 lo              loopback carrier     unmanaged
  2 enp0s13f0u1u1i5 ether    enslaved    configured
  3 bond0           bond     routable    configured
  5 wlan0           wlan     enslaved    configured
```