2016-10-30 15 views
0

各ovsにはフローテーブルがあり、これらのテーブルはコントローラによって設定または変更されています。私の質問は次のとおりです:openvswitchは単独でデータを保存できますか?

ovsはコントローラの干渉なしでデータを保存できますか?

つまり、ovsはテーブル自体を作成し、新しいパケットごとに変更できますか?

答えて

0

理論上:はい。

しかし、それがネットワークの上司だと思うどんなコントローラーでも、スイッチがそれ自身でフローテーブルに入れるものはすべて削除されます。つまり、コントローラがスイッチに接続するとすぐに、テーブルがフラッシュされます。

このようなものを実装する場合は、OpenFlowプロトコルの実装プロセスを真似てください。パケットが到着し、スイッチは何をすべきかを知らず、コントローラに質問し、コントローラは何をすべきかをスイッチに通知する。

あなたがこのチェーンで始めるのはあなた次第です。たとえば、アップコールをトリガーする新しいアクションを導入することができます。または、ブリッジで実行されている自律型スレッドで実装します。あるいは、どこからでもコマンドを受け取り、ovs- *バイナリでフローテーブルを変更する各スイッチの上にアプリケーションを構築します。または、コントローラに接続されていないときにスイッチが何をするかを調べます。

実際には、Open vSwitchはコントローラから受信したflow-modsを適用するので、すでにこれを実行しています。あなたが把握する必要があるのは、これらのフローモッズがどこから来るべきかだけです。しかし、それを手助けするために、シナリオに関する追加情報が必要です。

+0

ご返信ありがとうございます。私にとって重要なことは、openvswitch構造を実際に実装するために変更しないことです。スイッチとコントローラを備えた実際のネットワークトポロジを持っていると考えてください。そこに "サービスホスト"を接続せずに各スイッチにテーブルを保存する方法はありますか? – Mehdi1902

+0

snoopまたはmonitorコマンド[Docs](http://openvswitch.org/support/dist-docs/ovs-ofctl.8.txt)は役に立ちますか?最初にフローテーブルエントリを追加し、変更を確認するためにモニタを使用し、そのフィードバックを使用して反応させるスクリプトを書くことができます。 – Brotsalat

関連する問題