単一の物理ホスト内でns-3およびタップインターフェイスを使用してLTE接続をシミュレートするためのシミュレーションプラットフォームを構築しようとしています。私はこれが非常に複雑だと思います。特定のIoTアプリケーション層プロトコルを使用してクライアントとサーバーを作成し、そのために作成された共通ライブラリ(AMQP用のRabbitMQ Javaクライアントなど)を使用できるようにしたいので、実際のネットワークを使用しているかのように機能したいと思います。接続してください。
私が経験している問題の1つは、互いに直接ルーティングするのではなく、エミュレーションを介してクライアントとサーバープログラム間のトラフィックをルーティングすることです。私の最初の考えは、クライアントとサーバープログラムを別々のドッカーブリッジネットワークに接続されている別のドッカーコンテナに入れて分離することでしたが、これを試した後、トラフィックが正しいルーティングのためにインターフェイスをタップするのに問題があります。
対応するTapインタフェースをそのドッカーコンテナのブリッジに依存させましたが、必要な方法で動作させることはできません。クライアントドッカーコンテナは、そのタブインターフェイスをすべてのトラフィック(または少なくともサーバーへのトラフィック)のゲートウェイとして使用したいが、コンテナが知っている唯一のインターフェイスまたはIPアドレスは接続されたドッカーブリッジネットワークです。このブリッジのタブインターフェイスではないため、route
そのコマンドを使用してゲートウェイを設定することはできません。ただし、ブリッジに接続しているかどうかにかかわらず、同じTapインターフェースをpingできます。最初はコンテナからインターネットホストをpingすることもできましたがiptables
。
2番目の希望は、タブインターフェイスを接続されていないインターフェイスまたはホストに送信されるブリッジ内のすべてのトラフィックのゲートウェイとして設定することです。
私が望む孤立を達成するにはどうすればよいですか?
編集する: これが私が思いついたトポロジです。
+------------------------------------------------------------------+
| Linux Host |
| +---------------------+ +---------------------+ |
| | Isolated network 1 | | Isolated network 2 | |
| | +--------+ | | +--------+ | |
| | | Client | | | | Server | | |
| | | | | | | | | |
| | +--------+ | | +--------+ | |
| | ^ | | ^ | |
| | | | | | | |
| | +---ˇ------+ | | +------ˇ---+ | |
| | | Bridge 1 | | | | Bridge 2 | | |
| | +----------+ | | +----------+ | |
| | ^ | | ^ | |
| +-----|---------------+ +---------------|-----+ |
| | | |
| +--ˇ----+ +----ˇ--+ |
| +--| Tap 1 |------------------------------------| Tap 2 |--+ |
| | +-------+ NS-3 Emulated LTE Network +-------+ | |
| | | |
| +----------------------------------------------------------+ |
| |
+------------------------------------------------------------------+