labs.beatcraft.com

OpenFlow とは? †

OpenFlow とは、ネットワークをその構成要素から分離し抽象化して再構成する
SDN (Software Defined Network)を実現する技術の一つです。
ネットワークを抽象化することでネットワーク全体がプログラムの対象となり、
集中管理、構成の自動変更、最適化といったことをプログラミンで行うことが可能になります。

OpenFlow はOpenFlowスイッチとOpenFlowコントローラーから構成されます。
OpenFlowスイッチはフローテーブルに従ってパケットを転送し、
フローテーブルにないパケットが来た場合はOpenFlowコントローラーに処理方法を問い合わせます。
OpenFlowコントローラーは経路計算をしたり、パケットの扱いのルールをフローテーブルの書き込むことで
OpenFlowスイッチに動作の指示をしたりしてネットワークを管理します。
OpenFlowコントローラーからの指示によってOpenFlowスイッチは
スイッチにもルーターにもロードバランサーにもなります。

↑

OpenFlowの標準化 †

このスイッチとコントローラー間の通信仕様はOpenFlowプロトコルとして標準化されています。
OpenFlow 1.1 まではスタンフォード大学の研究チームを中心にしたOpenFlowスイッチングコンソーシアムによって策定され
http://www.openflow.org/wp/documents/
で公開されていましたが、
現在は Open Networking Foundation という組織で仕様が策定されています。
2013年3月末現在 1.3.1 まで仕様が出ています。
https://www.opennetworking.org/sdn-resources/onf-specifications/openflow

OpenFlow は同じ version のプロトコルに対応したスイッチとコントローラーの間でしか
通信を行うことはできません。

OpenFlow対応スイッチの製品の多くは1.0や1.1までの対応だったのですが、
最近になって急速に 1.3.1 への対応が進んできています。

Version ごとの特徴は以下のようになっています。

↑

スイッチとコントローラー †

OpenFlowスイッチにはソフトウェアによる実装と機器ベンダーによる装置としての実装があります。
OpenFlowコントローラーはスイッチを制御するコントローラーのルールをどの言語で書けるかによって
それぞれ以下のような実装があります。

↑

OpenFlow Switch †

↑

OpenFlow Controller †

↑

OpenFlow を試してみる。 †

OpenFlow はどんなものなのか、上に挙げたスイッチとコントローラーの組み合わせを実際に動作させて試してみます。

↑

mininet †

minninet は一つの Linux 環境上にOpenFlow スイッチ、OpenFlow コントローラー、スイッチに接続するホスト
から成る仮想ネットワークを構築して OpenFlow の開発やテストを行うことができる環境です。
OpenFlow/mininetを参照してください。

↑

OpenFlow Tutorial †

OpenFlow Tutorialを参照し、OpenFlowの各動作を確認しています。
http://www.openflow.org/wk/index.php/OpenFlow_Tutorial 

OpenFlow/OpenFlow Tutorial 1
OpenFlow/OpenFlow Tutorial 2
を参照してください。

↑

Open vSwitch_x86 †

mininet環境を導入したLinux PC2台を使用してOpenFlow コントローラ、OpenFlowスイッチを各々作成、
OpenFlow Tutorial 1,2で行った動作確認をしています。
OpenFlow スイッチはOpen vSwitchをベースに設定しています。

OpenFlow/OpenvSwitch_x86 を参照してください。


BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   新規 一覧 単語検索 最終更新   最終更新のRSS