ะะฟัะฑะปะธะบะพะฒะฐะฝ ะฒัะฟััะบ ะฟะฐะบะตัะฝะพะณะพ ัะธะปัััะฐ nftables 0.9.9, ัะฝะธัะธัะธััััะตะณะพ ะธะฝัะตััะตะนัั ัะธะปัััะฐัะธะธ ะฟะฐะบะตัะพะฒ ะดะปั IPv4, IPv6, ARP ะธ ัะตัะตะฒัั ะผะพััะพะฒ (ะฝะฐัะตะปะตะฝ ะฝะฐ ะทะฐะผะตะฝั iptables, ip6table, arptables ะธ ebtables). ะะดะฝะพะฒัะตะผะตะฝะฝะพ ะพะฟัะฑะปะธะบะพะฒะฐะฝ ะฒัะฟััะบ ัะพะฟััััะฒัััะตะน ะฑะธะฑะปะธะพัะตะบะธ libnftnl 1.2.0, ะฟัะตะดะพััะฐะฒะปัััะตะน ะฝะธะทะบะพััะพะฒะฝะตะฒัะน API ะดะปั ะฒะทะฐะธะผะพะดะตะนััะฒะธั ั ะฟะพะดัะธััะตะผะพะน nf_tables. ะะตะพะฑั ะพะดะธะผัะต ะดะปั ัะฐะฑะพัั ะฒัะฟััะบะฐ nftables 0.9.9 ะธะทะผะตะฝะตะฝะธั ะฒะบะปััะตะฝั ะฒ ัะพััะฐะฒ ัะดัะฐ Linux 5.13-rc1.
เบเบธเบ nftables เบเบฐเบเบญเบเบกเบตเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป, เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฅเบฐเบเบฑเบ kernel เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบฅเบฐเบเบปเบเบเปเบญเบ nf_tables, เปเบเบดเปเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ Linux kernel เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเปเบญเบ 3.13. เบฅเบฐเบเบฑเบ kernel เบชเบฐเบซเบเบญเบเบเบฝเบเปเบเปเบชเปเบงเบเบเบดเบเบเปเปเปเบเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเปเบเบเบญเบเบเบปเปเบงเปเบเบเบตเปเบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฑเบเปเบเบฑเบ, เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบซเบผ.
เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบฅเบฐเบเบปเบงเบเบฑเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเปเบเบเบญเบเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบ bytecode เปเบเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ bytecode เบเบตเปเบเบทเบเปเบซเบฅเบเปเบเบปเปเบฒเปเบเปเบ kernel เปเบเบเปเบเปเบเบฒเบเปเบเปเบเบญเบ Netlink เปเบฅเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบ kernel เปเบเปเบเบทเปเบญเบ virtual เบเบดเปเบชเบเบเบตเปเบฅเบฐเบเบถเบเปเบเบดเบ BPF (Berkeley Packet Filters). เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเปเบเปเบเปเบฅเบฐเบเปเบฒเบเบซเบเปเบฒเบเบตเปเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบเปเบฅเบฐเปเบซเบเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบปเปเบฒเปเบเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเบปเปเบเบเป:
- ะ ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฒะพะทะผะพะถะฝะพััั ะฒัะฝะพัะฐ ะพะฑัะฐะฑะพัะบะธ flowtable ะฝะฐ ััะพัะพะฝั ัะตัะตะฒะพะณะพ ะฐะดะฐะฟัะตัะฐ, ะฒะบะปััะฐะตะผะฐั ะฟัะธ ะฟะพะผะพัะธ ัะปะฐะณะฐ โoffloadโ. Flowtable ะฟัะตะดััะฐะฒะปัะตั ัะพะฑะพะน ะผะตั ะฐะฝะธะทะผ ะพะฟัะธะผะธะทะฐัะธะธ ะฟััะธ ะฟะตัะตะฝะฐะฟัะฐะฒะปะตะฝะธั ะฟะฐะบะตัะพะฒ, ะฟัะธ ะบะพัะพัะพะผ ะฟะพะปะฝะพะต ะฟัะพั ะพะถะดะตะฝะธะต ะฒัะตั ัะตะฟะพัะตะบ ะพะฑัะฐะฑะพัะบะธ ะฟัะฐะฒะธะป ะฟัะธะผะตะฝัะตััั ัะพะปัะบะพ ะดะปั ะฟะตัะฒะพะณะพ ะฟะฐะบะตัะฐ, ะฐ ะฒัะต ะพััะฐะปัะฝัะต ะฟะฐะบะตัั ะฒ ะฟะพัะพะบะต ะฟัะพะฑัะฐััะฒะฐัั ะฝะฐะฟััะผัั. table ip global { flowtable f { hook ingress priority filter + 1 devices = { lan3, lan0, wan } flags offload } chain forward { type filter hook forward priority filter; policy accept; ip protocol { tcp, udp } flow add @f } chain post { type nat hook postrouting priority filter; policy accept; oifname ยซwanยป masquerade } }
- ะะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตัะถะบะฐ ะฟัะธะบัะตะฟะปะตะฝะธั ะบ ัะฐะฑะปะธัะต ัะปะฐะณะฐ ะดะปั ะฟัะธะฒัะทะบะธ ะบ ะฒะปะฐะดะตะปััั, ะบะพัะพััะน ะฟะพะทะฒะพะปัะตั ะพะฑะตัะฟะตัะธัั ัะบัะบะปัะทะธะฒะฝะพะต ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ัะฐะฑะปะธัั ะฟัะพัะตััะพะผ. ะัะธ ะทะฐะฒะตััะตะฝะธะธ ะฟัะพัะตััะฐ ะฟัะธะฒัะทะฐะฝะฝะฐั ะบ ะฝะตะผั ัะฐะฑะปะธัะฐ ะฐะฒัะพะผะฐัะธัะตัะบะธ ัะดะฐะปัะตััั. ะะฝัะพัะผะฐัะธั ะพ ะฟัะพัะตััะต ะพัะพะฑัะฐะถะฐะตััั ะฒ ะดะฐะผะฟะต ะฟัะฐะฒะธะป ะฒ ัะพัะผะต ะบะพะผะผะตะฝัะฐัะธั: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; policy accept; counter packets 1 bytes 309 } }
- ะะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตัะถะบะฐ ัะฟะตัะธัะธะบะฐัะธะธ IEEE 802.1ad (VLAN stacking ะธะปะธ QinQ), ะพะฟัะตะดะตะปัััะตะน ััะตะดััะฒะฐ ะดะปั ะฟะพะดััะฐะฝะพะฒะบะธ ะฝะตัะบะพะปัะบะธั ัะตะณะพะฒ VLAN ะฒ ะพะดะธะฝ ะบะฐะดั Ethernet. ะะฐะฟัะธะผะตั, ะดะปั ะฟัะพะฒะตัะบะธ ัะธะฟะฐ ะฒะฝะตัะฝะตะณะพ Ethernet-ะบะฐะดัะฐ 8021ad ะธ vlan id=342 ะผะพะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะบะพะฝััััะบัะธั โฆ ether type 802.1ad vlan id 342 ะดะปั ะฟัะพะฒะตัะบะธ ะฒะฝะตัะฝะตะณะพ ัะธะฟะฐ Ethernet-ะบะฐะดัะฐ 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 ัะฒะปัะตััั ะฟัะธะผะตะฝะตะฝะธะต ะพะฑัะตะน ะธะตัะฐัั ะธะธ cgroups ะดะปั ะฒัะตั ะฒะธะดะพะฒ ัะตััััะพะฒ, ะฒะผะตััะพ ัะฐะทะดะตะปัะฝัั ะธะตัะฐัั ะธะน ะดะปั ัะฐัะฟัะตะดะตะปะตะฝะธั ัะตััััะพะฒ CPU, ะดะปั ัะตะณัะปะธัะพะฒะฐะฝะธั ะฟะพััะตะฑะปะตะฝะธั ะฟะฐะผััะธ ะธ ะดะปั ะฒะฒะพะดะฐ/ะฒัะฒะพะดะฐ. ะะฐะฟัะธะผะตั, ะดะปั ะฟัะพะฒะตัะบะธ ัะพะพัะฒะตัััะฒัะตั ะปะธ ะฟัะตะดะพะบ ัะพะบะตัะฐ ะฝะฐ ะฟะตัะฒะพะผ ััะพะฒะฝะต cgroupv2 ะผะฐัะบะต ยซsystem.sliceยป ะผะพะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะบะพะฝัััะบัะธั: โฆ socket cgroupv2 level 1 ยซsystem.sliceยป
- ะะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพััั ะฟัะพะฒะตัะบะธ ัะพััะฐะฒะฝัั ัะฐััะตะน ะฟะฐะบะตัะพะฒ SCTP (ะฝะตะพะฑั ะพะดะธะผะฐั ะดะปั ัะฐะฑะพัั ััะฝะบัะธะพะฝะฐะปัะฝะพััั ะฟะพัะฒะธััั ะฒ ัะดัะต Linux 5.14). ะะฐะฟัะธะผะตั, ะดะปั ะฟัะพะฒะตัะบะธ ะฝะฐะปะธัะธั ะฒ ะฟะฐะบะตัะต chunk-ะฐ ั ัะธะฟะพะผ โdataโ ะธ ะฟะพะปะตะผ โtypeโ: โฆ sctp chunk data exists โฆ sctp chunk data type 0
- ะัะธะผะตัะฝะพ ะฒ ะดะฒะฐ ัะฐะทะฐ ััะบะพัะตะฝะพ ะฒัะฟะพะปะฝะตะฝะธะต ะพะฟะตัะฐัะธะธ ะทะฐะณััะทะบะธ ะฟัะฐะฒะธะป ะฟัะธ ะฟะพะผะพัะธ ัะปะฐะณะฐ ยซ-fยป. ะขะฐะบะถะต ััะบะพัะตะฝ ะฒัะฒะพะดะฐ ัะฟะธัะบะฐ ะฟัะฐะฒะธะป.
- ะัะตะดะพััะฐะฒะปะตะฝะฐ ะบะพะผะฟะฐะบัะฝะฐั ัะพัะผะฐ ะฟัะพะฒะตัะบะธ ัััะฐะฝะพะฒะบะธ ะฑะธัะพะฒ ะฒ ัะปะฐะณะฐั . ะะฐะฟัะธะผะตั, ะดะปั ะฟัะพะฒะตัะบะธ, ััะพ ะฑะธัั ัะพััะพัะฝะธั snat ะธ dnat ะฝะต ัััะฐะฝะพะฒะปะตะฝั ะผะพะถะฝะพ ัะบะฐะทัะฒะฐัั: โฆ ct status ! snat,dnat ะดะปั ะฟัะพะฒะตัะบะธ, ััะพ ะฑะธั syn ัััะฐะฝะพะฒะปะตะฝ ะฒ ะฑะธัะพะฒะพะน ะผะฐัะบะต syn,ack: โฆ tcp flags syn / syn,ack ะดะปั ะฟัะพะฒะตัะบะธ, ััะพ ะฑะธัั fin ะธ rst ะฝะต ัััะฐะฝะพะฒะปะตะฝั ะฒ ะฑะธัะพะฒะพะน ะผะฐัะบะต syn,ack,fin,rst: โฆ tcp flags != fin,rst / syn,ack,fin,rst
- ะ ะฐะทัะตัะตะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะบะปััะตะฒะพะณะพ ัะปะพะฒะฐ ยซverdictยป ะฒ ะพะฟัะตะดะตะปะตะฝะธัั typeof ะดะปั set/map: add map x m { typeof iifname . ip protocol . th dport : verdict ;}
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru