แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžแž˜แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹แž–แŸแžแŸŒแž˜แžถแž“ nftables 0.9.5

แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž–แž•แŸ’แžŸแžถแž™ แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžแž˜แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹ nftables 0.9.5แžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แžขแž—แžทแžœแžŒแŸ’แžแž‡แžถแž€แžถแžšแž‡แŸ†แž“แžฝแžŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹ iptables, ip6table, arptables แž“แžทแž„ ebtables แžŠแŸ„แž™แž€แžถแžšแž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แžแž˜แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹ IPv4, IPv6, ARP แž“แžทแž„แž”แžŽแŸ’แžแžถแž‰แžŸแŸ’แž–แžถแž“แŸ” แž€แž‰แŸ’แž…แž”แŸ‹ nftables แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžŸแž˜แžถแžŸแž’แžถแžแžปแžแž˜แŸ’แžšแž„แž€แž‰แŸ’แž…แž”แŸ‹แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แŸ’แž“แžปแž„แž…แž“แŸ’แž›แŸ„แŸ‡แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžแžŽแŸˆแž–แŸแž›แžŠแŸ‚แž›แž€แžถแžšแž„แžถแžšแž€แž˜แŸ’แžšแžทแžแžแžบแžŽแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แžŠแŸ„แž™แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžšแž„ nf_tables แžŠแŸ‚แž›แž‡แžถแž•แŸ’แž“แŸ‚แž€แž˜แžฝแž™แž“แŸƒแžแžบแžŽแŸ‚แž›แž›แžธแž“แžปแž…แž…แžถแž”แŸ‹แžแžถแŸ†แž„แž–แžธแž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ 3.13 แŸ” แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ nftables 0.9.5 แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž“แŸ…แž€แŸ’แž“แžปแž„แžแžบแžŽแŸ‚แž›แŸ” แž›แžธแž“แžปแž… 5.7.

แž€แž˜แŸ’แžšแžทแžแžแžบแžŽแŸ‚แž›แž•แŸ’แžแž›แŸ‹แžแŸ‚แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แžฏแž€แžšแžถแž‡แŸ’แž™แž“แŸƒแž–แžทแž’แžธแž€แžถแžšแž‘แžผแž‘แŸ…แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž˜แžปแžแž„แžถแžšแž‡แžถแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‘แžถแž‰แž™แž€แž‘แžทแž“แŸ’แž“แž“แŸแž™แž–แžธแž€แž‰แŸ’แž…แž”แŸ‹แž–แŸแžแŸŒแž˜แžถแž“ แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž‘แžทแž“แŸ’แž“แž“แŸแž™ แž“แžทแž„แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž›แŸ†แž แžผแžšแŸ” แž…แŸ’แž”แžถแž”แŸ‹แž“แŸƒแž€แžถแžšแž…แŸ’แžšแŸ„แŸ‡ แž“แžทแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แž“แŸƒแž–แžทแž’แžธแž€แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž…แž„แž€แŸ’แžšแž„แž‡แžถ bytecode แž€แŸ’แž“แžปแž„แž…แž“แŸ’แž›แŸ„แŸ‡แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ bytecode แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž‘แžปแž€แž‘แŸ…แž€แŸ’แž“แžปแž„แžแžบแžŽแŸ‚แž›แžŠแŸ„แž™แž”แŸ’แžšแžพแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹ Netlink แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แŸ’แž“แžปแž„แžแžบแžŽแŸ‚แž›แž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž“แžทแž˜แŸ’แž˜แžทแžแž–แžทแžŸแŸแžŸแžŠแŸ‚แž›แž“แžนแž€แžƒแžพแž‰แžŠแž›แŸ‹ BPF (Berkeley Packet Filters)แŸ” แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž“แŸแŸ‡แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แžถแžแŸ‹แž”แž“แŸ’แžแž™แž™แŸ‰แžถแž„แžแŸ’แž›แžถแŸ†แž„แž“แžผแžœแž‘แŸ†แž แŸ†แž“แŸƒแž€แžผแžŠแžแŸ’แžšแž„แžŠแŸ‚แž›แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸ…แž€แž˜แŸ’แžšแžทแžแžแžบแžŽแŸ‚แž› แž แžพแž™แž•แŸ’แž›แžถแžŸแŸ‹แž‘แžธแž˜แžปแžแž„แžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸƒแž…แŸ’แž”แžถแž”แŸ‹แž‰แŸ‚แž€ แž“แžทแž„แžแž€แŸ’แž€แžœแžทแž‡แŸ’แž‡แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แž–แžทแž’แžธแž€แžถแžšแž‘แŸ…แž€แŸ’แž“แžปแž„แž‘แŸ†แž แŸ†แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แŸ”

แž€แžถแžšแž…แŸ’แž“แŸƒแž”แŸ’แžšแžŒแžทแžแžŸแŸ†แžแžถแž“แŸ‹แŸ—แŸ–

  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž‰แŸ’แž…แž”แŸ‹แž–แŸแžแŸŒแž˜แžถแž“ แž“แžทแž„แž”แž‰แŸ’แž‡แžšแž…แžšแžถแž…แžšแžŽแŸแžŠแŸ‚แž›แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž“แžนแž„แž’แžถแžแžปแžŸแŸ†แžŽแžปแŸ†แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แžŸแŸ†แžŽแžปแŸ†แŸ” แž”แž‰แŸ’แž‡แžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แžพแž€แžŠแŸ„แž™แž”แŸ’แžšแžพแž–แžถแž€แŸ’แž™แž‚แž“แŸ’แž›แžนแŸ‡ "แž”แž‰แŸ’แž‡แžš"แŸ–

    แžแžถแžšแžถแž„ ip x {
    แž€แŸ†แžŽแžแŸ‹ y {
    แž”แŸ’แžšแž—แŸแž‘แž“แŸƒ ip saddr
    แž€แžถแžšแž”แŸ’แžšแž†แžถแŸ†แž„
    แž’แžถแžแžป = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    แžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹ z {
    แž”แŸ’แžšแž—แŸแž‘ แžแž˜แŸ’แžšแž„ แž‘แŸ†แž–แž€แŸ‹ แžแž˜แŸ’แžšแž„ แžขแžถแž‘แžทแž—แžถแž– แž‘แžทแž“แŸ’แž“แž•แž›; แž‚แŸ„แž›แž“แž™แŸ„แž”แžถแž™แž‘แž‘แžฝแž›แž™แž€;
    ip daddr @y
    }
    }

  • แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžแž˜แŸ’แž›แŸƒแžŠแŸ†แž”แžผแž„แž“แŸƒแž”แž‰แŸ’แž‡แžš แžงแž‘แžถแž แžšแžŽแŸ แžŠแžพแž˜แŸ’แž”แžธแžŸแŸ’แžŠแžถแžšแž”แž‰แŸ’แž‡แžšแž–แžธแž˜แžปแž“แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžกแžพแž„แžœแžทแž‰ แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ "nft -f"แŸ–

    # แž†แŸ’แž˜แžถ ruleset.nft
    แžแžถแžšแžถแž„ ip x {
    แž€แŸ†แžŽแžแŸ‹ y {
    แž”แŸ’แžšแž—แŸแž‘แž“แŸƒ ip saddr
    แž€แžถแžšแž”แŸ’แžšแž†แžถแŸ†แž„
    แž’แžถแžแžป = { 192.168.10.35 แž€แž‰แŸ’แž…แž”แŸ‹แž”แž‰แŸ’แž‡แžš 1 แž”แŸƒ 84, 192.168.10.101 \\
    counter p 192.168.10.135 counter packets 0 bytes 0 }
    }

    แžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹ z {
    แž”แŸ’แžšแž—แŸแž‘ แžแž˜แŸ’แžšแž„ แž‘แŸ†แž–แž€แŸ‹ แžแž˜แŸ’แžšแž„ แžขแžถแž‘แžทแž—แžถแž– แž‘แžทแž“แŸ’แž“แž•แž›; แž‚แŸ„แž›แž“แž™แŸ„แž”แžถแž™แž‘แž‘แžฝแž›แž™แž€;
    ip daddr @y
    }
    }
    # nft -f ruleset.nft
    แž…แŸ’แž”แžถแž”แŸ‹แž”แž‰แŸ’แž‡แžธ #nft
    แžแžถแžšแžถแž„ ip x {
    แž€แŸ†แžŽแžแŸ‹ y {
    แž”แŸ’แžšแž—แŸแž‘แž“แŸƒ ip saddr
    แž€แžถแžšแž”แŸ’แžšแž†แžถแŸ†แž„
    แž’แžถแžแžป = { 192.168.10.35 แž€แž‰แŸ’แž…แž”แŸ‹แž”แž‰แŸ’แž‡แžš 1 แž”แŸƒ 84, 192.168.10.101 \\
    counter p 192.168.10.135 counter packets 0 bytes 0 }
    }

    แžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹ z {
    แž”แŸ’แžšแž—แŸแž‘ แžแž˜แŸ’แžšแž„ แž‘แŸ†แž–แž€แŸ‹ แžแž˜แŸ’แžšแž„ แžขแžถแž‘แžทแž—แžถแž– แž‘แžทแž“แŸ’แž“แž•แž›; แž‚แŸ„แž›แž“แž™แŸ„แž”แžถแž™แž‘แž‘แžฝแž›แž™แž€;
    ip daddr @y
    }
    }

  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž•แŸ’แž“แŸ‚แž€แž”แŸ’แžšแž†แžถแŸ†แž„แž€แŸแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แžแžถแžšแžถแž„แž›แŸ†แž แžผแžšแž•แž„แžŠแŸ‚แžšแŸ–

    แžแžถแžšแžถแž„ ip foo {
    แžšแž”แžถแžšแžแžถแžšแžถแž„แž›แŸ†แž แžผแžš {
    hook ingress แžขแžถแž‘แžทแž—แžถแž– -100
    แžงแž”แž€แžšแžŽแŸ = { eth0, eth1 }
    แž€แžถแžšแž”แŸ’แžšแž†แžถแŸ†แž„
    }

    แžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹แž‘แŸ…แž˜แžปแž {
    แž”แŸ’แžšแž—แŸแž‘แžแž˜แŸ’แžšแž„ แžแž˜แŸ’แžšแž„แžขแžถแž‘แžทแž—แžถแž– แž†แŸ’แž–แŸ„แŸ‡แž‘แŸ…แž˜แžปแž;
    แž›แŸ†แž แžผแžšแž”แž“แŸ’แžแŸ‚แž˜ @bar counter
    }
    }

    แžขแŸ’แž“แž€แžขแžถแž…แž˜แžพแž›แž”แž‰แŸ’แž‡แžธแžšแžถแž”แŸ‹แžŠแŸ„แž™แž”แŸ’แžšแžพแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ "conntrack -L"แŸ–

    tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47278 dport=5201 packets=9 bytes=608 \\
    src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47278 packets=8 bytes=428 [OFFLOAD] mark=0 \\
    sectx=null use=2 tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47280 dport=5201 \\
    แž€แž‰แŸ’แž…แž”แŸ‹=1005763แž”แŸƒ=44075714753 src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47280 \
    packets=967505 bytes=50310268 [OFFLOAD] mark=0 secctx=null use=2

  • แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžปแŸ†แžŸแž˜แŸ’แžšแžถแž”แŸ‹ concatenation (แž€แžถแžšแž—แŸ’แž‡แžถแž”แŸ‹แž‚แŸ’แž“แžถ แž”แžŽแŸ’แžแžปแŸ†แžขแžถแžŸแŸแž™แžŠแŸ’แž‹แžถแž“ แž“แžทแž„แž…แŸ’แžšแž€แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แžŠแŸ‚แž›แžŸแž˜แŸ’แžšแžฝแž›แž€แžถแžšแž”แŸ’แžšแŸ€แž”แž’แŸ€แž”) แžœแžถแžขแžถแž…แž”แŸ’แžšแžพแž€แžถแžšแžŽแŸ‚แž“แžถแŸ† "typeof" แžŠแŸ‚แž›แž€แŸ†แžŽแžแŸ‹แž”แŸ’แžšแž—แŸแž‘แž‘แžทแž“แŸ’แž“แž“แŸแž™แž“แŸƒแž’แžถแžแžปแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž•แŸ’แž“แŸ‚แž€แž’แžถแžแžปแž•แŸ’แžŸแŸ†แž“แŸƒแž’แžถแžแžปแž“แŸƒแžŸแŸ†แžŽแžปแŸ†แŸ–

    แžแžถแžšแžถแž„ ip foo {
    แž€แŸ†แžŽแžแŸ‹แž”แž‰แŸ’แž‡แžธแžŸ {
    แž”แŸ’แžšแž—แŸแž‘ ip saddr แŸ” tcp dport
    แž’แžถแžแžป = { 192.168.10.35 แŸ” 80, 192.168.10.101 แŸ” 80}
    }

    แžšแž”แžถแžšแžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹ {
    แž”แŸ’แžšแž—แŸแž‘แžแž˜แŸ’แžšแž„แž‘แŸ†แž–แž€แŸ‹ แžแž˜แŸ’แžšแž„แŸ‹แž‘แžทแžŸแžแž˜แŸ’แžšแž„แžขแžถแž‘แžทแž—แžถแž–; แž€แžถแžšแž’แŸ’แž›แžถแž€แŸ‹แž…แžปแŸ‡แž‚แŸ„แž›แž“แž™แŸ„แž”แžถแž™;
    แžขแžถแž™แž—แžธ แž”แŸ‰แžถ tcp dport @whitelist แž‘แž‘แžฝแž›แž™แž€
    }
    }

  • แž”แŸ’แžšแž—แŸแž‘แž“แŸƒแž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžฅแžกแžผแžœแž“แŸแŸ‡แž€แŸแžขแž“แžปแžœแžแŸ’แžแž•แž„แžŠแŸ‚แžšแž€แŸ’แž“แžปแž„แž€แžถแžšแž…แžผแž›แžšแžฝแž˜แž“แŸ…แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžธแž•แŸ‚แž“แž‘แžธแŸ–

    แžแžถแžšแžถแž„ ip foo {
    แž•แŸ‚แž“แž‘แžธ addr2mark {
    แž”แŸ’แžšแž—แŸแž‘ ip saddr แŸ” tcp dport : meta mark
    แž’แžถแžแžป = { 192.168.10.35 แŸ” 80: 0x00000001 ,
    แŸกแŸฉแŸข.แŸกแŸฆแŸจ.แŸกแŸ .แŸกแŸฃแŸฅ. 192.168.10.135 : 80x0 }
    }

    แžšแž”แžถแžšแžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹ {
    แž”แŸ’แžšแž—แŸแž‘แžแž˜แŸ’แžšแž„แž‘แŸ†แž–แž€แŸ‹ แžแž˜แŸ’แžšแž„แŸ‹แž‘แžทแžŸแžแž˜แŸ’แžšแž„แžขแžถแž‘แžทแž—แžถแž–; แž€แžถแžšแž’แŸ’แž›แžถแž€แŸ‹แž…แžปแŸ‡แž‚แŸ„แž›แž“แž™แŸ„แž”แžถแž™;
    แž€แŸ†แžŽแžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แž˜แŸแžแžถ ip daddr แŸ” tcp dport map @addr2mark แž‘แž‘แžฝแž›แž™แž€
    }
    }

  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‡แžฝแžšแž…แžผแž›แžšแžฝแž˜แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ†แžŽแžปแŸ†แžขแž“แžถแž˜แžทแž€ (แž˜แžทแž“แž”แž‰แŸ’แž…แŸแž‰แžˆแŸ’แž˜แŸ„แŸ‡)แŸ–

    # nft แž”แž“แŸ’แžแŸ‚แž˜แž…แŸ’แž”แžถแž”แŸ‹ inet filter แž”แž‰แŸ’แž…แžผแž› ip daddr แŸ” tcp dport\
    { 10.0.0.0/8 . 10-23, 192.168.1.1-192.168.3.8 แŸ” 80-443 } แž‘แž‘แžฝแž›แž™แž€

  • แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ„แŸ‡แž”แž„แŸ‹แž€แž‰แŸ’แž…แž”แŸ‹แž–แŸแžแŸŒแž˜แžถแž“แžŠแŸ‚แž›แž˜แžถแž“แž‘แž„แŸ‹ 802.1q (VLAN) แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแŸ’แž–แžถแž“แž”แžŽแŸ’แžแžถแž‰แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แž‡แžผแž“แŸ–

    # nft แž”แž“แŸ’แžแŸ‚แž˜แžŸแŸ’แž–แžถแž“ foo bar แž”แŸ’แžšแž—แŸแž‘ ether vlan reject แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹ tcp แžกแžพแž„แžœแžทแž‰

  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž•แŸ’แž‚แžผแž•แŸ’แž‚แž„แžŠแŸ„แž™แžงแž”แž€แžšแžŽแŸแž€แŸ†แžŽแžแŸ‹แžŸแž˜แŸแž™ TCP (แž›แŸแžแžŸแž˜แŸ’แž‚แžถแž›แŸ‹ conntrack) แŸ” แžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽ conntrack แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแž‡แž˜แŸ’แžšแžพแžŸ "--output id"แŸ–

    # conntrack -L โ€” แž›แŸแžแžŸแž˜แŸ’แž‚แžถแž›แŸ‹แž›แž‘แŸ’แž’แž•แž›
    udp 17 18 src=192.168.2.118 dst=192.168.2.1 sport=36424 dport=53 แž€แž‰แŸ’แž…แž”แŸ‹=2 \\
    bytes=122 src=192.168.2.1 dst=192.168.2.118 sport=53 dport=36424 packets=2 bytes=320 \\
    [แž’แžถแž“แžถ] mark=0 use=1 id=2779986232

    # nft แž”แž“แŸ’แžแŸ‚แž˜แž…แŸ’แž”แžถแž”แŸ‹ foo bar ct id 2779986232 counter

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹