Izdanje filtra paketa nftables 1.0.1

Objavljeno je izdanje filtera paketa nftables 1.0.1, koje objedinjuje sučelja za filtriranje paketa za IPv4, IPv6, ARP i mrežne mostove (s ciljem zamjene iptables, ip6table, arptables i ebtables). Promjene potrebne za rad izdanja nftables 1.0.1 uključene su u Linux kernel 5.16-rc1.

Paket nftables uključuje komponente filtera paketa koje se izvode u korisničkom prostoru, dok rad na razini kernela osigurava podsustav nf_tables, koji je dio Linux kernela od izdanja 3.13. Razina kernela pruža samo generičko sučelje neovisno o protokolu koje pruža osnovne funkcije za izdvajanje podataka iz paketa, izvođenje podatkovnih operacija i kontrolu toka.

Pravila filtriranja i rukovatelji specifični za protokol kompajliraju se u bajt kod u korisničkom prostoru, nakon čega se ovaj bajt kod učitava u kernel pomoću Netlink sučelja i izvršava u kernelu u posebnom virtualnom stroju koji podsjeća na BPF (Berkeley Packet Filters). Ovaj pristup vam omogućuje da značajno smanjite veličinu koda za filtriranje koji se izvodi na razini jezgre i premjestite sve funkcije pravila parsiranja i logike za rad s protokolima u korisnički prostor.

Glavne inovacije:

  • Smanjena potrošnja memorije prilikom učitavanja velikih skupova i popisa karata.
  • Ubrzano je ponovno učitavanje popisa seta i karata.
  • Izlaz odabranih tablica i lanaca u velikim skupovima pravila je ubrzan. Na primjer, vrijeme izvršenja naredbe “nft list rulesset” za prikaz skupa pravila sa 100 tisuća redaka iznosi 3.049 sekundi, a pri ispisu samo tablica nat i filter (“nft list table nat”, “nft list table filter ”) smanjuje se na 1.969 i 0.697 sekundi.
  • Izvršenje upita s opcijom “--terse” ubrzano je pri obradi pravila s velikim popisima skupova i mapa.
  • Moguće je filtrirati promet iz “egress” lanca, koji se obrađuje na istoj razini kao i egress handler u netdev lancu (egress hook), tj. u fazi kada upravljački program prima paket od mrežnog stoga jezgre. tablica netdev filtar { lanac izlaza { vrsta filtera kuka izlazni uređaji = { eth0, eth1 } prioritet 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Omogućuje podudaranje i modificiranje bajtova u zaglavlju i sadržaju paketa na danom pomaku. # nft dodaj pravilo x y @ih,32,32 0x14000000 brojač # nft dodaj pravilo x y @ih,32,32 postavi 0x14000000 brojač

Izvor: opennet.ru

Dodajte komentar