Filter pakét nftables 0.9.9 parantos dirilis. Éta ngahijikeun antarmuka panyaring pakét pikeun IPv4, IPv6, ARP, sareng sasak jaringan (anu ditujukeun salaku gaganti iptables, ip6table, arptables, sareng ebtables). Pustaka libnftnl 1.2.0 anu ngalengkepanana, anu nyayogikeun API tingkat handap pikeun berinteraksi sareng subsistem nf_tables, parantos dirilis sacara simultan. Parobihan anu diperyogikeun pikeun nftables 0.9.9 parantos dilebetkeun kana kernel. Linux 5.13-rc1.
Pakét nftables ngandung komponén filter pakét anu beroperasi dina rohangan pangguna, sedengkeun padamelan tingkat kernel disayogikeun ku subsistem nf_tables, anu mangrupikeun bagian tina kernel. Linux Ti saprak rilis 3.13, ngan ukur antarmuka umum anu henteu gumantung kana protokol anu disayogikeun dina tingkat kernel, anu nyayogikeun fungsi dasar pikeun ngekstrak data tina pakét, ngalaksanakeun operasi data, sareng kontrol aliran.
Aturan panyaringan sorangan sareng pawang khusus protokol dikompilasi kana bytecode dina rohangan pangguna, saatos éta bytecode ieu dimuat kana kernel nganggo antarmuka Netlink sareng dieksekusi dina kernel dina cara khusus. mesin virtual, siga BPF (Berkeley Packet Filters). Pamarekan ieu ngamungkinkeun pangurangan anu signifikan dina ukuran kode panyaring anu dijalankeun dina tingkat kernel sareng mindahkeun sadaya parsing aturan sareng logika protokol kana rohangan pangguna.
Inovasi utama:
- Kamampuhan pikeun mindahkeun pamrosésan flowtable ka sisi adaptor jaringan parantos dilaksanakeun, diaktipkeun nganggo bandéra 'offload'. Flowtable mangrupakeun mékanisme pikeun ngaoptimalkeun jalur pakét redirection, nu petikan lengkep sadaya ranté processing aturan dilarapkeun ukur kana pakét munggaran, sarta sakabeh pakét séjén dina aliran diteruskeun langsung. tabél ip global {flowtable f {hook ingress prioritas filter + 1 alat = {lan3, lan0, Wan} umbul offload} ranté maju {tipe filter hook maju prioritas filter; kawijakan narima; ip protokol {tcp, udp} aliran nambahkeun @f} ranté pos {tipe nat hook postrouting prioritas filter; kawijakan narima; oifname "wan" masquerade }}
- Ditambahkeun rojongan pikeun ngagantelkeun hiji bandéra boga ka méja guna mastikeun pamakéan ekslusif tabel ku prosés a. Nalika prosés terminates, tabel pakait sareng eta otomatis dihapus. Émbaran ngeunaan prosés dipintonkeun dina aturan dump dina bentuk komentar: tabel ip x {# progname nft bandéra boga ranté y {tipe filter hook input prioritas filter; kawijakan narima; pakét counter 1 bait 309 }}
- Ditambahkeun rojongan pikeun spésifikasi IEEE 802.1ad (VLAN stacking atanapi QinQ), nu ngahartikeun sarana pikeun ngaganti sababaraha tag VLAN kana pigura Ethernet tunggal. Contona, pikeun pariksa tipe éksternal pigura Ethernet 8021ad na vlan id = 342, anjeun tiasa nganggo konstruksi ... tipe éter 802.1ad vlan id 342 mariksa tipe éksternal pigura Ethernet 8021ad / vlan id = 1, nested 802.1 q/vlan id=2 sareng enkapsulasi pakét IP salajengna: ... tipe éter 8021ad vlan id 1 tipe vlan 8021q vlan id 2 tipe vlan ip counter
- Ditambahkeun dukungan pikeun ngatur sumber daya nganggo hirarki cgroups v2. Beda konci antara cgroups v2 na v1 nyaéta pamakéan hirarki cgroups umum pikeun sakabéh jenis sumberdaya, tinimbang hirarki misah pikeun alokasi sumberdaya CPU, pikeun ngatur konsumsi memori, sarta pikeun I / O. Contona, pikeun mariksa naha karuhun stop kontak dina cgroupv2 tingkat kahiji cocog topeng "system.slice", anjeun tiasa nganggo konstruksi: ... stop kontak cgroupv2 tingkat 1 "system.slice"
- Nambahkeun kamampuan pikeun mariksa komponén pakét SCTP (fungsi anu diperyogikeun pikeun operasi bakal muncul dina kernel Linux 5.14). Contona, pikeun mariksa naha hiji pakét ngandung chunk kalayan tipe 'data' sareng widang 'type': … data chunk sctp aya … tipe data chunk sctp 0
- Palaksanaan operasi ngamuat aturan parantos digancangan sakitar dua kali nganggo bandéra "-f". Kaluaran daptar aturan ogé parantos gancangan.
- Bentuk kompak pikeun mariksa naha bit bandéra disetél. Contona, pikeun pariksa yen bit status snat jeung dnat teu disetel, Anjeun bisa nangtukeun: ... ct status ! snat,dnat pikeun mariksa yén bit syn disetel dina bitmask syn,ack: ... tcp flags syn / syn,ack pikeun mariksa yén fin jeung bit kahiji teu disetel dina bitmask syn,ack,fin,rst: ... tcp bandéra! = sirip, mimiti / syn, ack, sirip, mimiti
- Ngidinan kecap konci "putusan" dina set / peta typeof definisi: tambahkeun peta xm {typeof iifname. protokol ip th dport: putusan;}
sumber: opennet.ru
