18.12.10. サポートされているプロトコル
以下のセクションでは、ネットワークフィルターサブシステムが対応しているプロトコルを一覧表示し、詳細を示します。このタイプのトラフィックルールは、ルールノードでネストされたノードとして提供されます。ルールがフィルターリングするトラフィックタイプに応じて、属性は異なります。上記の例は、ip トラフィックフィルターリングノード内で有効な単一の属性
srcipaddr
を示しています。以下のセクションでは、どの属性が有効で、どのタイプのデータが期待されるかを示します。使用可能なデータ型は以下のとおりです。
- UINT8 : 8 ビット整数。範囲 0〜255
- UINT16 : 16 ビット整数。範囲 0〜65535
- MAC_ADDR: 00:11:22:33:44:55 などのドット付き 10 進形式の MAC アドレス
- MAC_MASK: FF:FF:FF:FC:00:00 などの MAC アドレス形式の MAC アドレスマスク
- IP_ADDR: 10.1.2.3 などのドット付き 10 進形式の IP アドレス
- P_MASK: ドット付き 10 進数形式 (255.255.248.0) または CIDR マスク (0-32) の IP アドレスマスク
- IPV6_ADDR: FFFF::1 などの数値形式の IPv6 アドレス
- IPV6_MASK: 数値形式の IPv6 マスク (FFFF:FFFF:FC00::) または CIDR マスク (0-128)
- STRING: 文字列
- BOOLEAN - 'true'、'yes'、'1'、または 'false'、'no'、'0'
- IPSETFLAGS: ipset の送信元フラグおよび宛先フラグで、パケットヘッダーの送信元部分または宛先部分から機能を選択する最大 6 つの 'src' 要素または 'dst' 要素 (例: src、src、dst) で記述されます。ここで提供する 'selectors' の数は、参照される ipset のタイプによって異なります。
IP_MASK
または IPV6_MASK
タイプのものを除くすべての属性は、値が no の match 属性を使用して除外できます。複数の否定属性をまとめてグループ化できます。以下の XML フラグメントは、抽象属性を使用したこのような例を示しています。
[...] <rule action='drop' direction='in'> <protocol match='no' attribute1='value1' attribute2='value2'/> <protocol attribute3='value3'/> </rule> [...]
ルールの動作は、ルールを評価するとともに、指定のプロトコル属性の境界内で論理的に調べます。したがって、1 つの属性の値が、ルールで指定された値と一致しない場合は、評価プロセス中にルール全体がスキップされます。したがって、上記の例では、受信トラフィックは次の場合にのみドロップされます。プロトコルプロパティーは
attribute1
value1
と一致せず、プロトコルプロパティーattribute2
は value2
と一致せず、プロトコルプロパティー attribute3
は value3
と一致します。
18.12.10.1. MAC(イーサネット)
プロトコル ID: mac
このタイプのルールは、root チェーンに置く必要があります。
属性名 | データタイプ | 定義 |
---|---|---|
srcmacaddr | MAC_ADDR | 送信側の MAC アドレス |
srcmacmask | MAC_MASK | 送信元の MAC アドレスに適用されるマスク |
dstmacaddr | MAC_ADDR | 宛先の MAC アドレス |
dstmacmask | MAC_MASK | 宛先の MAC アドレスに適用されるマスク |
protocolid | UINT16 (0x600-0xffff), STRING | レイヤー 3 プロトコル ID。有効な文字列は、[arp, rarp, ipv4, ipv6] などです。 |
comment | STRING | 最大 256 文字のテキスト文字列 |
このフィルターは以下のように記述できます。
[...] <mac match='no' srcmacaddr='$MAC'/> [...]