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

当然,我可以使用一个集合,其中映射的键作为与映射本身并行的元素,但必须有一种方法来检查映射中的键是否存在。

相关内容