ルータを使用できるコンピュータをホワイトリストに追加するには、次の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
}
}
タイプを除いて、2つのグループは同じです。
saddr
両方に対して1つのセットのみを指定して使用し、daddr
重複したMACアドレスを防ぐ方法はありますか?
答え1
単純さ:マニュアルページで確認できるのとtypeof ether saddr
同じタイプtypeof ether daddr
nft(8)
:
ether {daddr | saddr | type}
表 37. イーサネットヘッダー表現タイプ
キーワード 説明する タイプ お父さん 宛先MACアドレス エーテルの住所 サドル ソースMACアドレス エーテルの住所 タイプ エーテル型 エーテル型
これは、以下の3つの同等の方法のいずれかを使用して単一のコレクションを定義し、同じ結果が得られることを意味します。以前は視覚的な区別はありませんでした。nftables0.9.4最初の列の定義を使用する新しいキーワードは、typeof
3 番目の列の定義を使用するキーワードの代替として導入されます。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アドレスであることをフックが受け入れる必要があることが少し奇妙です。 (もちろん難読化するときに最初のバイトマルチキャストビットを設定しないでください。