8.10. nftables 규칙 디버깅


nftables 프레임워크는 관리자가 규칙을 디버그하고 패킷이 일치하는 경우 다양한 옵션을 제공합니다.

8.10.1. 카운터를 사용하여 규칙 생성

규칙이 일치하는지 확인하려면 카운터를 사용할 수 있습니다.

사전 요구 사항

  • 규칙을 추가할 체인이 있습니다.

절차

  1. counter 매개 변수를 사용하여 새 규칙을 체인에 추가합니다. 다음 예제에서는 포트 22에서 TCP 트래픽을 허용하고 이 규칙과 일치하는 패킷 및 트래픽을 계산하는 카운터를 포함하는 규칙을 추가합니다.

    # nft add rule inet example_table example_chain tcp dport 22 counter accept
  2. 카운터 값을 표시하려면 다음을 수행합니다.

    # nft list ruleset
    table inet example_table {
      chain example_chain {
        type filter hook input priority filter; policy accept;
        tcp dport ssh counter packets 6872 bytes 105448565 accept
      }
    }

8.10.2. 기존 규칙에 카운터 추가

규칙이 일치하는지 확인하려면 카운터를 사용할 수 있습니다.

사전 요구 사항

  • 카운터를 추가하려는 규칙이 있습니다.

절차

  1. 처리를 포함하여 체인의 규칙을 표시합니다.

    # nft --handle list chain inet example_table example_chain
    table inet example_table {
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport ssh accept # handle 4
      }
    }
  2. 규칙을 대체하지만 counter 매개 변수로 교체하여 카운터 를 추가합니다. 다음 예제에서는 이전 단계에 표시된 규칙을 교체하고 카운터를 추가합니다.

    # nft replace rule inet example_table example_chain handle 4 tcp dport 22 counter accept
  3. 카운터 값을 표시하려면 다음을 수행합니다.

    # nft list ruleset
    table inet example_table {
      chain example_chain {
        type filter hook input priority filter; policy accept;
        tcp dport ssh counter packets 6872 bytes 105448565 accept
      }
    }

8.10.3. 기존 규칙과 일치하는 패킷 모니터링

nft monitor 명령과 함께 nftables 의 추적 기능을 사용하면 관리자가 규칙과 일치하는 패킷을 표시할 수 있습니다. 이 규칙과 일치하는 패킷을 모니터링하는 데 사용하는 규칙에 대한 추적을 활성화할 수 있습니다.

사전 요구 사항

  • 카운터를 추가하려는 규칙이 있습니다.

절차

  1. 처리를 포함하여 체인의 규칙을 표시합니다.

    # nft --handle list chain inet example_table example_chain
    table inet example_table {
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport ssh accept # handle 4
      }
    }
  2. 규칙을 교체하지만 meta nftrace set 1 매개변수로 추적 기능을 추가합니다. 다음 예제에서는 이전 단계에 표시된 규칙을 교체하고 추적을 활성화합니다.

    # nft replace rule inet example_table example_chain handle 4 tcp dport 22 meta nftrace set 1 accept
  3. nft monitor 명령 을 사용하여 추적을 표시합니다. 다음 예제에서는 명령의 출력을 필터링하여 inet example_table example_chain 이 포함된 항목만 표시합니다.

    # nft monitor | grep "inet example_table example_chain"
    trace id 3c5eb15e inet example_table example_chain packet: iif "enp1s0" ether saddr 52:54:00:17:ff:e4 ether daddr 52:54:00:72:2f:6e ip saddr 192.0.2.1 ip daddr 192.0.2.2 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 49710 ip protocol tcp ip length 60 tcp sport 56728 tcp dport ssh tcp flags == syn tcp window 64240
    trace id 3c5eb15e inet example_table example_chain rule tcp dport ssh nftrace set 1 accept (verdict accept)
    ...
    주의

    추적이 활성화된 규칙 수 및 일치하는 트래픽 양에 따라 nft monitor 명령은 많은 출력을 표시할 수 있습니다. grep 또는 기타 유틸리티를 사용하여 출력을 필터링합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.