Ответ
Прямой заменой классического iptables является nftables — новый фреймворк, встроенный в ядро Linux, который предоставляет единый интерфейс для фильтрации пакетов, трансляции адресов (NAT) и классификации трафика.
Почему nftables лучше для DevOps?
- Единый синтаксис: Один набор правил для IPv4, IPv6, ARP и сетевых мостов (bridge), что упрощает управление.
- Улучшенная производительность: Использует структуры данных в ядре (например, хэш-таблицы), что часто дает лучшую производительность по сравнению с длинными линейными цепочками iptables.
- Более выразительный язык: Поддержка словарей (maps) и наборов (sets) позволяет создавать сложные правила проще.
- Упрощенная миграция: Существуют утилиты (
iptables-translate,ip6tables-translate) для конвертации существующих правил.
Пример сравнения:
- iptables: Разрешить SSH для определенной сети.
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT - nftables: То же самое правило.
nft add rule ip filter input ip saddr 192.168.1.0/24 tcp dport 22 acceptИли в декларативном стиле в файле
/etc/nftables.conf:table ip filter { chain input { type filter hook input priority 0; ip saddr 192.168.1.0/24 tcp dport ssh accept } }
Текущее состояние:
В большинстве современных дистрибутивов (RHEL 8+, Ubuntu 20.04+, Debian 10+) инструменты iptables, ip6tables и т.д. являются символическими ссылками на версии, использующие бэкенд nftables (iptables-nft). Это обеспечивает обратную совместимость. Для новых развертываний я рекомендую изучать и использовать нативный синтаксис nft.