以下のリンクは、クロスチェーンパケットフローを説明するイメージです。nftables
1つを除いてすべて理解しています。画像では、現在のステップが何であるかはわかりませんrouting decision
。
画像によると、これは2つの場所で行われるべきです。
- フック後、
prerouting
前input
と前forward
output
パケットが localhost プロセスを離れるときにフックする前に
上記の最初のポイントは後ろに2つの可能なフックがあるため意味がありますが、prerouting
ポイント2の場合、唯一のストリーミングオプションはローカルプロセスで実行されるため、実行するルーティング決定は明確ではないため、ルーティングoutput
決定はあってはなりません。一つあるそうです。
これにより、ルーティング決定は上記の1番目の項目にのみあると信じられます。画像が間にノードフックを
指定するのはなぜですか?routing decision
local process
output
SNAT
これはpostrouting
フックで行われ、「ルーティング後にローカルシステムを離れる前にすべてのパケットをチェックする」ドキュメントに従って行われますが、
質問はどのルーティングですか?イメージに基づいて2つのルーティング決定があるためです。
ところで。 「ルーティング決定」(イメージのノード)とは何ですか? and Hookで行われるのでそうでNAT
はありません。NAT
prerouting
postrouting
答え1
画像が正しいです。
ルーティングは一度だけ実行されます。Local Process
出発地または宛先であるため、パケットフローはルーティング決定を一度だけ行います。 2番目のポイントの場合、プロセスは次のように進みます。
- ローカルプロセス
- ルーティング決定
- 出力
- ポストルーティング
- 出口
- 運転手が送る
これ以前には何もないので、ルーティングの決定だけを経ます。この場合、ルーティング決定は、パケットを送信するIPアドレスと使用するインターフェイスを選択することを意味します。 1.1.1.1にパケットを送信するには、次の手順を実行する必要があります。
$ ip r get 1.1.1.1
1.1.1.1 via 192.168.1.1 dev wlp0s20f3 src 192.168.1.254 uid 1000
cache
したがって、パケット(srcip:192.168.1.254、dstip:1.1.1.1)をWi-Fiインターフェースwlp0s20f3の192.168.1.1に送信します。これを選択すると、snatを実行するためにIPヘッダーソースIPを変更できます。