nftables 1.0.1, e Paketfilter-Framework, deen d'Paketfilter-Interfaces fir IPv4, IPv6, ARP a Netzwierkbrécke vereenegt, gouf erausbruecht (als Ersatz fir iptables, ip6table, arptables an ebtables geduecht). D'Ännerungen, déi fir nftables 1.0.1 erfuerderlech sinn, goufen am Kernel integréiert. Linux 5.16-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:
- Reduzéiert Erënnerungsverbrauch beim Luede vu grousse Set- a Kaartlëschten.
- D'Reloading vu Set- a Kaartlëschte gouf beschleunegt.
- D'Ausgab vun ausgewielten Dëscher a Ketten a grousse Reegelen ass beschleunegt. Zum Beispill ass d'Ausféierungszäit vum Kommando "nft list ruleset" fir eng Rei vu Regelen mat 100 Tausend Reihen ze weisen ass 3.049 Sekonnen, a wann Dir nëmmen d'Nat- a Filtertabellen ausginn ("nft list table nat", "nft list table filter" ”) gëtt op 1.969 an 0.697 Sekonnen reduzéiert.
- D'Ausféierung vun Ufroe mat der Optioun "--terse" gouf beschleunegt wann d'Regele mat grousse Set- a Kaartlëschte veraarbecht ginn.
- Et ass méiglech Traffic aus der "Egress" Kette ze filteren, déi um selwechten Niveau wéi den Ausgangshandter an der Netdev Kette (Egress Hook) veraarbecht gëtt, d.h. op der Etapp wou de Chauffer e Paket aus dem Kernel Netzwierkstack kritt. Dësch netdev Filter {Kette egress {Typ Filter Hook egress Apparater = {eth0, eth1} Prioritéit 0; meta Prioritéit Set IP saddr Kaart {192.168.10.2: abcd:2, 192.168.10.3: abcd:3}}}
- Erlaabt Matching an Ännerung vu Bytes am Header an Inhalter vun engem Paket bei enger bestëmmter Offset. # nft add rule xy @ih,32,32 0x14000000 counter # nft add rule xy @ih,32,32 set 0x14000000 counter
Source: opennet.ru
