これはパケット内部の DSCP のマーキング (Differentiated Services フィールド) を変更するターゲットだ。 DSCP ターゲットは TCP パケットにどんな DSCP 値でも与えることができる。 DSCP 値は、ルータにそのパケットの優先度を指示するひとつの手段だ。 DSCP の詳細については RFC ドキュメント RFC 2474 - Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers を参照して頂きたい。
簡単に言うと、 DSCP はサービスを格付けしてカテゴリー分類するための手段だ。このカテゴリーに基づいて、ルータにそれらの扱いの優劣をつけさせることができる。そうすると、ひとかたまりのバルク転送には適さない対話型の TCP コネクション (例えば telnet や SSH, POP3 など) に高速なコネクションを優先的に与えられる。また反対に、重要度の低いコネクション (SMTP にせよ何にせよ、あなたが優先度が低いと認めるサービス) に関しては、使うにはもったいない高速で低遅延のコネクションではなく、比較的遅延の大きい溜め出し状態のネットワークで送るようすることができる。
Table 11-6. DSCPターゲットオプション
オプション | --set-dscp |
例 | iptables -t mangle -A FORWARD -p tcp --dport 80 -j DSCP --set-dscp 1 |
説明 | これは DSCP を任意の値に設定するものだ。値は、下記で述べるようにクラスで与えることもできるし、 --set-dscp を使って 10進または 16進数の値を設定することもできる。 |
オプション | --set-dscp-class |
例 | iptables -t mangle -A FORWARD -p tcp --dport 80 -j DSCP --set-dscp-class EF |
説明 | DSCP フィールドを、定義済みの DiffServ クラスで指定する。指定可能な値としては EF, BE, CSxx, AFxx などがある。詳しくは Implementing Quality of Service Policies with DSCP のサイトで知ることができる。注意しなくてはならないのは、 --set-dscp-class と --set-dscp は排他、つまり、ひとつのコマンドの中ではどちらか一方しか使用できないということだ。 |
Linux カーネル 2.3, 2.4, 2.5, 2.6 で機能する。 |