Linuxはアプリケーショントラフィックをルーティングするインターフェイスをどのように決定しますか?

Linuxはアプリケーショントラフィックをルーティングするインターフェイスをどのように決定しますか?

int1などの2つのインターフェースを実行する仮想化Linuxボックスがありますint2int1これは「NATネットワーク」であり、int2VirtualBoxの「ホストのみ」アダプタです。

ターミナルで「google.com」をpingしようとすると、トラフィックがgoogle.comからルーティングされるため、int2何も応答しません。ただし、ブラウザで「google.com」にアクセスしようとすると問題なく応答します。

ターミナルとFirefoxは両方とも単純なアプリケーションなので、Linuxがどのアプリケーションからのトラフィックをどのインターフェイスを介してルーティングする必要があるかを決定する方法、およびそれをどのように変更できるかを知りたいです。

PS:もしそうなら、Linuxボックスは実際にUbuntuベースのオペレーティングシステムである「Linux Backbox」です。

PPS:ゲストOSからインターネットとホストOSにアクセスしたい場合は、ブリッジ接続を行うことができますが、これは私が使用している会社のコンピュータであり、IT部門がネットワークを検索しながら歩き回りたくありません。 「ゴースト」ホストの場合、Ghost Machineの名前です(文字通り「ゴースト」:D)。

答え1

Linux はルールとルーティングを使用して、使用するインターフェイスを決定します。

これらのルールはパケットの条件と参照するルーティングテーブルを指定し、ip rule showiproute2を使用している場合はこれらのルールを表示できます。ほとんどの場合、これはローカルテーブル、基本テーブル、基本テーブルを順番に表示することを意味します。

ルーティングテーブルには、パケットを送信する必要がある宛先とオブジェクトのリストのみが含まれています(パケットを送信する必要があるインターフェイスを含む)。これ基本ルーティングテーブルはを使用して確認できますip route show

AFAIK Linuxは異なるアプリケーションに異なるパスを使用しません(同じネットワークネームスペースにあり、奇妙なiptables fwmarkingシステムがない場合)。

関連情報