独立して確認しようとしてきました。このstackoverflowの質問に答えてくださいソースが特定のソースアドレスを要求しない場合、LinuxカーネルがIPパケットにソースアドレスを割り当てる方法です。言及されたコメントの1つこのソースこれには次の文が含まれています。
このヒントがない場合、カーネルは宛先アドレスと同じネットワーク上のインターフェイスに設定された最初のアドレスを選択します。
この文は2つに解釈できると思います。
- カーネルは、宛先アドレスと同じネットワーク上のインターフェイスを選択し、そのインターフェイスに割り当てられた最初のアドレスを選択します。
- インターフェイスに割り当てられたアドレスのうち、カーネルは宛先アドレスと同じネットワーク上の最初のアドレスを選択します。
1つ目は文章の無邪気な(つまり純粋に文法的な)解釈だと思いますが、2つ目はカーネルが選択されたと推測する方法です。私の推論は次のとおりです。作業を簡単にするために、このネットワークにゲートウェイ/ルーターがないとします。選択した送信元アドレスが同じネットワークにない場合(最初の説明で可能)、宛先はどのように送信元アドレスに応答(TCP ACKなど)を送信できますか?
どんな説明が正しいですか?
- 最初の場合、ターゲットはどのように応答をソースに再ルーティングしますか?
- この動作に関するドキュメントはどこにありますか(可能な限りLinuxのマニュアルページ)?