NFTables это: что такое новый фреймворк фильтрации пакетов в Linux
NFTables — это современная подсистема ядра Linux, предназначенная для фильтрации и классификации сетевых пакетов, трансляции адресов (NAT) и управления сетевыми соединениями. Простыми словами, nftables это замена устаревшим iptables, ip6tables, arptables и ebtables, объединяющая их функционал в едином инструменте с более эффективной архитектурой.
Что представляет собой nftables и зачем он нужен
Разработка nftables началась в 2008 году как часть ядра Linux, а начиная с версии ядра 3.13 (2014 год) технология стала доступна широкому кругу пользователей. Главная цель создания — устранить дублирование кода между существующими утилитами фильтрации и предложить администраторам единый синтаксис.
Ключевые особенности технологии:
- Единый фреймворк. Вместо четырёх отдельных утилит используется одна — `nft`. Она работает с IPv4, IPv6, ARP и bridge-трафиком.
- Виртуальная машина в ядре. Правила компилируются в байт-код и исполняются внутри ядра, что ускоряет обработку пакетов.
- Атомарное обновление правил. Изменения применяются целиком, без промежуточных состояний, что исключает разрывы соединений.
- Удобный синтаксис. Конфигурация читается легче, чем в iptables, а таблицы и цепочки описываются декларативно.
Чем nftables отличается от iptables
Основное отличие заключается в архитектуре. В iptables каждое правило проверяется последовательно, что при больших списках замедляет обработку. NFTables использует более эффективные структуры данных и поддерживает наборы (sets) и карты (maps), позволяющие обрабатывать тысячи адресов и портов без потери производительности.
Кроме того, nftables это решение с обратной совместимостью: утилита `iptables-nft` транслирует старые команды в правила нового формата. Это упрощает миграцию без переписывания конфигураций с нуля.
Как начать работу с nftables
Для использования фреймворка нужна утилита `nft` (пакет `nftables` в большинстве дистрибутивов). Базовая структура конфигурации включает таблицы, цепочки и правила. Пример создания простой таблицы для фильтрации входящего трафика:
```
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0\; }
nft add rule inet filter input tcp dport 22 accept
```
Команды выполняются от имени root. Проверить текущие правила можно через `nft list ruleset`, а сохранить конфигурацию — в файл `/etc/nftables.conf`.
Вывод
NFTables это современный стандарт управления сетевым трафиком в Linux, который постепенно вытесняет iptables во всех актуальных дистрибутивах. Он предлагает единый синтаксис, высокую производительность и атомарные обновления правил, что делает его выбором для серверов, маршрутизаторов и систем с интенсивным сетевым обменом. Освоение nftables — практический навык для администратора, работающего с Linux-инфраструктурой.
Изучите документацию nftables и попробуйте перенести одно из своих правил iptables в новый формат — это лучший способ оценить преимущества фреймворка на практике. Перейти к подборке →