Hidlydd pecyn nftables 0.9.9 rhyddhau

Mae rhyddhau hidlydd pecyn nftables 0.9.9 wedi'i gyhoeddi, gan uno rhyngwynebau hidlo pecynnau ar gyfer IPv4, IPv6, ARP a phontydd rhwydwaith (gyda'r nod o ddisodli iptables, ip6table, arpttables a ebtables). Ar yr un pryd, cyhoeddwyd rhyddhau'r llyfrgell gydymaith libnftnl 1.2.0, gan ddarparu API lefel isel ar gyfer rhyngweithio â'r is-system nf_tables. Mae'r newidiadau sydd eu hangen ar gyfer rhyddhau nftables 0.9.9 i weithio wedi'u cynnwys yn y cnewyllyn Linux 5.13-rc1.

Mae'r pecyn nftables yn cynnwys cydrannau hidlo pecyn sy'n rhedeg yng ngofod y defnyddiwr, tra bod y gwaith lefel cnewyllyn yn cael ei ddarparu gan yr is-system nf_tables, sydd wedi bod yn rhan o'r cnewyllyn Linux ers rhyddhau 3.13. Mae'r lefel cnewyllyn yn darparu rhyngwyneb protocol-annibynnol generig yn unig sy'n darparu swyddogaethau sylfaenol ar gyfer tynnu data o becynnau, perfformio gweithrediadau data, a rheoli llif.

Mae'r rheolau hidlo eu hunain a thrinwyr protocol-benodol yn cael eu crynhoi i god byte gofod defnyddiwr, ac ar ôl hynny mae'r cod byte hwn yn cael ei lwytho i'r cnewyllyn gan ddefnyddio'r rhyngwyneb Netlink a'i weithredu yn y cnewyllyn mewn peiriant rhithwir arbennig sy'n debyg i BPF (Berkeley Packet Filters). Mae'r dull hwn yn ei gwneud hi'n bosibl lleihau'n sylweddol faint y cod hidlo sy'n rhedeg ar lefel y cnewyllyn a symud holl swyddogaethau rheolau dosrannu a rhesymeg gweithio gyda phrotocolau i ofod defnyddwyr.

Prif arloesiadau:

  • Mae'r gallu i symud prosesu flowtable i ochr addasydd rhwydwaith wedi'i weithredu, wedi'i alluogi gan ddefnyddio'r faner 'dadlwytho'. Mae Flowtable yn fecanwaith ar gyfer optimeiddio llwybr ailgyfeirio pecynnau, lle mae llwybr cyflawn yr holl gadwyni prosesu rheolau yn cael ei gymhwyso i'r pecyn cyntaf yn unig, ac mae'r holl becynnau eraill yn y llif yn cael eu hanfon ymlaen yn uniongyrchol. table ip global { flowtable f { bachyn dod i mewn hidlydd blaenoriaeth + 1 dyfeisiau = { lan3, lan0, wan } baneri dadlwytho } cadwyn ymlaen { math hidlydd bachyn ymlaen hidlydd blaenoriaeth; derbyn polisi; protocol ip { tcp, udp } llif ychwanegu @f } post cadwyn { teip nat hook postrouting hidlydd blaenoriaeth; derbyn polisi; oifname "wan" masquerade } }
  • Ychwanegwyd cefnogaeth ar gyfer atodi baner perchennog i fwrdd i sicrhau defnydd unigryw o'r bwrdd gan broses. Pan ddaw proses i ben, caiff y tabl sy'n gysylltiedig ag ef ei ddileu'n awtomatig. Mae gwybodaeth am y broses yn cael ei harddangos yn y dymp rheolau ar ffurf sylw: table ip x { # progname nft flags perchennog cadwyn y { math hidlydd bachyn mewnbwn hidlydd blaenoriaeth; derbyn polisi; pecynnau cownter 1 beit 309 } }
  • Cefnogaeth ychwanegol i fanyleb IEEE 802.1ad (pentyrru VLAN neu QinQ), sy'n diffinio modd ar gyfer amnewid tagiau VLAN lluosog i un ffrâm Ethernet. Er enghraifft, i wirio'r math o ffrâm Ethernet allanol 8021ad a vlan id=342, gallwch ddefnyddio'r adeiladwaith ... ether math 802.1ad vlan id 342 i wirio'r math allanol o ffrâm Ethernet 8021ad/vlan id=1, nythu 802.1 q/vlan id=2 ac amgįu pecyn IP pellach: ... ether math 8021ad vlan id 1 math vlan 8021q vlan id 2 cownter ip math vlan
  • Cefnogaeth ychwanegol ar gyfer rheoli adnoddau gan ddefnyddio'r hierarchaeth unedig cgroups v2. Y gwahaniaeth allweddol rhwng cgroups v2 a v1 yw'r defnydd o hierarchaeth cgroups cyffredin ar gyfer pob math o adnoddau, yn lle hierarchaethau ar wahân ar gyfer dyrannu adnoddau CPU, ar gyfer rheoleiddio defnydd cof, ac ar gyfer I/O. Er enghraifft, i wirio a yw hynafiad soced ar y lefel gyntaf cgroupv2 yn cyfateb i'r mwgwd “system.slice”, gallwch ddefnyddio'r adeiladwaith: ... soced cgroupv2 lefel 1 “system.slice”
  • Ychwanegwyd y gallu i wirio cydrannau pecynnau SCTP (bydd y swyddogaeth sydd ei hangen ar gyfer hyn yn ymddangos yn y cnewyllyn Linux 5.14). Er enghraifft, i wirio a yw pecyn yn cynnwys talp gyda math 'data' a maes 'math': ... mae data talp sctp yn bodoli ... data sctp chunk math 0
  • Mae gweithrediad llwytho'r rheol wedi'i gyflymu tua dwywaith gan ddefnyddio'r faner “-f”. Mae allbwn y rhestr o reolau hefyd wedi'i gyflymu.
  • Darperir ffurflen gryno ar gyfer gwirio a yw darnau fflag wedi'u gosod. Er enghraifft, i wirio nad yw'r darnau statws snat a dnat wedi'u gosod, gallwch nodi: ... ct status ! snat,dnat i wirio bod y did syn wedi'i osod yn y bitmask syn,ack: ... tcp flags syn / syn,ack i wirio nad yw'r darnau esgyll a rst wedi eu gosod yn y bitmask syn,ack,fin,rst: ... baneri tcp! = esgyll, cyntaf / syn,c,fin,rst
  • Caniatáu'r allweddair "verdict" mewn diffiniadau set/map o fathau: ychwanegu map xm { typeof iifname . protocol ip th dport : rheithfarn ;}

Ffynhonnell: opennet.ru

Ychwanegu sylw