diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md index c943cd8aa5..956373196b 100644 --- a/docs/USER_GUIDE.md +++ b/docs/USER_GUIDE.md @@ -3000,6 +3000,29 @@ Important considerations when working with additional network interfaces: When configuring network interfaces in the guest OS, use stable identifiers (predictable names `enpXsY` or MAC address binding) instead of `ethX` names. For more details, see the [Network interface naming in guest OS](#network-interface-naming-in-guest-os) section. {{< /alert >}} +{{< alert level="info" >}} +On a Linux guest system with multiple interfaces in the same subnet, the ARP Flux issue may occur, where the kernel responds to ARP requests via any arbitrary interface rather than the one the request was received on, leading to unstable connections and packet loss due to an incorrect MAC address in the router's ARP cache. + +To resolve this, set the following parameters to force the system to respond to requests strictly via the interface holding the target IP and to use the correct source address: + +```bash +sysctl -w net.ipv4.conf.all.arp_ignore=1 +sysctl -w net.ipv4.conf.all.arp_announce=2 +``` + +Cloud-init example: + +```yaml +write_files: + - path: /etc/sysctl.d/90-arp-strict.conf + content: | + net.ipv4.conf.all.arp_ignore=1 + net.ipv4.conf.all.arp_announce=2 +``` + +For more details, see the [IP sysctl](https://docs.kernel.org/networking/ip-sysctl.html) documentation. +{{< /alert >}} + Example of connecting a VM to the main cluster network and the project network `user-net`: ```yaml @@ -3625,7 +3648,7 @@ USB device passthrough follows a defined lifecycle — from device discovery on The following steps describe the minimal workflow for attaching a USB device to a virtual machine: -1. Connect the USB device to a cluster node. +1. Connect the USB device to a cluster node. 1. Verify that a NodeUSBDevice resource has been created: ```bash @@ -3833,7 +3856,7 @@ Status: ``` {{< alert level="info" >}} -If a USB device is physically disconnected from the node, the `Attached` condition becomes `False`. +If a USB device is physically disconnected from the node, the `Attached` condition becomes `False`. Both `USBDevice` and `NodeUSBDevice` resources update their status conditions to indicate that the device is no longer present on the host. {{< /alert >}} @@ -3873,4 +3896,3 @@ If you are exporting data from a machine other than a cluster node (for example, {{< alert level="info" >}} To import a downloaded disk back into the cluster, upload it as an [image](#load-an-image-from-the-command-line) or as a [disk](#upload-a-disk-from-the-command-line). {{< /alert >}} - diff --git a/docs/USER_GUIDE.ru.md b/docs/USER_GUIDE.ru.md index c22c8ebeb6..cd2a67b3be 100644 --- a/docs/USER_GUIDE.ru.md +++ b/docs/USER_GUIDE.ru.md @@ -3034,6 +3034,29 @@ EOF При настройке сетевых интерфейсов в гостевой ОС используйте стабильные идентификаторы (предсказуемые имена `enpXsY` или привязку по MAC-адресу) вместо имён `ethX`. Подробнее см. раздел [Именование сетевых интерфейсов в гостевой ОС](#именование-сетевых-интерфейсов-в-гостевой-ос). {{< /alert >}} +{{< alert level="info" >}} +На гостевой системе Linux с несколькими интерфейсами в одной подсети может возникать проблема ARP Flux, при которой ядро отвечает на ARP-запросы через произвольный интерфейс, а не через тот, на который пришёл запрос, что приводит к нестабильному соединению и потере пакетов из-за некорректного MAC-адреса в кэше маршрутизаторов. + +Чтобы исправить, установите параметры, которые заставляют систему отвечать на запросы строго через интерфейс с целевым IP и использовать корректный исходный адрес: + +```bash +sysctl -w net.ipv4.conf.all.arp_ignore=1 +sysctl -w net.ipv4.conf.all.arp_announce=2 +``` + +Пример для cloud-init: + +```yaml +write_files: + - path: /etc/sysctl.d/90-arp-strict.conf + content: | + net.ipv4.conf.all.arp_ignore=1 + net.ipv4.conf.all.arp_announce=2 +``` + +Подробнее см. документацию [IP sysctl](https://docs.kernel.org/networking/ip-sysctl.html). +{{< /alert >}} + Пример подключения ВМ к основной сети кластера и проектной сети `user-net`: ```yaml @@ -3869,7 +3892,7 @@ Status: ``` {{< alert level="info" >}} -Если USB-устройство физически отключено от узла, условие `Attached` принимает значение `False`. +Если USB-устройство физически отключено от узла, условие `Attached` принимает значение `False`. Статусы ресурсов `USBDevice` и `NodeUSBDevice` обновляются и указывают на отсутствие устройства на хосте. {{< /alert >}} @@ -3909,4 +3932,3 @@ d8 data export download -n vds/ -o file.i {{< alert level="info" >}} Чтобы импортировать скачанный диск обратно в кластер, загрузите его как [образ](#загрузка-образа-из-командной-строки) или как [диск](#загрузка-диска-из-командной-строки). {{< /alert >}} -