メインコンテンツへジャンプする

JPNICはインターネットの円滑な運営を支えるための組織です
文字サイズ:
プリント用ページ

ニュースレターNo.58/2014年11月発行

ネットワークの仮想化技術〜SDN、NFVが変えるネットワークの世界〜

1. はじめに

サーバ仮想化技術が進歩するにつれ、物理マシンには何らかの仮想化ソフトウェアを導入し、1台の物理マシン上に多数の「仮想マシン(Virtual Machine; VM)」を動作させて利用するケースが増えてきています。また、クラウドサービスが広く普及しつつある今日、もはや自社で物理マシンを設置して利用する形態ではなく、クラウドサービス事業者から必要なスペックのVMを必要な台数だけ借りてきて利用する形態へのシフトも進んでいます。このような状況になると、物理マシンとその上で動作するVMとを独立して考えることができるようになり、ユーザーは自分が使っているVMが、どの物理マシン上で動いているのかなどは気にする必要がなくなります。しかし、そのような環境を実現するためには、サーバ仮想化技術だけではなく、同様の変革がネットワーク機器にも必要となります。それが「ネットワークの仮想化」という概念です。

これまでも「VLAN(Virtual Local Area Network)」という技術を使えば、1台の物理スイッチを複数の論理的なスイッチに分割して利用することが可能でしたが、VLANによるネットワーク仮想化はどちらかというと、導入時に設定されるとその後はあまり設定を変更しないことが前提として考えられていました。しかし、現状のサーバ仮想化やクラウドコンピューティングの要件では、VMは必要な時に生成され、不要になったら消滅するものと考えられていますし、必要に応じて異なる物理サーバ上に移動させるようなことも想定された、極めて動的な仮想化です。従って、仮想サーバと仮想ネットワークを自由につないだシステム全体を、ハードウェアとは独立させて動的に構成可能な環境を作り上げるためには、サーバ仮想化と同レベルの、動的なネットワーク仮想化を実現する技術が必要となります。

「SDN(Software-Defined Networking)」は、ソフトウェア技術によりこの動的なネットワークの仮想化を実現し、新たな仮想ネットワークの構築や制御を、ソフトウェアにより自由に行えるようにしようという考え方です。これは単独の技術を表す言葉ではなく、そういうことを可能とする環境全体を指す概念ととらえた方が分かりやすいでしょう。

本稿ではSDNの全体像と、それを実現する技術や標準化の現状について簡単に解説します。

2. SDNの基本コンセプト

SDNでは、仮想ネットワークを生成・削除したり、物理マシン上におけるVMの配置変更(マイグレーション)に伴うネットワーク構成の変更や動作状態の監視などを、すべてソフトウェアで行います。しかし、仮想ネットワークの設定や制御を行うには、たくさんの機器の設定や制御を協調させて実施する必要があり、これを個別に人手で行うのは大変な作業になります。そこでSDNでは、コントローラと呼ばれる制御システムが、機器全体の設定や制御を集中的に行う形を取ります。

図1にSDNにより従来と変わるポイントを示します。大きく二つのポイントがあります。一つはネットワーク機器のデータ伝送機能と制御機能を分離し、制御機能を集約する点、そしてもう一つは機器を遠隔制御するためのプロトコルを標準化するという点です。

図1:SDNによるネットワーク制御方式の変革

従来は、一つの機器の中にデータ伝送機能と制御機能が一体化されており、機器同士で必要な情報を交換しながら、自律分散的に全体が動いていました。その際に、機器同士で制御情報を交換するための制御プロトコル(例:OSPF(Open Shortest Path First)、BGP(Border Gateway Protocol)等)が標準化され、それらの標準プロトコルをサポートした機器同士であれば、相互接続して動作させることが可能でした。しかし、それを実装するソフトウェアは機器に組み込まれる形だったので、各ベンダーが独自に開発していましたし、機器のハードウェアもベンダーごとに専用のハードウェアを開発していました。一方SDNでは、制御機能を機器から分離して、コントローラに集中制御させる形態を取ります。そして、機器とコントローラの間で機器を遠隔制御するためのプロトコル(例:NETCONF、OpenFlow)が標準化されますので、制御ソフトをユーザーがLinux等の汎用OS上で自由に構築可能になりますし、データ伝送機能を実装するハードウェア機器も、汎用のハードウェアにコントローラと通信するための標準プロトコルを実装するオープンソースソフトウェアを組み込みさえすれば、安価に揃えることも可能になります。従って、SDNにより、機器の設定管理の集約による運用コストの削減と、機器を標準プロトコルをサポートした汎用ハードウェアで実現することにより設備投資コストの削減が期待できる、とされています。

図2にSDNの基本アーキテクチャを示します。インフラストラクチャレイヤは、データ転送を実際に行うネットワーク機器のレイヤで、これらの機器の制御にはOpenFlowやNETCONFなどの標準プロトコルや、機器ごとに定義されたAPI(Application Programming Interface)を利用します。この部分のインタフェースを「Southbound」と呼ぶこともあります。真ん中のコントロールレイヤは、SouthboundのプロトコルやAPIを用いた機器の制御を司る心臓部になるレイヤですが、同時にインフラストラクチャレイヤの機器のネットワーク機能を抽象化したAPIをアプリケーションレイヤに提供します。このAPIをNorthbound APIとも呼びますが、現在この部分の標準化も議論が進められています。アプリケーションレイヤでは、これらのAPIを通じて、さまざまなネットワークの振る舞いをプログラムすることが可能になります。コンピュータシステムのアナロジーで考えるならば、インフラストラクチャレイヤがハードウェア、コントロールレイヤがLinuxなどのOS、アプリケーションレイヤがユーザーランドに対応します。

図2:SDNのアーキテクチャ概念図

3. OpenFlowを用いたネットワークの仮想化

SDNで用いられるSouthboundプロトコルの一つとして、OpenFlowというプロトコルがあります。標準化は、ONF(Open Network Foundation)※1で行われており、バージョン1.4が最新バージョンとなっています。元々は米国スタンフォード大学のClean Slateプログラムという、インターネットを白紙の状態から作り直すとしたらどうできるのか考えましょう、という主旨のプロジェクトの成果としてできたものです。

とはいえOpenFlow自体は、例えば今のIPに替わる、新たなネットワーク層のプロトコルを定義したものではないことに注意してください。あくまで、ルータやスイッチでのIPパケットの取り扱い方を、自由にプログラムできるようにすることで、今まで実現できなかった、新しいネットワークの動作環境を作れるようにする。これがOpenFlowの目的です。

OpenFlowでできることは、レイヤ1から4までのパケットヘッダ等に含まれる情報の組のパターンを「フロー」として定義し、さまざまなフローのパターンにマッチするヘッダ情報を持つパケットに対して、ヘッダ情報を書き換えたり、配送の方法を決めるなどの個別のアクションを定義したりすることです。これにより、従来のデスティネーションアドレスベースのパケット配送方式とはまったく異なる配送ルールを作り、それに従って機器を動作させることができるようになります。

OpenFlowを用いれば、通常のルータの動作やL2スイッチの動作をエミュレートすることもできますし、ファイアーウォールやロードバランサなど、専用の機器で実現していた機能を、OpenFlow対応スイッチ上に実装することもできます。またVLANタグやMPLS(Multi Protocol Label Switching)タグ等を付けたり外したりすることもできますので、従来のさまざまなネットワーク仮想化方式も活用することが可能です。

OpenFlowの課題は、すべてのネットワーク機器をOpenFlow対応機器に置き換える必要がある点と、複雑なネットワーク制御を実現するためには、複雑なフロールールが必要となり、パケットを処理するために機器上のフローテーブルをルックアップしたり、ルールの追加や削除等のメンテナンスをしたりする処理に、大きな負荷がかかってしまう点です。

4. オーバーレイ方式によるSDN

オーバレイ方式では、OpenFlow対応スイッチの導入は、仮想ネットワークを利用するサーバや端末の周辺といった必要最小限の範囲にとどめ、それらを相互に接続するために、イーサネットフレームをIPパケットにカプセル化して運ぶトンネルリンクを設定する方式です。この方式では、トンネルリンク上でやり取りされるイーサネットフレームは、IPパケットに丸ごとカプセル化されて通常のIPパケットとして転送されるので、カプセル化とカプセル化解除を行うゲートウェイ同士をつなぐルータやスイッチ等は、既存のものをそのまま活用することができます。従って、オーバレイをうまく組み合わせることで、SDN 導入の際の設備投資のハードルを下げることが可能となります。

オーバレイプロトコルは、IETFで標準化の議論がされていますが、UDPパケットの中にイーサネットフレームをカプセル化するVXLAN(Virtualized eXtensible LAN)というプロトコルが、2014年の8月にinformational RFCとして、標準化されました(RFC7348)※2。他にもインターネットドラフトの段階ですが、GREを拡張したNVGRE(Network Virtualization using Generic Routing Encapsulation)や、STT(A Stateless Transport Tunneling Protocol for Network Virtualization)があります。それぞれのパケットフォーマットと特徴を、図3に簡単にまとめます。

図3:オーバレイプロトコルのフレームフォーマットと特徴

それぞれのオーバレイ方式では、仮想ネットワークを示すIDの領域をヘッダの中に定義しています。VXLANの場合は24ビットの領域を確保していますので、約1,600万通りの仮想ネットワークを区別することができます。オーバレイリンクの入り口では、運んでいるフレームの属する仮想ネットワークごとにVXLANのIDを割り当てて、その仮想ネットワークをつなぐ先(トンネルの出口)を決めて、VXLANパケットを送出します。トンネルの出口では、逆の処理を行い、フレームを所属する仮想ネットワークにつなぎます。オーバレイ区間では、これらのパケットは通常のIPパケットと同様に扱われます。

オーバレイ方式をうまく用いることにより、離れた場所にあるOpenFlowスイッチ間、もしくは旧来のVLAN対応スイッチ間で、仮想ネットワークを延長することができるようになりますので、SDNによる制御可能なネットワーク領域が格段に広がることになります。

5. NFV(Network Function Virtualization)とSFC(Service Function Chaining)

さて、3節でOpenFlowを用いれば、さまざまなネットワーク装置の機能を実装可能だと書きましたが、現実的には、それらの機能をすべてOpenFlowで実装するには、非常に複雑なフロールールを用意しなければならず、スイッチの負荷が高くなってしまい現実的とは言えません。そこで、サーバ仮想化技術をうまく活用して、VMを必要に応じて立ち上げて、それらのVM上にスイッチやルータの機能や、ファイアーウォールやロードバランサ等の機能を動作させて、その機能間をどうパケットを転送するべきかを、OpenFlowやオーバレイ等のSDN技術を用いて制御すれば良い、という考え方も可能です。これが「NFV(Network Function Virtualization)」や、「SFC(Service Function Chaining)」と呼ばれる考え方です。図4にNFVのアーキテクチャを示します。SFCも基本的な考え方は同じです。NFVは、ヨーロッパでの電気通信関連の標準化団体であるETSI(the European Telecommunications Standards Institute)が主導で標準化を進めており、SFCは、同様の内容を議論する場をIETF内に作ったという見方もできると思います。

図4:NFVのアーキテクチャ

6. SDNやNFVのめざす将来イメージ

SDNやNFVによりネットワークの仮想化が実現されれば、サーバ仮想化と同様に、別々のハードウェアが必要だった多様なネットワーク機能が、すべてコモディティハードウェア+仮想化基盤上で動作するソフトウェアで構成可能となります。そのような環境が実現されれば、ネットワークとサーバの区別さえ必要なくなりますので、図5に示すように、ハードウェアはすべてが標準化・規格化され、全体の負荷に応じて設備増設することが可能となり、そのハードウェア基盤上に、すべてがソフトウェア制御でさまざまなシステムを柔軟に、かつ動的に展開し動作させる環境が実現します。これにより、システム全体の柔軟性が得られるとともに、個々のハードウェアのコストを下げ、かつ、機能が集約されることでハードウェアの稼働率を上げることもできますので、全体の設備投資コストや運用コストを、格段に下げられることが期待されます。

図5:SDN+NFV/SFCによるシステム全体の進化

7. おわりに

SDNを取り巻く環境は確実に進歩しています。主要なプロトコルであるOpenFlowは、2012年の6月に安定バージョンと言われている1.3.0の制定以降、各社での実装が進み、現時点で多数のベンダーの製品を選べる状態になっています。また本編にも書いたように、オーバレイプロトコルであるVXLANのRFC化が2014年8月に完了していますし、NVGREやSTTについても議論が深められてきていますので、間もなくRFC化が期待されます。VXLANやNVGREをサポートしたスイッチ製品も、既に市場には出回り始めています。さらに、NFVに関しても、2013年の10月に基本アーキテクチャを含む公式文書が発表されてから、ベンダー各社での実装が急速に進んで来ています。

SDNは、技術開発や標準化のフェーズを終え、これからいよいよ実際の環境への適用と、ユースケースの積み重ねを進めて行く段階に入ったと言えるでしょう。

(株式会社ストラトスフィア 浅羽登志也)


※1 Open Network Foundation
https://www.opennetworking.org
※2 RFC7348“Virtual eXtensible Local Area Network(VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks”
http://tools.ietf.org/html/rfc7348

このページを評価してください

このWebページは役に立ちましたか?
ページの改良点等がございましたら自由にご記入ください。

このフォームをご利用した場合、ご連絡先の記入がないと、 回答を差し上げられません。 回答が必要な場合は、お問い合わせ先をご利用ください。