Hidlydd pecyn nftables 1.0.1 rhyddhau

Mae rhyddhau hidlydd pecyn nftables 1.0.1 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). Mae'r newidiadau sydd eu hangen ar gyfer rhyddhau nftables 1.0.1 i weithio wedi'u cynnwys yn y cnewyllyn Linux 5.16-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:

  • Llai o ddefnydd cof wrth lwytho rhestrau set a mapiau mawr.
  • Mae ail-lwytho rhestrau set a mapiau wedi'i gyflymu.
  • Mae allbwn tablau a chadwyni dethol mewn setiau rheolau mawr wedi'i gyflymu. Er enghraifft, amser gweithredu'r gorchymyn “nft list ruleset” i arddangos set o reolau gyda 100 mil o resi yw 3.049 eiliad, ac wrth allbynnu dim ond y tablau nat a hidlydd (“nft list table nat”, “hidlen tabl rhestr nft ”) yn cael ei ostwng i 1.969 a 0.697 eiliad.
  • Mae gweithredu ymholiadau gyda'r opsiwn “-terse” wedi'i gyflymu wrth brosesu rheolau gyda rhestrau set a mapiau mawr.
  • Mae’n bosibl hidlo traffig o’r gadwyn “allanfa”, sy’n cael ei phrosesu ar yr un lefel â’r triniwr allanfa yn y gadwyn netdev (bachyn allanfa), h.y. ar y cam pan fydd y gyrrwr yn derbyn pecyn o'r pentwr rhwydwaith cnewyllyn. ffilter netdev tabl { egress gadwyn { math hidlydd bachyn dyfeisiau egress = { eth0, eth1 } blaenoriaeth 0; meta set blaenoriaeth map ip saddr { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Yn caniatáu paru ac addasu beit ym mhennyn a chynnwys pecyn ar wrthbwyso penodol. # nft ychwanegu rheol xy @ih,32,32 0x14000000 cownter # nft ychwanegu rheol xy @ih,32,32 gosod cownter 0x14000000

Ffynhonnell: opennet.ru

Ychwanegu sylw