ะะฟัะฑะปะธะบะพะฒะฐะฝ ะฒัะฟััะบ ะฟะฐะบะตัะฝะพะณะพ ัะธะปัััะฐ nftables 1.0.1, ัะฝะธัะธัะธััััะตะณะพ ะธะฝัะตััะตะนัั ัะธะปัััะฐัะธะธ ะฟะฐะบะตัะพะฒ ะดะปั IPv4, IPv6, ARP ะธ ัะตัะตะฒัั ะผะพััะพะฒ (ะฝะฐัะตะปะตะฝ ะฝะฐ ะทะฐะผะตะฝั iptables, ip6table, arptables ะธ ebtables). ะะตะพะฑั ะพะดะธะผัะต ะดะปั ัะฐะฑะพัั ะฒัะฟััะบะฐ nftables 1.0.1 ะธะทะผะตะฝะตะฝะธั ะฒะบะปััะตะฝั ะฒ ัะพััะฐะฒ ัะดัะฐ Linux 5.16-rc1.
เบเบธเบ nftables เบเบฐเบเบญเบเบกเบตเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป, เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฅเบฐเบเบฑเบ kernel เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบฅเบฐเบเบปเบเบเปเบญเบ nf_tables, เปเบเบดเปเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ Linux kernel เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเปเบญเบ 3.13. เบฅเบฐเบเบฑเบ kernel เบชเบฐเบซเบเบญเบเบเบฝเบเปเบเปเบชเปเบงเบเบเบดเบเบเปเปเปเบเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเปเบเบเบญเบเบเบปเปเบงเปเบเบเบตเปเบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฑเบเปเบเบฑเบ, เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบซเบผ.
เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบฅเบฐเบเบปเบงเบเบฑเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเปเบเบเบญเบเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบ bytecode เปเบเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ bytecode เบเบตเปเบเบทเบเปเบซเบฅเบเปเบเบปเปเบฒเปเบเปเบ kernel เปเบเบเปเบเปเบเบฒเบเปเบเปเบเบญเบ Netlink เปเบฅเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบ kernel เปเบเปเบเบทเปเบญเบ virtual เบเบดเปเบชเบเบเบตเปเบฅเบฐเบเบถเบเปเบเบดเบ BPF (Berkeley Packet Filters). เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเปเบเปเบเปเบฅเบฐเบเปเบฒเบเบซเบเปเบฒเบเบตเปเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบเปเบฅเบฐเปเบซเบเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบปเปเบฒเปเบเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเบปเปเบเบเป:
- ะกะพะบัะฐัะตะฝะพ ะฟะพััะตะฑะปะตะฝะธะต ะฟะฐะผััะธ ะฟัะธ ะทะฐะณััะทะบะต ะฑะพะปััะธั set- ะธ map-ัะฟะธัะบะพะฒ.
- ะฃัะบะพัะตะฝะฐ ะฟะตัะตะทะฐะณััะทะบะฐ set- ะธ map-ัะฟะธัะบะพะฒ.
- ะฃัะบะพัะตะฝ ะฒัะฒะพะด ะธะทะฑัะฐะฝะฝัั ัะฐะฑะปะธั ะธ ัะตะฟะพัะตะบ ะฒ ะฑะพะปััะธั ะฝะฐะฑะพัะฐั ะฟัะฐะฒะธะป. ะะฐะฟัะธะผะตั, ะฒัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ะบะพะผะฐะฝะดั ยซnft list rulesetยป ะดะปั ะฒัะฒะพะดะฐ ะฝะฐะฑะพัะฐ ะฟัะฐะฒะธะป, ะฝะฐััะธััะฒะฐััะตะณะพ 100 ััััั ัััะพะบ, ัะพััะฐะฒะปัะตั 3.049 ัะตะบัะฝะดั, ะฐ ะฟัะธ ะฒัะฒะพะดะต ัะพะปัะบะพ ัะฐะฑะปะธั nat ะธ filter (ยซnft list table natยป, ยซnft list table filterยป) ัะพะบัะฐัะฐะตััั ะดะพ 1.969 ะธ 0.697 ัะตะบัะฝะด.
- ะฃัะบะพัะตะฝะพ ะฒัะฟะพะปะฝะตะฝะธะต ะทะฐะฟัะพัะพะฒ ั ะพะฟัะธะตะน ยซโterseยป ะฟัะธ ะพะฑัะฐะฑะพัะบะต ะฟัะฐะฒะธะป ั ะฑะพะปััะธะผะธ set- ะธ map-ัะฟะธัะบะฐะผะธ.
- ะัะตะดะพััะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพััั ัะธะปัััะฐัะธะธ ััะฐัะธะบะฐ ะธะท ัะตะฟะพัะบะธ ยซegressยป, ะพะฑัะฐะฑะฐััะฒะฐะตะผะพะน ะฝะฐ ัะพะผ ะถะต ััะพะฒะฝะต, ััะพ egress-ะพะฑัะฐะฑะพััะธะบ ะฒ ัะตะฟะพัะบะต netdev (hook egress), ั.ะต. ะฝะฐ ััะฐะดะธะธ ะบะพะณะดะฐ ะดัะฐะนะฒะตั ะฟะพะปััะฐะตั ะฟะฐะบะตั ะพั ัะตัะตะฒะพะณะพ ััะตะบะฐ ัะดัะฐ. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
- ะ ะฐะทัะตัะตะฝะพ ัะพะฟะพััะฐะฒะปะตะฝะธะต ะธ ะธะทะผะตะฝะตะฝะธะต ะฑะฐะนัะพะฒ ะฒ ะทะฐะณะพะปะพะฒะบะต ะธ ัะพะดะตัะถะธะผะพะผ ะฟะฐะบะตัะฐ ะฟะพ ะทะฐะดะฐะฝะฝะพะผั ัะผะตัะตะฝะธั. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru