11.11. MARKターゲット

MARK ターゲットは、特定のパケットに関連付けされる Netfilter マークを設定するために用いられる。このターゲットは mangle テーブルのでのみ有効で、それ以外の場所では使えない。 MARK の値は、 Linux の高度ルーティング機能と組み合わせて、パケットの種別によって経由先ルータを換えたり、キューイング規則 (qdisc = queue disciplines) を切り替える、といった使い方が考えられる。高度ルーティングについてのより詳しい情報は、 Linux Advanced Routing and Traffic Control HOW-TO を見てみてほしい。留意点だが、マークは、パケットに関連付けされた値であって、パケットそのものにくっつくわけではなく、カーネル内に保持される。つまり、パケットに MARK を付けておいて、そのパケットが他のホストに到着してもまだ MARK が付いていると考えるのは間違いだ。そういったことを行いたいのなら、 IP ヘッダの中の TOS の値を改変できる TOS ターゲットのほうを使うべきだ。

Table 11-9. MARKターゲットオプション

オプション--set-mark
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
説明--set-mark オプションはマーク を付けるのに必要となる。 --set-mark の引数は整数。例えば、特定のストリームのパケット、あるいは特定のホストからのパケットにマーク 2 を与えておき、ホストに応じた高度ルーティングを行ってネットワークの帯域幅を規制する (あるいは確保する) といった利用法が想定できる。

Note

Linux カーネル 2.3, 2.4, 2.5, 2.6 で機能する。