Nftablesは地図とカウンターを結合します。

Nftablesは地図とカウンターを結合します。

現在移住中です。消防署nftablesベースのルータファイアウォール。それでも、全体的に重複した部分は次のように要約するのが好きなので、機能的な面では問題はありません。地図そしてセットできるだけ手に入れようとしています。カウンター同じ「パス」に追加されました。これらのdnatルールを例に挙げてみましょう。

table t1 {
        chain c1 {
                type nat hook prerouting priority dstnat;

                # compact form (works)
                dnat to ip daddr map {
                        86.12.22.22 : 192.168.22.22,
                        86.12.22.23 : 192.168.22.23
                }

                # syntactically correct, but counts all dnated traffic
                counter dnat to daddr map {
                        86.12.22.22 : 192.168.22.22,
                        86.12.22.23 : 192.168.22.23
                }

                # Does not work (why?)
                ip daddr dnat to map {
                        192.168.22.22 : 86.12.22.22,
                        192.168.22.23 : 86.12.22.23
                }

                # long form (with counter, works)
                ip daddr 86.12.22.22 counter dnat to 192.168.22.22

        }

}

マップベースのルールでカウンターを何とか協力する方法を知っていますか?

答え1

まあ、私は自分で答えを見つけました。名前付きマッピングを使用できます。

table t1 {
   map one2one_dnat {
        type ipv4_addr : ipv4_addr
        flags interval
        counter
        comment "1-1 dnat"
        elements = { 
            86.12.22.22 : 192.168.22.22,
            86.12.22.23 : 192.168.22.23
        }
    }
    chain c1 {
        type nat hook prerouting priority dstnat;
        dnat to ip daddr map @one2one_dnat
    }

}

~から1.0.0「地図上の状態表現」を使用することが可能でなければなりません。しかし、これがうまくいく方法を見つけることができませんでした...

関連情報