デバイスから送信されるすべてのパケットをマークするにはどうすればよいですか?

デバイスから送信されるすべてのパケットをマークするにはどうすればよいですか?

を使用して tun デバイスを作成しip tuntap add dev tun0 mode tun、 を使用して tun0 からのすべてのパケットにマークを設定したいと考えていますiptables -t mangle -A OUTPUT -o tun0 -j MARK --set-mark 1。 しかし、 を使用して一致したルールを確認するとiptables -t mangle -nvL、一致するパケットは 0 個でした。 これについて誰か助けてくれませんか?

実際、他のフィルターも試しましたが、何も得られませんでした。これは tun0 の設定と関係があるのでしょうか?

答え1

-o tun0出力デバイス フィルターなので、マングル ルールは 経由でシステムを出るパケットと一致しますtun0。 から入ってくるパケットをマークするにはtun0を使用します。-i tun0おそらくチェーン内で行う方がよいでしょうPREROUTING

また、パケットマークは応答パケットには自動的に適用されないことに注意してください。このルールは、1つの単方向フローのパケットのみをマークします(双方向接続には2つのフローがあります)。応答パケットをマークするには、接続マークモジュール。たとえば、ポリシー ルーティングのためにパケット マークが必要な場合は、接続マークをパケット マークにコピーできます。そのための特定のアクションがあります。

関連情報