42.6. nftables 명령에 verdict 맵 사용
사전이라고도 하는 정성 맵을 사용하면 nft 가 일치 기준을 작업에 매핑하여 패킷 정보를 기반으로 작업을 수행할 수 있습니다.
42.6.1. nftables에서 익명 맵 사용 링크 복사링크가 클립보드에 복사되었습니다!
익명 맵은 규칙에서 직접 사용하는 { match_criteria : action } 구문입니다. 문에는 쉼표로 구분된 여러 매핑이 포함될 수 있습니다.
익명 맵의 단점은 맵을 변경하려면 규칙을 교체해야 한다는 것입니다. 동적 솔루션의 경우 nftables에서 이름이 지정된 맵 사용에 설명된 대로 이름이 지정된 맵 을 사용합니다.
예를 들어 익명 맵을 사용하여 IPv4 및 IPv6 프로토콜의 TCP 및 UDP 패킷을 다른 체인으로 라우팅하여 들어오는 TCP 및 UDP 패킷을 별도로 계산할 수 있습니다.
프로세스
새 테이블을 만듭니다.
# nft add table inet example_tableexample_table에tcp_packets체인을 생성합니다.# nft add chain inet example_table tcp_packets이 체인의 트래픽을 계산하는
tcp_packets에 규칙을 추가합니다.# nft add rule inet example_table tcp_packets counterexample_table에udp_packets체인을 생성# nft add chain inet example_table udp_packets이 체인의 트래픽을 계산하는
udp_packets에 규칙을 추가합니다.# nft add rule inet example_table udp_packets counter들어오는 트래픽에 대한 체인을 생성합니다. 예를 들어 수신 트래픽을 필터링하는
example_table에incoming_traffic라는 체인을 만들려면 다음을 수행합니다.# nft add chain inet example_table incoming_traffic { type filter hook input priority 0 \; }anonymous 맵이 있는 규칙을
incoming_traffic:에 추가합니다.# nft add rule inet example_table incoming_traffic ip protocol vmap { tcp : jump tcp_packets, udp : jump udp_packets }익명 맵은 패킷을 구분하고 프로토콜을 기반으로 다른 카운터 체인으로 보냅니다.
트래픽 카운터를 나열하려면
example_table을 표시합니다.# nft list table inet example_table table inet example_table { chain tcp_packets { counter packets 36379 bytes 2103816 } chain udp_packets { counter packets 10 bytes 1559 } chain incoming_traffic { type filter hook input priority filter; policy accept; ip protocol vmap { tcp : jump tcp_packets, udp : jump udp_packets } } }tcp_packets및udp_packets체인의 카운터는 수신된 패킷 수와 바이트를 모두 표시합니다.