nftables packet filter 0.9.9 nga pagpagawas

Ang pagpagawas sa packet filter nftables 0.9.9 gimantala, naghiusa sa packet filtering interface alang sa IPv4, IPv6, ARP ug network bridges (nga gitumong sa pag-ilis sa mga iptables, ip6table, arptables ug ebtables). Sa samang higayon, ang pagpagawas sa kaubang librarya nga libnftnl 1.2.0 gimantala, nga naghatag ug ubos nga lebel nga API alang sa pagpakig-uban sa nf_tables subsystem. Ang mga pagbag-o nga gikinahanglan alang sa pagpagawas sa nftables 0.9.9 aron magtrabaho gilakip sa Linux kernel 5.13-rc1.

Ang nftables package naglakip sa packet filter components nga nagdagan sa user space, samtang ang kernel level gihatag sa nf_tables subsystem, nga nahimong bahin sa Linux kernel sukad sa pagpagawas sa 3.13. Sa lebel sa kernel, usa lamang ka generic nga protocol-independent nga interface ang gihatag nga naghatag ug sukaranan nga mga gimbuhaton alang sa pagkuha sa datos gikan sa mga pakete, pagpahigayon sa mga operasyon sa datos, ug pagkontrol sa dagan.

Ang mga lagda sa pagsala sa ilang kaugalingon ug mga tigdumala nga espesipiko sa protocol gihugpong ngadto sa user-space bytecode, pagkahuman niini nga bytecode gikarga sa kernel gamit ang Netlink interface ug gipatuman sa kernel sa usa ka espesyal nga virtual machine nga susama sa BPF (Berkeley Packet Filters). Kini nga pamaagi nagpaposible nga makunhuran ang gidak-on sa code sa pagsala nga nagdagan sa lebel sa kernel ug ibalhin ang tanan nga mga gimbuhaton sa mga lagda sa pag-parse ug ang lohika sa pagtrabaho kauban ang mga protocol sa wanang sa gumagamit.

Panguna nga mga inobasyon:

  • Ang abilidad sa pagbalhin sa flowtable nga pagproseso ngadto sa network adapter nga bahin gipatuman, nga magamit gamit ang 'offload' nga bandila. Ang Flowtable usa ka mekanismo sa pag-optimize sa agianan sa packet redirection, diin ang kompleto nga pagpasa sa tanan nga mga kadena sa pagproseso sa lagda magamit lamang sa unang pakete, ug ang tanan nga uban nga mga pakete sa dagan direkta nga gipasa. table ip global { flowtable f { hook ingress priority filter + 1 device = { lan3, lan0, wan } flags offload } chain forward { type filter hook forward priority filter; pagdawat sa palisiya; ip protocol {tcp, udp } flow add @f } chain post {type nat hook postrouting priority filter; pagdawat sa palisiya; oifname "wan" masquerade } }
  • Gidugang nga suporta alang sa paglakip sa bandila sa tag-iya sa usa ka lamesa aron masiguro ang eksklusibo nga paggamit sa lamesa pinaagi sa usa ka proseso. Kung ang usa ka proseso matapos, ang lamesa nga nalangkit niini awtomatik nga mapapas. Ang impormasyon bahin sa proseso gipakita sa mga lagda dump sa porma sa usa ka komentaryo: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; pagdawat sa palisiya; mga counter packet 1 byte 309 }}
  • Gidugang nga suporta alang sa detalye sa IEEE 802.1ad (VLAN stacking o QinQ), nga naghubit sa usa ka paagi sa pag-ilis sa daghang mga tag sa VLAN sa usa ka frame sa Ethernet. Pananglitan, aron masusi ang matang sa external Ethernet frame 8021ad ug vlan id=342, mahimo nimong gamiton ang construction ... ether type 802.1ad vlan id 342 aron masusi ang external nga tipo sa Ethernet frame 8021ad/vlan id=1, nested 802.1 q/vlan id=2 ug dugang nga IP packet encapsulation: ... ether type 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
  • Gidugang nga suporta alang sa pagdumala sa mga kapanguhaan gamit ang hiniusa nga hierarchy cgroups v2. Ang yawe nga kalainan tali sa cgroups v2 ug v1 mao ang paggamit sa usa ka komon nga cgroups hierarchy para sa tanang matang sa resources, imbes sa separado nga hierarchy para sa pag-alokar sa CPU resources, para sa pag-regulate sa memory consumption, ug para sa I/O. Pananglitan, aron masusi kung ang katigulangan sa usa ka socket sa unang lebel nga cgroupv2 motakdo sa "system.slice" mask, mahimo nimong gamiton ang pagtukod: ... socket cgroupv2 level 1 "system.slice"
  • Gidugang ang abilidad sa pagsusi sa mga sangkap sa mga pakete sa SCTP (ang gamit nga gikinahanglan alang niini makita sa Linux kernel 5.14). Pananglitan, aron masusi kung ang usa ka pakete adunay sulod nga tipik nga adunay tipo nga 'data' ug field 'type': ... sctp chunk data anaa ... sctp chunk data type 0
  • Ang pagpatuman sa operasyon sa pagkarga sa lagda gipadali sa gibana-bana nga duha ka beses gamit ang "-f" nga bandila. Gipaspasan usab ang output sa listahan sa mga lagda.
  • Usa ka compact nga porma alang sa pagsusi kung ang mga flag bits gitakda ba gihatag. Pananglitan, aron masusi nga ang snat ug dnat status bits wala gitakda, mahimo nimong itakda ang: ... ct status ! snat,dnat aron masusi nga ang syn bit nabutang sa bitmask syn,ack: ... tcp flags syn / syn,ack aron masusi nga ang fin ug first bits wala gibutang sa bitmask syn,ack,fin,rst: ... tcp flags! = fin,rst / syn,ack,fin,rst
  • Itugot ang "paghukom" nga keyword sa set/mapa typeof definitions: add map xm {typeof iifname . ip protocol th dport: hukom ;}

Source: opennet.ru

Idugang sa usa ka comment