Lëshimi i filtrit të paketave nftables 1.0.1

Është publikuar lëshimi i filtrit të paketave nftables 1.0.1, duke unifikuar ndërfaqet e filtrimit të paketave për IPv4, IPv6, ARP dhe urat e rrjetit (që synojnë zëvendësimin e iptables, ip6table, arptables dhe ebtables). Ndryshimet e kërkuara për funksionimin e lëshimit të nftables 1.0.1 përfshihen në kernelin Linux 5.16-rc1.

Paketa nftables përfshin komponentët e filtrit të paketave që funksionojnë në hapësirën e përdoruesit, ndërsa puna në nivel kernel ofrohet nga nënsistemi nf_tables, i cili ka qenë pjesë e kernelit Linux që nga lëshimi 3.13. Niveli i kernelit siguron vetëm një ndërfaqe gjenerike të pavarur nga protokolli që ofron funksione bazë për nxjerrjen e të dhënave nga paketat, kryerjen e operacioneve të të dhënave dhe kontrollin e rrjedhës.

Rregullat e filtrimit dhe mbajtësit specifikë të protokollit përpilohen në bytecode në hapësirën e përdoruesit, pas së cilës ky bajtkod ngarkohet në kernel duke përdorur ndërfaqen Netlink dhe ekzekutohet në kernel në një makinë virtuale speciale që të kujton BPF (Berkeley Packet Filters). Kjo qasje ju lejon të zvogëloni ndjeshëm madhësinë e kodit të filtrimit që funksionon në nivelin e kernelit dhe të zhvendosni të gjitha funksionet e rregullave të analizimit dhe logjikës për të punuar me protokollet në hapësirën e përdoruesit.

Risitë kryesore:

  • Reduktohet konsumi i memories kur ngarkohen listat e mëdha të grupeve dhe hartave.
  • Ringarkimi i listave të grupeve dhe hartave është përshpejtuar.
  • Prodhimi i tabelave dhe zinxhirëve të zgjedhur në grupe të mëdha rregullash është përshpejtuar. Për shembull, koha e ekzekutimit të komandës "nft list ruleset" për të shfaqur një grup rregullash me 100 mijë rreshta është 3.049 sekonda, dhe kur nxirren vetëm tabelat nat dhe filtri ("nft list table nat", "nft list table filter ”) është reduktuar në 1.969 dhe 0.697 sekonda.
  • Ekzekutimi i pyetjeve me opsionin "--terse" është përshpejtuar kur përpunohen rregullat me lista të mëdha grupesh dhe hartash.
  • Është e mundur të filtrohet trafiku nga zinxhiri "dalje", i cili përpunohet në të njëjtin nivel me mbajtësin e daljes në zinxhirin netdev (grepa e daljes), d.m.th. në fazën kur drejtuesi merr një paketë nga staku i rrjetit të kernelit. tabela netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } prioriteti 0; set priority meta ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Lejon përputhjen dhe modifikimin e bajteve në kokën dhe përmbajtjen e një pakete në një zhvendosje të caktuar. # nft shto rregullin xy @ih,32,32 0x14000000 numërues # nft shto rregullin xy @ih,32,32 vendos 0x14000000 numërues

Burimi: opennet.ru

Shto një koment