nftables рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ 1.0.2 рд░рд┐рд▓реАрдЬ

рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ nftables 1.0.2 рдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, IPv4, IPv6, ARP рд░ рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд┐рдЬрд╣рд░реВ (iptables, ip6table, arptables рд░ ebtables рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ) рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдПрдХреАрдХреГрдд рдЧрд░реНрджреИред рдХрд╛рдо рдЧрд░реНрди nftables 1.0.2 рд░рд┐рд▓реАрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ 5.17-rc рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

nftables рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рдЪрд▓реНрдиреЗ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрдмрдХрд┐ рдХрд░реНрдиреЗрд▓-рд╕реНрддрд░рдХреЛ рдХрд╛рдо nf_tables рдЙрдкрдкреНрд░рдгрд╛рд▓реАрджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди 3.13 рд░рд┐рд▓реАрдЬрджреЗрдЦрд┐ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдХреЛ рдЕрдВрд╢ рднрдПрдХреЛ рдЫред рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░рд▓реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЯреЛрдХрд▓-рд╕реНрд╡рддрдиреНрддреНрд░ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдирд┐рдХрд╛рд▓реНрди, рдбрд╛рдЯрд╛ рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ, рд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдЖрдзрд╛рд░рднреВрдд рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

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

рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:

  • рдирд┐рдпрдо рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдореЛрдб рдердкрд┐рдПрдХреЛ рдЫ, рдирдпрд╛рдБ "-o" ("--рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ") рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓рд╛рдИ "--рдЪреЗрдХ" рд╡рд┐рдХрд▓реНрдкрд╕рдБрдЧ рдЬреЛрдбреНрди рд╕рдХрд┐рдиреНрдЫ рд░ рдирд┐рдпрдорд╕реЗрдЯ рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд▓реЛрдб рдирдЧрд░рд┐рдХрди рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред ред рдЕрдиреБрдХреВрд▓рдирд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдорд╛рди рдирд┐рдпрдорд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдирд┐рдпрдорд╣рд░реВ: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН ip saddr.1.1.1.1ip .2.2.2.2 ip saddr 2.2.2.2 ip daddr 3.3.3.3 рдбреНрд░рдк рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН

    рдореЗрдЯрд╛ iifname рдорд╛ рдЬреЛрдбрд┐рдиреЗрдЫред ip saddrред ip daddr {eth1. рез.рез.рез.резред 1.1.1.1, eth2.2.2.3ред рез.рез.рез.реиред 1} ip sadr рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред ip daddr vmap { 1.1.1.2 . реи.реи.реи.реи: рд╕реНрд╡реАрдХрд╛рд░, реи.реи.реи.реиред рей.рей.рей.рей : рдбреНрд░рдк}

    рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ: # nft -c -o -f ruleset.test рдорд░реНрдЬрд┐рдЩ: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 рдХрд╛рдЙрдиреНрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } рдХрд╛рдЙрдиреНрдЯрд░ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ 0 рдмрд╛рдЗрдЯрд╣рд░реВ 0 рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН

  • рд╕реЗрдЯ рд╕реВрдЪреАрд╣рд░реВрд▓реЗ ip рд░ tcp рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ, рд╕рд╛рдереИ sctp рдЦрдгреНрдбрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ: рд╕реЗрдЯ s5 { typeof ip option ra value рддрддреНрд╡рд╣рд░реВ = { 1, 1024 } } рд╕реЗрдЯ s7 { typeof sctp chunk init num-inbound-streams рддрддреНрд╡рд╣рд░реВ = { 1, 4 } } рдЪреЗрди c5 { ip option ra value @s5 рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН } рдЪреЗрди c7 { sctp chunk init num-inbound-streams @s7 рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН }
  • TCP рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ fastopen, md5sig рд░ mptcp рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
  • рдореНрдпрд╛рдкрд┐рдЩрдорд╛ mp-tcp рдЙрдкрдкреНрд░рдХрд╛рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ: tcp рд╡рд┐рдХрд▓реНрдк mptcp рдЙрдкрдкреНрд░рдХрд╛рд░ рез
  • рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдХрд░реНрдиреЗрд▓-рд╕рд╛рдЗрдб рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдХреЛрдбред
  • Flowtable рдЕрдм JSON рдврд╛рдБрдЪрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдЫред
  • рдЗрдерд░рдиреЗрдЯ рдлреНрд░реЗрдо рдорд┐рд▓реНрджреЛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ "рдЕрд╕реНрд╡реАрдХрд╛рд░" рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 рдЕрд╕реНрд╡реАрдХрд╛рд░

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди