เบˆเบฑเบ”เบžเบตเบกเบกเบฒ เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบเบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ” nftables 0.9.4, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบชเปเบฒเบฅเบฑเบš iptables, ip6table, arptables เปเบฅเบฐ ebtables เป‚เบ”เบ unifying packet filtering interfaces เบชเปเบฒเบฅเบฑเบš IPv4, IPv6, ARP เปเบฅเบฐเบ‚เบปเบงเป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบŠเบธเบ” nftables เบ›เบฐเบเบญเบšเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบฅเบฐเบ”เบฑเบš kernel เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบฅเบฐเบšเบปเบšเบเปˆเบญเบ nf_tables, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ Linux kernel เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบญเบ 3.13. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบญเบ nftables 0.9.4 เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบชเบฒเบ‚เบฒ kernel เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. Linux 5.6.

เปƒเบ™เบฅเบฐเบ”เบฑเบš kernel, เบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบฑเบ™เบ•เบปเบงเป‚เบ•เป‰เบ•เบญเบšเปเบšเบšเป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบžเบฑเบเป€เบเบฑเบ”, เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผ. เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเป‚เบ›เป‚เบ•เบ„เบญเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bytecode เบŠเปˆเบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ bytecode เบ™เบตเป‰เบ–เบทเบเป‚เบซเบฅเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ kernel เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš Netlink เปเบฅเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ kernel เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบžเบดเป€เบชเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบš BPF (Berkeley Packet Filters). เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš kernel เปเบฅเบฐเบเป‰เบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเบเบเบปเบ”เบฅเบฐเบšเบฝเบšเปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป‚เบ›เป‚เบ•เบ„เบญเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ•เบปเป‰เบ™เบ•เป:

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป„เบฅเบเบฐเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (concatenation, เบกเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐเบžเบญเบ”เบ—เบตเปˆเบ‡เปˆเบฒเบเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš). เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ” "เบšเบฑเบ™เบŠเบตเบ‚เบฒเบง" เบ—เบตเปˆเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเปเบ™เบš, เบเบฒเบ™เบฅเบฐเบšเบธเบ—เบธเบ‡ "เป„เบฅเบเบฐเบซเปˆเบฒเบ‡" เบˆเบฐเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบŠเบธเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบ›เบฐเบเบญเบšเบกเบตเป„เบฅเบเบฐเบ•เปˆเบฒเบ‡เป†เปƒเบ™เป„เบŸเบฅเปŒเปเบ™เบš (เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปเบ™เบš "ipv4_addr . ipv4_addr . inet_service" เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เป„เบ”เป‰. เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก "192.168.10.35. 192.68.11.123", เปเบฅเบฐเบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบเบธเปˆเบกเบ—เบตเปˆเบขเบนเปˆ "80-192.168.10.35-192.168.10.40.

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ip foo {
    เบ•เบฑเป‰เบ‡เบšเบฑเบ™เบŠเบตเบ‚เบฒเบง {
    เบžเบดเบก ipv4_addr . ipv4_addr. inet_service
    เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ—เบธเบ‡
    เบญเบปเบ‡เบ›เบฐเบเบญเบš = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
    }

    เปเบ–เบšเป‚เบชเป‰ {
    type filter hook prerouting priority filter; เบ™เบฐเป‚เบเบšเบฒเบเบซเบผเบธเบ”เบฅเบปเบ‡;
    ip saddr. ip เบžเปเปˆ. tcp dport @whitelist เบเบญเบกเบฎเบฑเบš
    }
    }

  • เปƒเบ™เบŠเบธเบ”เปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เปเบœเบ™เบ—เบตเปˆ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ "typeof", เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฑเบšเบ„เบนเปˆ.
    เบ•เบปเบงเบขเปˆเบฒเบ‡:

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ip foo {
    เบ•เบฑเป‰เบ‡เบšเบฑเบ™เบŠเบตเบ‚เบฒเบง {
    เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ ip saddr
    เบญเบปเบ‡เบ›เบฐเบเบญเบš = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    เปเบ–เบšเป‚เบชเป‰ {
    type filter hook prerouting priority filter; เบ™เบฐเป‚เบเบšเบฒเบเบซเบผเบธเบ”เบฅเบปเบ‡;
    ip daddr @whitelist เบเบญเบกเบฎเบฑเบš
    }
    }

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ip foo {
    เปเบœเบ™เบ—เบตเปˆ addr2mark {
    เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ ip saddr: เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ meta
    เบญเบปเบ‡เบ›เบฐเบเบญเบš = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบœเบนเบเบกเบฑเบ” NAT, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐเบžเบญเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ NAT เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฅเบฒเบเบŠเบทเปˆเปเบœเบ™เบ—เบตเปˆเบซเบผเบทเบŠเบธเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆ:

    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš ip nat pre dnat ip addr . port to ip saddr map { 1.1.1.1 : 2.2.2.2 . เบชเบฒเบกเบชเบดเบš }

    nft เป€เบžเบตเปˆเบกเปเบœเบ™เบ—เบตเปˆ ip nat เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡ {เบ›เบฐเป€เบžเบ” ipv4_addr . inet_service: ipv4_addr. inet_service \\; }
    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš ip nat pre dnat ip addr . port to ip saddr. tcp dport เปเบœเบ™เบ—เบตเปˆ @destinations

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบกเบตเบšเบฒเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบšเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบœเปˆเบฒเบ™ ethtool utility (โ€œethtool -K eth0 hw-tc-offload onโ€), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™ nftables เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ•เบปเป‰เบ™เบ•เปเป‚เบ”เบเปƒเบŠเป‰เบ—เบธเบ‡ "offload". เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Linux kernel 5.6, เบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบฎเบฒเบ”เปเบงเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบžเบฒเบเบชเบฐเบซเบ™เบฒเบก header เปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบฒเป€เบ‚เบปเป‰เบฒเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบเบฒเบ™เบฎเบฑเบš, เบเบฒเบ™เบเบปเบเป€เบฅเบตเบ, duplicating (dup), เปเบฅเบฐเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ (fwd) packets. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบกเบฒเบˆเบฒเบเบ—เบตเปˆเบขเบนเปˆ 192.168.30.20 เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบšเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป„เบ›เบซเบฒเปเบเปˆเบ™:

    # cat file.nft
    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ netdev x {
    เป‚เบชเป‰ y {
    type filter hook ingress เบญเบธเบ›เบฐเบเบญเบ™ eth0 เบšเบนเบฅเบดเบกเบฐเบชเบดเบ” 10; เบ—เบธเบ‡ offload;
    ip saddr 192.168.30.20 เบซเบผเบธเบ”เบฅเบปเบ‡
    }
    }
    # nft -f file.nft

  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš.

    # nft เบฅเบถเบšเบเบปเบ”เบฅเบฐเบšเบฝเบš ip yz handle 7
    เบœเบดเบ”เบžเบฒเบ”: เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš: เบšเปเปˆเบกเบตเป„เบŸเบฅเปŒ เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
    เบฅเบถเบšเบเบปเบ”เบฅเบฐเบšเบฝเบš ip yz handle 7
    ^

    # nft เบฅเบถเบšเบเบปเบ”เบฅเบฐเบšเบฝเบš ip xx handle 7
    เบœเบดเบ”เบžเบฒเบ”: เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš: เบšเปเปˆเบกเบตเป„เบŸเบฅเปŒ เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
    เบฅเบถเบšเบเบปเบ”เบฅเบฐเบšเบฝเบš ip xx handle 7
    ^

    # nft เบฅเบถเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ twst
    เบœเบดเบ”เบžเบฒเบ”: เบšเปเปˆเบกเบตเป„เบŸเบฅเปŒ เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง; เป€เบˆเบปเป‰เบฒเปเบฒเบเป€เบ–เบดเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ รขโ‚ฌหœtest' เปƒเบ™ family ip เบšเป?
    เบฅเบถเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ twst
    ^^^^

    เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เปเบฒเบญเบดเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ "y" เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš, เบญเบฑเบ™เบ—เบตเบชเบญเบ‡เบ—เบตเปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ "7" เบซเบฒเบเป„เบ›, เปเบฅเบฐเบญเบฑเบ™เบ—เบตเบชเบฒเบกเบ—เบตเปˆเบเบฒเบ™เป€เบ•เบทเบญเบ™เบžเบดเบกเบžเบดเบกเบ–เบทเบเบชเบฐเปเบ”เบ‡เป€เบกเบทเปˆเบญเบžเบดเบกเบŠเบทเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡.

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเปเบฒเบฅเบญเบ‡เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธ "meta sdif" เบซเบผเบท "meta sdifname":

    ... meta sdifname vrf1 ...

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เบ‚เบงเบฒเบซเบผเบทเบŠเป‰เบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ›เป‰เบฒเบเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ›เบฐเป„เบงเป‰ 1 เบšเบดเบ” เปเบฅเบฐเบ•เบฑเป‰เบ‡เบšเบดเบ”เบ™เป‰เบญเบเป€เบ›เบฑเบ™ 1:

    โ€ฆ meta mark เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ meta lshift 1 เบซเบผเบท 0x1โ€ฆ

  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "-V" เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบšเบฑเบšเบ‚เบฐเบซเบเบฒเบ.

    # nft -V
    nftables v0.9.4 (Jive at Five)
    cli:readline
    json: เปเบกเปˆเบ™เปเบฅเป‰เบง
    minigmp: เบšเปเปˆ
    libxtables: เปเบกเปˆเบ™เปเบฅเป‰เบง

  • เบ•เบญเบ™เบ™เบตเป‰เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เบณเบชเบฑเปˆเบ‡เบเปˆเบญเบ™เบ„เบณเบชเบฑเปˆเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธ "nft -a list ruleset", เปเบฅเบฐเปเบฅเปˆเบ™ "nft list ruleset -a" เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”.

    เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™