Ничего не имею против firewalld, удобная обвязка, но мне вот что не с ней не понятно:
1. Почему она не имеет штатной возможности объявить SNAT без rich rule? Когда я последний раз ею пользовался, оно умело маскарад в привязке к сетевому интерфейсу, что конечно же хватит многим, но не всем.
2. Отсутствует штатная возможность без rich rule разблокировать некоторые протоколы для сетевых интерфейсов, например vrrp.Приду пример:
Есть 2 сервера, на каждом из которых 2 сетёвки. Первая смотрит видит сеть 192.168.192.0/24, а вторая 10.10.10.0/24. Назначены IP 192.168.192.100, 10.10.10.100 и 192.168.192.101, 10.10.10.101 соответственно.
Также есть keepalived, в котором есть 2 инстанса и они объединены в группу. Получились 2 VIP: 192.168.192.168 и 10.10.10.10
Если мы создадим SNAT 192.168.192.168 -> 10.10.10.10 и установим 10.10.10.10 как default gateway для машинок в сети 10.10.10.0/24, то у нас появился отказоустойчивый роутер.
Если мы настроим группу серверов из сети 10.10.10.0/24 на keepalived, то сможем организовать L4 Load Balancing посредством манипуляций с DNAT для клиентов из 192.168.192.0/24 при условии отсутствия клиентов в 10.10.10.0/24.
Это совершенно типовая задача, ну как 2 пальца об асфальт, но вот firewalld, который обвязка над iptables/nftables почему-то:
1) Не работает с VIP, судя по всему by design
2) Не работает с SNAT, попросту не умеет.
3) Требует инородных, ручных правил для работы с разрешением мультикаст-протокола.
И вот этим-то он и отталкивает, на самом деле. Нахрена нужна обвязка над iptables, для работы с которой пользователю (в этом случае администратору, но всё равно он выступает как пользователь) нужно знать сразу несколько синтаксисов и firewalld и iptables, а теперь еще и nftables. Очень спорный продукт...