nftables를 사용하여 상태 저장 브리지 파일월을 어떻게 만드나요?

nftables를 사용하여 상태 저장 브리지 파일월을 어떻게 만드나요?

nftables 위키에는, 하지만 나에게는 효과가 없는 것 같습니다.

페이지에는 커널 5.3부터 작동해야 한다고 나와 있지만 페이지에서 정확한 명령을 시도하면 "프로토콜 오류"라고 표시됩니다.

# nft add table bridge filter
# nft add chain bridge filter forward '{type filter hook forward priority 0; }'
# nft add rule bridge filter forward ct state established,related accept
Error: Could not process rule: Protocol error
add rule bridge filter forward ct state established,related accept
                               ^^^^^^^^
  • 하드웨어: 라즈베리 파이 4
  • 커널: 5.10.92-v8+
  • nft --version:v0.9.8 (E.D.S.)

또한 최신 버전의 nftables와 해당 라이브러리를 구축한 후 시도했습니다.

  • nftables 1.0.1
  • libnftnl 1.2.1
  • libmnl-1.0.4

ldd nft실제로 새 버전의 라이브러리가 사용되었지만 여전히 동일한 오류 메시지가 있음을 확인했습니다 .

답변1

이 기능은 커널 5.3부터 사용할 수 있지만 Raspberry는 제공된 커널에서 이 기능을 컴파일하지 않기로 결정했습니다.

커널 구성 파일(일반적으로 커널에 존재하거나 커널에서 제공됨)을 찾지 못했기 때문에 /boot/config-xxx이를 직접 확인하기 위해 설치 이미지를 추출했습니다. 다음은 Raspbian 커널에서 사용 가능한 모듈을 비교한 것입니다(from우편번호 이미지공식 사이트에서 다운로드):

$ ls -1 lib/modules/5.10.92-v8+/kernel/net/bridge/netfilter/nf*
lib/modules/5.10.92-v8+/kernel/net/bridge/netfilter/nf_log_bridge.ko
lib/modules/5.10.92-v8+/kernel/net/bridge/netfilter/nft_reject_bridge.ko

유사한 데비안 커널동일한 아키텍처의 경우:

$ ls -1 lib/modules/5.10.0-10-arm64/kernel/net/bridge/netfilter/nf*
lib/modules/5.10.0-10-arm64/kernel/net/bridge/netfilter/nf_conntrack_bridge.ko
lib/modules/5.10.0-10-arm64/kernel/net/bridge/netfilter/nf_log_bridge.ko
lib/modules/5.10.0-10-arm64/kernel/net/bridge/netfilter/nft_meta_bridge.ko
lib/modules/5.10.0-10-arm64/kernel/net/bridge/netfilter/nft_reject_bridge.ko

보시다시피 에서 제공하는 Netfilter 지원이 필요합니다 nf_conntrack_bridge.콘트랙부분 nft_meta_bridgenftablesRaspberryPi OS의 기본 커널에서는 해당 부분을 사용할 수 없습니다(또한 내장되어 있지도 않으며 grep bridge lib/modules/5.10.92-v8+/modules.builtin결과도 없습니다). 다음 기능도 활성화된 커널을 빌드해야 합니다.

다른 희귀한 기능도 누락되었을 가능성이 높습니다. 예를 들어 모듈nft_synproxy그리고nft_xfrm(IPSec 필터링용)도 존재하지 않습니다.

한편, 더 이상 사용되지 않는 방법(기능 패리티가 달성되면 제거될 예정임)을 계속 사용할 수 있으며 이는 또한 영향을 미칩니다.nftables좋든 나쁘든:br_netfilter커널 모듈. 하지만 원주민nftables이 방법은 최신 커널 5.3 방법을 사용하도록 설계되었기 때문에 이 방법에 대한 구체적인 지원이 부족합니다. 특히 이에 상응하는 것은 없습니다.iptables'-m physdev --physdev-is-bridged.

관련 정보