Ограничение MTU для Corosync при работе кластера внутри vpn

cp /etc/pve/corosync.conf /root/corosync.conf.bak.$(date +%F_%H-%M-%S) && sed -i '/knet_mtu:/d; s/config_version: 4/config_version: 5/; /token_coefficient: 125/a\  knet_mtu: 1392' /etc/pve/corosync.conf && cat /etc/pve/corosync.conf



### Ограничение MTU для Corosync при работе через WireGuard

В рассматриваемом случае кластер Proxmox был развёрнут между площадками через WireGuard. Несмотря на отсутствие потерь по ICMP и стабильную работу туннеля, Corosync периодически сообщал об ошибках:

```text
pmtud: possible MTU misconfiguration detected
Token has not been received
Retransmit List
host link is down
```

Проверка показала, что реальный MTU маршрута между узлами был меньше стандартных 1500 байт. Чтобы исключить проблемы с PMTU Discovery, было принято решение вручную ограничить MTU для Corosync.

Перед внесением изменений рекомендуется создать резервную копию конфигурации:

```bash
cp /etc/pve/corosync.conf /root/corosync.conf.bak.$(date +%F_%H-%M-%S)
```

Затем в секции `totem` необходимо увеличить номер версии конфигурации и добавить параметр `knet_mtu`:

```text
totem {
  cluster_name: rm-cluster
  config_version: 5

  interface {
    linknumber: 0
  }

  ip_version: ipv4-6
  link_mode: passive
  secauth: on
  token_coefficient: 125
  knet_mtu: 1392
  version: 2
}
```

После сохранения конфигурации необходимо перезапустить Corosync на всех узлах кластера:

```bash
systemctl restart corosync
```

Проверить применение параметра можно командой:

```bash
corosync-cmapctl | grep -i mtu
```

Дополнительно рекомендуется контролировать состояние кластера:

```bash
corosync-cfgtool -s
journalctl -u corosync -f
```

#wireguard #mtu #Corosync