Linuxネットワークスタックのタグ付きパケットフロー

Linuxネットワークスタックのタグ付きパケットフロー

要約:

私の質問は、ネットワークスタックのタグ付きパケットフローについてです。

私がしたことは次のとおりです。

  • OUTPUTチェーンを使用して、マングルテーブルにパケットを表示しました。
  • また、トンインターフェイスと新しいルーティングテーブルを追加しました。
  • ip rule生成されたルーティングテーブルは、タグ付きパケットが使用するようにルール(使用)も追加しました。

今私の質問は次のとおりです。

問題を説明する前に、私の設定が機能していることに注意してください。これはどのように機能するのかという質問ではなく、どのように機能するのかという質問です。 :)

ここに描かれている絵によると記事、ローカルプロセスのパケットが最初にルーティングされ、次にネットフィルタのOUTPUTチェーンに入ります。これは、ルーティングプロセスが完了した後にパケットが表示されることを意味します。もしそうなら、データパケットはどのようにトンインターフェイスに到達しますか?

  1. あるインターフェイスを終了して別のインターフェイスに入ることを意味しますか?
  2. すべてがローカルで起こりますか?
  3. それとも全く違うのですか?

これは私が使ったコマンドです:

# ip commands
ip tuntap add mode tun dev testtun
ip addr add 10.20.30.40/24 dev testtun
echo "20 test" >> /etc/iproute2/rt_tables
ip link set dev testtun up
ip route add default via 10.20.30.1 table test
ip rule add fwmark 12 table tes

# iptables command:
iptables -t mangle -A OUTPUT -m cgroup --cgroup 0x10f2c -j MARK --set-mark 12

私はnet_clsコントローラとcgroups v1を使ってclassidが0x10f2cのプロセスを分離しています。もう一度申し上げますが、この設定はうまくいき、私が望むものを実装しました。どうですか?部分。

この質問にご協力いただきありがとうございます<3.

関連情報