В моей сети у меня есть два сервера.
Сервер1 работает TrueNas (BSD) с несколькими приложениями, работающими в тюрьмах iocage. Он подключен к сети с помощью 3-ник LAGG.
Сервер2 — это установка OpenMediaVault (Debian) с несколькими приложениями, работающими в док-контейнерах, подключенных к одному физическому сетевому адаптеру.
Оба сервера подключены к одному и тому же управляемому коммутатору TP-Link.
Я пытаюсь получить тюрьму на Сервер1 который запускает borgbackup для создания http-соединений с контейнером HealthChecks на Сервер2. Из консоли тюрьмы borgbackup я не могу пропинговать IP-адрес Сервер2 или делать curl-запросы к docker-контейнеру, даже несмотря на то, что он запущен и работает отовсюду в подсети, в том числе из Сервер1 вне тюрьмы. Если я затем перейду к консоли Сервер2 и пропинговать IP-адрес тюрьмы, после отсутствия (тайм-аутов) 8-10 пингов вся связь возможна временно, что наводит меня на мысль, что это проблема ARP, но я не знаю, как ее решить.
Другие, возможно, несвязанные странности:
- Сеть представляет собой сеть размером /21, и обе машины находятся в разных подсетях /24 (все узлы настроены как /21, поэтому это не должно иметь значения).
- Я заметил, что тюрьмы никогда не могли получить IP-адреса с DHCP-сервера (обычно я резервирую DHCP для всех назначенных IP-адресов в сети), и мне приходилось вручную назначать IP-адреса для всех моих тюрем в сети. Сервер1.
- Когда соединение не работает, пингуется с Server2 на тайм-аут IP-адреса тюрьмы. Эхо-запросы из тюрьмы на Server2 возвращают ping: sendto: Host is down.
Для бота сообщества: главный вопрос: почему этот канал связи выходит из строя после того, как я предполагаю, что это истечение срока действия кеша arp, и как мне это исправить?
РЕДАКТИРОВАТЬ: Отключение VNET в тюрьмах, похоже, решает проблему, но я надеялся, что VNET будет включен.