OpenFlow おーぷんふろー
簡単に言うとこんな感じ!
ネットワークのスイッチを「頭脳と体を分離する」しくみだよ!普通のスイッチは自分で考えて自分でパケットを転送するけど、OpenFlowは「コントローラー(頭脳)」が一括して経路を決めて、スイッチ(体)はその指示通りに動くだけ。これでネットワーク全体をソフトウェアで自由に制御できるってこと!
OpenFlowとは
OpenFlowは、ネットワーク機器(スイッチやルーター)の「制御機能(コントロールプレーン)」と「転送機能(データプレーン)」を分離し、ソフトウェアでネットワークを集中管理するためのオープンな通信プロトコルです。SDN(Software Defined Networking:ソフトウェア定義ネットワーク) を実現する代表的な技術として知られています。
従来のネットワーク機器は、経路を計算する知性と、パケットを実際に転送する処理が一体化していました。OpenFlowはこの2つを切り離し、SDNコントローラーと呼ばれる中央サーバーがネットワーク全体の経路決定を担い、各スイッチはコントローラーから受け取った「フローテーブル(転送ルール表)」に従って機械的にパケットを転送します。
この仕組みにより、ネットワーク管理者はソフトウェアの設定変更だけでトラフィックの流れを柔軟に変えられるようになります。データセンターや大規模クラウド環境でのネットワーク運用自動化や動的なリソース管理を可能にする基盤技術として、2008年頃から注目を集めました。
OpenFlowの仕組みと構造
コントロールプレーンとデータプレーンの分離
| 役割 | 従来のスイッチ | OpenFlow |
|---|---|---|
| 経路計算(頭脳) | スイッチ内部で処理 | SDNコントローラーが担当 |
| パケット転送(体) | スイッチ内部で処理 | OpenFlowスイッチが担当 |
| 管理方法 | 機器ごとに個別設定 | コントローラーから一括制御 |
| 柔軟性 | ベンダー依存・変更困難 | ソフトウェアで即時変更可 |
フローテーブルの仕組み
OpenFlowスイッチはフローテーブルというルール表を持っています。パケットが届くと、このテーブルを照合して転送先を決定します。
パケット到着
│
▼
┌─────────────────────────────────────┐
│ フローテーブル │
│ マッチ条件 アクション │
│ ───────────────────────────────── │
│ 送信元IP: 192.168.1.x → ポート3へ │
│ 宛先IP: 10.0.0.5 → ポート7へ │
│ VLANタグ: 100 → ポート2へ │
│ マッチなし → コントローラへ │
└─────────────────────────────────────┘
│
▼
指定ポートへ転送
マッチするルールが見つからない場合(テーブルミス)、スイッチはパケットをコントローラーに送り、コントローラーが新しいルールを作成してスイッチに返します。
OpenFlowの主要コンポーネント
| コンポーネント | 役割 | 具体例 |
|---|---|---|
| SDNコントローラー | ネットワーク全体の頭脳。フローを一元管理 | OpenDaylight、ONOS、Ryu |
| OpenFlowスイッチ | フローテーブルに従いパケットを転送 | 対応スイッチ(NEC、HP等) |
| OpenFlowチャネル | コントローラーとスイッチ間の通信路(TLS/TCP) | ポート6633/6653 |
| フローテーブル | スイッチ上のパケット転送ルール表 | マッチ条件+アクション |
覚え方
「指揮官(コントローラー)と兵士(スイッチ)の分業」
コントローラーは作戦を立てるだけ、スイッチは命令通りに動くだけ。中央集権的な軍隊組織をイメージするとわかりやすい!
歴史と背景
- 2006年頃 — スタンフォード大学の Nick McKeown 教授らが、実験的なネットワーク研究のために「プログラマブルなスイッチ」の概念を研究開始
- 2008年 — OpenFlowプロトコルの最初の論文「OpenFlow: Enabling Innovation in Campus Networks」が発表。大学キャンパスネットワークでの実験が始まる
- 2011年 — ONF(Open Networking Foundation:オープンネットワーキング財団) 設立。Google、Facebook、Microsoft、Deutsche Telekomなど大手が参加し、OpenFlowの標準化・普及を推進
- 2011年 — OpenFlow 1.1仕様公開。複数フローテーブルのサポートなど機能拡張
- 2012年 — Google が自社の広域ネットワーク(B4)でOpenFlowを本番運用していると発表。業界に衝撃を与え普及が加速
- 2012〜2015年 — OpenFlow 1.2〜1.5と仕様が進化。NEC・HP・Brocadeなどハードウェアベンダーも対応製品を投入
- 2013年以降 — OpenDaylight、ONOSなどのオープンソースSDNコントローラーが登場し、エコシステムが拡大
- 2016年以降 — より柔軟なP4(プログラマブルデータプレーン言語)やNETCONF/YANGなど後継・補完技術が台頭。OpenFlow単体への依存は薄まりつつも、SDNの概念普及に決定的な役割を果たした技術として評価
SDNアーキテクチャにおけるOpenFlowの位置づけ
SDN全体のアーキテクチャの中で、OpenFlowはコントローラーとスイッチの間をつなぐ「サウスバウンドAPI」 として機能します。
OpenFlow vs 従来ネットワーク vs 他のSDNアプローチ
| 比較軸 | 従来ネットワーク | OpenFlow | NETCONF/YANG | P4 |
|---|---|---|---|---|
| 制御の集中度 | 分散(機器ごと) | 集中(コントローラー) | 分散〜集中 | 集中(柔軟) |
| ベンダー依存 | 高い | 低い(標準化) | 低い | 低い |
| データプレーンの柔軟性 | 固定 | 限定的 | 固定 | 完全にプログラマブル |
| 導入難易度 | 低い | 中〜高 | 中 | 高 |
| 普及時期 | ~2010年代 | 2011〜現在 | 2015〜現在 | 2017〜現在 |
| 主なユースケース | 一般企業LAN | データセンター、研究 | 大規模WAN管理 | 次世代DC・5G |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| OpenFlow Switch Specification v1.5.1 | ONFが策定するOpenFlowの公式仕様。フローテーブル・メッセージ形式を定義 |
| RFC 7426 | SDNのレイヤーとアーキテクチャを整理した概念定義RFC |
| RFC 7149 | SDNにおけるソフトウェア定義ネットワーキングの要件定義 |
| RFC 6241 | NETCONF(OpenFlowと並ぶサウスバウンドAPIプロトコル) |
関連用語
- SDN(Software Defined Networking) — ネットワーク全体をソフトウェアで制御する設計思想。OpenFlowはその実装手段
- フローテーブル — OpenFlowスイッチが持つパケット転送ルールの一覧表
- SDNコントローラー — OpenFlowを通じてスイッチを集中管理する頭脳サーバー
- VLAN — ネットワークを論理的に分割する技術。OpenFlowで動的に制御される対象の一つ
- NFV(Network Functions Virtualization) — ルーターやFWなどネットワーク機能を仮想化する技術。SDNと組み合わせて使われる
- NETCONF — OpenFlowと並ぶネットワーク機器管理プロトコル。設定変更に特化
- P4 — データプレーン自体をプログラムできる次世代言語。OpenFlowの後継技術の一つ
- オーバーレイネットワーク — VXLANなど仮想的なネットワーク層。SDN/OpenFlowと組み合わせてデータセンターで活用