nftables 0.9.9 рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рддреЛ IPv4, IPv6, ARP рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд┐рдЬреЗрд╕рд╕рд╛рдареА рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЛ (iptables, ip6table, arptables рдЖрдгрд┐ ebtables рдпрд╛рдВрдирд╛ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгреВрди). рдпрд╛рд╕реЛрдмрддрдЪ, nf_tables рд╕рдмрд╕рд┐рд╕реНрдЯрдорд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рд▓реЛ-рд▓реЗрд╡реНрд╣рд▓ API рдкреНрд░рджрд╛рди рдХрд░рдгрд╛рд░реА libnftnl 1.2.0 рд▓рд╛рдпрдмреНрд░рд░реА рджреЗрдЦреАрд▓ рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. nftables 0.9.9 рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдмрджрд▓ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗрдд. Linux рел.резрей-рдЖрд░рд╕реАрез.
nftables рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдпреБрдЭрд░ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдХрд╛рдо рдХрд░рдгрд╛рд░реЗ рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рдШрдЯрдХ рдЕрд╕рддрд╛рдд, рддрд░ рдХрд░реНрдирд▓-рд╕реНрддрд░реАрдп рдХрд╛рдо nf_tables рд╕рдмрд╕рд┐рд╕реНрдЯрдорджреНрд╡рд╛рд░реЗ рдкреБрд░рд╡рд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рдХрд░реНрдирд▓рдЪрд╛ рдПрдХ рднрд╛рдЧ рдЖрд╣реЗ. Linux рд░рд┐рд▓реАрдЭ 3.13 рдкрд╛рд╕реВрди, рдХрд░реНрдирд▓ рд╕реНрддрд░рд╛рд╡рд░ рдлрдХреНрдд рдПрдХ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╕реНрд╡рддрдВрддреНрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рдкреЕрдХреЗрдЯрдордзреВрди рдбреЗрдЯрд╛ рдХрд╛рдврдгреЗ, рдбреЗрдЯрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреЗ рдЖрдгрд┐ рдлреНрд▓реЛ рдХрдВрдЯреНрд░реЛрд▓рд╕рд╛рдареА рдореВрд▓рднреВрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЛ.
рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдирд┐рдпрдо рд╕реНрд╡рддрдГ рдЖрдгрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рдБрдбрд▓рд░ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЬрд╛рдЧреЗрдд рдмрд╛рдпрдХреЛрдбрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рддреНрдпрд╛рдирдВрддрд░ рд╣рд╛ рдмрд╛рдпрдХреЛрдб рдиреЗрдЯрд▓рд┐рдВрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд╛рдкрд░реВрди рдХрд░реНрдирд▓рдордзреНрдпреЗ рд▓реЛрдб рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдХрд░реНрдирд▓рдордзреНрдпреЗ рдПрдХрд╛ рд╡рд┐рд╢реЗрд╖ рдкрджреНрдзрддреАрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди, BPF (рдмрд░реНрдХрд▓реЗ рдкреЕрдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░реНрд╕) рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреЗрдгрд╛рд░реЗ. рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рдХрд░реНрдирд▓ рд╕реНрддрд░рд╛рд╡рд░ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛрдбрдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рдд рд▓рдХреНрд╖рдгреАрдп рдШрдЯ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ рдЖрдгрд┐ рд╕рд░реНрд╡ рдирд┐рдпрдо рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЖрдгрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд▓реЙрдЬрд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЬрд╛рдЧреЗрдд рд╣рд▓рд╡рддреЛ.
рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:
- 'рдСрдлрд▓реЛрдб' рдлреНрд▓реЕрдЧ рд╡рд╛рдкрд░реВрди рдлреНрд▓реЛрдЯреЗрдмрд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдЕреЕрдбреЙрдкреНрдЯрд░ рдмрд╛рдЬреВрд▓рд╛ рд╣рд▓рд╡рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЖрд╣реЗ. рдлреНрд▓реЛрдЯреЗрдмрд▓ рд╣реА рдкреЕрдХреЗрдЯ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдкрд╛рде рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рд░реНрд╡ рдирд┐рдпрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдЦрд│реНрдпрд╛рдВрдЪрд╛ рд╕рдВрдкреВрд░реНрдг рдЯреНрд░реЕрд╡реНрд╣рд░реНрд╕рд▓ рдлрдХреНрдд рдкрд╣рд┐рд▓реНрдпрд╛ рдкреЕрдХреЗрдЯрд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдлреНрд▓реЛрдордзреАрд▓ рдЗрддрд░ рд╕рд░реНрд╡ рдкреЕрдХреЗрдЯ рдереЗрдЯ рдлреЙрд░рд╡рд░реНрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЯреЗрдмрд▓ рдЖрдпрдкреА рдЧреНрд▓реЛрдмрд▓ { рдлреНрд▓реЛрдЯреЗрдмрд▓ рдПрдл { рд╣реБрдХ рдЗрдирдЧреНрд░реЗрд╕ рдкреНрд░рд╛рдпреЛрд░рд┐рдЯреА рдлрд┐рд▓реНрдЯрд░ + рез рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕ = { lan3, lan0, рд╡реЕрди } рдлреНрд▓реЕрдЧ рдСрдлрд▓реЛрдб } рдЪреЗрди рдлреЙрд░рд╡рд░реНрдб { рдкреНрд░рдХрд╛рд░ рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдлреЙрд░рд╡рд░реНрдб рдкреНрд░рд╛рдпреЛрд░рд┐рдЯреА рдлрд┐рд▓реНрдЯрд░; рдкреЙрд▓рд┐рд╕реА рдЕтАНреЕрдХреНрд╕реЗрдкреНрдЯ; рдЖрдпрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ { рдЯреАрд╕реАрдкреА, рдпреВрдбреАрдкреА } рдлреНрд▓реЛ рдЕтАНреЕрдб @f } рдЪреЗрди рдкреЛрд╕реНрдЯ { рдкреНрд░рдХрд╛рд░ рдиреЕрдЯ рд╣реБрдХ рдкреЛрд╕реНрдЯрд░рд╛рдЙрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдпреЛрд░рд┐рдЯреА рдлрд┐рд▓реНрдЯрд░; рдкреЙрд▓рд┐рд╕реА рдЕтАНреЕрдХреНрд╕реЗрдкреНрдЯ; рдУрдЖрдпрдПрдлрдиреЗрдо "рд╡реЕрди" рдорд╛рд╕реНрдХрд░реЗрдб } }
- рдЯреЗрдмрд▓рд╡рд░ рдорд╛рд▓рдХ рдзреНрд╡рдЬ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЬреЛрдбрд▓реЗрд▓рд╛ рдЖрдзрд╛рд░, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпреЗрджреНрд╡рд╛рд░реЗ рдЯреЗрдмрд▓рдЪрд╛ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдкрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЛ. рдЬреЗрд╡реНрд╣рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ, рддреЗрд╡реНрд╣рд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдмрд▓ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╣рдЯрд╡рд▓реЗ рдЬрд╛рддреЗ. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рд╣рд┐рддреА рдирд┐рдпрдо рдбрдВрдкрдордзреНрдпреЗ рдЯрд┐рдкреНрдкрдгреА рдореНрд╣рдгреВрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ: рдЯреЗрдмрд▓ рдЖрдпрдкреА x { # рдкреНрд░реЛрдЧреНрдиреЕрдо рдПрдирдПрдлрдЯреА рдлреНрд▓реЕрдЧреНрдЬ рдорд╛рд▓рдХ рд╕рд╛рдЦрд│реА y { рдкреНрд░рдХрд╛рд░ рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдзрд╛рдиреНрдп рдлрд┐рд▓реНрдЯрд░; рдкреЙрд▓рд┐рд╕реА рд╕реНрд╡реАрдХрд╛рд░; рдХрд╛рдЙрдВрдЯрд░ рдкреЕрдХреЗрдЯреНрд╕ 1 рдмрд╛рдЗрдЯреНрд╕ 309 } }
- IEEE 802.1ad (VLAN рд╕реНрдЯреЕрдХрд┐рдВрдЧ рдХрд┐рдВрд╡рд╛ QinQ) рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирд╕рд╛рдареА рдЬреЛрдбрд▓реЗрд▓реЗ рд╕рдорд░реНрдерди, рдЬреЗ рдПрдХрд╛рдЪ рдЗрдерд░рдиреЗрдЯ рдлреНрд░реЗрдордордзреНрдпреЗ рдЕрдиреЗрдХ VLAN рдЯреЕрдЧ рдмрджрд▓рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдмрд╛рд╣реНрдп рдЗрдерд░рдиреЗрдЯ рдлреНрд░реЗрдо рдкреНрд░рдХрд╛рд░ 8021ad рдЖрдгрд┐ vlan id=342 рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА construct рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ ... ether type 802.1ad vlan id 342 рдмрд╛рд╣реНрдп рдЗрдерд░рдиреЗрдЯ рдлреНрд░реЗрдо рдкреНрд░рдХрд╛рд░ 8021ad/vlan id=1 рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, рдиреЗрд╕реНрдЯреЗрдб 802.1q/vlan id=2, рдЖрдгрд┐ IP рдкреЕрдХреЗрдЯрд▓рд╛ рдкреБрдвреЗ рдПрдиреНрдХреЕрдкреНрд╕реНрдпреБрд▓реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА: ... ether type 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
- рдпреБрдирд┐рдлрд╛рдЗрдб cgroups v2 рдкрджрд╛рдиреБрдХреНрд░рдо рд╡рд╛рдкрд░реВрди рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ. cgroups v2 рдЖрдгрд┐ v1 рдордзреАрд▓ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдлрд░рдХ рдореНрд╣рдгрдЬреЗ CPU рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдЯрдк, рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ I/O рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдВрдРрд╡рдЬреА рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп cgroups рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдЪрд╛ рд╡рд╛рдкрд░. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, cgroupv2 рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рд╕реЙрдХреЗрдЯрдЪрд╛ рдкреВрд░реНрд╡рдЬ "system.slice" рдорд╛рд╕реНрдХрд╢реА рдЬреБрд│рддреЛ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рд░рдЪрдирд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛: ... рд╕реЙрдХреЗрдЯ cgroupv2 рд╕реНрддрд░ 1 "system.slice"
- SCTP рдкреЕрдХреЗрдЯреНрд╕рдЪреЗ рдШрдЯрдХ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЖрд╣реЗ (рдХрд╛рд░реНрдпрд╡рд╛рд╣реАрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд░реНрдирд▓рдордзреНрдпреЗ рджрд┐рд╕реЗрд▓). Linux рел.резрек). рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдЦрд╛рджреНрдпрд╛ рдкреЕрдХреЗрдЯрдордзреНрдпреЗ 'data' рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ 'type' рдлреАрд▓реНрдб рдЕрд╕рд▓реЗрд▓рд╛ рдЪрдВрдХ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА: тАж sctp chunk data exists тАж sctp chunk data type 0
- "-f" рдлреНрд▓реЕрдЧ рд╡рд╛рдкрд░реВрди рдирд┐рдпрдо рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╡реЗрдЧ рдЬрд╡рд│рдЬрд╡рд│ рджреБрдкреНрдкрдЯ рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. рдирд┐рдпрдо рд╕реВрдЪреА рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреАрд▓ рд╡реЗрдЧрд╡рд╛рди рдЭрд╛рд▓рд╛ рдЖрд╣реЗ.
- рдлреНрд▓реЕрдЧреНрдЬрдордзреНрдпреЗ рдмрд┐рдЯреНрд╕рдЪреА рд╕реЗрдЯрд┐рдВрдЧ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рдлреЙрд░реНрдо рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, snat рдЖрдгрд┐ dnat рд╕реНрдерд┐рддреА рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реАрдд рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рд╣реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛: ... ct рд╕реНрдерд┐рддреА ! snat,dnat syn,ack рдмрд┐рдЯ рдорд╛рд╕реНрдХрдордзреНрдпреЗ syn рдмрд┐рдЯ рд╕реЗрдЯ рдХреЗрд▓реЗрд▓рд╛ рдЖрд╣реЗ рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА: ... tcp flags syn / syn,ack syn,ack,fin,rst рдмрд┐рдЯ рдорд╛рд╕реНрдХрдордзреНрдпреЗ fin рдЖрдгрд┐ rst рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реАрдд рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА: ... tcp flags != fin,rst / syn,ack,fin,rst
- рд╕реЗрдЯ/рдореЕрдкрд╕рд╛рдареА рдЯрд╛рдЗрдкрдСрдл рдбреЗрдлрд┐рдиреЗрд╢рдирдордзреНрдпреЗ "рд╡реНрд╣рд░реНрдбрд┐рдХреНрдЯ" рдХреАрд╡рд░реНрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ: add map xm { typeof iifname.ip protocol.th dport: verdict ;}
рд╕реНрддреНрд░реЛрдд: opennet.ru
