1

2 つの異なる VM に 2 つの異なるネットワークがある割り当てを解決しようとしています。

VM1:
H1----->S1------>C1
 and on VM2:
H2------>S2------>C2

GRE トンネリングを使用すると、2 つの異なるネットワークに接続できることはわかっていますが、その場合、S1 を C2 に、S2 を C1 にリモートで接続します。しかし、ここでは、VM1 のコントローラーが VM2 のスイッチを制御することは望ましくありません。

GRE トンネリングを介して S1 と S2 の間で何らかの接続を確立できる可能性があると考えていました。したがって、H1 から H2 に ping を実行したい場合は、H1 から S1 へ、S1 から S2 へ、そして H2 へと移動する必要があります。

どなたかお願いします。

4

1 に答える 1

1

これが私があなたがする必要があると思う全体的なことです。

2 つの VM があり、それらを A と B と呼びましょう。両方で、タップ インターフェイスと、いくつかのミニネット トポが実行されている必要があります。mininet topo は、tap インターフェイスに接続する必要があります。次に、タップを一緒に接続する必要があります (トンネリング)。これにより、2 つのミニネット トポスも接続されます。

トリッキーな部分は、ミニネットをタップ インターフェイスに接続する方法だと思います。私がPythonコードでそれを行う方法を見てください。コードの重要なこのセクションはその仕事をします:

    # This would connect switch s1 tap interface named tap1 
    self.addIntf(s1,'tap0')

また、コントローラーを追加するときは、各 VM に独自のローカル ホストがあるため、同じ localhost ip と同じポート番号を使用しても問題ないと思います。しかし、よくわからないので、念のため、いずれかのポート番号を変更してください。

    # So this is ip address and port number of controller. 
    # both mininet codes should have this line, although with different port number
    c = RemoteController('c','0.0.0.0',6633)

詳細:

  1. 両方の VM でタップ インターフェイスを作成し、それらを起動します。
  2. それらを接続します (トンネリング)。
  3. 両方の VM で実行sudo mn -cして、ミニネット環境をクリーンアップします。
  4. 両方の VM でコントローラーを実行します。ポートが異なることを確認してください。
  5. それぞれでミニネット トポを実行します。

Tap インターフェイスを作成するために使用する名前は、ミニネット トポのコードで使用する名前と同じである必要があることに注意してください。

それが役に立てば幸い。何かわからないことがあれば教えてください。

于 2015-08-03T19:32:51.150 に答える