(57)【特許請求の範囲】
【請求項１】
ネットワーク制御システムであって、
パケットの転送処理を行うネットワークファンクションと、
前記ネットワークファンクションを制御するコントローラと、
第一のサーバ上のデータ処理機能と、その近傍にある第一のミドルボックス機能と、を備え、
当該ネットワーク制御システムに接続した端末が、第一のミドルボックス機能を経由して、前記データ処理機能と通信している場合に、前記データ処理機能が、前記第一のサーバ上から、第二のサーバ上へ移動したことを、前記データ処理機能が通信する内容に基づき、検知する検知機能と、
前記端末と前記移動したデータ処理機能との通信を、前記第二のサーバと前記第一のミドルボックス機能とのネットワーク観点の距離より近傍にあり、前記第一のミドルボックス機能と等価な機能を備える第二のミドルボックス機能を経由させる経路制御機能と、を備え、
前記コントローラは、複数のネットワークファンクションが学習したヘッダ情報を一元管理し、
前記検知機能は、異なるネットワークファンクションが学習したヘッダに同一のものがあるか比較することにより、前記データ処理機能の移動を検知する
ことを特徴とするネットワーク制御システム。
【請求項２】
請求項１に記載のネットワーク制御システムにおいて、
前記検知機能は、前記データ処理機能が送信する通信パケットのヘッダに基づき、前記通信パケットの送信元である前記データ処理機能の移動を検知する
ことを特徴とするネットワーク制御システム。
【請求項３】
請求項１または２に記載のネットワーク制御システムにおいて、
前記コントローラは、
前記第二のサーバと前記第一のミドルボックス機能のネットワーク観点の距離より近傍には、前記第二のミドルボックス機能が存在しないが、前記第二のミドルボックス機能を配備可能なネットワークファンクションが、前記近傍にある場合は、当該ネットワークファンクションに、前記第二のミドルボックス機能を配備する
ことを特徴とするネットワーク制御システム。
【請求項４】
請求項３に記載のネットワーク制御システムにおいて、
前記コントローラは、
前記第二のサーバと前記第一のミドルボックス機能のネットワーク観点の距離より近傍には、前記第二のミドルボックス機能および前記ネットワークファンクションが存在しないが、新たに、ネットワークファンクションを配備可能なリソースプールが、前記近傍にある場合は、当該リソースプールに、前記第二のミドルボックス機能を有する前記ネットワークファンクションを配備する
ことを特徴とするネットワーク制御システム。
【請求項５】
請求項１から４のいずれか一に記載のネットワーク制御システムにおいて、
ＤＮＳを備え、
前記コントローラは、
前記ＤＮＳから、ＵＲＩとＩＰアドレスの対応付けを含む名前解決情報を取得し、
前記データ処理機能または前記ミドルボックス機能または前記ネットワークファンクションのうち、同一のＵＲＩに対して複数のＩＰアドレスの応答により処理を振分けられている前記ＩＰアドレスを備えるものを、等価な機能を備える、データ処理機能またはミドルボックス機能またはネットワークファンクション、と見做し、
前記ＤＮＳが属する仮想ネットワーク識別子と対応付けて管理する
ことを特徴とするネットワーク制御システム。
【請求項６】
請求項１から５のいずれか一に記載のネットワーク制御システムにおいて、
前記コントローラは、前記ネットワーク観点の距離の遠近を、前記データ処理機能と前記ネットワークファンクションとの、ＩＰレイヤ（Ｌａｙｅｒ３）におけるパケット応答時間、または、アプリケーションレイヤにおける通信処理が行われる時間の長さで判断する
ことを特徴とするネットワーク制御システム。
【請求項７】
請求項１から６のいずれか一に記載のネットワーク制御システムにおいて、
前記ミドルボックス機能または前記ネットワークファンクションは、属性として、
ＲＳＦＧ（リスクシェアードファンクショングループ）の識別情報と、
ディカプセル化の要否を示す情報と、
耐バースト性情報の有無を示す情報と、
冗長化構成の有無を示す情報と、
のいずれか一つ以上を含む
ことを特徴とするネットワーク制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、ネットワークの構成変更のためのネットワーク制御技術に関する。
【背景技術】
【０００２】
近年、クラウドの普及やサーバ仮想化の進展に伴い、データセンタ内やデータセンタ間におけるネットワークの構成変更がより頻繁に行われるようになっている。その際、通信性能（通信遅延や通信帯域）の維持を考慮しつつ、ネットワーク構成を変更すると、変更に掛かる作業工数が大きくなる。その為、ネットワークの構成変更の作業省力化が課題になっている。ネットワーク構成変更の一例として、通信経路を切り替える、または、データ処理機能間やデータ処理機能と端末間の通信経路にネットワークファンクションを追加する等がある。
【０００３】
通信経路を切り替える関連技術として、Ｃ／Ｕ分離して集中制御型のアーキテクチャを採用するＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）があり、ネットワークファンクションの追加を可能にする関連技術として、ハードウェアからネットワークファンクションを切り離してソフトウェアとしてネットワークファンクションを提供するＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）がある。しかし、集中制御型のアーキテクチャやハードウェアからネットワークファンクションを切り離す技術のみでは、通信性能を維持する為のネットワーク設計が必要であり、ネットワークの構成変更作業は省力化されない。
【０００４】
以下に上記問題に関係する従来技術を説明する。
【０００５】
特許文献１においては、分散仮想スイッチが、仮想機械及び物理機械が同一の物理ホスト上及び／あるいは同一のサブネット又はＶＬＡＮに配備されない場合でも、互いにより簡単に、安全に且つ効率的に通信することを可能にする。
【０００６】
特許文献２においては、仮想ネットワーク（Ｖネット）と、Ｖネットのメンバ間の保護かつ分離された相互接続を可能にする仮想マシン（ＶＭ）スイッチとを確立かつ管理するための、コンピュータ化された方法、システムおよびコンピュータが提供される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２０１０／０２５７２６３号明細書
【特許文献２】米国特許出願公開第２０１１／０２８３０１７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以下に、従来技術の課題を説明する。
【０００９】
特許文献１の技術は、それを、物理的に分散する複数拠点で構成される分散環境に適用すると、ルーティングされる箇所や、ロードバランサやファイアフォール、ＤＰＩ、ＩＰＳなどの箇所を変更できない為、仮想機械が遠隔の拠点に移動した場合に遠隔のルーティング箇所を経由することになり、通信遅延が大きくなる問題や通信帯域を消費する問題が生じる。
【００１０】
また、宛先の仮想機械が遠隔の拠点に存在する場合に、宛先の仮想機械と同じデータ処理を行える仮想機械が送信元の仮想機械の最寄りに存在する場合においても遠隔に送信されてしまい、通信遅延が大きくなる問題や通信帯域を消費する問題が生じる。
【００１１】
特許文献２においても特許文献１と同様の問題を抱える。
【００１２】
従って、ネットワーク構成変更時の通信性能の維持と構成変更時の作業の省力化とを両立する技術が望まれている。
【課題を解決するための手段】
【００１３】
開示されるのは、ネットワーク構成を変更しても通信性能を維持するネットワークの構成を計算することによってネットワーク構成変更における作業を省力化する技術である。
【００１４】
開示されるのは、データ処理機能が移動しても、通信帯域や通信遅延などの通信性能と消費する計算機資源のいずれか一方または両方を劣化させないネットワーク制御システムである。
【００１５】
具体的に開示されるのは、データ処理機能の移動を検知して、データ処理機能が属する仮想ネットワーク構成を変更するネットワーク制御システムである。
【００１６】
より具体的には、データ処理機能が移動して経由していたネットワークファンクションが遠隔になった場合など、適切な位置のネットワークファンクションにおいて処理されるように、仮想ネットワーク構成を変更するネットワーク制御システム（ＮＣＳ：Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）である。
【００１７】
開示される上記ネットワーク制御システムの一つの特徴は、
コントローラと、
第一のサーバ上のデータ処理機能と、その近傍にある第一のミドルボックス機能と、を備え、
当該ネットワーク制御システムに接続した端末が、第一のミドルボックス機能を経由して、上記データ処理機能と通信している場合に、上記データ処理機能が、上記第一のサーバ上から、第二のサーバ上へ移動したことを、上記データ処理機能が通信する内容に基づき、検知する検知機能と
上記端末と上記移動したデータ処理機能との通信を、上記第二のサーバと上記第一のミドルボックス機能とのネットワーク観点の距離より近傍にあり、上記第一のミドルボックス機能と等価な機能を備える第二のミドルボックス機能を経由させる経路制御機能と、を備える点である。
【００１８】
また、上記データ処理機能が送信する通信パケットのヘッダに基づき、上記通信パケットの送信元である上記データ処理機能の移動を検知するように、上記検知機能を構成しても良い。
【００１９】
また、上記第二のサーバと上記第一のミドルボックス機能のネットワーク観点の距離より近傍には、上記第二のミドルボックス機能が存在しないが、上記第二のミドルボックス機能を配備可能なネットワークファンクションが上記近傍にある場合は、当該ネットワークファンクションに上記第二のミドルボックス機能を配備するように、上記コントローラを構成しても良い。
【００２０】
また、上記第二のサーバと上記第一のミドルボックス機能のネットワーク観点の距離より近傍には、上記第二のミドルボックス機能および上記ネットワークファンクションが存在しないが、新たに、ネットワークファンクションを配備可能なリソースプールが上記近傍にある場合は、当該リソースプールに、上記第二のミドルボックス機能を有する上記ネットワークファンクションを配備するように、上記コントローラを構成しても良い。
【００２１】
また、当該ネットワーク制御システムがロードバランサを備え、
上記コントローラが、
上記ロードバランサから、負荷分散情報を取得し、
上記データ処理機能または上記ミドルボックス機能または上記ネットワークファンクションのうち、同じバーチャルサーバに対応するプールメンバのＩＰアドレスを備えるものを、等価な機能を備える、データ処理機能またはミドルボックス機能またはネットワークファンクション、と見做し、
上記ロードバランサが属する仮想ネットワーク識別子と対応付けて管理するように、上記ネットワーク制御システムを構成しても良い。
【００２２】
また、当該ネットワーク制御システムがＤＮＳを備え、
上記コントローラが、
上記ＤＮＳから、ＵＲＩとＩＰアドレスの対応付けを含む名前解決情報を取得し、
上記データ処理機能または上記ミドルボックス機能または上記ネットワークファンクションのうち、同一のＵＲＩに対して複数のＩＰアドレスの応答により処理を振分けられている上記ＩＰアドレスを備えるものを、等価な機能を備える、データ処理機能またはミドルボックス機能またはネットワークファンクション、と見做し、
上記ＤＮＳが属する仮想ネットワーク識別子と対応付けて管理するように、上記ネットワーク制御システムを構成しても良い。
【００２３】
また、上記ネットワーク観点の距離の遠近を、上記データ処理機能と上記ネットワークファンクションとの、ＩＰレイヤ（Ｌａｙｅｒ３）におけるパケット応答時間、または、アプリケーションレイヤにおける通信処理が行われる時間の長さで判断するように、上記コントローラを構成しても良い。
【００２４】
また、上記ミドルボックス機能または上記ネットワークファンクションの属性として、
ＲＳＦＧ（リスクシェアードファンクショングループ）の識別情報と、
ディカプセル化の要否を示す情報と、
耐バースト性情報の有無を示す情報と、
冗長化構成の有無を示す情報と、
のいずれか一つ以上を含むように、上記ミドルボックス機能と上記ネットワークファンクションのいずれか一方または両方を構成しても良い。
【発明の効果】
【００２５】
開示によれば、通信性能を維持しながらのネットワーク構成の変更を、少ない工数で可能にする技術を提供できる。
【図面の簡単な説明】
【００２６】
【図１】実施形態が適用されるネットワーク制御システムの物理構成例を示す図である。
【図２】実施形態が適用されるネットワーク制御システムの論理構成例を示す図である。
【図３】実施形態が適用されるコントローラの構成例を示すブロック図である。
【図４】実施形態が適用されるネットワークファンクションの構成例を示すブロック図である。
【図５】コントローラが保持するロールグループ情報の構成を例示する図である。
【図６】コントローラが保持するトラフィック情報を例示する図である。
【図７】コントローラが保持するロールグループ間経由ネットワークファンクション情報の構成を例示する図である。
【図８】コントローラが保持するネットワークファンクション情報の構成を例示する図である。
【図９】コントローラが保持する配備されるネットワークファンクション情報の構成を例示する図である。
【図１０】コントローラが保持するネットワークファンクションの転送ルール情報の構成を例示する図である。
【図１１（Ａ）】データ処理機能の配備構成変更時の動作概要を例示する概略図である。
【図１１（Ｂ）】データ処理機能の配備構成変更時の動作概要を例示する概略図である。
【図１１（Ｃ）】データ処理機能の配備構成変更時の動作概要を例示する概略図である。
【図１２】ネットワーク制御システムのネットワーク構成最適化時における動作概要を例示するシーケンス図である。
【図１３】コントローラが通信経路、データ処理機能の位置情報を生成する際の動作概要を例示するチャート図である。
【図１４】コントローラが通信経路の制御情報を変更する際の動作概要を例示するチャート図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して実施の形態を詳細に説明する。
【００２８】
本明細書における装置の位置関係（ネットワークの観点での距離）は、応答時間で定義される。即ち、二つの装置が近接、近傍、または、ネットワークの観点から近いとは、応答時間が小さいことを意味する。
【００２９】
なお、応答時間は、以下の２種類である。一つは、ＩＰレイヤ（Ｌａｙｅｒ３）において単一のパケットが送受信される時間（パケット応答時間）、即ち、通信遅延である。通信遅延は、例えば、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）等で表現される。
【００３０】
もう一つは、アプリケーションレイヤにおける一連の通信処理が行われる時間（あるデータ処理に関連する複数の通信パケットが送受信される時間）である。一連の通信処理が行われる時間とは、例えば、ユーザが画面の更新ボタンや実行ボタンを押してから、更新画面や実行結果が表示されるまでの時間である。アプリケーションレイヤにおける一連の通信処理が行われる時間は、データ転送時間と、サーバやユーザ端末におけるデータ処理時間と、で構成される。
【００３１】
本実施例のシステムではＴＣＰ通信を例に説明するが、このような場合、データ転送時間は、ＴＣＰスループットに反比例する。すなわち、ネットワーク観点の距離が遠い、とは、スループットが小さい、として表現可能である。
【００３２】
図１は、本実施形態におけるネットワーク（ＮＷ）システムの物理構成を示すブロック図である。
【００３３】
第１の実施形態のネットワーク制御システムは、コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）１００、ネットワーク管理装置（Ｍａｎａｇｅｒ）２００、ネットワークファンクション（ＮＷ  ｆｕｎｃｔｉｏｎ）４００、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）５１０、ルータ（Ｒｏｕｔｅｒ）５２０、ロードバランサ（ＬＢ：  Ｌｏａｄ  Ｂａｌａｎｃｅｒ）５３０、サーバ（Ｓｅｒｖｅｒ）５４０、ＦＷ（Ｆｉｒｅｗａｌｌ）５５０、ネットワークスイッチ（ＳＷ）５６０、リソースプール（Ｒｅｓｏｕｒｃｅ  ｐｏｏｌ）５７０、上記ネットワークファンクションやサーバを格納する拠点（Ｓｉｔｅ）７００、データセンタ間を接続するネットワーク（Ｎｅｔｗｏｒｋ  （ＮＷ））６００、及び、端末（ｔｅｒｍｉｎａｌ）６２０を備える。
また、本実施形態のネットワーク制御システムは、仮想的に実装されてもよい。また、コントローラ１００とネットワーク管理装置２００は拠点７００の外に配備されているが、いずれかの拠点７００内に配備されていてもよい。
【００３４】
コントローラ１００は主にネットワークファンクション４００を制御するための装置である。
【００３５】
ネットワーク管理装置２００は、コントローラ１００、ネットワークファンクション、ＤＮＳ５１０、ルータ５２０、ロードバランサ５３０、サーバ５４０、ＦＷ５５０、ネットワークスイッチ５６０の状態を監視し、これらに設定された制御情報などを管理する。ネットワーク管理装置２００には、画面表示及びシステム操作のインタフェースを、管理者等に提供する管理端末が接続可能である。
【００３６】
ネットワーク管理装置２００は、プロセッサ、通信装置(ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ等)、揮発性の記憶装置（ＤＲＡＭなど）、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）、及び、管理モニタ等を備える計算機を用いて実現可能である。
【００３７】
ネットワークファンクション４００は主にパケットの転送に係る様々な処理を行う装置である。本実施例において、ネットワークファンクション４００はパケットの転送処理に加え、負荷分散処理、ファイアフォール、ＩＰＳやルーティング、キャッシング、アクセラレーション等の機能（ミドルボックス機能、または、ミドルボックスという）を必要に応じて選択可能に備える。
【００３８】
ネットワークファンクション４００の上記の各機能は、汎用のサーバにおいて上記の機能をもつソフトウェアを実行することによって実現される。このような技術は上述のＮＦＶなどとして知られる既存技術によって実現される為、詳細は割愛する。
【００３９】
また、ネットワークファンクション４００は、最初に配備されるときに全てのミドルボックス機能を必ずしも備えるわけではない為、リソースプール４８０を備える。
【００４０】
パケットの転送処理以外の機能は、ネットワークファンクション４００に備えられるのではなく、ネットワークファンクション４００の外部に配備されてもよい。その場合は、ネットワークファンクション４００が、外部の必要な機能を経由するようにパケットの転送を制御する。
【００４１】
ネットワークファンクション４００は、プロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。
【００４２】
ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｅｒ）５１０は、名前解決を行う。すなわち、ＵＲＬを受信してＵＲＬに対応するＩＰアドレスを返す装置である。
【００４３】
ＤＮＳ５１０は、プロセッサ、通信装置、揮発性の記憶装置（DRAMなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。
【００４４】
ルータ５２０は、ネットワーク６００と拠点７００間を繋ぐゲートウェイ装置である。ルータ５２０はルーティングの他に、プロトコル変換やＮＡＴ、ファイアフォール等の機能を備えてもよい。
【００４５】
ルータ５２０は、プロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。
【００４６】
サーバ５４０はデータ処理機能等を動作させる為の計算資源であり、そのためのＣＰＵやメモリ、ストレージを備える。なお、データ処理機能とは、データ処理を行うプログラムがあり、例えば、ウェブサーバやアプリケーションサーバ、ＤＢ（Ｄａｔａ  Ｂａｓｅ）サーバ等のプログラムが挙げられる。データ処理機能はＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）として実現されてもよい。
【００４７】
サーバ５４０は、プロセッサ、通信装置、揮発性の記憶装置（DRAMなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。
【００４８】
ＦＷ５５０は、レイヤ２やレイヤ３、レイヤ４等のヘッダを参照してアクセス拒否または許可を行うファイアフォールの機能を備える装置である。ＦＷ５５０は、プロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いる専用の装置として、あるいは、汎用のサーバ上に実現可能である。
【００４９】
スイッチ５６０はレイヤ２でスイッチングを行うレイヤ３スイッチである。
【００５０】
リソースプール５７０はネットワークファンクション、あるいは、ネットワークファンクションが備える機能の一部（ロードバランサ５３０やＦＷ５５０等のミドルボックス機能）をネットワークファンクション４００の外側に機能単体として配備するため、あるいは、サーバ５４０を配備する為の余剰の計算資源である。
【００５１】
計算資源とは、演算処理（ＣＰＵ）やメモリ、ストレージを備えるサーバであり、余剰の計算資源とは、演算処理能力とメモリとストレージが利用されていない、または、他のデータ処理のために確保されていないサーバである。
【００５２】
なお、リソースプール５７０をネットワークファンクション４００に割り当てる場合には、リソースプール４８０の分も含めて計算資源を割り当てる。
【００５３】
拠点７００は、上記機器を収納する施設である。拠点７００の例として、データセンタ、企業のオフィス、店舗等が挙げられる。なお、本実施例では、上記のような拠点７００間の通信を例に記載するが、拠点間ではなく、ラック間の通信であっても、データセンタを複数に分けた管理エリアであってもよい。すなわち、拠点７００は、ラック、管理エリアとみなしてもよい。
【００５４】
ネットワーク６００は、拠点７００間やコントローラ１００、ネットワーク管理装置２００を繋ぐネットワークである。ネットワーク６００は広域網、またはＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。広域網の例として、ＩＳＰ網（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ網）、専用線、広域イーサ等が挙げられる。
【００５５】
端末６２０はサーバに配備されたデータ処理機能にデータ処理を要求するエンドユーザが使用する装置であり、例えば、パーソナルコンピュータやタブレットなどが挙げられる。
【００５６】
端末６２０はプロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。
【００５７】
図２は、本実施形態におけるネットワーク制御システムの論理構成を示すブロック図である。ＬＡＮ６１０は、ロードバランサやＦＷ等のネットワークファンクションやサーバ等を接続するネットワークである。なお、ＬＡＮ６１０−１、６１０−３、６１０−５はネットワークファンクション４００−１に繋がるが、ＬＡＮ６１０−１、６１０−３、６１０−５はネットワークファンクション４００−１を介して相互に通信接続されない。ＬＡＮ６１０−２、６１０−４、６１０−６においても同様である。
【００５８】
なお、図１に記載したネットワークスイッチ５６０は、レイヤ３における論理ネットワークでは構成要素とならないので省略した。例えば、ＬＡＮ６１０−１は図１のロードバランサ５０３とサーバ５４０−１、サーバ５４０−２と、ネットワークファンクション４００−１とがＳＷ５６０−１と繋がるリンクに該当する。なお、図１のこれらのリンクは、図２の複数のＬＡＮに該当する（即ち、ＬＡＮは仮想的なＬＡＮ（例えば、ＶＬＡＮ：Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である）。
【００５９】
図３は、本実施形態におけるネットワーク制御装置（コントローラ）の構成例を示すブロック図である。
【００６０】
コントローラ１００は、通信ＩＦ２３５、サービス受付部２４０、データ記憶部２７０、及び、制御処理部２１０を備える。
【００６１】
コントローラ１００は、プロセッサ、通信装置、揮発性の記憶装置（ＤＲＡＭなど）、及び、不揮発性の記憶装置（フラッシュメモリ、ハードディスクドライブなど）等を備える計算機を用いて実現可能である。
【００６２】
通信ＩＦ２３５は、直接あるいはＥＭＳ（Ｅｌｅｍｅｎｔ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）を介して、ネットワークファンクション４００に、一連の複数のパケットで構成されるトラフィックを設定、削除、又は変更する。また、通信ＩＦ２３５は、ネットワークファンクション４００が保持する情報を送信する指示を含むメッセージを、ネットワークファンクション４００に送信する。そして、情報を含むメッセージをネットワークファンクション４００から受信する。
【００６３】
データ記憶部２７０は、制御処理部２１０によって管理され、値を参照されたり、値を更新されたりする。データ記憶部２７０は、コントローラ１００に備わる不揮発性の記憶装置等に構築される。データ記憶部２７０は、構成情報記憶部２７５、トラフィック情報記憶部２８０、ネットワークファンクション情報記憶部２９０、ロールグループ情報記憶部２９５を備える。
【００６４】
以下にデータ記憶部２７０が保持する情報を示す。
【００６５】
構成情報記憶部２７５は、データ処理機能の位置情報やネットワークトポロジ情報等を保持する記憶部である。トラフィック情報記憶部２８０は、トラフィックの情報、及び、ネットワークファンクションの制御情報を保持する記憶部である。ネットワークファンクション情報記憶部２９０はネットワークファンクションの情報、及び、新規に配備するネットワークファンクションの情報を保持する記憶部である。ロールグループ情報記憶部２９５はロールグループに関する情報、及び、ロールグループ間の通信パケットが経由するネットワークファンクションに関する情報を保持する記憶部である。
【００６６】
ロールグループとは、機能的に等価、すなわち同等の入力（パケットのレイヤ４より下位レイヤのヘッダを除くと値が同じであるパケット）に対して同等の出力（パケットのレイヤ４より下位レイヤのヘッダを除くと値が同じであるパケット）を返すデータ処理機能の集合を表す。
【００６７】
サービス受付部２４０は、コントローラ１００に接続される管理端末の操作画面等を介して、トラフィックの通信経路やロールグループ間の通信経路が経由するネットワークファンクションを表示する為や、更に上位のコントローラから制御する為のノースバンドインタフェースである。
【００６８】
制御処理部２１０は、データ記憶部２７０に保持される値を参照し、各トラフィックの宛先と経路を計算し、計算された各トラフィックの経路制御をネットワークファンクション４００に指示する。制御処理部２１０は、トラフィック制御機能２１５、ネットワークファンクション管理２２０、ロールグループ管理２２５、及び、ネットワーク構成管理２３０等の機能を含む。
【００６９】
トラフィック制御機能２１５は、ネットワークファンクション４００におけるパケット転送先やパケットヘッダの書き換えなどの経路制御を行い、及び、その他のネットワークファンクションにおけるパケット処理方法を計算する。ネットワークファンクション管理２２０はネットワークファンクション４００の状態を管理する。ロールグループ管理２２５は機能的に等価なデータ処理機能を管理する。ネットワーク構成管理２３０は物理的なネットワーク構成や論理的なネットワーク構成を管理する。
【００７０】
すなわち、制御処理部２１０に含まれる機能は、コントローラ１００に備わる不揮発性の記憶装置に保持されたプログラムが、プロセッサによって揮発性の記憶装置において実行されることによって、実現される。またこれらのプログラムは、あらかじめ不揮発性記憶装置に格納されていてもよいし、ネットワークを介してまたは可搬型記憶媒体を介して外部装置から導入されても良い。
【００７１】
図４については、後述する。
【００７２】
図５は、ロールグループ情報テーブル３０００を示す説明図である。
【００７３】
ロールグループ情報テーブル３０００は、ロールグループ情報記憶部２９５によって管理され、図１２のシーケンス２１５０、及び、シーケンス２２００においてＤＮＳやロードバランサに設定された情報と物理ネットワーク構成情報に基づいて生成される。
ロールグループ情報テーブル３０００は、仮想ネットワーク識別子、ロールグループ識別子、データ処理機能の位置、仮想化プロトコル、仮想化識別子、データ処理機能アドレスなどの属性のいずれか一つ以上を含む。
【００７４】
仮想ネットワーク識別子は、仮想ネットワークの識別子を示す。仮想ネットワークとは、物理的なネットワークにオーバーレイされた仮想的なネットワークであり、サーバ間やデータセンタ間を繋ぐ物理的なネットワーク構成に影響されない構成をとることができる。仮想ネットワークの実現方法として、ＶｘＬＡＮやＭＰＬＳ−ＴＰ、ＮｖＧＲＥなどのプロトコルがある。
【００７５】
仮想ネットワークは、異なるプロトコルで実現される複数のドメイン（例えば、ＭＰＬＳ−ＴＰのネットワークやＶｘＬＡＮのネットワーク、ＶＬＡＮのネットワークなど）に跨って構成されてもよい。即ち、データ処理機能が、ＶｘＬＡＮとＶＬＡＮといった複数ドメインに跨って分散配置されており、これらのデータ処理機能が互いに通信可能でなければならないものである場合（例えば、同じアプリケーションシステムのウェブサーバやＤＢサーバである場合）、ＶｘＬＡＮのある仮想化識別子（ＶＮＩ）で仮想化されるネットワークとＶＬＡＮのある仮想化識別子（ＶＬＡＮタグ）で仮想化されるネットワークに対して一つの仮想ネットワーク識別子が割り当てられる。
【００７６】
データ処理機能識別子とは、データ処理機能の識別子である。機能的に等価なデータ処理が複数存在する場合、それぞれ異なる識別子が割り当てられる。
【００７７】
ロールグループ識別子とは、ロールグループの識別子である。ロールグループとは、上述の通り、機能的に等価、すなわち同等の入力に対して同等の出力を返すデータ処理機能の集合を表す。例えば、同一アプリケーションにおいて負荷分散を目的に複数のＷｅｂフロントエンド（Ｗｅｂサーバ等）や複数のバックエンド（ＤＢサーバ等）が存在する場合、これらのＷｅｂフロントエンド、バックエンドにはそれぞれ一意のロールグループ識別子が割り当てられる。
【００７８】
データ処理機能の位置とは、当該の行のデータ処理機能識別子のネットワークの観点における位置を表す。本実施例においては、データ処理機能の位置を近接するネットワークファンクションの識別子で表す。データ処理機能の位置はネットワークファンクションの代わりに、スイッチやルータ等で表されてもよい。
【００７９】
仮想化プロトコルは仮想ネットワークを実現するプロトコルである。例えば、ＶｘＬＡＮ、ＭＰＬＳ−ＴＰ、ＰＢＢ−ＴＥ、ＮｖＧＲＥなどが挙げられる。
仮想化識別子は仮想化プロトコルにおいて用いられるタグやラベル名を示す。
データ処理機能アドレスは、データ処理機能のＩＰアドレスを示す。
【００８０】
ロールグループ情報テーブル３０００を管理することによって、同等の処理を行うことが可能なデータ処理機能のうち、近傍のデータ処理機能にパケットを転送する為の仮想化プロトコルやそのタグやラベル名、宛先ＩＰアドレスを把握し、当該データ処理機能にパケットを転送することが可能になる。これによって、近傍のデータ処理機能にパケットを転送して処理することができ、通信遅延が削減され、また遠隔のデータ処理機能とを繋ぐ広域網等のネットワークの通信帯域の消費量を削減することが可能になる。
【００８１】
図６は、トラフィック情報テーブル３１００を示す説明図である。
【００８２】
トラフィック情報テーブル３１００は、データ処理機能、または、端末６２０に送受信されるトラフィックの情報であり、トラフィックの制御状態や経路を変更するトラフィックを把握する為に用いる。トラフィック情報記憶部２８０によって管理され、図１２のシーケンス２２５０などにおいて生成される。
トラフィック情報テーブル３１００は、トラフィック識別子、送信元アドレス、送信先アドレス、経由ネットワークファンクション識別子、経由ノード識別子、変更後送信元アドレス、変更後送信先アドレス、経路変更ネットワークファンクション識別子、変更後経由ネットワークファンクション、及び、変更後経由ノード識別子などの属性のいずれか一つ以上を含む。
【００８３】
トラフィック識別子とはトラフィックの識別子である。
送信元アドレスとはトラフィックの送信元であるデータ処理機能や端末６２０のＩＰアドレスやＭＡＣアドレスである。
送信先アドレスとはトラフィックの送信先であるデータ処理機能や端末６２０のＩＰアドレスやＭＡＣアドレスである。
経由ネットワークファンクション識別子とはトラフィックが経由するネットワークファンクション４００の識別子である。
経由ノード種別とは、経由するネットワークファンクション４００以外のネットワークファンクションの種類である。
経由ノード識別子とは、経由するネットワークファンクション４００以外のルータ５２０、ＤＮＳ５１０、スイッチ５６０、ＦＷ５５０、ロードバランサ５３０などの識別子である。
変更後送信元アドレスとは、ネットワークファンクション４００において経路を変更された場合の変更後のトラフィックの送信元のデータ処理機能や端末６２０のＩＰアドレスやＭＡＣアドレスである。
変更後送信先アドレスとはネットワークファンクション４００において経路を変更された場合の変更後のトラフィックの送信先のデータ処理機能や端末６２０のＩＰアドレスやＭＡＣアドレスである。
経路変更後ネットワークファンクション識別子とはトラフィックの経路を変更しているネットワークファンクション４００の識別子である。
経路変更後ノード識別子とはトラフィックの経路を変更しているノードの識別子である。
【００８４】
図７はロールグループ間経由ネットワークファンクション情報テーブル３２００を示す説明図である。ロールグループ間経由ネットワークファンクション情報テーブル３２００は、ロールグループ情報記憶部２９５によって管理され、ネットワーク管理装置２００を介して管理者によって生成される。
ロールグループ間経由ネットワークファンクション情報テーブル３２００は、送信元ロールグループ識別子、送信先ロールグループ識別子、経由ネットワークファンクショングループ、及び、経由ネットワークファンクション識別子などの属性のいずれか一つ以上を含む。送信元ロールグループ識別子と送信先ロールグループ識別子は、それぞれトラフィックの送信元と送信先のロールグループの識別子を示す。
【００８５】
経由ネットワークファンクショングループとは、上記トラフィックが経由する、機能的に等価なネットワークファンクションのグループである。経由ネットワークファンクショングループは、例えば、ネットワークファンクションの種類である。ネットワークファンクションの種類には、ファイアフォールファンクション、ＩＰＳファンクション、ルーティングファンクション、ロードバランシングファンクション、ＤＰＩファンクション、キャッシングファンクション、アクセラレーティングファンクションなどである。図４の説明においてこれらのファンクションを説明する。
【００８６】
経由ネットワークファンクションにはゼロ個以上のネットワークファンクションが含まれる。経由ネットワークファンクション識別子とは、上記トラフィックが経由するネットワークファンクションの識別子を示す。経由ネットワークファンクション識別子は、同一の経由ネットワークファンクショングループのネットワークファンクションが複数存在する場合に、どのネットワークファンクションを経由するかを一意に表す。
【００８７】
ロールグループ間経由ネットワークファンクション情報３２００を管理することによって、トラフィックの経路を局所化するように経路変更する際に、経由すべきネットワークファンクションの種類を把握することができる。
【００８８】
図８はネットワークファンクション情報テーブル３３００を示す説明図である。
ネットワークファンクション情報テーブル３３００は、ネットワークファンクション情報記憶部２９０によって管理され、ネットワーク管理装置２００を介して管理者によって生成され、図１２のシーケンス２２９０において更新される。
【００８９】
ネットワークファンクション情報テーブル３３００はネットワークファンクション識別子、ネットワークファンクショングループ、ネットワークファンクションの位置、ネットワークファンクションの状態、ネットワークファンクションのアドレス、冗長化構成、耐バースト性、ディカプセル化、ＲＳＦＧ（Ｒｉｓｋ  Ｓｈａｒｅｄ  Ｆｕｎｃｔｉｏｎ  Ｇｒｏｕｐ）などの属性のいずれか一つ以上を含む。
【００９０】
なお、ネットワークファンクション情報テーブル３３００のＮＷファンクション識別子には、装置であるミドルボックス（ロードバランサ５３０、ルータ５２０、ＤＮＳ５１０、ファイアフォール５５０）の識別子が含まれてもよい。
【００９１】
本テーブルの用途の一つは、あるネットワークファンクション４００を経由するトラフィックを、ネットワークの観点で近傍であり、かつ機能的に等価な、他のネットワークファンクション４００を経由する通信経路に切り替える際に、どのネットワークファンクション４００が機能的に等価であるかを判断することにある。ミドルボックスの識別子が本テーブルのＮＷファンクション識別子に含まれることによって、上記と同様に、あるミドルボックスを経由するトラフィックを、ネットワークの観点で近傍であり、かつ機能的に等価なミドルボックス、または、ネットワークの観点で近傍であり、かつ機能的に等価なネットワークファンクション４００を経由する通信経路に切り替える際に、どのネットワークファンクション４００が機能的に等価であるかを判断することが可能になる。
【００９２】
ネットワークファンクション識別子は、ネットワークファンクションの識別子を示す。ネットワークファンクショングループは、機能的に等価なネットワークファンクションのグループである。ネットワークファンクショングループは例えば、ネットワークファンクションの種類とその設定情報が同じであるグループを表す。図中においては、見易さを目的にネットワークファンクションの種類のみを記載しているが、実際には、同じようにパケットを処理するために、ネットワークファンクションの設定情報も同一であるものが同じグループとして管理される。例えば、ＦＷ（ファイアフォール）に関しては、設定情報に応じて、ＦＷ１、ＦＷ２などのように管理される。ネットワークファンクション、及び、ネットワークファンクションの種類に関しては図７において説明したとおりである。
【００９３】
ネットワークファンクションの位置とは、当該の行のネットワークファンクション識別子のネットワークの観点における位置を表す。本実施例においては、ネットワークファンクションの位置を近接するネットワークファンクションの識別子で表す。ネットワークファンクションの位置はネットワークファンクションの代わりに、スイッチやルータ等で表されてもよい。ネットワークファンクションの状態とはネットワークファンクションの稼動状態や負荷状態の観点から、利用可能か否かをあらわす状態情報である。ネットワークファンクションのアドレスはネットワークファンクションのＩＰアドレスを表す。
【００９４】
冗長化構成はネットワークファンクションが冗長化構成になっているか否かを示し、即ち、信頼性の高さを示す。ネットワークファンクション毎に冗長化構成情報を持つことによって、同一のネットワークファンクショングループに属するネットワークファンクションが複数存在する場合に、高い信頼性を要求するネットワーク構成最適化要求、または新規の通信経路設定を受けた際に、高信頼なネットワークファンクションを選択することができる。
【００９５】
耐バースト性はネットワークファンクションに流れるトラフィックが急激に増加した際にスケールアップすることによって、その通信量増加に対応可能か否かを示す。ネットワークファンクション毎に冗長化構成情報を持つことによって、同一のネットワークファンクショングループに属するネットワークファンクションが複数存在する場合に、耐バースト性を要求するネットワーク構成最適化要求、または新規の通信経路設定 を受けた際に、スケールアップ可能なネットワークファンクションを選択することができる。これによって、バースト的にトラフィック量が増加した際に他のトラフィックの性能劣化を防ぐことが可能になる。
【００９６】
ディカプセル化はネットワークファンクションを経由する際にパケットヘッダのカプセル化部分を除く、即ち、ディカプセル化する必要があるか、否かを示す。パケットヘッダのカプセル化部分とは、トンネリングプロトコルであるＶｘＬＡＮヘッダやＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）のヘッダ、または、Ｌ２（Ｌａｙｅｒ２）オーバーＬ３（Ｌａｙｅｒ３）のヘッダなどである。これは、ディカプセル化の要否はカプセル化した状態で、ネットワークファンクションがパケットを処理可能か否かを判断できるようにするためである。ディカプセル化の情報を備えることによって、カプセル化のみによって通信経路を変更して経路変更する方法とパケットの送信先アドレスや送信元アドレスなどを変更して通信経路を変更する方法のどちらができよう可能かを判断することができる。
【００９７】
ＲＳＦＧとは、物理障害や性能障害が発生した際に同様の影響を受けるもの集合を示す。これは例えば、同じサーバ上に仮想アプライアンスとして構築された複数のネットワークファンクションが存在する場合に、当該サーバの障害が発生した際にこれらのネットワークファンクションが障害状態になることを示す。ＲＳＦＧを保持することによって、現用系と予備系のネットワークファンクションを異なるＲＳＦＧに属するものを選択することによって現用毛と予備系の両方が同時に障害断になるリスクを抑えることができる。
【００９８】
なお、本実施例においては冗長化構成、耐バースト性、ディカプセル化、ＲＳＦＧは管理者によって入力されているものとするが、これらの値はサーバ管理やミドルボックス（ネットワークファンクション）の管理装置から受け取ってもよい。
【００９９】
ネットワークファンクション情報３３００を管理することによって、利用可能な最寄りのネットワークファンクションを把握することが可能になる。これによって、遠隔のネットワークファンクションを経由している場合に最寄りのネットワークファンクションを経由する判断を行うことが可能になる。
【０１００】
図９は配備するネットワークファンクション情報テーブル３４００を示す説明図である。配備するネットワークファンクション情報テーブル３４００は、ネットワークファンクション情報記憶部２９０によって管理され、図１２のシーケンス２２５０において生成される。
配備するネットワークファンクション情報テーブル３４００は配備するネットワークファンクション識別子、配備するネットワークファンクショングループ、設定を複製するネットワークファンクション識別子、配備先のリソースプール、配備するネットワークファンクションのアドレスなどの属性のいずれか一つ以上を含む。
【０１０１】
配備するネットワークファンクション識別子は、新たに配備するネットワークファンクションの識別子を示す。配備するネットワークファンクショングループは配備するネットワークファンクションの機能的に等価なグループであり、例えば、ネットワークファンクションの機能の種類を示す。設定を複製するネットワークファンクション識別子は新しく配備するネットワークファンクションに設定する内容を配備済みのネットワークファンクションの設定情報から生成する場合に、設定情報の複製元となるネットワークファンクションの識別子を示す。配備するネットワークファンクションのアドレスはネットワークファンクションのＩＰアドレスを示す。
【０１０２】
図１０はネットワークファンクションの転送ルール情報テーブル３５００を示す説明図である。ネットワークファンクションの転送ルール情報テーブル３５００は、トラフィック情報記憶部２８０によって管理され、図１２のシーケンス２２５０において生成される。
【０１０３】
ネットワークファンクションの転送ルール情報テーブル３５００は制御対象トラフィック情報（ルール）と制御内容情報（アクション）を含む。
制御対象トラフィック情報には、ネットワークファンクション識別子、入力元ＩＦ、送信元仮想化識別子、送信元アドレス、送信先アドレスなどの属性のいずれか一つ以上が含まれる。制御対象トラフィック情報は、制御対象とするトラフィックの条件が含まれる。この条件に合致するトラフィックに対して制御内容情報に記載される転送処理を行う。
ネットワークファンクション識別子はネットワークファンクションの識別子である。入力元ＩＦとはネットワークファンクションがトラフィック（パケット）を受信するインタフェースの識別子である。送信元仮想化識別子とはネットワークファンクションが受信するトラフィックのヘッダに記載される仮想化の識別子であり、例えば、ＶｘＬＡＮのタグ（ＶＮＩ）やＭＰＬＳラベルなどである。送信元アドレスとはネットワークファンクションが受信するトラフィックのヘッダに記載される送信元のＩＰアドレスである。
【０１０４】
制御内容情報には、送信先仮想化識別子、出力送信元アドレス、出力送信先アドレスなどの属性のいずれか一つ以上が含まれる。
送信先仮想化識別子とはネットワークファンクションが送信するトラフィックのヘッダに記載する仮想化の識別子である。出力送信元アドレスは、ネットワークファンクションが送信するトラフィックのヘッダに記載する送信元のＩＰアドレスである。出力送信先アドレスは、ネットワークファンクションが送信するトラフィックのヘッダに記載する送信先のＩＰアドレスである。出力ＩＦはネットワークファンクションがトラフィックを送信するインタフェースである。なお、送信元アドレス、送信先アドレス、出力送信元アドレス、出力送信先アドレスはＩＰアドレスの他にＭＡＣアドレス、Ｌ４ポート番号を含んでもよい。
【０１０５】
図３の説明に戻る。
【０１０６】
図４は、本実施形態におけるネットワークファンクションの構成例を示すブロック図である。
【０１０７】
ネットワークファンクション４００は、必要に応じて配備される以下の機能を含んで構成される。
すなわち、ファイアフォールファンクション４１０、ＩＰＳファンクション４２０、ルーティングファンクション４３０、ロードバランシングファンクション４４０、ＤＰＩファンクション４５０、キャッシングファンクション４６０、及び、アクセラレーティングファンクション４７０を含んで構成される。
【０１０８】
ネットワークファンクション４００は、そのほか、スイッチングファンクション４９０と、上記ファンクションを配備する為のリソースプール４８０を含む。
【０１０９】
スイッチングファンクション４９０とは、２種類の役割を担う。一つはネットワークファンクション４００と外部のサーバやルータ等との間で転送処理を行う一般的なネットワークスイッチとしての役割である。もう一つは、ネットワークファンクション４００内の各ファンクション間において転送処理を行う内部スイッチとしての役割である。なお、スイッチングファンクション４９０は、転送処理に加え、優先制御や帯域制御、廃棄制御等の一般的なネットワークスイッチが担う機能を備えてもよい。
【０１１０】
ファイアフォールファンクション４１０は、一般的なファイアフォールの機能を備える。ＩＰＳファンクション４２０は、侵入を検出したうえで、その攻撃を防御する、一般的なＩＰＳ（Ｉｎｔｒｕｓｉｏｎ  Ｐｒｅｖｅｎｔｉｏｎ  Ｓｙｓｔｅｍ）の機能を備える。 
ルーティングファンクション４３０は一般的なルーティングの機能を備える。ロードバランシングファンクション４４０はレイヤ２負荷分散機能、レイヤ３負荷分散機能、及び、レイヤ７負荷分散機能を備える。ＤＰＩファンクション４５０はパケットのヘッダやペイロードを分析するＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）の機能を備える。キャッシングファンクション４６０はパケットをキャッシュする機能を備える。アクセラレーティングファンクション４７０はＴＣＰ通信の輻輳制御を改善するＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アクレラレータの機能を備える。また、リソースプール４８０は上記ファンクションを配備する為の計算資源である。
【０１１１】
図１１は本実施形態においてデータ処理機能の配備構成変更時の動作概要を例示する概略図である。本概略図においては、ネットワークファンクション４００の転送処理以外の機能（ＦＷ５５０）はネットワークファンクション４００の外部に含まれる構成を示すが、内部に含まれてもよい。また、本事例においてはＦＷを追加する事例であるが、ＷＡＮアクセラレータやファイアフォール等の他の機能の場合においても同様である。
【０１１２】
図１１においては、データ処理機能であるＶＭ（Ａｐｐ）が移動し、また、データ処理機能であるＶＭ（ＤＢ）が複製された場合にトラフィックの経路やネットワークファンクションの配備箇所がどのように変更されるかを例示する。図１１は説明の便宜上、擬似的な論理構成を示しているが、これは図２と同様である。なお、トラフィックは端末から送信されてＶＭ（Ａｐｐ）に到達するトラフィック、及び、ＶＭ（Ａｐｐ）から送信されてＶＭ（ＤＢ）に到達するトラフィックであり、それぞれ矢印で示す。
【０１１３】
なお、本概略図においては、見易さ向上の目的で、ネットワークファンクション４００−１と４００−２間のトンネルを直線的に記載したが、上記トンネルは実際にはルータ５２０−１、ネットワーク６００、ルータ５２０−２を経由する。
【０１１４】
図１１(Ａ)に示す状態１は、データ処理機能ＶＭ（Ａｐｐ）とＶＭ（ＤＢ）が移動や複製される前の状態を表す。端末６２０がＶＭ（Ａｐｐ）を利用する際の通信はネットワーク６００を経由してルータ５２０−１を経由し、ロードバランサ５３０ロードバランサ５３０−１を経由してＶＭ（Ａｐｐ）に到達する。ＶＭ（Ａｐｐ）からＶＭ（ＤＢ）への通信はＦＷ５５０−１を経由してＶＭ（ＤＢ）へ到達する。
【０１１５】
図１１(Ｂ)に示す状態２は、ＶＭ（Ａｐｐ）がサーバ５４０−１、５４０−２からサーバ５４０−３、５４０−４に移動し、また、ＶＭ（ＤＢ）がサーバ５４０−６からサーバ５４０−５に複製された後の状態を示す。なお、ＶＭ（ＤＢ）は図１の拠点７００−ａにおいて使用されない場合、複製ではなく移動されてもよい（すなわち、サーバ５４０−６にあるＶＭ（ＤＢ）は複製後に削除、または、停止されてもよい。また、データ処理機能の移動や複製は管理装置の処理によって、または、データ処理機能の運用管理者の指示と操作によって手動で行われる。
【０１１６】
コントローラ１００のトラフィック制御機能２１５がＶＭ（Ａｐｐ）の移動を検知すると、トラフィック制御機能２１５は、サーバ５４０−１とサーバ５４０−２が繋がるＬＡＮ１とサーバ５４０−３とサーバ５４０−４が繋がるＬＡＮ１との間をネットワークファンクション４００−１とネットワークファンクション４００−２とをトンネルによって接続する。同様にトラフィック制御機能２１５がＬＡＮ２の間をトンネルによって接続する。なお、ネットワークファンクション４００−１とネットワークファンクション４００−２とを接続するトンネルの通信経路は、図１に示す、ネットワークファンクション４００−１、スイッチ５６０−１、ルータ５２０−１、ネットワーク６００、ルータ５２０−２、スイッチ５６０−２、及びネットワークファンクション４００−２を経由する経路である。
【０１１７】
移動の検知方法を以下に示す。移動前のＶＭ（Ａｐｐ）が送信するＡＲＰなどのパケットのヘッダ情報をネットワークファンクション４００−１がコントローラ１００のトラフィック制御機能２１５にパケットインなどの方法によって通知することによって、コントローラ１００のトラフィック制御機能２１５がＶＭ（Ａｐｐ）のＩＰアドレスとＭＡＣアドレス、及び、ＶＬＡＮを把握し、コントローラ１００のトラフィック制御機能２１５がＶＭ（Ａｐｐ）の移動後に同様にしてネットワークファンクション４００−２からの通知によってＶＭ（Ａｐｐ）のＩＰアドレスとＭＡＣアドレスを把握する。ネットワークファンクション４００−１とネットワークファンクション４００−２から通知されたＩＰアドレスとＭＡＣアドレスが同一の場合にＶＭ（Ａｐｐ）が同一であると判断し、ＶＭ（Ａｐｐ）が移動したと判断する。
【０１１８】
このように、本システムでは、複数のネットワークファンクション４００が学習したヘッダ情報（送信元アドレスや送信先アドレス、ＶＬＡＮタグ等の情報）をコントローラ１００のトラフィック制御２１５が一元管理し、コントローラ１００のトラフィック制御２１５が、異なるネットワークファンクション４００が学習したヘッダに同一のものがあるか比較する。
【０１１９】
なお、パケットインのメカニズムは、未知のヘッダを備えるパケットが到達した際にそのパケットのヘッダの情報をコントローラに通知するが、一度学習したパケットについては再送信しない。その為、本システムにおいて、パケットインを利用して通知する場合には、ある時間間隔で学習した内容を消去する仕組みを備えることが望ましい。なお、ある時間間隔とは一定の間隔、または、該当するヘッダを備えるパケットをネットワークファンクション４００が最後に受信してから、経過したある規定された時間間隔である。
【０１２０】
その判断方法を更に述べると、ネットワークファンクション４００がコントローラ１００のトラフィック制御機能２１５に通知するパケットのヘッダ情報に基づいて、トラフィック情報記憶部２８０が管理するトラフィック識別子、送信元アドレス、送信先アドレス、経由ネットワークファンクション識別子を保存する。トラフィック識別子には一意に決定される任意の値をコントローラ１００が割り当てる。ネットワークファンクション４００がトラフィックの制御方法が規定されていないトラフィックを受信すると、前述の通りネットワークファンクション４００のスイッチングファンクション４９０がコントローラ１００のトラフィック制御機能２１５にパケットのヘッダ情報を通知する。その際、トラフィック制御機能２１５が通知されたヘッダ情報の送信元アドレスと送信先アドレスが、トラフィック情報テーブル３１００の送信元アドレスと送信先アドレスと同一でかつ、経由ネットワークファンクション識別子が上記通知を送信したネットワークファンクション４００の識別子と異なる場合に、データ処理機能が移動したと判定する。これによって、データ処理機能の移動を検知することが可能になる。
【０１２１】
従来のレイヤ２やレイヤ３のスイッチやルータは、自身が転送処理するパケットの送信元アドレスや送信先アドレス、ＶＬＡＮタグ等のヘッダ情報を異なるスイッチ間や異なるルータ間で交換してそれらの情報を共有しない為、あるスイッチが、自身が把握していないヘッダを備えるパケットを受信した際に、次の判断ができない。
【０１２２】
その判断とは、受信したパケットの送信元アドレスのデータ処理機能が異なるスイッチやルータに接続されたサーバから移動したのか、または、新しく配備されたのかのどちらであるかを判断することである。また、移動したと判断できたとしても、どのスイッチやルータに接続されたサーバからそのデータ処理機能が移動したのかを判断できない為、移動前のネットワークの論理構成（レイヤ２やレイヤ３の接続構成やＶＬＡＮタグ番号）を把握することができない。その結果、移動前のネットワークの論理構成を維持するように、通信経路を制御することができない。
【０１２３】
一方で、本システムでは、複数のネットワークファンクション４００が学習したヘッダ情報（送信元アドレスや送信先アドレス、ＶＬＡＮタグ等の情報）をコントローラ１００のトラフィック制御２１５が一元管理し、コントローラ１００のトラフィック制御２１５が、異なるネットワークファンクション４００が学習したヘッダに同一のものがあるか比較するために、上記判断が可能になる。
【０１２４】
端末６２０からＶＭ（Ａｐｐ）への通信はネットワーク６００を経由してルータ５２０−１を経由し、ロードバランサ５３０−１を経由してＬＡＮ１に到達する。左右のＬＡＮ１がトンネリングによってトランスペアレントに接続される為、ＬＡＮ１に到達したパケットはサーバ５４０−４に移動したＶＭ（Ａｐｐ）に到達する。ＶＭ（Ａｐｐ）からＶＭ（ＤＢ）への通信は、同様に右側のＬＡＮ２を経由してネットワークファンクション４００−１と４００−２の間のトンネルを経由して左側のＬＡＮ２に到達し、ＦＷ５５０−１を経由してＶＭ（ＤＢ）へ到達する。
【０１２５】
図１１(Ｃ)に示す状態３は、サーバ５４０−６とサーバ５４０−５に配備されたＶＭ（ＤＢ）のロールグループが同一、即ち、機能的に等価であることをコントローラ１００が把握して、ＶＭ（Ａｐｐ）からＶＭ（ＤＢ）へのトラフィックの宛先がサーバ５４０−６からサーバ５４０−５に配備されたＶＭ（ＤＢ）に変更され、かつ、ＶＭ（Ａｐｐ）とＶＭ（ＤＢ）の間のトラフィックが経由するＦＷが右側に存在しない為、ＦＷ５５０−２を配備して経由するＦＷをＦＷ５５０−１からＦＷ５５０−２に変更した状態を表す。
【０１２６】
これによって、ＶＭ（Ａｐｐ）からＶＭ（ＤＢ）へのトラフィックが局所化される。トラフィックが局所化されるとは、例えば、ネットワーク６００を経由しないということである。これによって、ネットワーク６００を経由することによって生じる通信遅延の増加やＴＣＰスループットの低下を回避することができる。また、ネットワーク６００における性能障害がアプリケーションシステム（特に、最も性能障害の影響を受けるＶＭ（Ａｐｐ）とＶＭ（ＤＢ）間のＩ／Ｏ性能）への影響を軽減することが可能になる。
【０１２７】
状態３における動作概要を図１２、図１３、図１４を用いて更に詳細に述べる。
【０１２８】
図１２は本実施形態においてネットワーク制御システムのネットワーク構成最適化時における動作概要を例示するシーケンス図である。本シーケンス図においては、図１１の状態２において、ネットワーク管理装置２００がコントローラ１００に対してネットワーク構成最適化要求を送信した場合に、状態３に移行する動作概要を示す。
【０１２９】
シーケンス２１１０においてコントローラ１００のネットワーク構成管理２３０が、通信ＩＦ２３５を介して隣接ノード構成情報をネットワークファンクション４００から取得する。ここで隣接ノードとは、ネットワークファンクション４００がレイヤ３ネットワークで隣接するサーバ５４０やサーバ上のデータ処理機能ルータ５２０、ＤＮＳ５１０、ＦＷ５５０等の識別子である。なお、識別子とは、例えば、ＩＰアドレスやＭＡＣアドレス等で隣接ノードが一意に決定される値である。
【０１３０】
シーケンス２１２０においてコントローラ１００のサービス受付部２４０がネットワーク管理装置２００からネットワーク構成最適化要求２１２０を受信する。ネットワーク構成最適化要求には、ロールグループ間経由ネットワーク情報３２００とネットワークファンクション情報３３００、仮想ネットワーク識別子の一覧、データ処理機能の識別子の一覧、及び、仮想化プロトコルの一覧、仮想化識別子の一覧、及び、データ処理機能のアドレスの一覧が含まれる。なお、全てのトラフィックを最適化するのではなく、一部のトラフィックを指定して最適化する場合には、送信元ロールグループと送信先ロールグループなどトラフィックを特定する情報が含まれていてもよい。
【０１３１】
シーケンス２１５０においてコントローラ１００のネットワーク構成管理２３０がシーケンス２１２０において受信した仮想ネットワーク識別子、データ処理機能の識別子、仮想化プロトコル、仮想化識別子、及び、データ処理機能のアドレスを、それぞれロールグループ情報３０００の仮想ネットワーク識別子、データ処理機能識別子、仮想化プロトコル、仮想化識別子、及び、データ処理機能アドレスに追加する。次に、シーケンス２１２０において把握されたアドレスのうち、ローカルグループ情報３０００に記載されたデータ処理機能アドレスに一致するアドレスを、シーケンス２１２０において送信したネットワークファンクション４００の識別子をデータ処理機能の位置の同じ行に追加する。
【０１３２】
シーケンス２１６０においてコントローラ１００のロールグループ管理２２５がＤＮＳ５１０に対して名前解決情報要求を送信し、名前解決情報を参照する。具体的には、ＤＮＳに設定された名前解決の情報、即ち、ＵＲＩとＩＰアドレスの対応付けなどを把握する。
【０１３３】
シーケンス２１７０においてコントローラ１００のロールグループ管理２２５がＤＮＳ５１０から名前解決情報を取得する。
【０１３４】
シーケンス２１８０においてコントローラ１００のロールグループ管理２２５がロードバランサ５３０に対して負荷分散情報要求２１８０を送信する。具体的には、負荷分散の設定情報を把握する。
【０１３５】
シーケンス２１９０においてコントローラ１００のロールグループ管理２２５がロードバランサ５３０から負荷分散情報を取得する。
【０１３６】
シーケンス２２００において、コントローラのロールグループ管理２２５がロールグループ情報を生成し、ロールグループ情報テーブル３０００に追記する。図１３を用いてその手順を説明する。
【０１３７】
ステップ３１１０において、ロールグループ管理２２５がシーケンス２１７０において取得した名前解決情報のうち、ＤＮＳラウンドロビンなどによって同一のＵＲＩに対して複数のＩＰアドレスを応答することによってデータ処理やパケット処理を振分けられているＩＰアドレスを、機能的に等価な、データ処理機能またはネットワークファンクションまたはミドルボックス、のＩＰアドレスとして把握する。また、当該情報を取得したＤＮＳ５１０が属する仮想ネットワーク識別子を把握する。
【０１３８】
ステップ３１２０において、ロールグループ管理２２５がシーケンス２１９０において把握された負荷分散情報のうち、同じバーチャルサーバに対応するプールメンバのＩＰアドレスを、機能的に等価な、データ処理機能またはネットワークファンクションまたはミドルボックス、のIPアドレスとして把握する。また、当該情報を取得したロードバランサ５３０が属する仮想ネットワーク識別子を把握する。
【０１３９】
ステップ３１３０において、ロールグループ管理２２５がステップ３１１０と３１２０において把握した、機能的に等価な複数のデータ処理機能のアドレスを同一のロールグループのアドレスとして、ステップ３１１０と３１２０において把握した仮想ネットワーク識別子と紐付けて管理する。
【０１４０】
ステップ３１４０において、ロールグループ管理２２５が、ロールグループ情報テーブル３０００において仮想ネットワーク識別子が、ステップ３１３０において把握された仮想ネットワーク識別子と同一である行（複数ある場合は複数行）を把握する。次に、当該行のデータ処理機能アドレスが、ステップ３１３０で把握された一つのロールグループに属する複数のアドレスに含まれるいずれかと一致する行を「同じロールグループに属するデータ処理機能のエントリ」として把握する。
更に、当該行（同じロールグループに属するデータ処理機能のエントリ）において、ロールグループ識別子が一意になるように（すなわち、他の行で使用されていない）ユニークな値を記入する。既に当該行（同じロールグループに属するデータ処理機能のエントリ）のうちのあるエントリにおいて、ロールグループ識別子に値が記入されている場合、いずれかの値に統一してもよい。ステップ３１３０で把握されたロールグループが複数存在する場合、本ステップの手順を、把握されたロールグループに対して、繰り返し行う。
【０１４１】
ステップ３１５０において、ロールグループ管理２２５がロールグループ間経由ネットワークファンクション情報３２００を参照して送信元ロールグループ識別子と送信先ロールグループ識別子、経由ネットワークファンクショングループ、及び経由ネットワークファンクション識別子を把握する。ロールグループ情報３０００のロールグループグループ識別子が把握された送信元ロールグループ識別子、及び、送信先ロールグループ識別子と同じであるデータ処理機能識別子をそれぞれ、送信元データ処理機能識別子、及び、送信先データ処理機能識別子として把握する。トラフィック情報テーブル３１００の送信元アドレスが送信元データ処理機能識別子と同じであり、送信先アドレスが送信先データ処理機能識別子と同一である行の経由ノード種別と経由ノード識別子に上記で把握された経由ネットワークファンクショングループと経由ネットワークファンクション識別子を追加する。
【０１４２】
以上が図１３の説明である。これによってロールグループ情報が生成される。図１２の説明に戻る。
【０１４３】
シーケンス２２３０においてサービス受付部２４０がロールグループ間経由ネットワークファンクション情報要求をネットワーク管理装置２００に対して送信する。
【０１４４】
シーケンス２２４０においてサービス受付部２４０がネットワーク管理装置２００からロールグループ間経由ネットワークファンクション情報３２００を受信する。
【０１４５】
シーケンス２２５０においてコントローラ１００が経路制御変更情報、及び、配備ネットワークファンクション情報を生成する。本シーケンスにおける手順を図１４を用いて説明する。
【０１４６】
ステップ３３１０において、トラフィック制御機能２１５が、経路を変更するトラフィックを特定する。経路を変更するトラフィックは例えば、以下の２種類である。
【０１４７】
一つはトラフィックの送信先アドレスのロールグループと同じロールグループに属するアドレスが送信先アドレスよりも近傍に存在するトラフィックである。
この場合、トラフィック制御機能２１５がトラフィック情報３１００の送信元アドレスと送信先アドレスを参照する。
送信元アドレスと送信先アドレスのそれぞれに対して、ロールグループ情報３０００のデータ処理機能アドレスと同じである行のロールグループ識別子とデータ処理機能の位置を、送信元ロールグループ識別子と送信元データ処理機能の位置、及び、送信先ロールグループ識別子と送信先データ処理機能の位置として把握する。ロールグループ識別子が送信先ロールグループ識別子と同じである行のうち、データ処理機能の位置が送信先データ処理機能の位置に比べて送信元データ処理機能の位置にネットワークの観点から近い行のデータ処理機能識別子、及び、データ処理機能アドレスを近傍データ処理機能識別子、及び、近傍データ処理機能アドレスとして把握する。なお、条件に当てはまる近傍データ処理機能識別子が複数計算された場合、もっとも送信元データ処理機能の位置に近い行を選択するものとする。
【０１４８】
上記判断においてデータ処理機能の位置関係を把握する必要があるが、データ処理機能が元のデータ処理機能より近いことを判断する方法は、例えば、データ処理機能ｉを経由するようにトラフィックの通信経路を変更した場合の応答時間Ｔｉが、元々トラフィックが経由しているデータ処理機能ｏを経由する場合の応答時間Ｔ０からある値α（α≧０）を引いた値よりも小さい（Ｔｉ＜Ｔｏ−α）かを比較し、小さい場合にデータ処理機能ｉが元のデータ処理機能ｏよりも近いと判断する。複数のデータ処理機能が該当する場合は、最も小さい応答時間Ｔｉを持つデータ処理機能iをもっとも送信元データ処理機能の位置に近いと判断する。
【０１４９】
なお、応答時間の把握方法としては、例えば、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）などをＰｉｎｇなどの既存技術で把握する、または、データを送信するのに要する時間からＴＣＰスループットを計測する既存技術によって把握することが可能なため、説明を割愛する。以上の方法によって近傍データ処理機能識別子が計算されたトラフィックを、経路を変更するトラフィックとして把握する。
【０１５０】
もう一つはトラフィックが経由するネットワークファンクション４００に経由ノードと同一の種類の機能が配備されている、または、配備するために十分な計算資源がリソースプール４８０に存在するトラフィックである。
【０１５１】
具体的に述べると、トラフィック制御機能２１５がトラフィック情報３１００の送信元アドレスと送信先アドレスを参照する。送信元アドレスと送信先アドレスのそれぞれが、トラフィック情報３１００の送信元アドレスと送信先アドレスと同じである行の経由ノード種別、及び、経由ネットワークファンクション識別子を把握する。
【０１５２】
ネットワークファンクション情報３３００のネットワークファンクション識別子が把握された経由ネットワークファンクション識別子と同一であり、かつ、ネットワークファンクショングループが把握された経由ネットワークファンクショングループと同じである場合はネットワークファンクション４００に経由ノードと同一の種類の機能が配備されていると判断する。
【０１５３】
また、ネットワークファンクション情報３３００のネットワークファンクション識別子が把握された経由ネットワークファンクション識別子と同一であるネットワークファンクションのリソースプールに経由ネットワークファンクションを配備できるだけの計算資源がある場合は、配備するために十分な計算資源がリソースプール４８０に存在するトラフィックとして判断する。
【０１５４】
ステップ３３３０において、ロールグループ管理２２５が経路変更対象のトラフィックの経由ネットワークファンクションを把握する。具体的には、トラフィック情報テーブル３１００において上記で把握されたトラフィックの行の経由ネットワークファンクション識別子を把握する。
【０１５５】
ステップ３３４０において、ネットワーク構成管理２３０が、経由ネットワークファンクションが論理的に近傍な位置に存在するかを確認する。
【０１５６】
具体的には、ネットワーク構成管理２１５がトラフィック情報３１００の送信元アドレスと送信先アドレスを参照する。送信元アドレスと送信先アドレスのそれぞれが、トラフィック情報３１００の送信元アドレスと送信先アドレスと同じである行の経由ノード種別、及び、経由ネットワークファンクション識別子を把握する。
【０１５７】
ネットワークファンクション情報３３００のネットワークファンクション識別子が把握された経由ネットワークファンクション識別子と同一であり、かつ、ネットワークファンクショングループが把握された経由ネットワークファンクショングループと同じである場合はネットワークファンクション４００に経由ノードと同一の種類の機能が配備されていると判断する。更に、ネットワーク構成管理２３０が、ネットワークの観点から元々トラフィックが経由する、ステップ３３３０において把握されたネットワークファンクション、すなわちネットワークファンクション４００またはミドルボックス、に比べて、本ステップで把握されたネットワークファンクション４００が論理的に近傍である場合には、ネットワークの観点でより近傍な位置にネットワークファンクションが存在すると判断する。
【０１５８】
なお、上記において、ネットワークファンクション情報３３００のネットワークファンクション識別子が把握された経由ネットワークファンクション識別子と同一である代わりに、ネットワークファンクション情報３３００のネットワークファンクション識別子が把握された経由ネットワークファンクションの近傍のネットワークファンクションの識別子と同一であってもよい。
【０１５９】
ネットワークファンクションが近傍であることの判断方法に関してはステップ３３１０に示したデータ処理機能の場合と同様であるが、以下に簡単に説明する。
【０１６０】
ネットワークファンクション４００が、トラフィックが元々経由するネットワークファンクションより近いことを判断する方法は、例えば、ネットワークファンクションｉ（ミドルボックスでもよい）を経由するようにトラフィックの通信経路を変更した場合の応答時間Ｔｉが、元々（経路変更する前に）トラフィックが経由しているネットワークファンクションｏ（ミドルボックスでもよい）を経由する場合の応答時間Ｔ０からある値α（α≧０）を引いた値よりも小さい（Ｔｉ＜Ｔｏ−α）かを比較し、小さい場合にネットワークファンクションｉが元のネットワークファンクションｏよりも近いと判断する。複数のネットワークファンクションが該当する場合は、最も小さい応答時間Ｔｉを持つデータ処理機能iをもっとも近傍にあるネットワークファンクションであると判断する。
【０１６１】
存在する場合にはステップ３３６０に進む。存在しない場合にはステップ３３５０に進む。
【０１６２】
なお、アプリケーションの要件として、冗長化構成、耐バースト性が指定されている場合には、ネットワークファンクション情報３３００の識別子が把握された経由ネットワークファンクションである行のうち、冗長化構成、耐バースト性の値が有となっている行を選択した後に、近傍のネットワークファンクションを計算する。
【０１６３】
ステップ３３５０において、ネットワークファンクション管理２２０が近傍に存在しないネットワークファンクションを把握して、ネットワークの観点で近傍にあり、かつ配備可能な位置（リソースプール５７０）を把握し、また、配備するネットワークファンクションへの設定情報を把握する。配備可能な位置はステップ３３１０において把握された経由ネットワークファンクションにもっとも近いネットワークファンクション４００のうち、配備に必要な計算資源（ＣＰＵの処理性能とメモリなど）がリソースプールに存在するネットワークファンクションである。ネットワークファンクション管理２２０は、本ステップで把握したリソースプール５７０にネットワークファンクションを配備する。また、ネットワークファンクション管理２２０は、配備したネットワークファンクションが、トラフィックが元々経由していたネットワークファンクション４００と同じ処理を行うことができるように、本ステップにおいて把握した設定情報を、本ステップで配備したネットワークファンクション４００に設定する。
【０１６４】
なお、リソースプール５７０がネットワークの観点で近傍であることを判断する方法は、例えば、リソースプール５７０を経由するようにトラフィックの通信経路を変更した場合の応答時間Ｔｉが、元々（経路変更する前に）トラフィックが経由しているネットワークファンクションｏ（ミドルボックスでもよい）を経由する場合の応答時間Ｔ０からある値α（α≧０）を引いた値よりも小さい（Ｔｉ＜Ｔｏ−α）かを比較し、小さい場合にリソースプールｉが元のネットワークファンクションｏよりも近いと判断する。複数のリソースプールが該当する場合は、最も小さい応答時間Ｔｉを持つデータ処理機能iをもっとも近傍にあるリソースプールであると判断する。
【０１６５】
ステップ３３６０において、トラフィック制御機能２１５が経路変更するトラフィックのネクストホップ、または、プリービアスホップのノードの識別子を把握する。ネクストホップとはネットワークファンクション４００がパケットを転送する次のホップのノードのＩＰアドレスであり、プリービアスホップとはネットワークファンクション４００にパケットを転送した一つ前のホップのノードのＩＰアドレスである。ネクストホップとプリービアスホップは、トラフィック情報テーブル３１００の変更後経由ネットワークファンクション識別子、または、変更後経由ノード識別子、または、変更後送信先アドレスのうち、次のホップ先のノードのＩＰアドレスである。次のホップ先のノードのＩＰアドレスはネットワークの構成情報から生成されるが、ルーティングの一般的な手段で実現可能なため、説明を割愛する。
【０１６６】
ステップ３３７０において、トラフィック制御機能２１５が配備するネットワークファンクション情報テーブル３４００、及び、ネットワークファンクションの転送ルール３５００を生成する。具体的には、トラフィック制御機能２１５が配備するネットワークファンクション情報テーブル３４００の「配備するネットワークファンクショングループ」に、ステップ３３４０において把握された存在しないネットワークファンクションの種別を追加し、当該エントリの「設定を複製するネットワークファンクション識別子」にステップ３３４０において把握された経由ノードの識別子を追加し、当該エントリの「配備するネットワークファンクションのアドレス」に、配備先のリソースプールにステップ３３５０において把握された配備可能なネットワークファンクションの識別子、及び、当該ネットワークファンクションのＩＰアドレスを追加する。配備するネットワークファンクションの識別子は一意に決定されるように任意の値が割り当てられる。
【０１６７】
ネットワークファンクションの転送ルール情報３５００の説明に移る。ネットワークファンクションの転送ルール情報３５００のネットワークファンクション識別子に、ステップ３３１０において把握された経由ネットワークファンクションを追加する。当該エントリの送信元仮想化識別子に、ロールグループ情報テーブル３０００のデータ処理機能がステップ３３１０において把握されたトラフィックの送信元アドレスと同じである行の仮想ネットワーク識別子を追加し、当該エントリの送信元アドレスと送信先アドレスに、上記把握されたトラフィックの送信元アドレスと送信アドレスを追加する。また、当該エントリの出力送信元アドレスと出力送信先アドレスに、ステップ３３６０において把握されたネクストホップ、及び、プリービアスホップを追加する。
更にロールグループ情報テーブル３０００において、データ処理機能アドレスが、ステップ３３１０において特定されたトラフィックの送信先アドレスと同じ行の「仮想化識別子」を「送信先の仮想化識別子」として把握する。
ネットワークファンクションの転送ルール情報３５００の当該エントリの送信先仮想化識別子に上記「送信先の仮想化識別子」を追加する。
入力元ＩＦと出力先ＩＦに関しては、ネットワークのトポロジ情報から生成されるが、一般的なルーティングやＳＤＮ制御において明らかである為、詳細な説明は割愛する。
【０１６８】
以上が図１４の説明である。これによって配備するネットワークファンクション情報３４００、及び、ネットワークファンクションの制御情報３５００を生成される。図１２の説明に戻る。
【０１６９】
シーケンス２２６０において、コントローラ１００のサービス受付部２４０がネットワーク構成情報通知をネットワーク管理装置２００に送信する。具体的には、シーケンス２２５０において生成した配備するネットワークファンクション情報３４００、及び、ネットワークファンクションの制御情報３５００を送信する。
【０１７０】
シーケンス２２７０において、コントローラ１００のサービス受付部２４０がネットワーク管理装置２００から実行要求を受信する。実行要求を受信した場合、シーケンス２２８０に移行し、受信しない場合、処理を中断する。
【０１７１】
シーケンス２２８０において、コントローラ１００が、シーケンス２２５０で生成した設定情報に基づいて、ネットワークファンクション４００に対して、経路の設定、及び、ネットワークファンクションの配備を行う。
【０１７２】
シーケンス２２９０においてコントローラ１００が状態情報を更新する。具体的には、シーケンス２２５０において生成した配備するネットワークファンクション情報３４００をネットワークファンクション情報３３００に追加する。
【符号の説明】
【０１７３】
１００：コントローラ
２００：ネットワーク管理装置
２１０： 制御処理部
２１５： トラフィック制御機能
２２０： ネットワークファンクション管理
２２５： ロールグループ管理
２３０： ネットワーク構成管理
２３５： 通信ＩＦ
２４０： サービス受付部
２７０： データ記憶部
２７５： 構成情報記億部
２８０： 仮想ネットワーク情報記憶部
２９０： ネットワークファンクション情報記憶部
２９５： ロールグループ情報記憶部
４００：ネットワークファンクション
４１０：ファイアフォールファンクション
４２０：ＩＰＳファンクション
４３０：ルーティングファンクション
４４０：ロードバランシングファンクション
４５０：ＤＰＩファンクション
４６０：キャッシングファンクション
４７０：アクセラレーティングファンクション
４８０：リソースプール
４９０：スイッチングファンクション
５１０：ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｉｃｅ）
５２０：ルータ
５３０：ロードバランサ
５４０：サーバ
５５０：ＦＷ（Ｆｉｒｅｗａｌｌ）
５６０：ネットワークスイッチ
６００：ネットワーク
６１０：ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）
６２０：端末
７００：拠点
【図１】
0006510217.tif 000002
【図２】
0006510217.tif 000003
【図３】
0006510217.tif 000004
【図４】
0006510217.tif 000005
【図５】
0006510217.tif 000006
【図６】
0006510217.tif 000007
【図７】
0006510217.tif 000008
【図８】
0006510217.tif 000009
【図９】
0006510217.tif 000010
【図１０】
0006510217.tif 000011
【図１１（Ａ）】
0006510217.tif 000012
【図１１（Ｂ）】
0006510217.tif 000013
【図１１（Ｃ）】
0006510217.tif 000014
【図１２】
0006510217.tif 000015
【図１３】
0006510217.tif 000016
【図１４】
0006510217.tif 000017