nftables 0.9.4 이전에는 IPv4 및 IPv6 규칙을 통합하기 위해 세트 세트를 표현하는 방법이 있었습니까?

nftables 0.9.4 이전에는 IPv4 및 IPv6 규칙을 통합하기 위해 세트 세트를 표현하는 방법이 있었습니까?

문서0.9.4 부터는 IPv4 및 IPv6 세트를 결합하여(유사하게) nftables사용할 수 있는 것이 권장됩니다. typeof ip daddr아쉽게도 LTS Ubuntu 버전 20.04는 해당 버전(0.9.3)보다 패치가 하나 적습니다.

인용하다:

0.9.4부터 사용 가능한 이 typeof키워드를 사용하면 고급 표현식을 사용한 다음 nftables가 기본 유형을 구문 분석하도록 할 수 있습니다.

예전에는 ipset이름만 언급하고 싶을 때마다 컬렉션을 만들곤 했어요. 따라서 IPv4 전용 세트(예: blackhole4), IPv6 전용 세트(예: blackhole6), 그리고 두 가지를 모두 포함하는 세트(예: blackhole)가 있습니다. 패키지 내 경로와 ipset컬렉션 요소의 CLI 업데이트는 이 컬렉션 세트에 적합합니다. 이러한 요소는 적절한 "하위 집합"에 삽입/업데이트됩니다.

통일이 가능한가요?세트nftables 0.9.3에서도 작동하나요?

참고: 별도의 IPv4 및 IPv6 관련 세트를 만든 다음 일부 컨테이너를 설정하여 이 기능을 구현할 수 있습니다. 문서만 보면 이를 구현하는 방법을 모르겠습니다.

PS: 봤어요이것그리고이것하지만 다른 nftables 버전에서는 작동합니다.그리고결과는 우리가 원하는 것이 아닙니다.

답변1

현재 2021년 5월 1일 현재 어떤 버전의 커널 및 nftables(0.9.8 포함)도 이 작업을 수행할 수 없습니다.

수석 개발자 Pablo Neira Ayuso는 2020년 9월 26일에 구현을 방해하는 주요 아키텍처 문제는 없지만 아직 완료되지 않았다고 썼습니다.

https://www.spinics.net/lists/netfilter/msg59761.html:

따라서 다음을 통합하고 싶습니다.

tcp dport @b_t update @b_sa4 { ip saddr } drop
tcp dport @b_t update @b_sa6 { ip6 saddr } drop

규칙적으로?

그것은 마치 (가상의 문법)

tcp dport @b_t update @b_sa { inet saddr } drop

어디b_sa비슷한 컬렉션입니다 type inet_addr.

https://www.spinics.net/lists/netfilter/msg59761.html:

물론, inet을 통해 IPv4 및 IPv6 추상화를 위한 공통 집합 인프라를 제공하는 것이 가능합니다.

관련 정보