ネットワーク仮想化とは何か? SDNによって何が変わったか?
ネットワーク仮想化とは、諸説ありますが、物理ネットワーク資源上で、必要に応じた任意のネットワークを作り出すことを指します。現在、データセンターネットワークの文脈では、ネットワーク仮想化というキーワードを目にしないことはほとんどありません。それではなぜ、ネットワーク仮想化技術が注目されるようになったのでしょうか?
一般的には物理ネットワークの構成変更はサーバに比べると多くはありませんが、パブリッククラウドの提供者やプライベートクラウドを運用する企業に着目した場合はこれが当てはまりません。多数の利用者からの要求に応じ、迅速に利用者毎のネットワーク構築、変更できる必要があります。
計算機自体の仮想化(VM)は他のリソースよりも先行して利用されるようになり、構築や運用の自動化手法が早くから検討されてきました。しかしネットワークに関しては、主にVLANを利用して仮想化が実現されてはいたものの、数に上限が存在したり、VMが他のハイパーバイザホスト上に移動した際に複数の機器に跨ったVLAN再設定が複雑であるなどの理由により、利用者のVMを素早く要求されたネットワークに収容するケースに対応できなくなってきていました。この問題は、プライベートクラウドの運用などにおいて大きな課題です。
また、VMは汎用サーバ機で動作しますが、ネットワークは複数ベンダ、多種別の高価な機器ありきの存在であったため、調達速度やコストの観点でも、計算機自体の仮想化に追いつけなくなっていました。他にも、ネットワーク機器のインターフェースには統一性がなく、一元的な管理が難しかったなども理由に挙げられるかもしれません。
こういったケースに対応する技術として、統一的な操作方式を持ち汎用サーバ機上で動作するソフトウェアスイッチの利用や、さまざまなトンネリング技術の活用などを組み合わせた、いわゆるSDNによるネットワーク仮想化技術が注目を集めるようになりました。この結果、従来存在したさまざまな制限を克服し、データセンターネットワークにおける、SDNで実現される主要機能となりました。
このような背景もあり、最近では特に、Edge Overlayによるネットワーク仮想化技術を指してSDNと呼ばれることも多くなってきています。
NFV(Network Fucntions Virtualization)とは?
ネットワークの仮想化に関連する言葉として、NFVがあります。NFVはSDNの後を追うように流行し始めたもので、ネットワーク機能の仮想化を指します。ネットワーク仮想化と言った場合、一般的には仮想トポロジ構成を指すことが多いですが、NFVは機能自体の仮想化を指し、SDNの補助的な位置づけに当たるものです。
NFVにはETSIにより定義された、運用標準なども含むアーキテクチャフレームワークがありますが、単にファイアウォールやロードバランサをソフトウェアで実現できることに対しNFVと呼ぶこともあり、SDN同様、文脈によって変化します。この変化は、例えば仮想アプライアンスのようなものから、ACLといった機能自体がトポロジ仮想化に付加されているようなものまで幅広くなっており、最近ではSDN自体よりも「汎用サーバ機で既存ネットワーク装置の肩代わりをする基盤」という意味のNFVのほうが注目されてきているように見えます。
ここまでの話とOpenStackの関係
OpenStackは、企業内でのプライベートクラウドや、パブリッククラウドの構築に利用されている、オープンソースのクラウド基盤です。従来のインフラでは人手を介したリソース配備が一般的であり、仮想化ソフトウェア、ストレージ、ネットワークの専門知識やベンダ依存の知識などといった要素が必要でしたが、このままでは、堅牢、安価なリソースの迅速な配備を実現するのが難しくなっていました。こういった課題に対する解決として統合管理が求められ、今のOpenStackの形があります。なお、最近ではOpenStackは通信事業者向けNFV基盤など、さまざまな方面への活用も始まっています。
OpenStackのネットワークは、先に述べたデータセンターネットワークの文脈におけるSDNが適用されており、その部分をNeutronが担当しています。Neutronは仮想ネットワークをコントロールするAPIを持ち、受けた要求をさまざまなネットワーク仮想化プロダクトへ受け渡して実際の仮想ネットワーク構築を依頼したり、ネットワーク構造のデータベースを保持しています。