クライアントOUTPUT
チェーンのパケットにタグを付け、ルータにiprouteポリシーを追加して特定のゲートウェイを介してルーティングできますか?これは私が試したことですが、うまくいきません。
私のクライアントのMangleテーブルダンプ:
Chain OUTPUT (policy ACCEPT 13884 packets, 2327K bytes)
pkts bytes target prot opt in out source destination
13917 2330K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 MARK set 0x2
Chain POSTROUTING (policy ACCEPT 13889 packets, 2328K bytes)
pkts bytes target prot opt in out source destination
13889 2328K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2 LOG flags 0 level 4
iptables
ルータのマングルテーブルのINPUTチェーンダンプ:
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2 LOG flags 0 level 4
2074 196K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
88 14890 ACCEPT all -- ethint * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- eth0 * 0.0.0.0/0 0.0.0.0/0
しばらくして、テストパケット(WiFi経由でルーターに接続されているクライアントからイントラネット外部ホストにping)を送信した後も、ルーターのLOGカウンターはゼロのままです。
質問
- 私の小包はどうなりましたか?
- 私のパッケージの表示が欠けている場所はどこですか?
答え1
パケットのタグはカーネルデータ構造に格納された値です。カーネルはパケットを処理しながらパケットに従います。これはパケット自体の一部ではありません。ネットワーク経由で送信されません。あるホストにタグを設定し、別のホストから読み取ることはできません。
代わりに、実行する作業は達成する目標によって異なります。可能であれば、同じホストでフィルタリングと修正を実行します。ルーターを変更する必要がある場合は、フィルタリングできるパケットに何かを含めるようにアプリケーションを準備できます。
場合によっては、クライアントでのフィルタリング(パケットを送信するユーザーなどの外部要因によって異なります)、およびルータの破損(パケットをフィルタリングしない特定のルータにパケットを再ルーティングする必要がある場合)を避けることはできません。 tルートアドレス)。この場合、IPパケットを「表示」する一般的な方法があります。クライアントに複数のIPアドレスを割り当てる、クライアントのデータパケットを修正することで別の発信IPアドレスを使用タグ付けに使用する基準に基づいて、クライアントのIPアドレスに基づいてルータで追加の変更を実行します。