Версии пакетов: pve-manager-9.2.5-alt3 pve-firewall-6.0.5-alt1 Шаги воспроизведения: 1. Развернуть кластер PVE 2. Запустить сервисы на всех узлах: # systemctl enable --now pvefw-logger.service pve-firewall.service 3. Очистить конфигурацию firewall: # echo "" > /etc/pve/firewall/cluster.fw 4. Проверить статус сервиса через бинарный файл pve-firewall: # pve-firewall status Вывод: Status: disabled/running 5. Проверить наличие правил: # iptables-save | grep PVEFW Вывод: <пустой (правил нет)> 6. Создать минимальную конфигурацию (включить firewall): # cat > /etc/pve/firewall/cluster.fw << _EOF_ [OPTIONS] enable: 1 _EOF_ 7. Подождать 5-30 секунд и выполнить проверку статуса: # pve-firewall status Ожидаемое поведение: - Статус в состоянии: Status: enabled/running Реальное поведение: - Статус в состоянии: Status: enabled/running (pending changes) - (pending changes) никогда не пропадает (несмотря на то, что при изменении конфигурации, например, добавлении правил, правила корректно применяются и работают) - правила создаются корректно (то есть конфигурация применяется): # iptables-save | grep PVEFW :PVEFW-Drop - [0:0] :PVEFW-DropBroadcast - [0:0] :PVEFW-FORWARD - [0:0] :PVEFW-FWBR-IN - [0:0] :PVEFW-FWBR-OUT - [0:0] :PVEFW-HOST-IN - [0:0] :PVEFW-HOST-OUT - [0:0] :PVEFW-INPUT - [0:0] :PVEFW-OUTPUT - [0:0] :PVEFW-Reject - [0:0] :PVEFW-SET-ACCEPT-MARK - [0:0] :PVEFW-logflags - [0:0] :PVEFW-reject - [0:0] :PVEFW-smurflog - [0:0] :PVEFW-smurfs - [0:0] :PVEFW-tcpflags - [0:0] -A INPUT -j PVEFW-INPUT -A FORWARD -j PVEFW-FORWARD -A OUTPUT -j PVEFW-OUTPUT -A PVEFW-Drop -j PVEFW-DropBroadcast ... - (pending changes) не пропадает даже после рестарта сервиса, например, через: # systemctl restart pve-firewall Дополнительно: 1. Также воспроизводится в P11, [P11 + 426365] 2. В логах pve-firewall.service ошибок нет
pve-firewall-6.0.5-alt2 -> sisyphus: Wed Aug 19 2026 Sergey Konev <darisishe@altlinux> 6.0.5-alt2 - Handle unquoted PVESIG comments (Closes: 60162) - Simulator: handle disabled firewall (Closes: 60163)
Ошибка все еще воспроизводится Версии пакетов: pve-manager-9.2.5-alt4 pve-firewall-6.0.5-alt2 Дополнительные шаги при проверке: 1. Создать минимальную конфигурацию: # cat > /etc/pve/firewall/cluster.fw << _EOF_ [OPTIONS] enable: 1 [RULES] IN ACCEPT -p tcp --dport 22 _EOF_ 2. Запустить сетевой экран: # systemctl start pve-firewall 3. Проверить, что генерируется для ipset: # pve-firewall compile 2>&1 | grep -A 10 "ipset cmdlist:" ipset cmdlist: update PVEFW-0-management-v4 (RYAc/sOxiXXp2xkFxr1pnyLPYlQ) create PVEFW-0-management-v4 hash:net family inet hashsize 64 maxelem 64 add PVEFW-0-management-v4 10.88.8.0/21 update PVEFW-0-management-v6 (H5WO/Pkuyz4e7OLB2uiMpG0Bsn0) create PVEFW-0-management-v6 hash:net family inet6 hashsize 64 maxelem 64 iptables cmdlist: ... 4. Однако в то же время вывод команды ipset save показывает: # ipset save create PVEFW-0-management-v6 hash:net family inet6 hashsize 64 maxelem 64 bucketsize 12 initval 0x7ff954ef create PVEFW-0-management-v4 hash:net family inet hashsize 64 maxelem 64 bucketsize 12 initval 0x43adee98 add PVEFW-0-management-v4 10.88.8.0/21 Предположительно, проблема с постоянным выводом (pending changes) вызвана подсистемой ipset, которая автоматически добавляет параметры bucketsize 12 и initval 0x... , в то время как pve-firewall не генерирует эти параметры в командах create Поэтому: 1. Демон вычисляет PVESIG от "желаемого" состояния: hashsize 64 maxelem 64 2. Читает "фактическое" состояние из ядра: hashsize 64 maxelem 64 bucketsize 12 initval 0x... 3. Хеш-суммы не совпадают из-за различий 4. Демон видит "изменения" и пытается обновить таблицы 5. После обновления ядро снова добавляет bucketsize и initval 6. Цикл повторяется ==> статус (pending changes) никогда не пропадает
pve-firewall-6.0.5-alt3 -> sisyphus: Sun Aug 30 2026 Sergey Konev <darisishe@altlinux> 6.0.5-alt3 - Include ipset bucketsize in generated rules (Closes: 60162)