
ソフトウェアで実現するネットワーク「SDN」の実装スタンダード:OpenFlow
「新しい技術を作ると、独自の用語を作りたくなるのは人間のサガでしょうか?」
はい、こんにちは!松井真也です。シリーズ「柔軟性×可用性を実現!ネットワーク仮想化大全」第2回でございます!
前回は、「ネットワーク仮想化」の代名詞ともいえる「SDN」(Software Defined Networking)とは何かをご紹介しました。物理的なネットワーク構成を、コントロールプレーンとデータプレーンに分解して、ソフトウェア的に、中央集中的に制御するのでしたね。

さて、今回は、そのSDNの実装方法の一つである「OpenFlow」についてご紹介します。SDNの解説とワンセットで語られることが多いのですが、いったいどんな技術でしょうか?
早速見てみましょう!
OpenFlowとは?
まずはSDNを少しだけ振り返りましょう。SDNは、ネットワークをもっと柔軟に、効率的に管理するための技術でしたね。ネットワークの各機器を一つの制御装置で統一的に管理して、ネットワークの転送ルールやポリシーを中央から指示します。
さて、OpenFlowは、SDN(Software-Defined Networking)の実現に欠かせない技術の一つです。SDNのなかでも、ホップバイホップ型に位置づけられるのしたね。
Open Networking Foundation(ONF)という組織がOpenFlowの開発と普及に力を入れてきました。
しかし、このONFは、2023年12月、オープンソースの各ネットワークプロジェクトをLinux Foundation(LF)に移管することを発表しました。これによりONF自体は解散するようです。今後は、市場のニーズの変化に合わせて技術を進化させていく意向です。発展的解消…ですかね?

OpenFlowの動作原理
では、OpenFlowは具体的にどのように機能するのでしょうか。ちょっと独特の用語が多いですから、ご注意ください。

OpenFlowでは、SDNの基本通り、ネットワークを制御する「コントロールプレーン」と、実際にデータを転送する「データプレーン」が分離されています。
中心となるのは「OpenFlowコントローラ」と呼ばれる制御装置です。このコントローラは、データプレーン内の各スイッチ(「OpenFlowスイッチ」と呼ばれ、Datapath IDという識別子が与えられて管理されます)に対して、どのようにデータを転送すべきかという指示を出します。
これらの指示は「フローテーブル」(一つ一つの伝送条件は「フローエントリ」)としてスイッチに送られ、スイッチはこのテーブルに従ってデータの転送を行います。コントローラやスイッチは、「OpenFlowチャネル」で結ばれています。
フローテーブルには、パケットの送信元や宛先、ポート番号など、転送に関する詳細なルールが記載されています。
ああもう、覚えられない!と言いたいですが、だいたい「OpenFlow●●」という名前ですな…w。
OpenFlowの導入メリットとデメリット
OpenFlowを導入することで、ネットワークの運用が大きく変わります。最大のメリットは、ネットワークの柔軟性と効率性の向上です。
OpenFlowにより、ネットワーク管理者は中央のコントローラから複数のスイッチやルーターを一元的に制御できるようになり、ネットワークの設定変更やトラブルシューティングが迅速に行えるようになります。これまでの説明のとおりです。
しかし、OpenFlowの導入にはいくつかのデメリットもあります。
例えば、導入にあたっては、既存のネットワークに互換性がない場合は、OpenFlow対応の新しい機器への置き換えが必要になることがあります。このため、コストが増加したり、技術的な課題に直面することがあります。
また、OpenFlowを運用するためには、管理者が新しい技術を学ぶ必要があり、研修や教育に時間とコストがかかる可能性があります。導入面でも、運用面でも、課題がありそうです。
はい、本日はここまで。今回は、SDNの実装方式の一つである「OpenFlow」についてご紹介しました。
次回は、SDNと関連が深い「NFV(Network Functions Virtualization)」についてお話ししましょう!
では!