nftables — это современный фреймворк для управления сетевым трафиком в Linux. Он объединяет функциональность iptables, ip6tables, arptables и ebtables в единый интерфейс. В основе лежит виртуальная машина внутри ядра, которая исполняет байт-код для обработки пакетов, что делает систему более гибкой и производительной по сравнению с предшественниками.
В отличие от iptables, где логика протоколов жестко вшита в модули ядра, nftables использует универсальную логику классификации. Система применяет эффективные структуры данных, такие как наборы (sets) и словари (maps), что позволяет обрабатывать тысячи правил без значительной деградации производительности CPU.
Принцип работы
- Атомарность: обновление конфигурации происходит одной транзакцией, исключая промежуточные состояния фильтра.
- Унификация: один инструмент управляет трафиком IPv4, IPv6, ARP и мостами (bridges).
- Оптимизация: исключено дублирование кода для разных протоколов.
Применяется для создания межсетевых экранов, настройки NAT и ограничения скорости трафика. Пример команды для блокировки порта: nft add rule ip filter input tcp dport 22 drop. Использование интервалов IP-адресов в nftables работает быстрее, чем связка iptables и ipset.