On vĂ€lja antud nftables paketifiltri vĂ€ljaanne 1.0.1, mis ĂŒhtlustab pakettide filtreerimise liideseid IPv4, IPv6, ARP ja vĂ”rgu sildade jaoks (eesmĂ€rk on asendada iptables, ip6tables, arptables ja ebtables). Nftables 1.0.1 toimimiseks vajalikud muudatused on kaasatud Linuxi tuumikusse 5.16-rc1.
Nftables'i paketti kuuluvad kasutajaruumi töötavad pakettfilteri komponendid, samas kui tuuma tasemel tagab töö nf_tables sĂŒsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Tuuma tasemel pakutakse vaid ĂŒldist liidest, mis ei sĂ”ltu konkreetsest protokollist ja pakub pĂ”hifunktsioone andmete vĂ€ljavĂ”tmiseks pakettidest, andmetega töötamiseks ja voogude haldamiseks.
Filtreerimise reeglid ja protokollile spetsiifilised töötlejad kompileeritakse kasutajaruumi baidikoodiks, seejÀrel laaditakse see baidikood tuuma Netlink liidese abil ja tÀidetakse tuumas spetsiaalses virtuaalses masinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lÀhenemine vÔimaldab oluliselt vÀhendada tuuma tasemel töötava filtreerimiskoodi suurust ja viia kÔik reeglite tÔlgendamise ja protokollidega töötamise funktsioonid kasutajaruumi.
Peamised uuendused:
- Suurenenud mÀlu kokkuhoid suurte set- ja map-loendite laadimisel.
- Set- ja map-loendite taaskÀivitamine on kiirem.
- Eelistatud tabelite ja ahelate vĂ€ljund suurte reeglistike puhul on kiirem. NĂ€iteks kĂ€su ânft list rulesetâ tĂ€itmise aeg reeglistiku vĂ€ljundamiseks, mis sisaldab 100 tuhat rida, on 3,049 sekundit, samas kui ainult nat ja filter tabelite vĂ€ljund (ânft list table natâ, ânft list table filterâ) on vastavalt 1,969 ja 0,697 sekundit.
- Queryde tĂ€itmine opsiooniga ââterseâ suurte set- ja map-loendite töötlemisel on kiirem.
- On antud vĂ”imalus filtreerida liiklust âegressâ ahelast, mis töödeldakse samal tasemel, nagu egress- töötleja netdev ahelas (egress konks), st hetkel, mil draiver saab paketi kernel arhiivist. 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 } } }
- On lubatud kaardistada ja muuta paketi pealkirja ja sisu baidid mÀÀratud nihkega. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter
Allikas: opennet.ru
