同じIPソリューションに複数のNICSが必要

同じIPソリューションに複数のNICSが必要

私のネットワークトポロジは次のとおりです。 ここに画像の説明を入力してください。

私の問題は、Fuchsia GreenとOrangeコンピュータが実際にハードコードされた産業用システムであるため、そのコンピュータの設定を変更できないことです。

ブロックPCを追加してUDPパケットをブロックして操作する必要があります。

例 – Red PC 192.168.0.20 は、UDP パケットを Purple PC に送信します。これは実際にパケットを受信して​​応答する傍受コンピュータ(Ubuntu 16.04)に到達します。その後、他のメッセージを設定して紫色のPCに送信します。

問題は、ネットワークがすべて同じサブネット上にあり、転送するIPがすでにあるため、カーネルが発信するパケットを送信するNICを知らないことです。

NICSを持つために別々の名前空間を作成しようとしましたが、通信できないことに気づく前に、名前空間間でDbusを介して通信するために複数の別々のプロセスを作成しました。必要に応じてさらにハードウェアを購入できますが、この結果を得る方法についてのアドバイスを探しています。

ベストアンサー1

はい、ネットワーク名前空間を使用して2つの「同じ」ネットワークを分離できます。

たとえば、右側には、3つのインターフェイスすべてが配置されているネットワーク名前空間と、トラフィックをブロックおよび転送するためのブリッジとタブがあります。ブリッジにタブと3つのNICを追加し、タブに192.168.0.10のみを割り当てます。したがって、タブだけにNICにIPが割り当てられません。ブリッジは、右側の192.168.0.10にすべてのトラフィックを転送し、そのNICを介してすべてのトラフィックを192.168.0。{20、21、22}に転送する役割を果たします。

[読み取り/書き込み]タブ(レベル2)用のインターセプタを作成し、stdin / stdout(バッファリングされていない)を介してパケットを転送します。また、stdin / stdoutパケットをTap(別のTap)に送信し、左側のグローバルネームスペースに配置する同様の単純なトランスポートプログラムを作成します。プログラムはすべてのパケットを転送し、その一部にブロックを適用する必要があります。

左側のネームスペース(グローバルネームスペース)は、ネットワークカードのブリッジとタブに合わせて配置されているため、タブにIPアドレス192.168.0。{20、21、22}がすべて追加されます。

dpipe次に、パッケージ内のプログラムを使用するvde2か、直接作成して2つのTapコネクタを起動してstdin / stdoutが互いに接続されるようにします。これを行うコマンドはdpipe次のとおりです。

# dpipe program1 tap1 = ip netns exec RHS program2 tap2

その効果は、program1のstdoutがprogram2のstdinに行き、program2のstdinがprogram1のstdinに行くことです。 (説明の便宜上、理論的にはプログラムのタブ名パラメータを含めました。)

全体として、これはIP変換を中断することなく2つの名前空間間のパケットを傍受して転送する方法です。

この設定は、両側にNICがあり、右側にスイッチがある場合でもうまく機能します。したがって、2つのトリプルNICは必要ありませんが、2つだけが必要です。左側に1つ、右側に1つ、もちろん4つの物理ホストを持つ右側のネットワーク用のスイッチもあります。

おすすめ記事