Filtri i paketave nftables 0.9.9 është publikuar. Ai unifikon ndërfaqet e filtrimit të paketave për IPv4, IPv6, ARP dhe urat e rrjetit (të synuara si zëvendësim për iptables, ip6table, arptables dhe ebtables). Biblioteka shoqëruese libnftnl 1.2.0, e cila ofron një API të nivelit të ulët për bashkëveprimin me nënsistemin nf_tables, është publikuar njëkohësisht. Ndryshimet e kërkuara për nftables 0.9.9 janë përfshirë në bërthamë. Linux 5.13-rc1.
Paketa nftables përmban komponentët e filtrit të paketave që veprojnë në hapësirën e përdoruesit, ndërsa puna në nivel kernel sigurohet nga nënsistemi nf_tables, i cili është pjesë e kernelit. Linux Që nga versioni 3.13, në nivelin e bërthamës ofrohet vetëm një ndërfaqe gjenerike e pavarur nga protokolli, duke ofruar funksionalitet bazë për nxjerrjen e të dhënave nga paketat, kryerjen e operacioneve të të dhënave dhe kontrollin e rrjedhës.
Vetë rregullat e filtrimit dhe trajtuesit specifikë të protokollit përpilohen në kod bajtesh në hapësirën e përdoruesit, pas së cilës ky kod bajtesh ngarkohet në kernel duke përdorur ndërfaqen Netlink dhe ekzekutohet në kernel në një mënyrë të veçantë. makinë virtuale, që të kujton BPF (Berkeley Packet Filters). Kjo qasje lejon një reduktim të ndjeshëm në madhësinë e kodit të filtrimit që ekzekutohet në nivelin e bërthamës dhe zhvendos të gjithë analizimin e rregullave dhe logjikën e protokollit në hapësirën e përdoruesit.
Risitë kryesore:
- Mundësia për të zhvendosur përpunimin e tabelës së rrjedhës në anën e përshtatësit të rrjetit është zbatuar, e mundësuar duke përdorur flamurin 'offload'. Flowtable është një mekanizëm për optimizimin e rrugës së ridrejtimit të paketave, në të cilin kalimi i plotë i të gjithë zinxhirëve të përpunimit të rregullave zbatohet vetëm në paketën e parë, dhe të gjitha paketat e tjera në rrjedhë përcillen drejtpërdrejt. ip tabela globale { tabela e rrjedhës f { filtri i përparësisë së hyrjes së fiksimit + 1 pajisje = { lan3, lan0, wan } shkarkimi i flamujve } zinxhiri përpara { lloji i filtrit të fiksimit të përparësisë përpara; pranimi i politikës; ip protocol { tcp, udp } flow add @f } chain post { type nat hook postrouting priority filter; pranimi i politikës; maskaradë oifname "wan" } }
- Mbështetje e shtuar për bashkëngjitjen e një flamuri pronari në një tabelë për të siguruar përdorimin ekskluziv të tabelës nga një proces. Kur një proces përfundon, tabela e lidhur me të fshihet automatikisht. Informacioni rreth procesit shfaqet në deponimin e rregullave në formën e një komenti: tabela ip x { # progname nft flags pronar zinxhir y { type filtri hook input priority filter; pranimi i politikës; paketat kundër 1 bajt 309 } }
- Mbështetje e shtuar për specifikimin IEEE 802.1ad (VLAN stacking ose QinQ), i cili përcakton një mjet për zëvendësimin e etiketave të shumta VLAN në një kornizë të vetme Ethernet. Për shembull, për të kontrolluar llojin e kornizës së jashtme Ethernet 8021ad dhe vlan id=342, mund të përdorni konstruksionin ... tipi ether 802.1ad vlan id 342 për të kontrolluar llojin e jashtëm të kornizës Ethernet 8021ad/vlan id=1, i vendosur 802.1 q/vlan id=2 dhe më tej enkapsulimi i paketës IP: ... tipi eter 8021ad vlan id 1 tip vlan 8021q vlan id 2 vlan tip ip counter
- Mbështetje e shtuar për menaxhimin e burimeve duke përdorur cgroups të hierarkisë së unifikuar v2. Dallimi kryesor midis cgroups v2 dhe v1 është përdorimi i një hierarkie të përbashkët cgroups për të gjitha llojet e burimeve, në vend të hierarkive të veçanta për shpërndarjen e burimeve të CPU, për rregullimin e konsumit të memories dhe për I/O. Për shembull, për të kontrolluar nëse paraardhësi i një prize në nivelin e parë cgroupv2 përputhet me maskën "system.slice", mund të përdorni konstruksionin: ... fole cgroupv2 niveli 1 "system.slice"
- U shtua mundësia për të kontrolluar përbërësit e paketave SCTP (funksionaliteti i kërkuar për funksionim do të shfaqet në bërthamë) Linux 5.14). Për shembull, për të kontrolluar nëse një paketë përmban një copë të dhënash me llojin 'të dhëna' dhe fushën 'type': ⊠të dhënat e copës sctp ekzistojnë ⊠të dhënat e copës sctp të dhënash të llojit 0
- Ekzekutimi i operacionit tĂ« ngarkimit tĂ« rregullave Ă«shtĂ« pĂ«rshpejtuar afĂ«rsisht dy herĂ« duke pĂ«rdorur flamurin â-fâ. ĂshtĂ« pĂ«rshpejtuar edhe prodhimi i listĂ«s sĂ« rregullave.
- Ofrohet një formë kompakte për të kontrolluar nëse bitet e flamurit janë vendosur. Për shembull, për të kontrolluar që pjesët e statusit snat dhe dnat nuk janë vendosur, mund të specifikoni: ... statusi ct ! snat,dnat për të kontrolluar nëse biti syn është vendosur në bitmask syn,ack: ... tcp flamuj syn / syn,ack për të kontrolluar që bit fin dhe rst nuk janë vendosur në bitmask syn,ack,fin,rst: ... flamuj tcp ! = fin,rst / syn,ack,fin,rst
- Lejo fjalën kyçe "vendim" në përkufizimet e llojit të grupit/hartës: shtoni hartën xm { typeof iifname . protokolli ip th dport : verdikt ;}
Burimi: opennet.ru
