De Paketfilter nftables 0.9.9 gouf verëffentlecht. E vereenegt Paketfilter-Interfaces fir IPv4, IPv6, ARP a Netzwierkbrécken (gezielt als Ersatz fir iptables, ip6table, arptables an ebtables). Déi begleedend libnftnl 1.2.0 Bibliothéik, déi eng Low-Level API fir d'Interaktioun mam nf_tables Subsystem ubitt, gouf gläichzäiteg verëffentlecht. D'Ännerungen, déi fir nftables 0.9.9 erfuerderlech sinn, goufen am Kernel integréiert. Linux 5.13-rc1.
De Pak nftables enthält d'Paketfilterkomponenten, déi am Benotzerraum operéieren, während d'Aarbecht op Kernelniveau vum nf_tables Subsystem geliwwert gëtt, wat Deel vum Kernel ass. Linux Zënter der Versioun 3.13 gëtt nëmmen eng generesch protokollonofhängeg Interface um Kernel-Niveau ugebueden, déi Basisfunktionalitéiten fir d'Extraktioun vun Daten aus Paketen, d'Duerchféierung vun Datenoperatiounen a Flowkontroll ubitt.
D'Filterregelen selwer an déi protokollspezifesch Handler ginn am Benotzerraum als Bytecode kompilléiert, duerno gëtt dëse Bytecode iwwer d'Netlink-Interface an de Kernel gelueden an am Kernel an enger spezieller Form ausgefouert. virtuell Maschinn, wat un BPF (Berkeley Packet Filters) erënnert. Dësen Usaz erméiglecht eng bedeitend Reduktioun vun der Gréisst vum Filtercode, deen um Kernelniveau leeft, a verlagert all Regelparsing a Protokolllogik an de Benotzerraum.
Haaptinnovatiounen:
- D'Kapazitéit fir d'Flowtableveraarbechtung op d'Netzwierkadapter Säit ze réckelen ass implementéiert, aktivéiert mam 'Offload' Fändel. Flowtable ass e Mechanismus fir de Wee vun der Paketviruleedung ze optimiséieren, an deem de komplette Passage vun all Regelveraarbechtungsketten nëmmen op den éischte Paket applizéiert gëtt, an all aner Pakete am Floss direkt weidergeleet ginn. Dësch ip global {flowtable f {Hook ingress Prioritéit Filter + 1 Apparater = {lan3, lan0, wan} Fändelen Offload} Kette viru {Typ Filter Hook Virsprong Prioritéit Filter; Politik akzeptéieren; ip Protokoll {tcp, udp} Flux add @f} Kettepost {Typ nat Hook postrouting Prioritéit Filter; Politik akzeptéieren; oifname "wan" Masquerade } }
- Ënnerstëtzung bäigefüügt fir e Besëtzer Fändel un en Dësch ze befestigen fir exklusiv Notzung vum Dësch duerch e Prozess ze garantéieren. Wann e Prozess ofgeschloss ass, gëtt den Dësch, dee mat him assoziéiert ass, automatesch geläscht. Informatioun iwwer de Prozess gëtt an de Regelen Dump an der Form vun engem Kommentar ugewisen: Dësch ip x { # progname nft Fändelen Besëtzer Kette y { Typ Filter Hook Input Prioritéit Filter; Politik akzeptéieren; Konterpakete 1 Bytes 309 } }
- Zousätzlech Ënnerstëtzung fir d'IEEE 802.1ad Spezifizéierung (VLAN Stacking oder QinQ), déi e Mëttel definéiert fir verschidde VLAN Tags an engem eenzegen Ethernet Frame z'ersetzen. Zum Beispill, fir d'Zort vum externen Ethernet Frame 8021ad a vlan id = 342 ze kontrolléieren, kënnt Dir d'Konstruktioun benotzen ... ether Typ 802.1ad vlan id 342 fir den externen Typ vum Ethernet Frame 8021ad/vlan id=1, nested 802.1 ze kontrolléieren q / vlan id = 2 a weider IP Paket Encapsulation: ... ether Typ 8021ad vlan ID 1 vlan Typ 8021q vlan ID 2 vlan Typ IP Konter
- Zousätzlech Ënnerstëtzung fir d'Gestioun vu Ressourcen mat der vereenegter Hierarchie cgroups v2. De Schlësselunterscheed tëscht cgroups v2 a v1 ass d'Benotzung vun enger gemeinsamer cgroups Hierarchie fir all Zorte vu Ressourcen, anstatt getrennten Hierarchien fir CPU Ressourcen ze allocéieren, fir Erënnerungsverbrauch ze reguléieren, a fir I / O. Zum Beispill, fir z'iwwerpréiwen ob de Virgänger vun engem Socket um éischte Niveau cgroupv2 mat der "system.slice" Mask entsprécht, kënnt Dir d'Konstruktioun benotzen: ... Socket cgroupv2 Level 1 "system.slice"
- Добавлена возможность проверки составных частей пакетов SCTP (необходимая для работы функциональность появится в ядре Linux 5.14). Например, для проверки наличия в пакете chunk-а с типом ‘data’ и полем ‘type’: … sctp chunk data exists … sctp chunk data type 0
- D'Ausféierung vun der Regel Luede Operatioun gouf mat der "-f" Fändel ëm ongeféier zweemol beschleunegt. D'Ausgab vun der Lëscht vun de Regele gouf och beschleunegt.
- Eng kompakt Form gëtt zur Verfügung gestallt fir ze kontrolléieren ob Fändelbits agestallt sinn. Zum Beispill, fir ze kontrolléieren ob d'Snat an dnat Status Bits net agestallt sinn, kënnt Dir uginn: ... ct Status ! snat,dnat fir ze kontrolléieren datt de Syn Bit an der Bitmask gesat ass syn,ack: ... tcp Fändelen syn / syn,ack fir ze kontrolléieren ob d'Fin an d'éischt Bits net an der Bitmask gesat ginn syn,ack,fin,rst: ... tcp Fändelen ! = fin,rst / syn,ack,fin,rst
- Erlaabt d'Schlësselwuert "Uerteel" a Set / Kaarttyp vun Definitiounen: add map xm { typeof iifname . ip Protokoll dport : Uerteel ;}
Source: opennet.ru
