nftables - マップにキーがあることを確認する

nftables - マップにキーがあることを確認する

マップにキーがあることを確認するステートメントを使用してルールを追加しようとしています。

以下を想定します。

add table bridge my_table
add map bridge my_table ip_map { type ipv4_addr : ipv4_addr; }
add element bridge my_table ip_map { 192.168.0.1 : 192.168.1.1 }
add chain bridge my_table my_chain { type filter hook forward priority 0 ; }

パケットの宛先IPアドレスがマップ内の要素のキーであることを確認するルールを追加したいと思います。私は他の多くの言葉を試しましたが、それらのどれもうまくいきませんでした。

add rule bridge my_table my_chain ip daddr @ip_map counter
add rule bridge my_table my_chain ip daddr map @ip_map counter
add rule bridge my_table my_chain ip daddr exists map @ip_map counter
add rule bridge my_table my_chain ip daddr map @ip_map exists counter

セットの場合、次のルールを使用して、要素がセットの一部であることを確認できます。ただし、セットの使用に加えて、他の規則でマップ照会を実行する必要があります。

add set bridge my_table ip_set { type ipv4_addr; }
add element bridge my_table ip_set { 192.168.0.1 }
add rule bridge my_table my_chain ip daddr @ip_set counter

もちろん、マップ自体に平行な要素としてマップのキーを含むコレクションを使用できますが、キーがマップに存在することを確認する方法が必要です。

ベストアンサー1

おすすめ記事