Megjelent az nftables 0.9.9 csomagszűrő. Egyesíti az IPv4, IPv6, ARP és hálózati hidak csomagszűrő interfészeit (célzottan az iptables, ip6table, arptables és ebtables leváltására). Ezzel egyidejűleg megjelent a kísérő libnftnl 1.2.0 könyvtár is, amely alacsony szintű API-t biztosít az nf_tables alrendszerrel való interakcióhoz. Az nftables 0.9.9-hez szükséges módosításokat beépítették a kernelbe. Linux 5.13-rc1.
Az nftables csomag tartalmazza a felhasználói térben működő csomagszűrő komponenseket, míg a kernel szintű munkát az nf_tables alrendszer biztosítja, amely a kernel része. Linux A 3.13-as kiadás óta a kernel szintjén csak egy általános, protokollfüggetlen interfész biztosított, amely alapvető funkciókat biztosít az adatok csomagokból való kinyeréséhez, adatműveletek végrehajtásához és az adatfolyam-vezérléshez.
Maguk a szűrési szabályok és a protokollspecifikus kezelők a felhasználói térben bájtkóddá alakulnak, majd ezt a bájtkódot a Netlink interfész segítségével betöltik a kernelbe, és egy speciális módon végrehajtják a kernelben. virtuális gép, ami a BPF-re (Berkeley Packet Filters) emlékeztet. Ez a megközelítés lehetővé teszi a kernel szinten futó szűrőkód méretének jelentős csökkentését, és az összes szabályelemzést és protokolllogikát a felhasználói térbe helyezi át.
Főbb újítások:
- Megvalósult a folyamatábra feldolgozás hálózati adapter oldalra helyezésének képessége, amely engedélyezve van az „offload” jelzővel. A Flowtable a csomagátirányítási útvonal optimalizálására szolgáló mechanizmus, amelyben az összes szabályfeldolgozási lánc teljes áthaladását csak az első csomagra alkalmazzák, és a folyamatban lévő összes többi csomagot közvetlenül továbbítják. table ip global { flowtable f { hook ingress priority filter + 1 devices = { lan3, lan0, wan } flags offload } chain forward { type filter hook forward priority filter; szabályzat elfogadása; ip protokoll { tcp, udp } flow add @f } chain post { type nat hook postrouting priority filter; szabályzat elfogadása; oifname "wan" maskara } }
- Támogatás hozzáadva a tulajdonosjelző táblához való csatolásához, hogy biztosítsa a tábla egy folyamat általi kizárólagos használatát. Amikor egy folyamat befejeződik, a hozzá tartozó tábla automatikusan törlődik. A folyamattal kapcsolatos információk megjegyzés formájában jelennek meg a szabálykiíratóban: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; szabályzat elfogadása; számlálócsomagok 1 bájt 309 } }
- Hozzáadott támogatás az IEEE 802.1ad specifikációhoz (VLAN stacking vagy QinQ), amely meghatározza a több VLAN-címke egyetlen Ethernet-keretbe történő helyettesítésének módját. Például a külső Ethernet-keret 8021ad és vlan id=342 típusának ellenőrzéséhez használhatja a konstrukciós ... ether type 802.1ad vlan id 342-t az Ethernet-keret 8021ad/vlan id=1, beágyazott 802.1 külső típusának ellenőrzéséhez. q/vlan id=2 és további IP-csomagok beágyazása: ... ether típusú 8021ad vlan id 1 vlan típus 8021q vlan id 2 vlan típusú ip számláló
- Támogatás hozzáadva az erőforrások kezeléséhez az egyesített hierarchia cgroups v2 használatával. A cgroups v2 és v1 közötti fő különbség az, hogy minden erőforrástípushoz közös cgroups hierarchiát használunk, ahelyett, hogy külön hierarchiát alkalmaznának a CPU erőforrások kiosztására, a memóriafelhasználás szabályozására és az I/O-ra. Például annak ellenőrzésére, hogy az első szintű cgroupv2 socket őse egyezik-e a „system.slice” maszkkal, használhatja a következő konstrukciót: ... socket cgroupv2 1. szintű „system.slice”
- Hozzáadva az SCTP csomagok összetevőinek ellenőrzésének lehetősége (a működéshez szükséges funkciók megjelennek a kernelben) Linux 5.14). Például annak ellenőrzéséhez, hogy egy csomag tartalmaz-e 'data' típusú és 'type' mezőjű chunk-ot: … sctp chunk data létezik … sctp chunk data type 0
- A szabálybetöltési művelet végrehajtása körülbelül kétszer gyorsult a „-f” jelző használatával. A szabálylista kimenete is felgyorsult.
- Kompakt űrlap áll rendelkezésre annak ellenőrzésére, hogy a jelzőbitek be vannak-e állítva. Például annak ellenőrzésére, hogy a snat és dnat status bitek nincsenek beállítva, megadhatja: ... ct status ! snat,dnat annak ellenőrzésére, hogy a syn bit be van-e állítva a bitmaszkban syn,ack: ... tcp flags syn / syn,ack annak ellenőrzésére, hogy az fin és az első bitek nincsenek-e beállítva a bitmaszkban syn,ack,fin,rst: ... tcp flags = fin,rst / syn,ack,fin,rst
- Engedélyezze a "verdict" kulcsszót a set/map typeof definíciókban: add map xm { typeof iifname . ip protokoll dport: ítélet ;}
Forrás: opennet.ru
