nftables рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ 1.0.1 рд░рд┐рд▓реАрдЬ

рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ nftables 1.0.1 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдЭрд╛рд▓реЗ рдЖрд╣реЗ, IPv4, IPv6, ARP рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд┐рдЬ (iptables, ip6table, arptables рдЖрдгрд┐ ebtables рдмрджрд▓рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ) рд╕рд╛рдареА рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдПрдХрддреНрд░ рдХрд░рдгреЗ. рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА nftables 1.0.1 рдкреНрд░рдХрд╛рд╢рдирд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдмрджрд▓ Linux рдХрд░реНрдирд▓ 5.16-rc1 рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗрдд.

nftables рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд рдЬреЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдЪрд╛рд▓рддрд╛рдд, рддрд░ рдХрд░реНрдирд▓-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдп nf_tables рдЙрдкрдкреНрд░рдгрд╛рд▓реАрджреНрд╡рд╛рд░реЗ рдкреБрд░рд╡рд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рд░рд┐рд▓реАрдЬ 3.13 рдкрд╛рд╕реВрди Linux рдХрд░реНрдирд▓рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ. рдХрд░реНрдирд▓ рд╕реНрддрд░ рдлрдХреНрдд рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╕реНрд╡рддрдВрддреНрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЛ рдЬреЛ рдкреЕрдХреЗрдЯреНрд╕рдордзреВрди рдбреЗрдЯрд╛ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА, рдбреЗрдЯрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдгрд╛рд╕рд╛рдареА рдореВрд▓рднреВрдд рдХрд╛рд░реНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЛ.

рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧрдЪреЗ рдирд┐рдпрдо рд╕реНрд╡рддрдГ рдЖрдгрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рдБрдбрд▓рд░реНрд╕ рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рд╕реНрдкреЗрд╕ рдмрд╛рдпрдЯреЗрдХреЛрдбрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рддреНрдпрд╛рдирдВрддрд░ рд╣рд╛ рдмрд╛рдпрдХреЛрдб рдиреЗрдЯрд▓рд┐рдВрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд╛рдкрд░реВрди рдХрд░реНрдирд▓рдордзреНрдпреЗ рд▓реЛрдб рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ BPF (рдмрд░реНрдХрд▓реЗ рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░) рд╕рджреГрд╢ рд╡рд┐рд╢реЗрд╖ рдЖрднрд╛рд╕реА рдорд╢реАрдирдордзреНрдпреЗ рдХрд░реНрдирд▓рдордзреНрдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдХрд░реНрдирд▓ рд╕реНрддрд░рд╛рд╡рд░ рдЪрд╛рд▓рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛрдбрдЪрд╛ рдЖрдХрд╛рд░ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░рдгреЗ рдЖрдгрд┐ рдирд┐рдпрдорд╛рдВрдЪреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕рд░реНрд╡ рдХрд╛рд░реНрдп рдЖрдгрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреЗ рддрд░реНрдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЬрд╛рдЧреЗрдд рд╣рд▓рд╡рд┐рдгреЗ рд╢рдХреНрдп рдХрд░рддреЗ.

рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдореЛрдард╛ рд╕рдВрдЪ рдЖрдгрд┐ рдирдХрд╛рд╢рд╛ рд╕реВрдЪреА рд▓реЛрдб рдХрд░рддрд╛рдирд╛ рдХрдореА рдореЗрдорд░реА рд╡рд╛рдкрд░.
  • рд╕рдВрдЪ рдЖрдгрд┐ рдирдХрд╛рд╢рд╛ рдпрд╛рджреНрдпрд╛ рд░реАрд▓реЛрдбрд┐рдВрдЧрд▓рд╛ рд╡реЗрдЧ рдЖрд▓рд╛ рдЖрд╣реЗ.
  • рдореЛрдареНрдпрд╛ рдирд┐рдпрдо рд╕реЗрдЯрдордзреНрдпреЗ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдЯреЗрдмрд▓реНрд╕ рдЖрдгрд┐ рдЪреЗрдирдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рд╡реЗрдЧрд╡рд╛рди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 100 рд╣рдЬрд╛рд░ рдкрдВрдХреНрддреАрдВрд╕рд╣ рдирд┐рдпрдорд╛рдВрдЪрд╛ рд╕рдВрдЪ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА тАЬnft list rulesetтАЭ рдХрдорд╛рдВрдбрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ 3.049 рд╕реЗрдХрдВрдж рдЖрд╣реЗ рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдлрдХреНрдд nat рдЖрдгрд┐ рдлрд┐рд▓реНрдЯрд░ рдЯреЗрдмрд▓реНрд╕ (тАЬnft list table natтАЭ, тАЬnft list table filter тАЭ) 1.969 рдЖрдгрд┐ 0.697 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд рдХрдореА рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • рдореЛрдареНрдпрд╛ рд╕рдВрдЪ- рдЖрдгрд┐ рдирдХрд╛рд╢рд╛-рдпрд╛рджреНрдпрд╛рдВрд╕рд╣ рдирд┐рдпрдорд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ тАЬ--terseтАЭ рдкрд░реНрдпрд╛рдпрд╛рд╕рд╣ рдХреНрд╡реЗрд░реАрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд▓рд╛ рд╡реЗрдЧ рдЖрд▓рд╛ рдЖрд╣реЗ.
  • "рдПрдЧреНрд░реЗрд╕" рд╕рд╛рдЦрд│реАрддреВрди рд░рд╣рджрд╛рд░реА рдлрд┐рд▓реНрдЯрд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗрдЯрдбреЗрд╡реНрд╣ рдЪреЗрди (рдПрдЧреНрд░реЗрд╕ рд╣реБрдХ) рдордзреАрд▓ рдПрдЧреНрд░реЗрд╕ рд╣рдБрдбрд▓рд░ рдкреНрд░рдорд╛рдгреЗрдЪ рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╕реНрдЯреЗрдЬрд╡рд░ рдЬреЗрд╡реНрд╣рд╛ рдбреНрд░рд╛рдпрд╡реНрд╣рд░рд▓рд╛ рдХрд░реНрдирд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреЕрдХрдордзреВрди рдкреЕрдХреЗрдЯ рдорд┐рд│рддреЗ. рдЯреЗрдмрд▓ рдиреЗрдЯрджреЗрд╡ рдлрд┐рд▓реНрдЯрд░ { рдЪреЗрди рдПрдЧреНрд░реЗрд╕ { рдкреНрд░рдХрд╛рд░ рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдЗрдЧреНрд░реЗрд╕ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕ = { рдЗрде0, рдЗрде1 } рдкреНрд░рд╛рдзрд╛рдиреНрдп 0; рдореЗрдЯрд╛ рдкреНрд░рд╛рдпреЙрд░рд┐рдЯреА рд╕реЗрдЯ ip saddr рдирдХрд╛рд╢рд╛ { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } }
  • рджрд┐рд▓реЗрд▓реНрдпрд╛ рдСрдлрд╕реЗрдЯрд╡рд░ рдкреЕрдХреЗрдЯрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЖрдгрд┐ рд╕рд╛рдордЧреНрд░реАрдордзреАрд▓ рдмрд╛рдЗрдЯреНрд╕рдЪреЗ рдЬреБрд│рдгреА рдЖрдгрд┐ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. # nft рдЬреЛрдбрд╛ рдирд┐рдпрдо xy @ih,32,32 0x14000000 рдХрд╛рдЙрдВрдЯрд░ # nft рдЬреЛрдбрд╛ рдирд┐рдпрдо xy @ih,32,32 рд╕реЗрдЯ 0x14000000 рдХрд╛рдЙрдВрдЯрд░

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛