nftables packet filter 0.9.9 release

Rilis packet filter nftables 0.9.9 wis diterbitake, nyawiji antarmuka panyaring paket kanggo IPv4, IPv6, ARP lan jembatan jaringan (kanggo ngganti iptables, ip6table, arptables lan ebtables). Ing wektu sing padha, release saka perpustakaan pendamping libnftnl 1.2.0 diterbitake, nyedhiyakake API tingkat rendah kanggo sesambungan karo subsistem nf_tables. Owah-owahan sing dibutuhake kanggo rilis nftables 0.9.9 supaya bisa digunakake kalebu ing kernel Linux 5.13-rc1.

Paket nftables kalebu komponen filter paket sing mlaku ing ruang pangguna, dene karya tingkat kernel diwenehake dening subsistem nf_tables, sing wis dadi bagian saka kernel Linux wiwit dirilis 3.13. Tingkat kernel mung nyedhiyakake antarmuka bebas protokol umum sing nyedhiyakake fungsi dhasar kanggo ngekstrak data saka paket, nindakake operasi data, lan kontrol aliran.

Aturan nyaring dhewe lan panangan khusus protokol dikompilasi menyang bytecode spasi pangguna, sawise bytecode iki dimuat menyang kernel nggunakake antarmuka Netlink lan dieksekusi ing kernel ing mesin virtual khusus sing meh padha karo BPF (Berkeley Packet Filters). Pendekatan iki ndadekake bisa nyuda ukuran kode nyaring sing mlaku ing tingkat kernel lan mindhah kabeh fungsi aturan parsing lan logika nggarap protokol menyang ruang pangguna.

Inovasi utama:

  • Kemampuan kanggo mindhah pangolahan flowtable menyang sisih adaptor jaringan wis dipun ginakaken, aktif nggunakake flag 'offload'. Flowtable minangka mekanisme kanggo ngoptimalake path redirection paket, ing ngendi jalur lengkap kabeh rantai pangolahan aturan ditrapake mung ing paket pisanan, lan kabeh paket liyane ing aliran kasebut diterusake langsung. table ip global {flowtable f {filter prioritas pancing ingress + 1 piranti = {lan3, lan0, wan} flag offload} chain maju {jinis filter pancing prioritas maju filter; kawicaksanan nampa; ip protokol {tcp, udp} aliran nambah @f} chain kirim {jinis nat pancing postrouting prioritas Filter; kawicaksanan nampa; oifname "wan" masquerade }}
  • Added support kanggo Masang gendΓ©ra pemilik kanggo meja kanggo mesthekake nggunakake eksklusif saka meja dening proses. Nalika proses mungkasi, tabel sing digandhengake kanthi otomatis dibusak. Informasi babagan proses ditampilake ing aturan mbucal ing wangun komentar: Tabel ip x {# progname nft flags pemilik chain y {jinis Filter pancingan prioritas input Filter; kawicaksanan nampa; paket counter 1 byte 309 }}
  • Dhukungan ditambahake kanggo spesifikasi IEEE 802.1ad (VLAN numpuk utawa QinQ), sing nemtokake cara kanggo ngganti sawetara tag VLAN menyang pigura Ethernet siji. Contone, kanggo mriksa jinis pigura Ethernet external 8021ad lan vlan id = 342, sampeyan bisa nggunakake construction ... jinis eter 802.1ad vlan id 342 kanggo mriksa jinis external pigura Ethernet 8021ad / vlan id = 1, nested 802.1 q/vlan id=2 lan enkapsulasi paket IP luwih lanjut: ... tipe eter 8021ad vlan id 1 tipe vlan 8021q vlan id 2 tipe vlan ip counter
  • Dhukungan sing ditambahake kanggo ngatur sumber daya nggunakake cgroups hirarki terpadu v2. Bentenipun tombol antarane cgroups v2 lan v1 nggunakake hirarki cgroups umum kanggo kabeh jinis sumber daya, tinimbang hirarki kapisah kanggo alokasi sumber daya CPU, kanggo ngatur konsumsi memori, lan kanggo I / O. Contone, kanggo mriksa apa leluhur saka soket ing cgroupv2 tingkat pisanan cocog topeng "system.slice", sampeyan bisa nggunakake construction: ... soket cgroupv2 tingkat 1 "system.slice"
  • Ditambahake kemampuan kanggo mriksa komponen paket SCTP (fungsi sing dibutuhake kanggo iki bakal katon ing kernel Linux 5.14). Contone, kanggo mriksa manawa paket ngemot potongan kanthi jinis 'data' lan 'jinis' lapangan: ... sctp chunk data ana ... sctp chunk data type 0
  • Eksekusi operasi loading aturan wis digawe cepet kira-kira kaping pindho nggunakake gendera "-f". Output saka dhaptar aturan uga wis digawe cepet.
  • Wangun kompak kanggo mriksa apa bit gendera wis disetel. Contone, kanggo mriksa bit status snat lan dnat ora disetel, sampeyan bisa nemtokake: ... ct status ! snat,dnat kanggo mriksa yen bit syn wis disetel ing syn bitmask,ack: ... tcp flag syn / syn,ack kanggo mriksa yen bit sirip lan pisanan ora disetel ing syn bitmask,ack,fin,rst: ... tcp flag! = fin,rst / syn,ack,fin,rst
  • Ngidini tembung kunci "putusan" ing definisi set/map: tambahake peta xm {typeof iifname. protokol ip th dport: putusan ;}

Source: opennet.ru

Add a comment