ĂshtĂ« publikuar lĂ«shimi i filtrit tĂ« paketave nftables 1.0.1, qĂ« unifikon interface-t e filtrimit tĂ« paketave pĂ«r IPv4, IPv6, ARP dhe urat rrjetike (me qĂ«llim qĂ« tĂ« zĂ«vendĂ«sojĂ« iptables, ip6table, arptables dhe ebtables). Ndryshimet e nevojshme pĂ«r funksionimin e lĂ«shimit nftables 1.0.1 janĂ« pĂ«rfshirĂ« nĂ« bĂ«rthamĂ«n Linux 5.16-rc1.
Paketa nftables përmban komponente të filtrit të paketave që funksionojnë në hapësirën e përdoruesit, ndërsa në nivelin e bërthamor punon nën-sistemi nf_tables, i cili është pjesë e bërthamës Linux që nga versione 3.13. Në nivelin e bërthamës ofrohet vetëm një ndërfaqe e përgjithshme, e pavaruar nga protokolli i veçantë dhe që ofron funksione bazë për nxjerrjen e të dhënave nga paketat, për kryerjen e operacioneve me të dhënat dhe menaxhimin e fluksit.
Rregullat për filtrimin dhe trajtuesit specifikë për protokollet kompilohet në kodin e bytes në hapësirën e përdoruesit, pas së cilës ky kod bytes ngarkohet në bërthamë përmes ndërfaqes Netlink dhe ekzekutohet në bërthamë në një mënyrë të veçantë, që i ngjan BPF (Filtrat e Paketa Berkeley). Ky qasje lejon të reduktohet ndjeshëm madhësia e kodit të filtrimit që operon në nivelin e bërthamës dhe të transferohet të gjitha funksionet e përpunimit të rregullave dhe logjikës së punës me protokollet në hapësirën e përdoruesit. makinën virtuale, që ngjan me BPF (Berkeley Packet Filters). Ky qasje lejon reduktimin e ndjeshëm të madhësisë së kodit të filtrimit që operon në nivelin e bërthamës dhe nxjerrjen e të gjitha funksioneve për të analizuar rregullat dhe logjikën e punës me protokollet në hapësirën e përdoruesit.
Novitetet kryesore:
- Sasia e memories e përdorur është reduktuar gjatë ngarkimit të listave të mëdha set- dhe map.
- Rikthimi i set- dhe map-listave është përshpejtuar.
- Përshpejtuar dalja e tabelave dhe zinxhirëve të preferuar në grupe të mëdha rregullash. Për shembull, koha e ekzekutimit të komandës «nft list ruleset» për të treguar një grup rregullash me 100 mijë rreshta është 3.049 sekonda, ndersa kur tregohen vetëm tabelat nat dhe filter («nft list table nat», «nft list table filter») reduktohet në 1.969 dhe 0.697 sekonda.
- PĂ«rshpejtuar ekzekutimi i pyetjeve me opsionin «âterse» gjatĂ« procesimit tĂ« rregullave me lista tĂ« mĂ«dha set- dhe map.
- Ofrohet mundësia për të filtruar trafikun nga zinxhiri «egress», që përpunoheshe në të njëjtin nivel si përpunuesi egress në zinxhirin netdev (hook egress), atëherë kur drejtuesi merr paketën nga steka rrjet të bërthamës. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
- Lejohet nga lidhja dhe ndryshimi i bajtëve në titullin dhe përmbajtjen e paketës sipas një offset-i të caktuar. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter
Burimi: opennet.ru
