Boemo ba kernel bo fana feela ka sebopeho se ikemetseng se ikemetseng se fanang ka mesebetsi ea mantlha bakeng sa ho ntša data ho lipakete, ho etsa ts'ebetso ea data, le taolo ea phallo. Mokhoa oa ho sefa ka boeona le li-protocol-specific handlers li hlophisitsoe ka bytecode sebakeng sa mosebedisi, ka mor'a moo bytecode ena e kenngoa ka har'a kernel e sebelisa sebopeho sa Netlink ebe e etsoa ka mochine o khethehileng o hopotsang BPF (Berkeley Packet Filters). Mokhoa ona o u lumella ho fokotsa haholo boholo ba khoutu ea ho sefa e sebetsang boemong ba kernel mme o tsamaise mesebetsi eohle ea melao le logic ea ho sebetsa le li-protocol sebakeng sa mosebedisi.
Litlhahiso tse ka sehloohong:
- Поддержка сопоставления пакетов по времени. Можно определить как диапазоны времени и дат, в которых будет срабатывать правило, так и настроить срабатывание в отдельные дни недели. Также добавлена новая опция «-T» для вывода эпохального времени в секундах.
meta time \»2019-12-24 16:00\» — \»2020-01-02 7:00\»
meta hour \»17:00\» — \»19:00\»
meta day \»Fri\» - Поддержка восстановления и сохранения меток SELinux (secmark).
ct secmark set meta secmark
meta secmark set ct secmark - Поддержка map-списков synproxy, позволяющих определять более одного правила на бэкенд.
tafole ip foo {
synproxy https-synproxy {
mss 1460
wscale 7
timestamp sack-perm
}synproxy other-synproxy {
mss 1460
wscale 5
}chain pre {
mofuta filthara hook prerouting pele e tala; leano amohela;
tcp dport 8888 tcp lifolakha syn notrack
}ketane bar {
filtara ea mofuta oa hook ea pele filtara ea bohlokoa; leano amohela;
ct state invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : «https-synproxy», 192.168.2.0/24 : «other-synproxy» }
}
} - Возможность динамического удаления элементов set-наборов из правил обработки пакетов.
nft add rule … delete @set5 { ip6 saddr . ip6 daddr }
- Поддержка сопоставления VLAN по идентификатору и протоколу, определённых в метаданных интерфейса сетевого моста;
meta ibrpvid 100
meta ibrvproto vlan - Опция «-t» («—terse») для исключения элементов set-наборов при отображении правил. При выполнении «nft -t list ruleset» будет выведено:
tafole ip x {
beha y {
type ipv4_addr
}
}А при «nft list ruleset»
tafole ip x {
beha y {
type ipv4_addr
elements = { 192.168.10.2, 192.168.20.1,
192.168.4.4, 192.168.2.34 }
}
} - Возможность указания более одного устройства в цепочках netdev (работает только с ядром 5.5) для объединения типовых правил фильтрации.
add table netdev x
add chain netdev x y { \
type filter hook ingress devices = { eth0, eth1 } priority 0;
} - Возможность добавления описаний типов данных.
# nft describe ipv4_addr
datatype ipv4_addr (IPv4 address) (basetype integer), 32 bits - Возможность сборки CLI-интерфейса с библиотекой linenoise вместо libreadline.
./configure —with-cli=linenoise
Source: opennet.ru