2つのループバックアダプターが互いに通信する方法


0

Javaネットワークアプリケーションをテストする必要があります。各クライアントアプリは、IPによって識別されます。それをテストする最も簡単な方法は、いくつかのマシンまたはVMを実行することです...しかし、このアプリケーションの各インスタンスは、バインドするために指定されたローカルインターフェイスで実行できます。そのため、多くのループバックインターフェイスを作成し、VMのない単一のマシン上で、指定されたループバックインターフェイスIPを使用してアプリケーションの各インスタンスを実行するだけだと考えました。

テスト用に、Windowsで2つのループバックアダプターを作成しました。

1:192.168.10.201/255.255.255.0

2:192.168.10.210/255.255.255.0

gwまたはDNSは指定されていません。両方をsystem32 / etc / hostsに追加しました。

指定したIPでアプリケーションを実行すると、ループバックアダプターに正常にバインドされますが、他のループバックアダプターは表示されません(接続タイムアウト)。

したがって、問題はアダプターが相互に通信できないことです。適切に設定する方法は?


通常のネットワークではなくループバックを使用しているのはなぜですか。考えは、ネットワークは互いに通信できるが、そのループバックは[仮想]マシンを離れることはないということです。そのため、ループバック使用し、(別のループバックアダプターであっても)何かと通信することを期待するのは直観に反します。
ヘネス

理由を説明しました。それぞれで単一のアプリを実行するためだけに100VMを実行することを想像してください。リソースの大量の浪費。ネットワークアプリをテストするには、同じポートと異なるIPでアプリをバインドするために100個のインターフェイス(異なるIPスタック)が必要です。
user3064331

回答:


-1

これら2つのIPアドレスは同じサブネット上にあります。つまり、これらのIPの1つから他のIPにパケットを送信するとき、ネットワークスタックは、それらが同じインターフェイス上にあることを期待します。3番目のオクテット(10)が両方のインターフェイスで異なることを確認すると、さらに運が上がる場合があります。

ループバックインターフェイスは通常ルーティングできないため(127.0.0.1から外部IPに接続できない)、これがループバックインターフェイスで動作するかどうかはわかりません。2つのIPアドレスを持つ単一のループバックアダプターを使用することは可能ですか(受け入れ可能です)(これは1つのインターフェイスであるため、同じサブネットにあるはずです)


インターフェース上の異なるサブネットではまだ運がありません。各インスタンスは、独自のインターフェースに正常にバインドし、データを送信しますが、何も受信しません。
user3064331

Windowsがルーティングをどのように処理するかは完全にはわかりませんが、ループバックインターフェイスを介してトラフィックをルーティングできないことがよくあります。回答に段落を追加し、単一のループバックインターフェイスを使用することをお勧めします。
jornane

1
代替IPまたはエイリアスIPがほとんどない単一のループバックインターフェイスを使用し、さらにそれらの名前をホストファイルに追加してます。アプリケーションの各インスタンスは、同じインターフェイスにバインドされますが、IPは異なります。うまくいかないかもしれないと思ったが、うまくいく。単一のインターフェイスを使用しますが、同じポート番号に異なるIP上でバインドするソケットを作成できます。
user3064331
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.