Ядро Linux имеет возможность маршрутизировать трафик с помощью nftables, iptables и ipvs. Я собрал здесь 3 связанных вопроса, чтобы в целом задать более широкий общий вопрос о том, как определяется приоритет в отношении правил маршрутизации ядра и правил брандмауэра:
- В общем, существует ли порядок приоритета при упорядочении этих конструкций балансировки нагрузки/фильтрации пакетов?
- NFT и iptables при неправильном управлении с точки зрения установки могут привести к «коллизиям» (непредсказуемым результатам). Решение этой проблемы, похоже, заключается в том, чтобы установить iptables-legacy. Можно ли одновременно запускать и NFT, и iptables, и если да, то в каком порядке данные iptables «таблицы» (Mangle, Filter, NAT) будут применяться в отношении правил таблиц NFT?
- IPVS может реализовать балансировку нагрузки. В общем, должно ли это происходить до или после применения правил iptables к входящему пакету?
- Как firewalld играет во всем этом?
- Как работает приоритет в отношении SELinux и этих различных правил?
Для контекста я недавно заметил, что некоторые правила iptables в системе, где был установлен NFT, не работали должным образом, и, хотя в Интернете есть отличные диаграммы того, как цепочки iptables по умолчанию упорядочены в отношении их резидентных таблиц, я стал любопытно, как можно было бы рассуждать об этих цепочках и их обходе, если бы присутствовали другие правила из NFT, IPVS, eBPF и т. д.