0

私は SDX (Software Defined Exchange) に関する研究プロジェクトに取り組んでいます。現在の SDX の実装は、 https://github.com/sdn-ixp/sdxで提供 されており、パケット転送のために単一のコントローラーに接続された単一のスイッチのみを使用しています。

私の研究目標は、このセットアップをスケーラブルにすることです。最初に頭に浮かぶのは、明らかに SDX を複数のスイッチで動作させ、フロー テーブルを分割することです。私が考えたアプローチは、大まかにこのトポロジを設定することです:

http://i.stack.imgur.com/yXKQp.png

ここで、図に示す 3 つのスイッチ (この例では) に分散することにより、1 つのスイッチのフロー テーブル エントリを減らしたいと考えています。

ノード A がノード B にパケットを送信したいとします。A が最初に SDX に参加したとき、コントローラーは、この場合はインターフェイスとして使用するスイッチ (S1) と、それがアナウンスする IP プレフィックスを認識しました。B もスイッチ S1 とインターフェースしているとします。A が特定の IP から発信されたすべてのトラフィックを B に転送するポリシーを指定すると、コントローラーは両方の AS が同じスイッチに接続されていることに注意し、スイッチ S1 に対応するエントリを追加します。

私が望むのは、各スイッチに一致しないポリシーがあることです。つまり、パケットがエントリに一致しない場合、次のスイッチに転送されます。たとえば、エントリに一致しない A からパケットを取得した場合、S1 は S2 に転送されます。フローテーブルにあります。これは、A が特定のアドレスから発信されたすべてのトラフィックを D に転送したい場合に発生します。コントローラは、D がスイッチ S2 に接続されていることを認識しているため、対応するエントリをスイッチ S2 に追加するだけで、S1 で一致しないパケットはすべて転送されることを認識しています。デフォルトでは S2 に転送されます。

現在、OpenFlow コントローラーは接続されているすべてのスイッチにルールを設定しているため、Open Flow でこれを行う方法を知りたいです。ここからどの方向に行けばいいですか?独自のコントローラーを作成しようとする必要がありますか?

アドバイスをいただければ幸いです。ありがとうございました

4

1 に答える 1

0

あなたが提案していることはそれほど難しいことではないと思いますが、積極的にスイッチにデフォルト フローを追加するつもりなら、それは悪い考えです。

これには基本的に 2 つの部分があります。コントローラがフローを関連するスイッチにのみ追加するようにすることと、デフォルト フローを追加することです。どちらの場合も、コントローラー アプリのロジックの一部を書き直す必要がある可能性が高くなります。

しかし、IX に接続されていないアドレスに向かうパケットはどうなるでしょうか? 通常のセットアップでは、それらはコントローラーに送られ、そこで何をすべきかが判断されます。次のスイッチに送信するデフォルト フローが存在する場合、パケットがスイッチの周囲を漂い続ける場合が発生する可能性があります。

それを行うためのより良い方法は、「D に向かうすべてのトラフィックは S2 を接続するポートに出て行く」というフローを S1 に入れることです。このようにして、真に一致しないパケットがある場合、それらは処理されます。

そのドキュメントを簡単に見てみると、VNH の一部を悪用してこれを行うことができる場合があります。

于 2015-05-10T21:10:53.787 に答える