OpenFlow

OpenFlowはネットワーク上でスイッチまたはルーターのフォワーディング・プレーン (en) へのアクセスを可能にする通信プロトコルであり、最も一般的に導入されたソフトウェア定義ネットワーク（SDN）テクノロジーである。 OpenFlowによって、ネットワーク・コントローラーがネットワーク・パケットの経路（どのネットワーク・スイッチを経由するか）を決定することが可能となる。つまり、コントローラーとスイッチの機能を分離・独立させることができる。フォワーディングからコントロールを分離することで、アクセス制御リスト (ACL) 及びルーティング・プロトコルを使う方法よりも洗練されたトラフィック管理が可能となる。また、OpenFlowは、スイッチ群を異なるベンダー製品で構成することも可能にする。通常はベンダーによって独自のインターフェースやスクリプト言語が用いられているが、これらを単一でオープンなプロトコルを用いて遠隔制御・管理することを可能にする。OpenFlowはSoftware Defined Networking (SDN) を実現する技術として発明された。OpenFlow APIは、転送の抽象化の一例である。 OpenFlowは、パケット・マッチングのルールとアクションを追加・修正・削除するなど、レイヤ3スイッチのパケット・フォワーディング・テーブルを遠隔で管理することを可能とする。こうして、ルーティングをコントローラーによって定期的または随時に決定し、構成可能な寿命を持つルールとアクションへと翻訳することができる。 このルールとアクションは次にスイッチのフロー・テーブルに展開され、マッチしたパケットがスイッチへワイヤー・スピードでルールで定められた期間に実際にフォワーディングされる。そして、コントローラーは、単一または複数のスイッチに関するフロー・テーブルのルールを修正するか、スイッチとコントローラの間のトラフィックの構造的なフローを妨げるために新たなルールを展開するか決定をすることができる。スイッチにパケットのヘッダーのみならずパケットの内容もすべてフォワードするように指示することで、トラフィック自身をフォワードするという決定も下すことができる。 OpenFlow通信規約は、OpenFlow操作装置とOpenFlowスイッチの間で行われるメッセージ交換を記述する。メッセージを切り替えるためのそれぞれ勝手な時間に行う、平行データ、およびOpenFlow操作装置をサポートする。ネットワークの管理に使用されるカプセル化されたパケット、フロー統計、およびイベントベースのメッセージをSDNコントローラーに提供する。スイッチがどのようにOpenFlow論理アーキテクチャを実装しているかの詳細に関して、コントローラがスイッチの論理構造を管理することを可能にするものではない。Transmission Control Protocol (TCP) の上に重なるレイヤーであり、Transport Layer Security (TLS) の使用を規定する。コントローラーは、接続を確立したいスイッチのTCPポート6653の情報を注視していなければならない。初期のバージョンのOpenFlowは非公式にポート6633を利用していた。OpenFlowチャネルは、Open/FlowスイッチとOpenFlowコントローラ間のインタフェースであり、コントローラがスイッチを管理するために使用される。OpenFlowポートは、パケットがOpenFlowパイプラインに入ったり出たりする場所である。 グループテーブル、フローテーブル、メーターテーブルは、OpenFlow仕様で定義された論理スイッチアーキテクチャの3種類のテーブルである： グループテーブルは、グループ識別子、グループタイプ、カウンタ、アクションバケットの4つの要素からなる多数の行で構成される。グループテーブル、パケット転送、パケット変更、処理の操作を記述するのがアクション。アクションセットは、パケットが各テーブルによって処理されている間に蓄積され、パケットが処理パイプラインを出るときに実行される、パケットに関連付けられたアクションのリストである。 論理スイッチ・アーキテクチャの基本的な構成要素はフロー・テーブルである。フローは、ヘッダーフィールド値のセットを共有するネットワークを通過する一連のパケットである。 Open Networking Foundation (ONF) は、Software Defined Networking (SDN) の普及を促進するための主導の組織であり、OpenFlowの標準化を監督している。ONFは、OpenFlowをSDNのコントロール層及びフォワーディング層の間の仕様を策定する初の標準通信インターフェースであるとしている。OpenFlowは、スイッチやルーターなどのネットワーク・デバイスのフォワーディング・プレーンへの物理的にも仮想的にも直接アクセスと操作を可能にする（ハイパーバイザ (en) によって）。フォワーディング・プレーンへのオープン・インターフェースがなかったことから、旧来のネットワーク・デバイスはモノリシックでクローズなメインフレームのような特徴を持っていた。OpenFlowのようなプロトコルは、各社が専有するネットワークスイッチからネットワーク・コントロールを分離し、オープン・ソースのコントロール・ソフトウェアに移行する。 多くのネットワーク・スイッチやルーターのベンダーは、OpenFlowをサポートするスイッチを開発すると発表した。例えば、アルカテル・ルーセント、en:Big Switch Networks、ブロケード コミュニケーションズ システムズ、en:Radisys、アリスタネットワークス、Pica8、NoviFlow、華為技術、シスコシステムズ、フォーステンネットワークス、エクストリーム・ネットワークス、IBM、ジュニパーネットワークス、en:Digisol、en:Larch Networks、ヒューレット・パッカード、NEC、そしてMikroTikなどである。このプロトコルは、ネットワーク・コントロール・プレーン (en) の幾つかの実装において、ネットワーク・フォワーディング要素を管理するために採用されている。OpenFlowは、主にセキュリティの高いチャンネルにおいてスイッチとコントローラの間に使用されている。OpenFlow関連製品の情報は以下のウェブサイトで読むことができる：ONF website、SDNCentral website。 OpenFlowプロトコルのバージョン1.1は、2011年2月28日にリリースされた。新たな開発の標準はOpen Networking Foundation (ONF) によって管理されていた。2011年12月、ONFの委員はOpenFlowバージョン1.2を承認し、2012年2月にリリースされた。現在のバージョンは1.4である。 中間者攻撃 潜在的な単一攻撃・障害点 プログラミング及び通信チャンネル問題 - OpenFlow Deployment Experience 主なSDNの比較表は下記の通り。 Software Defined Networking ^ Nick McKeown (April 2008). “OpenFlow: Enabling innovation in campus networks”. ACM Communications Review. 2009年11月2日閲覧。 ^ Lara, Adrian; Kolasani, Anisha; Ramamurthy, Byrav (21/2014). “Network Innovation using OpenFlow: A Survey”. IEEE Communications Surveys & Tutorials 16 (1): 493–512. doi:10.1109/SURV.2013.081313.00105. ISSN 1553-877X. http://ieeexplore.ieee.org/document/6587999/.  ^ Stallings, William (2016). Foundations of modern networking : SDN, NFV, QoE, IoT, and Cloud. Florence Agboma, Sofiene Jelassi. Indianapolis, Indiana. ISBN 978-0-13-417547-8. OCLC 927715441. https://www.worldcat.org/oclc/927715441  ^ a b c d ウィリアム・スターリングス『Foundations of Modern Networking: SDN, NFV, QoE, IoT, and Cloud』Addison-Wesley Professional、2015年 ISBN 0134175395 ^ “OpenFlow Switch Errata v1.0.2-rc1”. Open Networking Foundation (2013年10月4日). 2013年10月5日閲覧。 ^ “Service Name and Transport Protocol Port Number Registry”. IANA. 2013年10月5日閲覧。 ^ Kate Greene (March–April 2009). “TR10: Software-Defined Networking”. MIT Technology Review. http://www.technologyreview.com/biotech/22120/ 7 October 2011閲覧。  ^ “Open Networking Foundation: SDN Defined”. Open Networking Foundation. 7 October 2011閲覧。 ^ “Software-Defined Networking (SDN): The New Norm for Networks”. Open Networking Foundation. 7 October 2011閲覧。 ^ Solomon, Howard (2013年12月11日). “Alcatel Now Supports OpenFlow, OpenStack on Switches”. IT World Canada. 2013年12月15日閲覧。 ^ Metz, Cade (26 March 2013). “You Can't Have Google's Pluto Switch, But You Can Have This”. Wired. 29 March 2013閲覧。 ^ Pavel Radda (2011年3月22日). “Brocade Leads OpenFlow Adoption to Accelerate Network Virtualization and Cloud Application Development”. Reuters. 2011年11月29日閲覧。 ^ “FlowEngine:Intelligent Flow Management” (20 Feb 2016). 2016年2月25日閲覧。 ^ “MikroTik Manual:OpenFlow” (16 Jun 2015). 2015年10月1日閲覧。 ^ Teemu Koponen et. al (2010年10月4日). “Onix: A Distributed Control Platform for Large-scale Production Networks”. USENIX OSDI 2010. 2010年10月1日閲覧。 ^ “Open Networking Foundation Press Release” (2011年3月20日). 2011年3月25日閲覧。 ^ “Open Networking Foundation - OpenFlow v1.2”. 2012年3月1日閲覧。 ^ “Open Networking Foundation - OpenFlow v1.4”. 2013年11月1日閲覧。 ^ “OpenFlow Vulnerability Assessment”. 2016年4月11日閲覧。 ^ “OpenFlow security: Does OpenFlow secure software-defined networks?”. 2016年4月11日閲覧。 ^ Sriram Natarajan. “A Software defined Cloud-Gateway automation system using OpenFlow”. 2016年4月11日閲覧。 Floodlight project website Open Networking Foundation website OpenDaylight project website OpenFlow project website