Kernel qib tsuas yog muaj cov txheej txheem dav dav-kev ywj pheej interface uas muab cov haujlwm yooj yim rau kev rho tawm cov ntaub ntawv los ntawm pob ntawv, ua cov ntaub ntawv ua haujlwm, thiab tswj kev ntws. Cov logic filtering nws tus kheej thiab raws tu qauv tshwj xeeb tuav tau muab tso ua ke rau hauv bytecode nyob rau hauv cov neeg siv qhov chaw, tom qab uas no bytecode yog loaded rau hauv lub ntsiav siv Netlink interface thiab tua nyob rau hauv ib tug tshwj xeeb virtual tshuab reminiscent ntawm BPF (Berkeley Packet Filters). Txoj hauv kev no tso cai rau koj kom txo qis qhov loj ntawm cov lim dej ua haujlwm ntawm qib ntsiav thiab txav tag nrho cov haujlwm ntawm parsing cov cai thiab cov laj thawj rau kev ua haujlwm nrog cov txheej txheem rau hauv cov neeg siv qhov chaw.
Main innovations:
- Поддержка сопоставления пакетов по времени. Можно определить как диапазоны времени и дат, в которых будет срабатывать правило, так и настроить срабатывание в отдельные дни недели. Также добавлена новая опция «-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, позволяющих определять более одного правила на бэкенд.
rooj ip foo {
synproxy https-synproxy {
mss 1460
wscale 7
timestamp sack-perm
}synproxy other-synproxy {
mss 1460
wscale 5
}chain pre {
hom lim nuv prerouting qhov tseem ceeb raw; txoj cai txais;
tcp dport 8888 tcp chij syn notrack
}chain bar {
hom lim nuv rau pem hauv ntej qhov tseem ceeb lim; txoj cai txais;
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» будет выведено:
tab ip x {
teeb y {
type ipv4_addr
}
}А при «nft list ruleset»
tab ip x {
teeb 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
Tau qhov twg los: opennet.ru