nftables에 어떤 종류의 와일드카드가 있나요?

nftables에 어떤 종류의 와일드카드가 있나요?

eth+iptables에서 이는 로 시작하는 모든 인터페이스와 일치하는 인터페이스 이름 으로 사용될 수 있습니다 eth(또는 보다 실용적인 예로서 이는 쉘에서 glob의 효과가 있는 것으로 보이는 virbr+and 와도 일치할 수 있습니다 ).veth++*

nftables는 인터페이스 이름 일치를 위한 유사한 도구를 제공합니까? 어떻게 사용하나요?

답변1

예, 일반적인 와일드카드 는 다음 *과 같습니다.NFFT동등하다iptables' +. 최근까지 매뉴얼 페이지에는 이 (비교적 오래된) 기능이 문서화되어 있었습니다.

최근부터nft매뉴얼 페이지:

iptables와 마찬가지로 인터페이스 이름 접두사에 대한 와일드카드 일치는 별표(*) 문자를 추가하여 iifname일치 시킬 수 있습니다. oifname그러나 iptables와 달리 nftables는 와일드카드만 포함하는 인터페이스 이름을 허용하지 않습니다. 사용자는 항상 일치하는 표현식을 건너뛰어야 합니다. 리터럴 별표 문자를 일치시키려면 백슬래시(\)를 사용하여 이스케이프하십시오.

예를 들어:

iifname "veth*" accept

또한 오늘날에는 요소에서 와일드카드(또는)가 포함된 인터페이스 세트를 사용하는 것이 불가능해 보입니다 type ifname.typeof iifname

업데이트: 이2022년 4월 git 커밋nftables다른 관련 커밋과 함께 간격을 메서드로 사용하여 컬렉션에 인터페이스 와일드카드를 최종적으로 허용할 만큼 충분한 커널 지원이 가능합니다.

간격 세트에서 이름 연결을 허용합니다.

table inet filter {
        set s {
                type ifname
                flags interval
                elements = { eth*, foo }
        }

이는 1.0.2 이후의 현재 버전에서 사용할 수 있습니다.


동적으로 나타나고 사라지는 인터페이스를 관리하는 완전히 다른 방법은 다음을 사용하는 것입니다.그룹생성된 직후(그리고 아마도 생성되기 전)에nftables인터페이스 그룹과 일치하는 규칙입니다. 예를 들어:

ip link set ppp7 group 42

둘 다 가지고 있다nftables규칙은 이 메타정보를 재사용합니다.

iifgroup 42 jump from-ppp

관련 정보