nftables 체인에서 특정 요소를 삭제하는 방법은 무엇입니까?

nftables 체인에서 특정 요소를 삭제하는 방법은 무엇입니까?

현재 시스템:

  • 배포판: 우분투 20.04
  • 커널: 5.4.0-124-일반
  • nft: nftables v0.9.3(Topsy)

저는 nftables를 처음 접했고 nftables를 배우고 있습니다. 이것은 현재 nft 규칙 세트입니다.

$sudo nft list ruleset                                                                                                                                                                                           taxmd-dh016d-02: Wed Sep 21 12:09:08 2022

table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
                ip daddr 192.168.0.1 drop
        }
}

ip daddr 192.168.0.1 drop출력 체인에서 제거 하고 싶습니다 . 나는 다음을 시도했다:

sudo nft del rule inet filter output ip daddr 192.168.0.1 drop
sudo nft delete rule inet filter output ip daddr
sudo nft 'delete element ip daddr 192.168.0.1 drop'
sudo nft 'delete element ip'
sudo nft delete rule filter output ip daddr 192.168.0.1 drop

하지만 아무것도 작동하지 않습니다. 다음 오류가 계속 발생합니다.

Error: syntax error, unexpected inet
delete inet filter chain output ip daddr 192.168.0.1 drop
       ^^^^

왜 특정 요소를 삭제할 수 없나요? 나는 이것이 간단하다고 생각하지만 뭔가 빠졌습니다.

답변1

이것위키피디아당신이 시도하는 것이 아직 구현되지 않았다고 말합니다.규칙을 삭제하려면 핸들을 가져와야 합니다.. 예는 다음과 같습니다:

$ sudo nft -a list table inet filter
table inet filter {
      ...
      chain output {
            type filter hook output priority 0;
            ip daddr 192.168.1.1 counter packets 1 bytes 84 # handle 5
      }
}

-a할당된 핸들 "5"를 주석으로 표시합니다 .

$ sudo nft delete rule filter output handle 5

관련 정보