Тема: Сбой сети PVE 8.4 с LXC в Tagged VLAN на LACP Bond (проблема с ARP) — хост не может общаться через bondX.<VLAN_ID>
Привет, сообщество Proxmox!
У меня проблема с сетью у LXC-контейнеров на нескольких нодах после обновления с Proxmox VE 8.1.x до 8.4.x. Проблема, похоже, связана именно с трафиком tagged VLAN поверх LACP-бонда.
Окружение:
Proxmox VE: 8.4.x (проблема появилась после обновления с 8.1.x, где эта конфигурация работала)
Несколько нод затронуто.
Настройка сети:
2 физических NIC в LACP-бонде (bond1, режим 802.3ad, MTU 9000).
Linux Bridge vmbr1 поверх bond1 с bridge-vlan-aware yes.
Для ВМ и LXC на vmbr1 использую несколько tagged VLAN.
Со стороны свича:
соответствующий LAG с LACP, в режиме trunk, разрешены необходимые VLAN, MTU 9000.
Описание проблемы:
LXC с фиксированными IP, подключённые к vmbr1 с определённым VLAN тегом (например, VLAN 2040), не могут достучаться до шлюза. Пинг шлюза из этих LXC выдаёт Destination Host Unreachable — явно проблема с разрешением ARP.
При этом: KVM ВМ на том же хосте и мосту (vmbr1), с тем же VLAN тегом (например, 2040), работают нормально и маршрутизируются к шлюзу без проблем.
Проблема появилась стабильно после обновления на PVE 8.4.
Конфигурация сети хоста (/etc/network/interfaces):
# --- Бондинг ---
auto bond1
iface bond1 inet manual
bond-slaves <phys_nic1> <phys_nic2>
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer2+3
mtu 9000
# --- VLAN саб-интерфейс (на примере проблемного VLAN) ---
iface bond1.<VLAN_ID> inet manual # например, iface bond1.2040 inet manual
mtu 9000
# --- VLAN-aware мост ---
auto vmbr1
iface vmbr1 inet manual
bridge-ports bond1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
mtu 9000
# --- Попытка обхода через отдельный мост (тоже не помогло) ---
auto vmbr<VLAN_ID> # например, auto vmbr2040
iface vmbr<VLAN_ID> inet manual # например, iface vmbr2040 inet manual
bridge-ports bond1.<VLAN_ID> # например, bridge-ports bond1.2040
bridge-stp off
bridge-fd 0
mtu 9000
(Другие VLAN саб-интерфейсы и мосты хоста не показываю для краткости)
Что пробовал сделать:
- Проверил, что шлюз в сети доступен и корректно настроен.
- Проверил конфигурацию LAG на свиче (LACP активен, trunk, нужные VLAN разрешены, MTU 9000).
- Отключил firewall PVE для LXC — без изменений.
- Перезагружал LXC — без изменений.
- Проверил /sys/class/net/vmbr1/bridge/vlan_filtering — значение 1.
- Обходной путь: создал обычный мост (vmbr<VLAN_ID>) поверх VLAN саб-интерфейса (bond1.<VLAN_ID>), настроил LXC использовать этот мост без VLAN тега — та же ошибка с ARP.
Тест связи с хоста (по проблемному VLAN, например, 2040):
- Назначил временный IP на bond1.<VLAN_ID> на хосте.
ping -I bond1.<VLAN_ID> <IP_шлюза> — НЕ УДАЧА (100% потеря пакетов).
- Назначил временный IP на обходной мост vmbr<VLAN_ID> на хосте.
ping -I vmbr<VLAN_ID> <IP_шлюза> — НЕ УДАЧА (100% потеря пакетов).
- ping -I vmbr<VLAN_ID> <IP_LXC_из_того_же_VLAN> — РАБОТАЕТ.
Вывод:
Основная проблема в том, что сам Proxmox VE хост не может выйти в сеть через LACP-бонд (bond1) внутри конкретных tagged VLAN после обновления до PVE 8.4. Это происходит даже при попытке пинга с подинтерфейса bond1.<VLAN_ID>.
Поскольку хост не имеет исходящей L2/L3 связи в этом VLAN через бонд, LXC, использующие этот путь, тоже "падают".
Тот факт, что KVM ВМ работают — наводит на мысль, что интерфейсы veth (LXC) и tap (KVM) по-разному взаимодействуют с сетевым стэком бонда/VLAN в PVE 8.4, либо сбой bond1.<VLAN_ID> носит условный или прерывистый характер, что особенно влияет на LXC.
Вопрос:
Кто-нибудь сталкивался с регрессиями или известными багами Proxmox VE 8.4.x (или связанных компонентов kernel / ifupdown2 / сети) касательно tagged VLAN через LACP-бонды, особенно если они влияют по-разному на LXC и KVM или ломают коммуникацию хоста через VLAN саб-интерфейсы?
Буду благодарен за советы по дальнейшей диагностике того, почему хост отказывается общаться через bond1.<VLAN_ID>.
Спасибо!