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で上書きされます(これも一致するため)。
最も具体的なルールが最後に適用されるように、最も具体的なルールから最も具体的なルールの順序を指定することをお勧めします。