nftables packet filter 0.9.9 rilaxx

Ġie ppubblikat ir-rilaxx tal-packet filter nftables 0.9.9, li jgħaqqad l-interfaces tal-iffiltrar tal-pakketti għall-IPv4, IPv6, ARP u pontijiet tan-netwerk (immirati biex jissostitwixxu iptables, ip6table, arptables u ebtables). Fl-istess ħin, ir-rilaxx tal-librerija kumpann libnftnl 1.2.0 ġie ppubblikat, li jipprovdi API ta 'livell baxx għall-interazzjoni mas-subsistema nf_tables. Il-bidliet meħtieġa għar-rilaxx ta 'nftables 0.9.9 biex jaħdmu huma inklużi fil-kernel Linux 5.13-rc1.

Il-pakkett nftables jinkludi komponenti tal-filtri tal-pakketti li jaħdmu fl-ispazju tal-utent, filwaqt li x-xogħol fil-livell tal-kernel huwa pprovdut mis-subsistema nf_tables, li ilha parti mill-kernel tal-Linux sa mir-rilaxx 3.13. Il-livell tal-qalba jipprovdi biss interface ġeneriku indipendenti mill-protokoll li jipprovdi funzjonijiet bażiċi għall-estrazzjoni tad-dejta minn pakketti, it-twettiq ta 'operazzjonijiet tad-dejta, u l-kontroll tal-fluss.

Ir-regoli tal-filtrazzjoni nfushom u handlers speċifiċi għall-protokoll huma kkompilati f'bytecode tal-ispazju tal-utent, u wara dan il-bytecode jitgħabba fil-kernel bl-użu tal-interface Netlink u eżegwit fil-kernel f'magna virtwali speċjali li tixbaħ BPF (Berkeley Packet Filters). Dan l-approċċ jagħmilha possibbli li jitnaqqas b'mod sinifikanti d-daqs tal-kodiċi tal-filtrazzjoni li jaħdem fil-livell tal-qalba u l-funzjonijiet kollha tar-regoli tal-parsing u l-loġika tal-ħidma bi protokolli jitmexxew fl-ispazju tal-utent.

Innovazzjonijiet ewlenin:

  • Ġiet implimentata l-abbiltà li tiċċaqlaq l-ipproċessar tal-flowtable lejn in-naħa tal-adapter tan-netwerk, ppermettiet bl-użu tal-bandiera 'offload'. Flowtable huwa mekkaniżmu għall-ottimizzazzjoni tal-mogħdija tar-ridirezzjoni tal-pakkett, li fiha l-passaġġ sħiħ tal-ktajjen kollha tal-ipproċessar tar-regoli huwa applikat biss għall-ewwel pakkett, u l-pakketti l-oħra kollha fil-fluss jintbagħtu direttament. tabella ip globali { flowtable f { filtru prijoritarju tad-dħul tal-ganċ + 1 apparati = { lan3, lan0, wan } bnadar li jniżżlu } katina 'l quddiem { filtru tat-tip ganċ 'il quddiem filtru prijoritarju; politika taċċetta; protokoll ip { tcp, udp } fluss żid @f } katina post { tip nat hook postrouting filtru prijoritarju; politika taċċetta; oifname "wan" masquerade }}
  • Żid appoġġ għat-twaħħil ta 'bandiera tas-sid ma' mejda biex jiġi żgurat użu esklussiv tat-tabella permezz ta 'proċess. Meta proċess jintemm, it-tabella assoċjata magħha titħassar awtomatikament. Informazzjoni dwar il-proċess hija murija fir-regoli dump fil-forma ta 'kumment: tabella ip x { # progname nft flags owner chain y { type filter hook input priority filter; politika taċċetta; counter packets 1 bytes 309 } }
  • Appoġġ miżjud għall-ispeċifikazzjoni IEEE 802.1ad (VLAN stacking jew QinQ), li jiddefinixxi mezz għas-sostituzzjoni ta 'tikketti VLAN multipli f'qafas Ethernet wieħed. Per eżempju, biex tiċċekkja t-tip ta 'frejm Ethernet estern 8021ad u vlan id=342, tista' tuża l-kostruzzjoni ... ether type 802.1ad vlan id 342 biex tiċċekkja t-tip estern ta 'qafas Ethernet 8021ad/vlan id=1, nested 802.1 q/vlan id=2 u aktar inkapsulament ta' pakkett IP: ... tip ta' etere 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
  • Appoġġ miżjud għall-ġestjoni tar-riżorsi bl-użu tal-ġerarkija unifikata cgroups v2. Id-differenza ewlenija bejn cgroups v2 u v1 hija l-użu ta 'ġerarkija cgroups komuni għat-tipi kollha ta' riżorsi, minflok ġerarkiji separati għall-allokazzjoni tar-riżorsi tas-CPU, għar-regolazzjoni tal-konsum tal-memorja, u għall-I/O. Pereżempju, biex tivverifika jekk l-antenat ta’ socket fl-ewwel livell cgroupv2 jaqbilx mal-maskra “system.slice”, tista’ tuża l-kostruzzjoni: ... socket cgroupv2 level 1 “system.slice”
  • Miżjud il-kapaċità li jiċċekkja l-komponenti tal-pakketti SCTP (il-funzjonalità meħtieġa għal dan se tidher fil-kernel Linux 5.14). Pereżempju, biex tiċċekkja jekk pakkett fihx biċċa bit-tip 'data' u qasam 'tip': ... sctp chunk data teżisti ... sctp chunk data tip 0
  • L-eżekuzzjoni tal-operazzjoni tat-tagħbija tar-regoli ġiet aċċellerata b'madwar darbtejn bl-użu tal-bandiera "-f". L-output tal-lista tar-regoli ġie aċċellerat ukoll.
  • Hija pprovduta formola kompatta biex jiġi ċċekkjat jekk il-bits tal-bandiera humiex issettjati. Pereżempju, biex tiċċekkja li l-bits tal-istatus snat u dnat mhumiex issettjati, tista' tispeċifika: ... ct status ! snat,dnat biex tiċċekkja li s-syn bit huwa ssettjat fil-bitmask syn,ack: ... tcp flags syn / syn,ack biex tivverifika li l-fin u l-ewwel bits mhumiex issettjati fil-bitmask syn,ack,fin,rst: ... tcp flags = fin,l-ewwel / syn,ack,fin,l-ewwel
  • Ħalli l-kelma prinċipali "verdett" fid-definizzjonijiet tat-tip ta' sett/mappa: żid mappa xm { typeof iifname . protokoll ip th dport : verdett ;}

Sors: opennet.ru

Żid kumment