nftables pakettfiltri 1.0.1 väljalase

Avaldatud on paketifiltri nftables 1.0.1 väljalase, mis ühendab IPv4, IPv6, ARP ja võrgusildade pakettfiltri liidesed (eesmärgiks iptables, ip6table, arptables ja ebtables asendamine). Nftables 1.0.1 väljalaske toimimiseks vajalikud muudatused sisalduvad Linuxi kernelis 5.16-rc1.

Pakett nftables sisaldab pakettfiltri komponente, mis töötavad kasutajaruumis, samas kui kerneli tasemel töö tagab alamsüsteem nf_tables, mis on Linuxi kerneli osa olnud alates versioonist 3.13. Kerneli tase pakub ainult üldist protokollist sõltumatut liidest, mis pakub põhifunktsioone pakettidest andmete eraldamiseks, andmetoimingute tegemiseks ja voo juhtimiseks.

Filtreerimisreeglid ja protokollispetsiifilised töötlejad kompileeritakse kasutajaruumis baitkoodiks, misjärel laaditakse see baitkood Netlink liidese abil kernelisse ja käivitatakse kernelis spetsiaalses BPF-i meenutavas virtuaalmasinas (Berkeley Packet Filters). Selline lähenemine võimaldab oluliselt vähendada kerneli tasemel töötava filtreerimiskoodi suurust ning teisaldada kõik sõelumisreeglite ja protokollidega töötamise loogika funktsioonid kasutajaruumi.

Peamised uuendused:

  • Suurte komplektide ja kaartide loendite laadimisel väheneb mälutarbimine.
  • Komplektide ja kaartide loendite uuesti laadimine on kiirendatud.
  • Valitud tabelite ja kettide väljastamist suurtes reeglikomplektides on kiirendatud. Näiteks 100 tuhande reaga reeglistiku kuvamiseks on käsu „nft list rulett” täitmisaeg 3.049 sekundit ning ainult nat- ja filtritabelite väljastamisel (“nft list table nat”, “nft list table filter” ”) vähendatakse 1.969 ja 0.697 sekundini.
  • Suvandiga “--terse” päringute täitmine on kiirendatud reeglite töötlemisel suurte kogumi- ja kaardiloenditega.
  • Liiklust on võimalik filtreerida “väljapääsu” ahelast, mida töödeldakse netdevi ahelas väljapääsukäitlejaga samal tasemel (egress hook), st. etapis, mil draiver saab paketi kerneli võrgupinust. tabel netdev filter { ahela väljapääs { tüüp filter konks väljumisseadmed = { eth0, eth1 } prioriteet 0; meta prioriteedi komplekt ip saddr kaart { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } }
  • Võimaldab sobitada ja muuta paketi päises ja sisus olevaid baite antud nihkega. # nft lisa reegel x y @ih,32,32 0x14000000 loendur # nft lisa reegel x y @ih,32,32 komplekt 0x14000000 loendur

Allikas: opennet.ru

Lisa kommentaar