mangle dscpルールがiptablesに適用される順序は何ですか?

mangle dscpルールがiptablesに適用される順序は何ですか?

iptables mangle を使用して、さまざまな DSCP 値でトラフィックを表示します。重複するルールが適用される順序を確認したいと思います。私はロジックが通常iptablesと同じであると仮定します。つまり、チェーンの最初の一致ルールが適用されます。しかし実際にはその逆のようです。たとえば、次の規則を使用します。

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DSCP       icmp --  anywhere             anywhere            DSCP set 0x14 
DSCP       all  --  anywhere             anywhere            DSCP set 0x0f 

ICMPパケットは0x14と表示されると仮定しましたが、実際には0x0fとマークされています。これはいつも本当だと信じられますか?最後のルールの代わりにチェーンの最後の一致ルールが適用されますか?これに関する文書はどこにもありません。

答え1

私の記憶が正しい場合、マングルテーブルのDSCPターゲットはACCEPT / REJECT / DROPターゲットとは異なり、ルール処理を停止しません。したがって、あなたの場合、ICMPパケットのDSCP値は0x14に設定され、次の規則では0x0fで上書きされます(これも一致するため)。

最も具体的なルールが最後に適用されるように、最も具体的なルールから最も具体的なルールの順序を指定することをお勧めします。

関連情報