labs.beatcraft.com

OpenFlow とは?

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

OpenFlowOpenFlowスイッチと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