Parzûna pakêtê ya nftables 0.9.9 berdan

Serbestberdana parzûna pakêtê nftables 0.9.9 hate weşandin, ku navberên fîlterkirina pakêtê ji bo IPv4, IPv6, ARP û pirên torê yek dike (mebest ew e ku li şûna iptables, ip6table, arptables û ebtables). Di heman demê de, serbestberdana pirtûkxaneya hevalbendê libnftnl 1.2.0 hate weşandin, API-a-asta nizm ji bo danûstandina bi binepergala nf_tables re peyda dike. Guhertinên ku ji bo xebitandina serbestberdana nftables 0.9.9 hewce ne di kernel Linux 5.13-rc1 de hene.

Pakêta nftables hêmanên parzûna pakêtê yên ku di cîhê bikarhêner de dimeşin vedihewîne, dema ku xebata asta kernelê ji hêla binepergala nf_tables ve tê peyda kirin, ku ji berdana 3.13-an vir ve beşek ji kernel Linux-ê ye. Asta kernel tenê navgînek serbixwe-protokolek gelemperî peyda dike ku fonksiyonên bingehîn ji bo derxistina daneyan ji pakêtan, pêkanîna operasyonên daneyê, û kontrolkirina herikînê peyda dike.

Rêgezên fîlterkirinê û rêwerzên protokol-taybet di cîhê bikarhêner de di nav bytekodê de têne berhev kirin, pişt re ev bytekod bi karanîna navgîniya Netlink-ê di kernelê de tê barkirin û di kernelê de di makîneyek virtual ya taybetî ya ku BPF (Parzeyên Pakêta Berkeley) tîne bîra xwe de, tê darve kirin. Ev nêzîkatî dihêle hûn bi girîngî mezinahiya koda fîlterkirinê ya ku di asta kernelê de tê xebitandin kêm bikin û hemî fonksiyonên qaîdeyên parskirinê û mantiqê ji bo xebata bi protokolan re li cîhê bikarhêner biguhezînin.

Nûvekirinên sereke:

  • Kapasîteya guheztina pêvajoya tabloya herikandinê ber bi hêla adapterê torê ve hatî bicîh kirin, bi karanîna ala 'dakêşandin' ve hatî çalak kirin. Flowtable mekanîzmayek e ji bo xweşbînkirina riya beralîkirina pakêtê, ku tê de derbasbûna bêkêmasî ya hemî zincîreyên hilberandina qaîdeyan tenê li pakêta yekem tê sepandin, û hemî pakêtên din ên di herikê de rasterast têne şandin. tabloya ip global { flowtable f { fîltreya pêşîn a têketina hook + 1 cîhaz = { lan3, lan0, wan } alayên dakêşandî } zincîra pêş { type filter hook hook priority priority filter; polîtîka qebûl dikin; ip protokola { tcp, udp } herikîn lê zêde bike @f } posta zincîre { type nat hook postrouting priority filter; polîtîka qebûl dikin; oifname "wan" masquerade } }
  • Piştgiriyek ji bo girêdana ala xwedan maseyek zêde kir da ku ji hêla pêvajoyek ve karanîna taybetî ya tabloyê misoger bike. Dema ku pêvajoyek bi dawî bibe, tabloya pê re têkildar bixweber tê jêbirin. Agahdariya li ser pêvajoyê di rêziknameyê de di forma şîroveyê de tê xuyang kirin: ip x { # progname nft flags zincîra xwedan y { Parzûna pêşîn a têketina hookê binivîsîne; polîtîka qebûl dikin; pakêtên jimarvan 1 byte 309 } }
  • Piştgiriyek ji bo taybetmendiya IEEE 802.1ad (VLAN stacking an QinQ) zêde kir, ku navgînek ji bo cîgirkirina gelek tagên VLAN-ê di çarçoveyek Ethernetê de diyar dike. Mînakî, ji bo kontrolkirina celebê çarçoweya Ethernetê ya derveyî 8021ad û vlan id=342, hûn dikarin avakirina ... ether type 802.1ad vlan id 342 bikar bînin da ku cûreya derveyî ya çarçoveya Ethernet 8021ad/vlan id=1, 802.1 nested kontrol bikin. q/vlan id=2 û pêvekirina pakêta IP-ya din: ... ether type 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
  • Piştgiriyek ji bo birêvebirina çavkaniyan bi karanîna cgroupên hiyerarşiya yekbûyî v2 zêde kir. Cûdahiya sereke di navbera cgroupên v2 û v1 de, ji bo veqetandina çavkaniyên CPU-yê, ji bo birêkûpêkkirina mezaxtina bîranînê, û ji bo I/O, ji bo her cûre çavkaniyan, li şûna hiyerarşiyên cihêreng, karanîna hiyerarşiyek cgroupên hevpar e. Mînakî, ji bo kontrol bikin ka bav û kalê soketek di asta yekem cgroupv2 de bi maskeya "system.slice" re têkildar e, hûn dikarin vê çêkirinê bikar bînin: ... soket cgroupv2 asta 1 "system.slice"
  • Kapasîteya kontrolkirina pêkhateyên pakêtên SCTP zêde kir (fonksiyona ku ji bo vê yekê hewce dike dê di kernel Linux 5.14 de xuya bibe). Mînakî, ji bo kontrol bikin ka pakêtek perçeyek bi tîpa 'data' û zeviya 'type' heye: ... daneya perçeya sctp heye ... celebê daneya perçeya sctp 0
  • Pêkanîna operasyona barkirina qaîdeyê bi karanîna ala "-f" bi qasî du caran bileztir bûye. Hilberîna navnîşa qaîdeyan jî bileztir bûye.
  • Formek kompakt ji bo kontrolkirina ka bitsên ala hatine danîn tê peyda kirin. Mînakî, ji bo kontrol bikin ku bitsên statûya snat û dnat nehatine danîn, hûn dikarin diyar bikin: ... ct status ! snat,dnat ji bo kontrol bikin ku bit syn di bitmask syn,ack,ack: ... tcp alên syn / syn,ack ji bo kontrol bikin ku bit û rst di bitmask syn,ack,fin,rst de nehatine danîn: ... alayên tcp = fin,rst / syn,ack,fin,rst
  • Destûrê bide peyva sereke ya "biryara" di pênaseyên cûreyên set/nexşeyê de: nexşeya xm { typeof iifname . protokola ip dport : biryar ;}

Source: opennet.ru

Add a comment