SDNの実装方式
SDNを実装するにはいくつかの方法があるが、主な実装方法としては、2つの方式が挙げられる。1つの方式がホップ・バイ・ホップ、他の1つはオーバーレイと呼ばれる(エッジオーバーレイ、仮想オーバーレイとも呼ばれる)。今回は、2つのSDNの方式の長所と短所について解説する。
ホップ・バイ・ホップ
ホップ・バイ・ホップという名称は、すべてのスイッチでパケットの転送を制御するため(つまりHop by Hopに)、こうした名称で呼ばれている。この方式のSDNは、OpenFlowを前提に作られているといえるだろう。OpenFlowというプロトコルは、ネットワークを構成するスイッチでの、パケットの転送方式をすべてコントローラー側で決めて、個々のスイッチをパケットの転送に専念させることで、全体として効率のよいネットワークを作るという発想である。
OpenFlowの概要
これまでのスイッチやルーターの内部では、データプレーンとコントロールプレーンが一体になっている。これを、コントロールプレーンが担う経路制御機能を外部のソフトウェアである“OpenFlowコントローラー”に集約し、スイッチはポートからポートへのパケット転送動作に専念するというものだ(図1)。
また、IPルーティングの基本であるIPアドレスに基づく経路制御ではなく、新たに“フロー”という概念を導入している(表1)。フローは、従来異なるレイヤで個別に使われていたネットワークの制御情報を、すべて統合したようなものだ。個々のフローは、条件(Match Field)、処理内容(Instruction)、統計情報(Counters)、優先度(Priority)といった情報から構成される。
条件フィールド | 優先度 | 統計情報 | 処理内容 | 有効時間 | クッキー |
---|---|---|---|---|---|
Match Field | Priority | Counters | Instruction | Timeouts | Cookie |
条件には、物理レベル(L1)のポート番号からMACアドレス(L2)、IPアドレス(L3)、トランスポート層(L4)のポート番号などを、すべてまとめて1つの識別子として扱う(図2)。フローは、OpenFlowスイッチにおいて、フローテーブルと呼ばれるテーブルに登録され、スイッチがパケットを受信した場合、フローテーブルに格納されたフローに従って動作が決定される。
※Ver.1.2以降ではIPv6への対応、SCTP、ARP、ICMP、などのサポートが行われている。
従来のイーサネット/TCP/IPでは、ルーターまではIPアドレスを手掛かりにルーティングされ、L2ネットワーク内ではMACアドレスに基づいてパケット転送が行われていたが、OpenFlowでは常にすべての情報を参照可能とすることで、たとえば、L2ネットワーク内部でもTCP/UDPのポート番号に基づいてパケットの転送先を決定し、アプリケーションごとに個別の制御を行うような処理が可能になる。
ただし、OpenFlowコントローラーが何かしらの障害でダウンしている場合は、OpenFlowスイッチがパケットをドロップしてしまう可能性がある。また、何かしらの不具合が生じた際、パケットの流れを追うためのトラブルシューティングも現状では困難だ。
このように、数年前から誕生したOpenFlowだが、OpenFlowコントローラー、OpenFlowスイッチともに、いまだ高価であることもあり、提案や構築ができるシステムインテグレーターがまだ少ない状況でもある。
また、OpenFlowが、非営利団体のOpen Networking Foundation(ONF)で規定したOpenFlowプロトコルを使用することで、どのベンダーのOpenFlowスイッチでも外部のOpenFlowコントローラーから一元的に管理・制御を行うことができることが期待されているのも事実だ。しかし、メーカー製のOpenFlowコントローラーを使用する場合、メーカーがサポートするOpenFlowスイッチが推奨されるため、現状ではベンダーロックインになる可能性も否定できない。また、仮想ネットワークを制御する場合、Open vSwitchを利用し、TremaなどでOpenFlowコントローラーを自作する場合、オープンソースでの作りこみが必要になるため、インフラ系エンジニアでは対応できないケースもある。フォールトトレランスやトラブルシューティングに関しても、今現在のOpenFlowでは困難なケースもある。
オーバーレイ
オーバーレイ、あるいはエッジオーバーレイ型と呼ばれるSDNの方式は、IPのネットワークの上を、L2のパケットをカプセル化して、既存のネットワークに流す方式で、VMware社のNSXに代表される、仮想ネットワークを制御するSDNだ。オーバーレイ方式では、これまでのIPネットワークを前提として、物理ネットワークに変更を加えず、トンネリングによって仮想ネットワークを構築する。
クラウド環境では、仮想化プラットフォームとして複数の物理コンピュータ(コンピュータノード)が接続されており、その上に仮想マシンが作成され、さまざまなテナントに割り当てられている。エンドポイントのコンピュータノードの仮想化されたノードの中にも仮想スイッチ(Virtual Switch)があり、パケットがその仮想スイッチから外に出るところで、どのテナントの仮想マシンから送信されたパケットなのかを示す識別子を付けたうえで、IPパケットにくるみ、仮想L2(ブロードキャストドメイン)のコンピュータノード上にある仮想マシンの宛先に、トンネルを使って送信される。コンピュータノード間は、普通のIPネットワークと同様にIPのパケットが流れているが、エンドポイントに着いたところで、オーバーレイされたIPのパケットをはずして、中に入っているイーサネットのフレームを取り出して、対応するテナントの仮想マシンに送られる。
オーバーレイを実現するために利用されているのが、VXLANやNVGREといったL2のパケットをカプセリングする技術であり、これらを使用することで、仮想ネットワークのL2を延伸することが可能だ。また、約1677万(理論値)の論理ネットワークを作り出してVLANのスケーラビリティ問題を解決することができる。
また、従来のネットワークであれば、仮想マシンが通信するたびに物理ネットワークのMACアドレステーブルに仮想マシンのMACアドレスが登録されるので、仮想マシンの数が増加すると物理ネットワークのMACアドレステーブルを圧迫してしまうケースがあったが、オーバーレイでは、VTEP(VXLAN Tunnel End Point)のMACアドレスが仮想マシンの代表MACアドレスとして物理ネットワークのMACアドレステーブルに登録されるので、テーブルを圧迫することがない。このように、オーバーレイはクラウド環境を実現しやすいSDNといえる。
しかし、オーバーレイは仮想ネットワークのSDNであるため、考慮しなければならないポイントもいくつかある。
- 先に述べたようにオーバーレイは物理ネットワークの設定を変更せずに導入することができる、といったところが利点とされているが、実際には、物理ネットワークでマルチキャストルーティングの必要性やVXLANとVLANの変換に伴うネットワークデザインの変更など、作業が必要なケースもある。今後、ユニキャストモードやEVPNを利用したVXLAN環境の構築も期待されている
- 仮想ネットワーク上のパケット処理は、仮想ホストサーバーのリソースを消費して行うため、大規模な仮想環境のオーバーレイになると、パケット転送時のパフォーマンスが懸念される。
- オーバーレイと物理ネットワーク側の管理ポイントが分かれているため、仮想と物理ネットワークを別々に管理する必要も出てくる。
- 今現在、オーバーレイ型のSDNはさまざまなメーカーが販売を開始しているが、まだライセンスが高価であり、ホップ・バイ・ホップ同様に、提案や構築ができるシステムインテグレーターがまだ少ない。
このように、SDNにはホップ・バイ・ホップとオーバーレイがあり、それぞれに長所、短所があるため、SDNの提案、導入に躊躇しているシステムインテグレーター、エンドユーザーも多いはずだ。しかし、クラウド市場への企業ニーズの拡大や企業内ネットワークのさまざまな課題解決のためにも、ネットワークの仮想化へのニーズは急速に拡大すると考えられており、IT系調査会社のデータを見ても、SDNやNFVといった市場は急速に拡大すると予想されている(※1)。
※1:IDC Japanが発表した市場予想「SDN、NFVに関する国内市場動向および予測を発表」によると、データセンターSDNは、2014年の52億円から2019年には460億円市場になる。また、通信事業者向けは、2015年から本格的にSDNが立ち上がり、2019年のキャリアSDN市場が554億円へ成長すると発表した。このように、SDNへの期待は年々増加していく傾向にあり、今後、ネットワークの世界でSDNの市場は拡大していくと予想されている。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ハードウェアありきのSDNから、仮想ネットワークを切り離して考えてみよう
- OpenFlowのアーキテクチャと仕様・機能
- OpenFlow ver1.1およびver1.2の追加機能と活用例
- Project Calicoとはなにか
- 日本IBM、SDN環境をオープン技術で統合管理するソリューションを発表
- OpenStackとSDN
- OpenFlowの使い方(例)と活用事例
- NEC、OpenFlow Ver1.3に対応した「UNIVERGE PFシリーズ」のコントローラおよびスイッチの新製品2機種を発売
- Cisco ACI(Application Centric Infrastructure)の特徴
- OpenStack with OpenDaylight(DevStack編)