라우터를 사용할 수 있는 컴퓨터를 허용 목록에 추가하기 위해 다음 nftables 구성을 사용합니다.
table bridge filter {
set authorized {
typeof ether saddr
flags constant
elements = {
aa:aa:aa:aa:aa:aa,
ff:ff:ff:ff:ff:ff
}
}
set authorized2 {
typeof ether daddr
flags constant
elements = {
aa:aa:aa:aa:aa:aa,
ff:ff:ff:ff:ff:ff
}
}
chain input {
type filter hook input priority 0; policy drop;
ether saddr @authorized accept
ether daddr @authorized2 accept
}
}
유형을 제외하면 두 그룹은 동일합니다.
saddr
둘 다에 대해 하나의 세트만 지정 및 사용 하고 daddr
중복된 MAC 주소를 방지할 수 있는 방법이 있습니까 ?
답변1
단순함: 매뉴얼 페이지에서 확인할 수 있는 것과 typeof ether saddr
동일한 유형typeof ether daddr
nft(8)
:
ether {daddr | saddr | type}
표 37. 이더넷 헤더 표현 유형
핵심 단어 설명하다 유형 아빠 대상 MAC 주소 에테르 주소 사드르 소스 MAC 주소 에테르 주소 유형 에테르형 에테르형
이는 아래의 3가지 동등한 방법 중 하나를 사용하여 단일 컬렉션을 정의하고 동일한 결과를 얻을 수 있음을 의미합니다. 이전에는 시각적인 구별이 없었습니다.nftables0.9.4첫 번째 열의 정의를 사용하는 새 키워드는 typeof
세 번째 열의 정의를 사용하는 키워드의 대안으로 소개됩니다.type
원시
type
키워드(정확한 유형에 대해서는 문서를 확인해야 함)type ether_addr
또는 새로운
typeof
키워드(이를 사용하는 규칙에서 어휘를 어느 정도 재사용할 수 있음)누구나
typeof ether saddr
또는
typeof ether daddr
따라서 최종 규칙 세트는 다음과 같이 작성할 수 있습니다.
table bridge filter {
set authorized {
typeof ether saddr
flags constant
elements = {
aa:aa:aa:aa:aa:aa,
ff:ff:ff:ff:ff:ff
}
}
chain input {
type filter hook input priority 0; policy drop;
ether saddr @authorized accept
ether daddr @authorized accept
}
}
참고: 현재 규칙 세트는 이 세트의 모든 항목 또는 이 세트의 모든 항목을 허용합니다. 불일치둘 다동시에. 또한 그렇기 때문에입력하다대신 후크앞으로대상 MAC 주소가 자신의 MAC 주소라는 것을 후크가 수락해야 한다는 점이 조금 이상해 보입니다. (물론 난독화할 때 첫 번째 바이트 멀티캐스트 비트를 설정하면 안 되며 소스로서 효과가 없습니다. 하지만 대상이 일치하는 방송 대상을 찾는 방법입니다).