Lansarea filtrului de pachete nftables 1.0.1

A fost publicată lansarea filtrului de pachete nftables 1.0.1, care unifică interfețele de filtrare a pachetelor pentru IPv4, IPv6, ARP și punți de rețea (destinată înlocuirii iptables, ip6tables, arptables și ebtables). Modificările necesare funcționării lansării nftables 1.0.1 sunt incluse în nucleul Linux 5.16-rc1.

Pachetul nftables include componente ale filtrului de pachete care funcționează în spațiul utilizatorului, în timp ce, la nivel de nucleu, funcționarea este asigurată de subsistemul nf_tables, parte a nucleului Linux începând cu versiunea 3.13. La nivel de nucleu se oferă doar o interfață generală, independentă de protocolul specific, care asigură funcții de bază pentru extragerea datelor din pachete, executarea operațiunilor cu datele și gestionarea fluxului.

Regulile de filtrare și handler-ii specifici pentru protocoale sunt compilate în bytecode în spațiul utilizatorului, după care acest bytecode este încărcat în nucleu prin intermediul interfeței Netlink și executat în nucleu într-un mod special mașina virtuală, similar cu BPF (Berkeley Packet Filters). Această abordare permite reducerea semnificativă a dimensiunii codului de filtrare care funcționează la nivel de nucleu și mutarea tuturor funcțiilor de analiză a regulilor și logica de funcționare cu protocoalele în spațiul utilizatorului.

Noutăți principale:

  • Consumul de memorie a fost redus atunci când se încarcă liste mari de seturi și hărți.
  • Încărcarea seturilor și hărților a fost accelerată.
  • A fost accelerată afișarea tabelelor și lanțurilor favorite în seturi mari de reguli. De exemplu, timpul necesar pentru executarea comenzii „nft list ruleset” pentru a afișa un set de reguli de 100.000 de linii este de 3.049 secunde, iar pentru afișarea doar a tabelelor nat și filter („nft list table nat”, „nft list table filter”) se reduce la 1.969 și 0.697 secunde.
  • Executarea interogărilor cu opțiunea „—terse” a fost accelerată atunci când se procesează reguli cu seturi și hărți mari.
  • A fost oferită posibilitatea de a filtra traficul din lanțul „egress”, care este procesat la același nivel cu handler-ul egress din lanțul netdev (hook egress), adică în momentul în care driver-ul primește un pachet de la stiva de rețea a nucleului. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • A fost permisă înregistrarea și modificarea byte-urilor din antetul și conținutul pachetului conform unui offset specificat. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster