nftables pakét filter release 0.9.9

Pelepasan packet filter nftables 0.9.9 parantos diterbitkeun, ngahijikeun pakét panyaring interfaces pikeun IPv4, IPv6, ARP sareng sasak jaringan (ditujukeun pikeun ngagentos iptables, ip6table, arptables sareng ebtables). Dina waktos anu sami, sékrési perpustakaan pendamping libnftnl 1.2.0 diterbitkeun, nyayogikeun API tingkat rendah pikeun berinteraksi sareng subsistem nf_tables. Parobihan anu dipikabutuh pikeun rilis nftables 0.9.9 kalebet kana kernel Linux 5.13-rc1.

Paket nftables kalebet komponén saringan pakét anu dijalankeun dina rohangan pangguna, sedengkeun padamelan tingkat kernel disayogikeun ku subsistem nf_tables, anu parantos janten bagian tina kernel Linux ti saprak ngaleupaskeun 3.13. Tingkat kernel ngan nyadiakeun antarbeungeut protokol-bebas generik nu nyadiakeun pungsi dasar pikeun extracting data tina pakét, ngajalankeun operasi data, jeung kontrol aliran.

Aturan nyaring jeung panangan husus protokol anu disusun kana bytecode dina spasi pamaké, nu satutasna bytecode ieu dimuat kana kernel ngagunakeun panganteur Netlink sarta dieksekusi dina kernel dina mesin virtual husus reminiscent of BPF (Berkeley Packet Filters). Pendekatan ieu ngamungkinkeun anjeun sacara signifikan ngirangan ukuran kode nyaring anu dijalankeun dina tingkat kernel sareng mindahkeun sadaya fungsi aturan parsing sareng logika pikeun damel sareng 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"
  • Katambah kamampuhan pikeun pariksa komponén pakét SCTP (fungsi anu diperlukeun pikeun ieu bakal muncul dina kernel Linux Ubuntu 5.14). Contona, pikeun mariksa lamun pakét ngandung sapotong jeung tipe 'data' jeung widang 'tipe': ... sctp chunk data aya ... sctp chunk tipe data 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

Tambahkeun komentar