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

물론 맵 자체에 평행한 요소로 맵의 키가 포함된 컬렉션을 사용할 수 있지만 키가 맵에 존재하는지 확인하는 방법이 있어야 합니다.

관련 정보