Вниманию общественности представлен первый публичный выпуск проекта nftables, новой реализации пакетного фильтра для Linux, идущего на смену iptables, как в свое время iptables пришел на смену ipchains, а ipchains заменил собой ipfwadm. Главным отличием nftables, является не только изменившийся синтаксис задания правил, но и совершенно новый подход в их трансляции: определенные пользователем правила теперь преобразуются в специальный упрощенный псевдокод, который используется для принятия решения по дальнейшим действиям с пакетом внутри ядра.
Nftables состоит из трех частей: кода фильтрации, работающего внутри ядра, связующей интерфейсной netlink библиотеки libnl и фронтэнда, работающего на уровне пользователя. Для формирования правил фильтрации в nftables представлена утилита nft , которая проверяет корректность правил и транслирует их в псевдокод. Правила теперь могут добавляться не только инкрементально, но и загружаться атомарно целиком из файла на диске, как это сделано, например, в пакетном фильтре PF.
Новый синтаксис правил в корне не похож на то, что было раньше и больше напоминает сценарий, в котором можно задавать условия, создавать переменные, выполнять математические операции. Например, типичный набор правил:
Code
include "ipv4-filter"
chain filter output {
ct state established,related accept
tcp dport 22 accept
counter drop
}
По заявлению разработчиков, код nftables еще находится на стадии альфа тестирования и не подходит для использовании в промышленной эксплуатации, тем не менее в процессе регулярного тестирования последний крах ядра из-за сбоя nftables был зафиксирован несколько месяцев назад.