nftables paka filtrilo 1.0.1 eldono

La liberigo de paka filtrilo nftables 1.0.1 estis publikigita, unuigante pakaĵetfiltrilinterfacojn por IPv4, IPv6, ARP kaj retaj pontoj (celitaj por anstataŭigi iptables, ip6table, arptables kaj ebtables). La ŝanĝoj necesaj por ke la eldono nftables 1.0.1 funkciu estas inkluzivitaj en la Linukso-kerno 5.16-rc1.

La nftables-pakaĵo inkluzivas pakatajn filtrilkomponentojn, kiuj funkcias en uzantspaco, dum la kernnivela laboro estas disponigita de la subsistemo nf_tables, kiu estis parto de la Linukso-kerno ekde eldono 3.13. La kernnivelo disponigas nur senmarkan protokol-sendependan interfacon kiu disponigas bazajn funkciojn por eltiri datenojn de pakaĵetoj, elfarante datumoperaciojn, kaj fluokontrolon.

La filtraj reguloj mem kaj protokol-specifaj pritraktiloj estas kompilitaj en uzantspacan bajtkodon, post kiu tiu bajtokodo estas ŝarĝita en la kernon uzante la Netlink-interfacon kaj efektivigita en la kerno en speciala virtuala maŝino simila al BPF (Berkeley Packet Filters). Ĉi tiu aliro ebligas signife redukti la grandecon de la filtra kodo funkcianta ĉe la kernnivelo kaj movi ĉiujn funkciojn de analizaj reguloj kaj la logikon labori kun protokoloj en uzantspacon.

Ĉefaj novigoj:

  • Reduktita memorkonsumo dum ŝarĝo de grandaj aroj kaj maplistoj.
  • Reŝargado de aro- kaj maplistoj estis akcelita.
  • La eligo de elektitaj tabloj kaj ĉenoj en grandaj regularo estis akcelita. Ekzemple, la ekzekuttempo de la komando "nft list ruleset" por montri aron da reguloj kun 100 mil vicoj estas 3.049 sekundoj, kaj kiam eligas nur la nat kaj filtriltabelojn ("nft list table nat", "nft list table filtrilo". ”) estas reduktita al 1.969 kaj 0.697 sekundoj.
  • La plenumo de demandoj kun la opcio "--koncize" estis akcelita dum prilaborado de reguloj kun grandaj aro- kaj mapo-listoj.
  • Eblas filtri trafikon el la ĉeno "egress", kiu estas prilaborita samnivele kiel la elirtraktilo en la netdev-ĉeno (egress-hoko), t.e. en la stadio kiam la ŝoforo ricevas pakaĵeton de la kerna retstako. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } prioritato 0; meta prioritato aro ip saddr mapo { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Permesas kongruon kaj modifon de bajtoj en la kaplinio kaj enhavo de pakaĵeto ĉe antaŭfiksita ofseto. # nft aldona regulo xy @ih,32,32 0x14000000 nombrilo # nft aldona regulo xy @ih,32,32 agordi 0x14000000 nombrilo

fonto: opennet.ru

Aldoni komenton