sdn で複数のコントローラー間の負荷分散を開発しています。コントローラー 1 で負荷が計算されたら、その一部をコントローラー 2 に移行する必要があります。mininet を使用してトポロジを作成し、2 つのリモート pox コントローラーを 1 つ 127.0.0.1:6633 で実行し、もう 1 つを 127.0.0.1:6634 で実行しました。これらのコントローラー間で通信するにはどうすればよいですか? controller-1 の負荷情報を controller-2 に送信し、いくつかのフローをそこに移行するにはどうすればよいですか?
2 に答える
一般に、コントローラーが相互に通信する必要がある分散 SDN フレームワークを求めています。コントローラーが情報を交換できるようにするには、それらの間に通信チャネルを確立する必要があります。まず、コミュニケーションのタイプ、インバウンドまたはアウトバウンドを決定します。ほとんどの分散システムは、インバウンド通信チャネルを持つアウトバウンドをフェイルセーフ ソリューションとして使用します。通信モジュールの選択は簡単です。いくつかのオプションがありますが、一般的な 2 つの方法だけを検討します。1 つ目は POX のネイティブ メッセンジャー コンポーネントhttps://github.com/noxrepo/pox/blob/carp/pox/messenger/init.py 2 つ目で最も広く使用されているのは、RabbitMQ メッセージ交換ブローカー システムhttps ://www. rabbitmq.com/tutorials/tutorial-one-python.html エージェント プログラミング アプローチに従うようにしてください。http://jeremie.leguay.free.fr/files/disco_noms_2014.pdfに役立つペーパーがあります。最後に、エージェントを使用することにした場合は、SPADE https://pypi.python.org/pypi/SPADEという優れた python ライブラリがありますが、時々不具合が発生します。