It pakketfilter nftables 0.9.9 is útbrocht. It ferieniget pakketfilterynterfaces foar IPv4, IPv6, ARP, en netwurkbrêgen (rjochte as ferfanging foar iptables, ip6table, arptables, en ebtables). De begeliedende libnftnl 1.2.0-bibleteek, dy't in leechnivo-API leveret foar ynteraksje mei it nf_tables-subsysteem, is tagelyk útbrocht. De feroarings dy't nedich binne foar nftables 0.9.9 binne opnommen yn 'e kernel. Linux 5.13-rc1.
It nftables-pakket befettet de pakketfilterkomponinten dy't operearje yn brûkersromte, wylst wurk op kernelnivo wurdt levere troch it nf_tables-subsysteem, dat diel útmakket fan 'e kernel. Linux Sûnt release 3.13 wurdt allinich in generike protokol-ûnôfhinklike ynterface op kernelnivo oanbean, dy't basisfunksjonaliteit biedt foar it ekstrahearjen fan gegevens út pakketten, it útfieren fan gegevensoperaasjes en streamkontrôle.
De filterregels sels en protokol-spesifike handlers wurde yn brûkersromte yn bytecode kompilearre, wêrnei't dizze bytecode mei de Netlink-ynterface yn 'e kernel laden wurdt en yn in spesjale kernel útfierd wurdt. firtuele masine, wat tinken docht oan BPF (Berkeley Packet Filters). Dizze oanpak makket in wichtige reduksje mooglik yn 'e grutte fan' e filterkoade dy't op kernelnivo rint en ferpleatst alle regelparsing en protokollogika nei de brûkersromte.
Wichtichste ynnovaasjes:
- De mooglikheid om streamtabelferwurking nei de netwurkadapterkant te ferpleatsen is ymplementearre, ynskeakele mei de flagge 'offload'. Flowtable is in meganisme foar it optimalisearjen fan it paad fan pakketomlieding, wêryn de folsleine passaazje fan alle regelferwurkingsketten allinich tapast wurdt op it earste pakket, en alle oare pakketten yn 'e stream wurde direkt trochstjoerd. tabel ip globale {flowtable f {haak ingress prioriteit filter + 1 apparaten = {lan3, lan0, wan} flaggen offload} keten foarút {type filter heak foarút prioriteit filter; belied akseptearje; ip-protokol {tcp, udp} stream tafoegje @f} kettingpost {type nat hook postrouting prioriteitsfilter; belied akseptearje; oifname "wan" maskerade } }
- Stipe tafoege foar it heakjen fan in eignerflagge oan in tafel om eksklusyf gebrûk fan 'e tafel te garandearjen troch in proses. As in proses einiget, wurdt de tabel dy't dêrmei ferbûn is automatysk wiske. Ynformaasje oer it proses wurdt werjûn yn 'e regels dump yn' e foarm fan in reaksje: tabel ip x { # progname nft flaggen eigner keten y { type filter haak ynfier prioriteit filter; belied akseptearje; tellerpakketten 1 bytes 309 } }
- Stipe tafoege foar de IEEE 802.1ad-spesifikaasje (VLAN-stacking of QinQ), dy't in middel definiearret foar it ferfangen fan meardere VLAN-tags yn ien Ethernet-frame. Bygelyks om it type eksterne Ethernet-frame 8021ad en vlan id = 342 te kontrolearjen, kinne jo de konstruksje brûke ... q/vlan id = 802.1 en fierdere IP pakket ynkapseling: ... ether type 342ad vlan id 8021 vlan type 1q vlan id 802.1 vlan type ip teller
- Stipe tafoege foar it behearen fan boarnen mei de ferienige hiërargy cgroups v2. It wichtichste ferskil tusken cgroups v2 en v1 is it brûken fan in mienskiplike cgroups hiërargy foar alle soarten boarnen, ynstee fan aparte hiërargyen foar it tawizen fan CPU-boarnen, foar it regulearjen fan ûnthâldferbrûk en foar I / O. Bygelyks, om te kontrolearjen oft de foarfaar fan in socket op it earste nivo cgroupv2 oerienkomt mei it masker "system.slice", kinne jo de konstruksje brûke: ... socket cgroupv2 nivo 1 "system.slice"
- De mooglikheid tafoege om de komponinten fan SCTP-pakketten te kontrolearjen (de funksjonaliteit dy't nedich is foar operaasje sil ferskine yn 'e kernel Linux 5.14). Bygelyks, om te kontrolearjen oft in pakket in chunk befettet mei it type 'data' en it fjild 'type': … sctp chunk data bestiet … sctp chunk data type 0
- De útfiering fan 'e regelladingsoperaasje is sawat twa kear versneld mei de flagge "-f". De útfier fan 'e list mei regels is ek fersneld.
- In kompakte foarm om te kontrolearjen oft flaggebits binne ynsteld is foarsjoen. Bygelyks, om te kontrolearjen dat de snat- en dnat-statusbits net ynsteld binne, kinne jo opjaan: ... ct status ! snat,dnat om te kontrolearjen dat de syn bit is ynsteld yn de bitmask syn,ack: ... tcp flaggen syn / syn,ack om te kontrolearjen dat de fin en earste bits binne net ynsteld yn de bitmask syn,ack,fin,rst: ... tcp flags ! = fin,rst / syn,ack,fin,rst
- Tastean it kaaiwurd "ferdict" yn set / map typeof definysjes: add map xm { typeof iifname . ip protokol th dport: oardiel;}
Boarne: opennet.ru
