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