Hidlydd pecyn nftables 1.0.2 rhyddhau

Mae rhyddhau hidlydd pecyn nftables 1.0.2 wedi'i gyhoeddi, gan uno rhyngwynebau hidlo pecynnau ar gyfer IPv4, IPv6, ARP a phontydd rhwydwaith (gyda'r nod o ddisodli iptables, ip6table, arptables a ebtables). Mae'r newidiadau sydd eu hangen ar gyfer rhyddhau nftables 1.0.2 i weithio wedi'u cynnwys yn y cnewyllyn Linux 5.17-rc.

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 modd optimeiddio rheolau wedi'i ychwanegu, wedi'i alluogi gan ddefnyddio'r opsiwn "-o" ("--optimize") newydd, y gellir ei gyfuno â'r opsiwn "--check" i wirio a gwneud y gorau o newidiadau i'r ffeil set reolau heb ei lwytho mewn gwirionedd . Mae optimeiddio yn caniatáu ichi gyfuno rheolau tebyg, er enghraifft, y rheolau: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 derbyn meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 derbyn ip saddr 1.1.1.1 ip saddr 2.2.2.2. .2.2.2.2 derbyn ip saddr 3.3.3.3 ip daddr XNUMX gollwng

    yn cael ei gyfuno yn meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5} derbyn ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : derbyn, 2.2.2.2 . 3.3.3.3 : gollwng }

    Defnydd enghreifftiol: # nft -c -o -f ruleset.test Merging: ruleset.nft:16:3-37: ip daddr 192.168.0.1 cownter derbyn ruleset.nft:17:3-37: ip daddr 192.168.0.2 cownter derbyn ruleset.nft:18:3-37: ip daddr 192.168.0.3 cownter derbyn i mewn i: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } cownter pacedi 0 beit 0 derbyn

  • Mae'r rhestrau gosod yn gweithredu'r gallu i nodi opsiynau ip a tcp, yn ogystal â thapiau sctp: set s5 { typeof ip option ra elfennau gwerth = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } cadwyn c5 { opsiwn ip ra gwerth @s5 derbyn } cadwyn c7 { sctp talp init num-inbound-streams @s7 derbyn }
  • Cefnogaeth ychwanegol ar gyfer opsiynau TCP fastopen, md5sig a mptcp.
  • Cefnogaeth ychwanegol ar gyfer defnyddio'r isdeip mp-tcp mewn mapiau: opsiwn tcp is-deip 1 mptcp
  • Gwell cod hidlo ochr cnewyllyn.
  • Bellach mae gan Flowtable gefnogaeth lawn i'r fformat JSON.
  • Mae'r gallu i ddefnyddio'r weithred “gwrthod” mewn gweithrediadau paru ffrâm Ethernet wedi'i ddarparu. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 gwrthod

Ffynhonnell: opennet.ru

Ychwanegu sylw