(57)【要約】【課題】仮想マシンを階層的に管理する際の経路の設定方法を提供する。【解決手段】管理装置は、複数のグループに分類された複数の仮想マシンを含む通信システム中で、複数のグループのうちの管理対象のグループである対象グループ内での通信に使用されるアドレスを管理する。管理装置は、取得部、割り当て部、送信部を備える。取得部は、複数のグループ間での通信を制御する制御装置から、対象グループを経由する通信パケットの宛先となるアドレスを取得する。割り当て部は、対象グループ中でアドレス変換を伴う通信処理を行う仮想マシンに、制御装置から取得したアドレスから選択したアドレスを割り当てる。送信部は、対象グループ中の仮想マシンの各々に、仮想マシンに割り当てたアドレスを通知する通知パケットを送信する。【選択図】図８
2017041846.tif 000002
【特許請求の範囲】
【請求項１】
複数のグループに分類された複数の仮想マシンを含む通信システム中で、前記複数のグループのうちの管理対象のグループである対象グループ内での通信に使用されるアドレスを管理する管理装置であって、
前記複数のグループ間での通信を制御する制御装置から、前記対象グループを経由する通信パケットの宛先となるアドレスを取得する取得部と、
前記対象グループ中でアドレス変換を伴う通信処理を行う仮想マシンに、前記制御装置から取得したアドレスから選択したアドレスを割り当てる割り当て部と、
前記対象グループ中の仮想マシンの各々に、当該仮想マシンに割り当てたアドレスを通知する通知パケットを送信する送信部
を備えることを特徴とする管理装置。
【請求項２】
前記割り当て部は、
前記通信パケットの送信元アドレスを変更する仮想マシンに、前記通信パケットが前記対象グループから出力される際の送信元アドレスとして使用される送信設定アドレスを割り当て、
前記通信パケットの宛先アドレスを変更する仮想マシンに、前記通信パケットが前記対象グループに到達するための宛先アドレスとして使用される宛先設定アドレスを割り当てる
ことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記対象グループを経由する通信パケットの宛先アドレスを変更する仮想マシンが、前記通信パケットの前記対象グループへの入力の際の境界となる第１の仮想マシンではない場合、
前記取得部は、前記通信パケットの前記対象グループへの入力に使用するインタフェースに割り当てられる第１のアドレスを取得し、
前記割り当て部は、前記第１の仮想マシンに前記第１のアドレスを割り当て、
前記対象グループを経由する通信パケットの送信元アドレスを変更する仮想マシンが、前記対象グループから前記通信パケットを出力する際の境界となる第２の仮想マシンではない場合、
前記取得部は、前記通信パケットの前記対象グループからの出力に使用するインタフェースに割り当てられる第２のアドレスを取得し、
前記割り当て部は、前記第２の仮想マシンに前記第２のアドレスを割り当てる
ことを特徴とする請求項２に記載の管理装置。
【請求項４】
前記割り当て部は、
前記通信パケットの宛先アドレスが前記対象グループで複数回変更される場合、前記第１の仮想マシンで受信されたパケットを終端する仮想マシンに、前記宛先設定アドレスを割り当て、
前記通信パケットの送信元アドレスが前記対象グループで複数回変更される場合、前記通信パケットが前記第２の仮想マシンから送信される際の送信元アドレスへの変更を行う仮想マシンに、前記送信設定アドレスを割り当てる
ことを特徴とする請求項３に記載の管理装置。
【請求項５】
複数のグループに分類された複数の仮想マシンを含む通信システムで、前記複数のグループ間での通信に使用されるアドレスの割り当てを制御する制御装置であって、
アドレスを割り当てる対象となる対象グループが前記対象グループを経由する通信パケットのアドレスを変換する仮想マシンを含む場合、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当てる割り当て部と、
前記対象グループに割り当てたアドレスを通知する制御パケットを、前記対象グループ内での通信に使用されるアドレスを管理する管理装置に送信する送信部
を備えることを特徴とする制御装置。
【請求項６】
前記対象グループ中の仮想マシンが行う処理の種類を用いて、前記対象グループで行われるアドレス変換のパターンを特定する特定部をさらに備え、
前記割り当て部は、前記パターンと前記対象グループ中の仮想マシンの配置を用いて、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当てる
ことを特徴とする請求項５に記載の制御装置。
【請求項７】
前記割り当て部は、
前記通信パケットの送信元アドレスが前記対象グループ内の仮想マシンによって変更される場合、前記通信パケットが前記対象グループから出力される際の送信元アドレスとして使用される送信設定アドレスを前記対象グループに割り当て、
前記通信パケットの宛先アドレスが前記対象グループ内の仮想マシンによって変更される場合、前記通信パケットが前記対象グループに到達するための宛先アドレスとして使用される宛先設定アドレスを前記対象グループに割り当てる
ことを特徴とする請求項５または６に記載の制御装置。
【請求項８】
前記割り当て部は、
前記対象グループに、前記通信パケットの前記対象グループへの入力に使用するインタフェースに割り当てられる第１のアドレスと、前記通信パケットの前記対象グループからの出力に使用するインタフェースに割り当てられる第２のアドレスを割り当て、
前記通信パケットの送信元アドレスを変更する仮想マシンが、前記対象グループから前記通信パケットを出力する際の境界となる仮想マシンである場合、前記第２のアドレスを前記送信設定アドレスとして使用し、
前記通信パケットの宛先アドレスを変更する仮想マシンが、前記対象グループへの前記通信パケットの入力の際の境界となる仮想マシンである場合、前記第１のアドレスを前記宛先設定アドレスとして使用する
ことを特徴とする請求項７に記載の制御装置。
【請求項９】
前記複数のグループ間での通信を行うための経路を計算すると共に、前記対象グループから前記通信パケットの送信を行うための経路情報を生成する生成部をさらに備え、
前記生成部は、
前記複数のグループでの前記通信パケットのアドレスの変換状況を用いて、前記対象グループから送信されたパケットを終端するグループに割り当てた宛先設定アドレスをターゲットアドレスに設定し、
前記対象グループが前記通信パケットを前記ターゲットアドレスが設定された仮想マシンを含むグループに転送するための転送経路を、前記対象グループが使用する経路として、前記管理装置に通知する
ことを特徴とする請求項７または８に記載の制御装置。
【請求項１０】
複数のグループに分類された複数の仮想マシンと、
前記複数のグループ内での通信に使用されるアドレスを管理する管理装置と、
前記複数のグループ間での通信に使用されるアドレスの割り当てを制御する制御装置
を備え、
前記制御装置は、
アドレスを割り当てる対象のグループである対象グループが前記対象グループを経由する通信パケットのアドレスを変換する仮想マシンを含む場合、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当て、
前記対象グループに割り当てたアドレスを前記管理装置に通知し、
前記管理装置は、前記対象グループに割り当てられたアドレスを、前記対象グループ中でアドレス変換を伴う通信処理を行う仮想マシンに設定する
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンを含む複数の装置の間での通信と通信システムに関する。
【背景技術】
【０００２】
ネットワーク機能仮想化（Network Functions Virtualization、ＮＦＶ）と呼ばれる技術が注目されている。ＮＦＶでは、ルータ、ゲートウェイ、ロードバランサなどのネットワーク機器によって実現されていた機能をアプリケーションプログラムとして実装し、サーバ上の仮想マシン（Virtual Machine、ＶＭ）として動作させる。また、ネットワークを介した通信で使用される機能を提供する１つ以上の仮想マシンのグループのことがＶＮＦ（Virtual Network Function）と呼ばれることもある。
【０００３】
図１は、ネットワーク機能仮想化で得られるサービスチェイン７の例を説明する図である。ここで、サービスチェインは、ネットワーク機能を経由する通信経路である。図１に示す例では、パケットの送信元の通信装置５ａと宛先の通信装置５ｂが異なる拠点に位置しており、通信装置５ａと通信装置５ｂの間の通信に使用されるサービスチェイン７には、ＶＭ１〜ＶＭ３が含まれている。管理サーバ１０は、通信装置５ａと通信装置５ｂに割り当てられたアドレスを用いて、通信装置５ａと通信装置５ｂの間の通信が可能になるように、ＶＭ１〜ＶＭ３の各々にルーティングテーブルの設定を要求することにより、経路設定を行う。このため、通信装置５ａは、ＶＭ１〜ＶＭ３を含むサービスチェイン７を介して、通信装置５ｂにパケットを送信することができる。なお、図１では、管理サーバ１０から各仮想マシンへの制御情報の通知を細い点線の矢印で示しており、管理サーバ１０から各仮想マシンへのアドレスの設定を太い点線の矢印で示している。
【０００４】
欧州の標準化団体であるＥＴＳＩ（European Telecommunications Standards Institute）のＮＦＶ  ＩＳＧ（Industry Specification Group）では、複数の管理機能がサービスチェインを階層的に分担して制御することが提案されている。複数の管理機能には、ＶＮＦマネージャ（ＶＮＦＭ）とＮＦＶオーケストレータ（ＮＦＶＯ）が含まれる。ＶＮＦマネージャは、ＶＮＦ中の仮想マシンのアドレスの管理や、管理対象のＶＮＦに含まれる仮想マシンの通信のための制御を行う。一方、ＮＦＶオーケストレータは、ＶＮＦごとの通信経路の設定や、ＶＮＦ間での通信を行う際に使用されるアドレスの割り当てなどを行うことにより、ネットワーク全体の制御を行う。
【０００５】
図２は、階層的に管理されるサービスチェインの例を説明する図である。サービスチェインが階層的に管理される場合、ＶＮＦは、所定の処理を行うために組み合わせられた１つ以上の仮想マシンのグループとなっている。サービスチェイン中のＶＮＦの数や各ＶＮＦに含まれる仮想マシンの数は任意である。図２に示すサービスチェインには、ＶＮＦ８ａ〜ＶＮＦ８ｃが含まれている。ＶＮＦ８ａには仮想マシンＶＭ１が含まれており、ＶＮＦ８ｃには仮想マシンＶＭ５が含まれている。さらに、ＶＮＦ８ｂには、仮想マシンＶＭ２、ＶＭ３ａ、ＶＭ３ｂ、ＶＭ３ｃ、ＶＭ４の５つの仮想マシンが含まれている。この場合、ＮＦＶオーケストレータは、各ＶＮＦに対するアドレスの割り当てなどを行う。従って、ＮＦＶオーケストレータは、ＶＮＦ８ａ、ＶＮＦ８ｂ、および、ＶＮＦ８ｃの間でのパケットの送受信に使用されるアドレスを決定する。ＮＦＶオーケストレータは、各ＶＮＦに対して決定したアドレスを、そのＶＮＦでの通信を制御するＶＮＦマネージャに通知する。すると、ＶＮＦマネージャは、ＮＦＶオーケストレータから通知されたアドレスを、他のＶＮＦ中の仮想マシンと通信する仮想マシンに割り当てる。例えば、ＶＮＦ８ｂを制御対象とするＶＮＦマネージャは、ＮＦＶオーケストレータから２つのアドレスを通知されると、一方のアドレスをＶＭ２のうちのＶＮＦ８ｂに含まれない装置との通信に使用されるポートに設定する。さらに、ＶＮＦマネージャは、ＮＦＶオーケストレータから通知されたもう１つのアドレスを、ＶＭ４のうちのＶＮＦ８ｂに含まれない装置との通信に使用されるポートに設定する。同様に、ＶＮＦ８ａを処理するＶＮＦマネージャはＮＦＶオーケストレータから通知されたアドレスをＶＭ１に設定し、ＶＮＦ８ｃを処理するＶＮＦマネージャはＮＦＶオーケストレータから通知されたアドレスをＶＭ５に設定する。さらに、ＶＮＦ８ｂのように複数の仮想マシンが含まれているＶＮＦを管理するＶＮＦマネージャは、ＮＦＶオーケストレータから通知されたアドレスが割り当てられていないポートに対するアドレスの割り当てや、各仮想マシンでの経路設定を行う。
【０００６】
関連する技術として、サーバなどによって実現される実行ユニットの数とタイプを、実行ユニットで動作するＶＮＦの性能がＶＮＦに要求されている評価指標を満たすように決定する方法が提案されている（特許文献１、２など）。識別子を付与されたオブジェクトによる処理を制御するチェインマネージャ、オブジェクトの実行可能なサービス情報を格納したディレクトリ、ルートチェインマネージャを含むデータ処理システムも提案されている（特許文献３、４など）。ルートチェインマネージャは、取得した識別子に対応付けられたオブジェクトで実行可能なサービスを特定し、特定したサービスを提供するオブジェクトに対応するチェインマネージャに、チェイントークンを巡回させることで、様々なサービスを提供する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−５６１８２号公報
【特許文献２】米国特許出願公開第２０１５／００８２３０８号明細書
【特許文献３】特開２００４−１５７７１３号公報
【特許文献４】米国特許出願公開第２００４／０１３３６７８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
仮想マシンをグループに分け、サービスチェインを階層的に制御するシステムでは、グループ間での通信に使用されるアドレスとグループ内の通信に使用されるアドレスが別個に設定される。しかし、グループ間のアドレス管理とグループ内のアドレス管理を別個に行うことでパケットを中継するための経路設定を行えないケースがあるかの検討は十分に行われていない。またそのようなケースでの、パケット中継のための仮想マシンへの経路設定方法も提案されていない。
【０００９】
本発明は、仮想マシンを階層的に管理する際の経路の設定方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施形態にかかる管理装置は、複数のグループに分類された複数の仮想マシンを含む通信システム中で、前記複数のグループのうちの管理対象のグループである対象グループ内での通信に使用されるアドレスを管理する。管理装置は、取得部、割り当て部、送信部を備える。取得部は、前記複数のグループ間での通信を制御する制御装置から、前記対象グループを経由する通信パケットの宛先となるアドレスを取得する。割り当て部は、前記対象グループ中でアドレス変換を伴う通信処理を行う仮想マシンに、前記制御装置から取得したアドレスから選択したアドレスを割り当てる。送信部は、前記対象グループ中の仮想マシンの各々に、当該仮想マシンに割り当てたアドレスを通知する通知パケットを送信する。
【発明の効果】
【００１１】
仮想マシンを階層的に管理しても、正しい経路を仮想マシンに設定できる。
【図面の簡単な説明】
【００１２】
【図１】ネットワーク機能仮想化で得られるサービスチェインの例を説明する図である。
【図２】階層的に管理されるサービスチェインの例を説明する図である。
【図３】ＮＦＶオーケストレータによるアドレスの割り当ての例を説明する図である。
【図４】ＶＮＦマネージャによるアドレスの割り当ての例を説明する図である。
【図５】サービスチェインの例を説明する図である。
【図６】ＮＦＶオーケストレータによるアドレスの割り当ての例を説明する図である。
【図７】ＶＮＦマネージャによるアドレスの割り当ての例を説明する図である。
【図８】実施形態にかかる通信方法の例を説明するフローチャートである。
【図９】制御装置の構成の例を説明する図である。
【図１０】管理装置の構成の例を説明する図である。
【図１１】制御装置および管理装置のハードウェア構成の例を説明する図である。
【図１２】アドレス変換の種類を説明する図である。
【図１３】サービスチェイン要求の例を説明する図である。
【図１４】トポロジーテーブルの例を説明する図である。
【図１５】アドレス変換タイプテーブルの例を説明する図である。
【図１６】アドレス変換タイプの決定方法の例を説明する図である。
【図１７】アドレス変換タイプの決定方法の例を説明するフローチャートである。
【図１８】アドレスの割り当て方法の例を説明する図である。
【図１９】アドレスの割り当て方法の例を説明するフローチャートである。
【図２０】経路の設定方法の例を説明する図である。
【図２１】経路情報の決定方法の例を説明するフローチャートである。
【図２２】経路情報の決定方法の例を説明するフローチャートである。
【図２３】アドレスの割り当て方法の例を説明する図である。
【図２４】アドレスの割り当て方法の例を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
＜通信に障害が発生するかの検討＞
図３は、ＮＦＶオーケストレータによるアドレスの割り当ての例を説明する図である。図３の例では、通信装置５ａから通信装置５ｂにパケットを送信するために使用されるサービスチェイン７に、ＶＮＦ８ａ〜ＶＮＦ８ｃが含まれている。通信装置５ａのアドレスはＡ１であり、通信装置５ｂのアドレスはＤ２であるとする。ＶＮＦ８ａはファイアウォール（ＦＷ、Firewall）、ＶＮＦ８ｂはＤＰＩ（Deep Packet Inspection）、ＶＮＦ８ｃはプロキシとして動作している。
【００１４】
ＮＦＶオーケストレータは、サービスチェイン７中に含まれているＶＮＦ８ごとに、あるＶＮＦが他のＶＮＦやＶＮＦに含まれていない通信装置５と通信する際に使用するアドレスを割り当てる。図３では、ＮＦＶオーケストレータは、ＶＮＦ８ａにＡ２とＢ１、ＶＮＦ８ｂにＢ２とＣ１、ＶＮＦ８ｃにＣ２とＤ１をアドレスとして割り当てている。さらに、ＮＦＶオーケストレータは、ＶＮＦ８単位での経路情報を決定する。例えば、ＮＦＶオーケストレータは、ＶＮＦ８ａではＤ２宛てのパケットをＢ２に転送することを決定し、ＶＮＦ８ａを管理するＶＮＦマネージャに、ＶＮＦ８ａに割り当てたアドレスとＲＴ１に示す情報を通知する。ＮＦＶオーケストレータは、ＶＮＦ８ｂではＤ２宛てのパケットをＣ２に転送することを決定し、ＶＮＦ８ｂを管理するＶＮＦマネージャに、ＶＮＦ８ｂに割り当てたアドレスとＲＴ２に示す情報を通知する。さらに、ＮＦＶオーケストレータは、ＶＮＦ８ｃではＤ２宛てのパケットをＤ２が属するローカルサブネットに転送することを決定し、ＶＮＦ８ｃを管理するＶＮＦマネージャに、ＶＮＦ８ｃに割り当てたアドレスとＲＴ３に示す情報を通知する。
【００１５】
例えば、図２に示すように、ＶＮＦ８ａとＶＮＦ８ｃには１つずつ仮想マシンが含まれており、ＶＮＦ８ｂには５つの仮想マシンが含まれているとする。この場合、ＶＮＦ８ａとＶＮＦ８ｃには、サービスチェイン７で送受信されるパケットの入力ポートと出力ポートのいずれにも、ＮＦＶオーケストレータから通知されたアドレスが割り振られる。
【００１６】
図４は、ＶＮＦマネージャによるアドレスの割り当ての例を説明する図である。ＶＮＦ８ｂは、図３で述べたようにＤＰＩとして動作するとする。図４の例では、ＶＮＦ８ｂは、５つの仮想マシンを含んでおり、ＶＭ２とＶＭ４はロードバランサ（Ｌ３ＬＢ）として動作し、ＶＭ３ａ〜ＶＭ３ｃはＤＰＩとして動作するとする。ＶＮＦマネージャは、ＶＮＦ８ｂ中の仮想マシン間でのパケットの送受信に使用するアドレスを割り当てる。図４の例では、ＶＭ２にＢ２、ａ１、ｃ１、ｅ１が割り当てられ、ＶＭ４にＣ１、ｂ２、ｄ２、ｆ２が割り当てられている。さらに、ＶＭ３ａにはａ２とｂ１、ＶＭ３ｂにはｃ２とｄ１、ＶＭ３ｃにはｅ２とｆ１が割り当てられている。ＶＮＦマネージャは、ＶＮＦ８ｂ内での通信に使用される経路情報も決定し、決定した経路情報を仮想マシンに通知する。例えば、ＶＮＦマネージャは、ＶＭ２ではＤ２宛てのパケットをａ２に転送することを決定して、ＲＴ１１に示す情報をＶＭ２に通知する。ＶＮＦマネージャは、ＶＭ３ａではＤ２宛てのパケットをｂ２に転送することを決定して、ＲＴ１２に示す情報をＶＭ３ａに通知する。さらに、ＶＮＦマネージャは、ＶＭ４ではＤ２宛てのパケットをＣ２に転送することを決定し、ＲＴ１３に示す情報をＶＭ４に通知する。
【００１７】
ＶＮＦ８ｂでは、ＶＭ３ａ〜ＶＭ３ｃはいずれもＤＰＩとして動作しているので、ＶＭ３ａ〜ＶＭ３ｃのいずれも、受信したパケットのアドレス情報を変換しない。このため、ＲＴ１１〜ＲＴ１３の経路情報が使用される場合、Ｄ２宛てのパケットは、ＶＭ２、ＶＭ３ａ、ＶＭ４を介して、宛先に向けて転送される。
【００１８】
図５は、サービスチェインの例を説明する図である。以下、図５〜図７を参照しながら、ＮＦＶオーケストレータからＶＮＦマネージャに通知されたアドレスが割り当てられていない仮想マシンでアドレス変換が行われる場合について説明する。
【００１９】
図５に示すサービスチェインは、ＶＮＦ８ｄ〜８ｆを含む。ＶＮＦ８ｄはＷＡＮ高速化装置（ＷＯＣ、Wide Area Network Optimization Controller）、ＶＮＦ８ｅはセキュリティゲートウェイとして動作するとする。さらに、ＶＮＦ８ｆはＶＰＮ（Virtual Private Network）を提供する。ＶＮＦ８ｄにはＶＭ１、ＶＮＦ８ｅにはＶＭ２〜ＶＭ４、ＶＮＦ８ｆにはＶＭ５が含まれている。また、ＶＮＦ８ｅ中のＶＭ２はファイアウォール、ＶＭ３はＵＲＬ（Uniform Resource Locator）フィルタ、ＶＭ４はＤＰＩとして動作するとする。ここで、ＶＭ３は、ＵＲＬフィルタとして動作する際に、受信したパケットを終端し、ペイロード中の情報などを用いて、処理対象のパケットの宛先などの情報を変更する。以下の例では、ＶＭ３は、Ｂ２宛てのパケットの宛先アドレスをＤ２に変換するものとする。
【００２０】
図６は、ＮＦＶオーケストレータによるアドレスの割り当ての例を説明する図である。図６では、ＮＦＶオーケストレータは、ＶＮＦ８ｄにＡ２とＢ１、ＶＮＦ８ｅにＢ２とＣ１、ＶＮＦ８ｆにＣ２とＤ１をアドレスとして割り当て、割り当てたアドレスを各ＶＮＦ８中のアドレスを管理するＶＮＦマネージャに通知する。ＮＦＶオーケストレータは、ＲＴ２１〜ＲＴ２３に示す経路情報も決定し、各経路情報を、その経路情報が使用されるＶＮＦ８を管理するＶＮＦマネージャに通知する。このため、ＶＮＦ８ｄのＶＮＦマネージャには、Ｂ２宛のパケットをＢ２に転送することが通知される。また、ＶＮＦ８ｅのＶＮＦマネージャには、Ｄ２宛のパケットをＣ２に転送することが通知され、ＶＮＦ８ｆのＶＮＦマネージャには、Ｄ２宛のパケットをＤ２が属するローカルサブネットに転送することが通知される。
【００２１】
図７は、ＶＮＦマネージャによるＶＮＦ８ｅでのアドレスの割り当ての例を説明する図である。ＶＮＦマネージャは、ＶＮＦ８ｅ中の仮想マシン間でのパケットの送受信に使用するアドレスを割り当てる。図４の例では、ＶＭ２にＢ２とａ１、Ｖ３にａ２とｂ１、ＶＭ４にｂ２とＣ１が割り当てられている。さらに、ＶＮＦマネージャは、ＮＦＶオーケストレータからＤ２宛てのパケットをＣ２に転送することが通知されているので、Ｄ２宛てパケットの転送経路をＲＴ３１〜ＲＴ３３に示すように決定し、決定した転送経路を使用する仮想マシンに通知する。このため、ＶＭ２では、ＲＴ２１に示すように、Ｄ２宛てのパケットをａ２に転送することが記憶される。同様に、ＶＭ３では、ＲＴ２２に示すように、Ｄ２宛てのパケットをｂ２に転送することが記憶され、ＶＭ４では、ＲＴ２３に示すように、Ｄ２宛てのパケットをＣ２に転送することが記憶される。一方、ＶＮＦマネージャは、Ｂ２はＶＮＦ８ｅ自身の境界に設定したアドレスであるので、Ｂ２宛てのパケットの転送経路は設定しない。
【００２２】
ここで、通信装置５ａが図５に示すサービスチェイン７を介して通信装置５ｂにパケットを送信しようとしたとする。図５に示すサービスチェイン７では、ＶＮＦ８ｅ中のＶＭ３でアドレス変換が行われるので、予め、通信装置５ａには、通信装置５ｂ宛てのパケットの宛先アドレスとしてＢ２が通知されている。そこで、通信装置５ａは、通信装置５ｂに送るデータを含むパケットの宛先アドレスをＢ２に設定して、ＶＮＦ８ｄに転送する。ＶＮＦ８ｄ中のＶＭ１は、受信パケット中の宛先アドレスがＢ２であるため、ＲＴ２１（図６）に従って、パケットをＶＮＦ８ｅに転送する。ＶＮＦ８ｅでは、アドレスＢ２は、ＶＭ２に割り当てられているので、パケットは、ＶＭ２に到達すると転送されない。しかし、ＶＭ２は、パケットを終端しないので、Ｂ２宛てのパケットをＤ２宛てに変換しない。この結果、通信装置５ａと通信装置５ｂに宛てたパケットは廃棄され、通信装置５ａと通信装置５ｂの間での通信は失敗してしまう。
【００２３】
図３〜図７を参照しながら説明したとおり、階層的にサービスチェイン７中のアドレスを管理する場合、アドレス変換を行う仮想マシンに、その仮想マシンの処理対象のパケットの宛先アドレスが割り当てられていないと、通信が失敗してしまうという問題がある。なお、以上の問題は、複数の仮想マシンが複数のグループに分けられており、グループ間の通信に使用されるアドレスと、グループ内での通信に使用されるアドレスが別個に割り当てられる任意のシステムで発生する恐れがある。
【００２４】
＜通信方法の例＞
図８は、実施形態にかかるシステムで行われる通信方法の例を説明するフローチャートである。実施形態にかかるシステムでは、制御装置２０がグループ間の通信に使用されるアドレスの割り当てを制御し、管理装置５０がグループ内の通信に使用されるアドレスを管理するものとする。
【００２５】
制御装置２０は、グループ中の仮想マシンが行う処理の種類を用いて、アドレスを割り当てる対象のグループ（対象グループ）で行われるアドレス変換のパターンを特定する（ステップＳ１）。制御装置２０は、対象グループのアドレス変換のパターンに応じて、対象グループで処理されるパケットの宛先となるアドレスを対象グループに割り当てる（ステップＳ２）。すなわち、対象グループによって、その対象グループを通過するパケットの宛先アドレスか送信元アドレスが変更される場合、対象グループを通過するパケットの宛先として使用されるアドレスが割り当てられる。なお、サービスチェイン７の送信元から宛先に向かう方向と、サービスチェイン７の宛先から送信元に向かう方向のいずれにも通信が可能になる数のアドレスが、対象グループに割り当てられる。このとき、制御装置２０によって割り当てられるアドレスは、グループ間の通信でも使用可能になるように、制御装置２０によって経路計算が行われる。制御装置２０は、対象グループに割り当てたアドレスと共に、対象グループで使用する経路情報を、対象グループ内の通信に使用されるアドレスを管理する管理装置５０に通知する。管理装置５０は、制御装置２０から割り当てられたアドレスを、対象グループ中で、アドレス変換を伴う処理を行う仮想マシンに割り当てる（ステップＳ３）。
【００２６】
なお、図８に示す通信方法は一例であり、例えば、制御装置２０は、グループ中のアドレスの変換パターンを特定せずに、各グループについて、アドレス変換を行う仮想マシンで使用されるアドレスを割り当てても良い。この場合、各グループの管理装置５０は、宛先アドレスがアドレス変換の対象となるパケットを、同じグループに含まれていない装置から受信する仮想マシンの受信ポートに、制御装置２０から通知されたアドレスのうちの１つを割り当てる。さらに、管理装置５０は、送信元アドレスを変更するパケットを同じグループに含まれていない装置に送信する仮想マシンの送信ポートにも、制御装置２０から通知されたアドレスを割り当てる。さらに、制御装置２０は、アドレスの割り当ての際に、アドレス変換を行う仮想マシンが境界に位置しているかなど、ＶＮＦ８中の仮想マシンの配置も使用しても良い。
【００２７】
このように、実施形態にかかる方法では、管理装置５０は、アドレス変換処理を行う仮想端末に、制御装置２０から通知されたアドレスを割り当てるので、制御装置２０と管理装置５０で階層的にアドレスを管理しても通信の失敗を防止できる。
【００２８】
＜装置構成＞
図９は、制御装置２０の構成の例を説明する図である。制御装置２０は、通信部２３、制御部３０、記憶部４０を備える。通信部２３は、送信部２１と受信部２２を有する。制御部３０は、パス計算部３２、特定部３３、割り当て部３４、経路情報生成部３５を有する。記憶部４０は、トポロジーテーブル４１とアドレス変換タイプテーブル４２を格納する。
【００２９】
送信部２１は、管理装置５０などの他の装置にパケットを送信する。受信部２２は、管理装置５０などの他の装置からパケットを受信する。パス計算部３２は、受信部２２を介して、サービスチェインの生成要求を取得すると、生成要求により要求されたサービスチェイン７に適用するパケット転送パスを算出する。ここで、パケット転送パスは、送信元の通信装置５とＶＮＦ８の間の通信経路、ＶＮＦ８間での通信経路、ＶＮＦ８と宛先の通信装置５の間の通信経路を含む。パス計算部３２は、パケット転送パスを計算する際に、トポロジーテーブル４１を使用する。トポロジーテーブル４１には、ネットワーク全体のトポロジー情報と、ネットワーク中の装置のうち、送信元の通信装置５や宛先の通信装置５に接続されている装置の情報が記録されている。
【００３０】
特定部３３は、処理対象のＶＮＦ８に含まれる個々の仮想マシンの処理に伴うアドレス変換のパターンから、ＶＮＦ８全体でのアドレス変換のパターンを特定する。割り当て部３４は、特定部３３で特定されたアドレス変換のパターンを表わす情報を用いて、処理対象のＶＮＦ８にアドレスを割り当てる。アドレス変換タイプテーブル４２は、ＶＮＦ８を経由する前後でパケットの宛先アドレスと送信元アドレスが変化するかに基づいて、ＶＮＦ８のアドレス変換タイプを登録する。アドレス変換タイプテーブル４２の例については後述する。
【００３１】
経路情報生成部３５は、パケット転送パスとアドレス変換タイプテーブル４２に登録された情報、各ＶＮＦ８に割り当てられたアドレス等を用いて、パケット転送パス上の中継装置や管理装置５０に通知する経路情報を生成する。
【００３２】
図１０は、管理装置５０の構成の例を説明する図である。管理装置５０は、通信部５３、制御部６０、記憶部７０を備える。通信部５３は、送信部５１と受信部５２を有する。制御部６０は、パス計算部６１、取得部６２、割り当て部６３、および、経路決定部６４を有する。記憶部７０は、トポロジーテーブル７１とアドレス変換タイプテーブル７２を格納する。
【００３３】
送信部５１は、制御装置２０などの他の装置にパケットを送信する。受信部５２は、制御装置２０などの他の装置からパケットを受信する。パス計算部６１は、トポロジーテーブル７１を用いて、パケット転送パスのうちの管理対象のＶＮＦ８中の通信経路を計算する。取得部６２は、受信部５２を介して制御装置２０から受信したパケットを用いて、管理対象のＶＮＦ８に割り当てられたアドレスを取得する。割り当て部６３は、制御装置２０から通知されたアドレスを、ＶＮＦ８の境界となる仮想マシンと、アドレス変換を伴う処理を行う仮想マシンに割り当てる。経路決定部６４は、パス計算部６１が求めた計算結果、アドレス変換タイプテーブル７２、アドレスの割り当て結果を用いて、ＶＮＦ８中の仮想マシンでの転送経路を決定する。
【００３４】
トポロジーテーブル７１には、ネットワーク全体のトポロジー情報と、ネットワーク中の装置のうち、送信元の通信装置５や宛先の通信装置５に接続されている装置の情報が記録されている。アドレス変換タイプテーブル７２は、仮想マシンが行う処理ごとに、その仮想マシンを経由する前後でパケットの宛先アドレスと送信元アドレスが変化するかに基づいて、仮想マシンで行われるアドレス変換のパターンを登録する。
【００３５】
図１１は、制御装置２０および管理装置５０のハードウェア構成の例を説明する図である。制御装置２０と管理装置５０のいずれも、プロセッサ１０１、メモリ１０２、バス１０５、記憶装置１０６、ネットワークインタフェース１０７を備える。さらにオプションとして、制御装置２０と管理装置５０のいずれも、入力装置１０３、出力装置１０４を備えても良い。制御装置２０と管理装置５０は、例えば、コンピュータなどで実現されることがある。また、制御装置２０と管理装置５０は、同じコンピュータによって実現されても良く、互いに異なるコンピュータで実現されても良い。
【００３６】
プロセッサ１０１は、Central Processing Unit（ＣＰＵ）を含む任意の処理回路とすることができる。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＲＯＭ（Read Only Memory）等の不揮発性のメモリも含まれる。メモリ１０２や記憶装置１０６は、プログラムやプロセッサ１０１での処理に使用されるデータの格納に使用される。ネットワークインタフェース１０７は、ネットワーク１０８を介した他の装置との通信に使用される。バス１０５は、プロセッサ１０１、メモリ１０２、入力装置１０３、出力装置１０４、記憶装置１０６、ネットワークインタフェース１０７を、互いにデータの入出力が可能になるように接続する。入力装置１０３は、例えば、ボタン、キーボードやマウスとして実現され、出力装置１０４は、ディスプレイなどとして実現される。
【００３７】
制御装置２０において、プロセッサ１０１は制御部３０として動作し、メモリ１０２と記憶装置１０６は記憶部４０として動作する。ネットワークインタフェース１０７は、通信部２３を実現する。管理装置５０において、プロセッサ１０１は制御部６０として動作し、メモリ１０２と記憶装置１０６は記憶部７０として動作する。ネットワークインタフェース１０７は、通信部５３を実現する。
【００３８】
＜実施形態＞
通信システムでのアドレスの割り当ての手順の説明の前に、アドレス変換の種類の分類について説明する。
【００３９】
図１２は、アドレス変換の種類を説明する図である。実施形態にかかる方法では、各仮想マシンで行われる処理によって起こるアドレス変換処理の種類を、Ｔｙｐｅ１〜Ｔｙｐｅ４に分類する。仮想マシンＶＭは、他の装置からパケットを受信する受信側インタフェースＩＦａと、他の装置にパケットを送信する送信側インタフェースＩＦｂとを有する。ここで、受信側インタフェースＩＦａにはＰａというアドレスが割り当てられており、送信側インタフェースＩＦｂには、Ｐｂというアドレスが割り当てられているとする。以下、読みやすくするために、ある種類のアドレス変換を伴う処理を行う仮想マシンを、アドレス変換の種類に対応付ける。例えば、Ｔｙｐｅ１のアドレス変換を伴う処理を行う仮想マシンを、Ｔｙｐｅ１の仮想マシンと記載することがあるものとする。同様に、Ｔｙｐｅ２のアドレス変換を伴う処理を行う仮想マシンをＴｙｐｅ２の仮想マシン、Ｔｙｐｅ３のアドレス変換を伴う処理を行う仮想マシンをＴｙｐｅ３の仮想マシンと記載する。さらに、Ｔｙｐｅ４のアドレス変換を伴う処理を行う仮想マシンをＴｙｐｅ４の仮想マシンと記載する。
【００４０】
図１２のＴ１は、Ｔｙｐｅ１の仮想マシンの受信パケットと送信パケットの例を示す。Ｔｙｐｅ１の仮想マシンは、受信パケットを終端せずに宛先に向けて転送するので、受信パケット中のアドレス情報を変更しない。このため、パケットの送信元の装置とパケットの宛先の装置のいずれからも、Ｔｙｐｅ１の仮想マシンは透過型の装置として扱われる。例えば、Ｔｙｐｅ１の仮想マシンが受信側インタフェースＩＦａを介して、宛先アドレスがＺ、送信元アドレスがＡに設定されたパケットＰ１１を受信したとする。この場合、仮想マシンは、宛先アドレスがＺ、送信元アドレスがＡに設定されたパケットＰ１２を送信側インタフェースＩＦｂから送信する。
【００４１】
Ｔｙｐｅ１の仮想マシンには、ファイアウォール、ＤＰＩ、ＩＤＳ（Intrusion Detection System）として動作する仮想マシンなどが含まれる。なお、ＩＤＳとして動作する仮想マシンは、ネットワークで送受信されるパケットを監視して、不正アクセスを検知する。
【００４２】
図１２のＴ２は、Ｔｙｐｅ２の仮想マシンの受信パケットと送信パケットの例を示す。
Ｔｙｐｅ２の仮想マシンは、受信パケットの処理に際して受信パケットの送信元アドレスを変更し、アドレスを変更したパケットを送信する。例えば、Ｔｙｐｅ２の仮想マシンが、受信側インタフェースＩＦａを介して、宛先アドレスがＺ、かつ、送信元アドレスＡに設定されたパケットＰ１１を受信したとする。この場合、仮想マシンは、処理対象のパケットの送信元アドレスを、仮想マシンの送信側インタフェースＩＦｂに割り当てられたアドレスＰｂに変換する。仮想マシンは、宛先アドレスがＺ、送信元アドレスがＰｂに設定されたパケットＰ１３を送信側インタフェースＩＦｂから送信する。
【００４３】
Ｔｙｐｅ２の仮想マシンには、例えば透過型Ｐｒｏｘｙ、透過型Ｃａｃｈｅ、ＳＮＡＴ（Source based Network Address Translation）、及びＳＮＡＰＴ（Source based Network Address and Port Translation）として動作する仮想マシンが含まれる。Ｃａｃｈｅ（Web Cache）として動作する仮想マシンは、一時的にＷｅｂデータを保存（キャッシュ）しておき、通信装置５から再度アクセスがあったときに、保存したＷｅｂデータを通信装置５に送信する。ＳＮＡＴとして動作する仮想マシンは、転送対象のパケットの送信元のＩＰアドレスを、指定されたＩＰアドレスに変換する。指定されるＩＰアドレスは、例えば、送信側インタフェースＩＦｂのＩＰアドレスなどである。ＳＮＡＰＴとして動作する仮想マシンは、アドレスの変換に加え、パケットの送信元のポート番号も変換する。
【００４４】
図１２のＴ３は、Ｔｙｐｅ３の仮想マシンの受信パケットと送信パケットの例を示す。
Ｔｙｐｅ３の仮想マシンは、受信パケットの処理に際して受信パケットの宛先アドレスを変更し、アドレスを変更したパケットを送信する。例えば、Ｔｙｐｅ３の仮想マシンが、受信側インタフェースＩＦａを介して、宛先アドレスがＰａ、かつ、送信元アドレスがＡに設定されたパケットＰ１４を受信したとする。この場合、仮想マシンは、受信パケットが自装置宛てであるため、パケットの終端処理を行い、適宜、パケット中のデータなどを用いて、データの転送先を特定する。さらに、仮想マシンは、特定した転送先に割り当てられているアドレスを、処理対象のパケットの宛先アドレスに設定する。Ｔ３の例では、転送先に割り当てられているアドレスはＺである。そこで、仮想マシンは、宛先アドレスがＺ、送信元アドレスがＡに設定されたパケットＰ１５を送信側インタフェースＩＦｂから送信する。
【００４５】
Ｔｙｐｅ３の仮想マシンには、例えばＤＮＡＴ（Destination based Network Address Translation）として動作する仮想マシンが含まれる。ＤＮＡＴとして動作する仮想マシンは、受信したパケットの宛先のＩＰアドレスを変換する。
【００４６】
図１２のＴ４は、Ｔｙｐｅ４の仮想マシンの受信パケットと送信パケットの例を示す。
Ｔｙｐｅ４の仮想マシンは、受信パケットの処理に際して、受信パケットの宛先アドレスと送信元アドレスの両方を変更し、アドレスを変更したパケットを送信する。例えば、Ｔｙｐｅ４の仮想マシンが、宛先アドレスがＰａ、かつ、送信元アドレスがＡに設定されたパケットＰ１４を受信したとする。この場合、仮想マシンは、受信パケットが自装置宛てであるため、パケットの終端処理を行い、適宜、パケット中のデータなどを用いて、データの転送先を特定する。特定した結果を用いて、仮想マシンは、受信パケットの宛先アドレスを変更する。Ｔ４の例では、転送先に割り当てられたアドレスはＺであるとする。さらに、仮想マシンは、送信元アドレスを、送信側インタフェースＩＦｂに割り当てられているアドレス（Ｐｂ）に変換する。従って、仮想マシンは、宛先アドレスがＺ、送信元アドレスがＰｂに設定されたパケットＰ１６を送信側インタフェースＩＦｂから送信する。Ｔｙｐｅ４の仮想マシンには、例えば、非透過Ｐｒｏｘｙや非透過Ｃａｃｈｅとして動作する仮想マシンが含まれる。
【００４７】
以下、実施形態で行われる処理を、サービスチェインの設定開始とアドレス変換の種類の特定処理、制御装置２０でのアドレスの割り当て、制御装置２０での経路計算、管理装置５０での処理に分けて説明する。
【００４８】
（１）サービスチェインの設定開始とアドレス変換の種類の特定処理
新たなサービスチェイン７の設定は、制御装置２０にサービスチェイン要求が送信されることによって開始される。サービスチェイン要求は、オペレータ、ネットワーク管理者、または、ネットワークサービスを利用するユーザの通信装置５のいずれかから、制御装置２０に送信される。
【００４９】
図１３は、サービスチェイン要求の例を説明する図である。サービスチェイン要求は、メッセージ種別、サービスチェイン７に含まれるＶＮＦ８の数（要求ＮＷ機能数）、サービスチェイン７に含まれる個々のＶＮＦ８についての詳細情報、送信元アドレス、および、宛先アドレスを含む。サービスチェイン要求では、メッセージ種別は、サービスチェイン７の設定開始を要求していることが制御装置２０で認識可能な任意の情報に設定される。送信元アドレスは、サービスチェイン７で送信されるパケットの送信元の通信装置５に割り当てられたアドレスである。宛先アドレスは、サービスチェイン７で送信されるパケットの最終的な宛先の通信装置５に割り当てられたアドレスである。ＶＮＦ８についての詳細情報には、各ＶＮＦ８で提供される機能の種類（ＮＷ機能）などの情報が含まれる。
【００５０】
制御装置２０の受信部２２は、サービスチェイン要求を受信すると、サービスチェイン要求をパス計算部３２に出力する。パス計算部３２は、サービスチェイン要求を用いてパケット転送パスを計算する。なお、サービスチェイン要求は、ＶＮＦ８中の仮想マシンの起動処理にも使用され、パケット転送パス中の仮想マシンの起動処理等は、制御装置２０でのパケット転送パスの計算と並行して行われているとする。仮想マシンの起動は、ネットワーク中のクラウド管理装置（図示せず）など、制御装置２０や管理装置５０とは異なる装置によって行われても良く、また、制御装置２０や管理装置５０によって行われても良い。なお、クラウド管理装置は、ＥＴＳＩ  ＮＦＶアーキテクチャ中のＶＩＭ（Virtualized Infrastructure Management）などによって実現される。さらに、トポロジーテーブル４１やトポロジーテーブル７１の情報も、仮想マシンの起動に応じて更新される。
【００５１】
図１４は、トポロジーテーブル４１の例を説明する図である。トポロジーテーブル４１とトポロジーテーブル７１は、いずれも、ＶＮＦ８やＶＮＦ８中の仮想マシンの位置を特定可能な任意の情報である。図１４の例は、トポロジーテーブル４１中の、ある１つのＶＮＦ８に関する情報を図示している。トポロジーテーブルには、ＶＮＦの識別子、そのＶＮＦに含まれている仮想マシンの識別子と処理種別、仮想マシン間のリンク情報、ＶＮＦ８がそのＶＮＦの外部の装置と通信する際のインタフェースの情報が含まれる。例えば、図１４の例では、ＶＮＦ８ｘには、ＶＭ１１、ＶＭ１２などを含む複数の仮想マシンが含まれている。また、各仮想マシンの識別子に対応付けて、その仮想マシンが行う処理の種別もトポロジーテーブル４１に登録される。さらに、ＶＮＦ８ｘ中の仮想マシンが通信に使用するリンクの情報もトポロジーテーブル４１に含まれる。例えば、ＶＭ１１のリンクは、リンクＬｎ１とＬｎ２である。リンクＬｎ１は、仮想マシンＶＭ１１からＶＭ１２へのパケットの転送に使用され、リンクＬｎ２は、ＶＮＦ８ｘの外部から仮想マシンＶＭ１１へのパケットの転送に使用される。ＶＮＦの外部の装置と通信する際のインタフェースの情報には、各インタフェースに割り当てられるアドレス等の情報がインタフェースに対応付けて記録される。なお、この時点では、まだ制御装置２０によってアドレスの割り当てが行われていないので、アドレスは記録されていない。制御装置２０中の特定部３３は、パス計算部３２での計算結果、トポロジーテーブル４１、アドレス変換タイプテーブル４２を用いて、アドレス変換タイプをＶＮＦ８ごとに決定する。
【００５２】
図１５は、アドレス変換タイプテーブル４２の例を説明する図である。なお、アドレス変換タイプテーブル４２とアドレス変換タイプテーブル７２のいずれも、図１５に示すように、アドレスの変換タイプ、ネットワーク機能、ＶＮＦの識別子を対応付けている。アドレスの変換タイプは図１２を参照しながら説明したＴｙｐｅ１〜Ｔｙｐｅ４のいずれかである。ネットワーク機能の欄は、サービスチェイン７中に含まれる可能性のあるネットワーク機能のうち、対応付けられたタイプのアドレス変換を行うＶＮＦ８の例を示している。アドレス変換タイプテーブル４２には、特定部３３が各ＶＮＦ８で行われるアドレスの変換の種類を特定する前は、ＶＮＦ識別子の欄には、ＶＮＦ識別子は含まれていない。
【００５３】
まず、制御装置２０の特定部３３は、各ＶＮＦ８に含まれる各仮想マシンで行われる処理の種類と、アドレス変換タイプテーブル４２を用いて、各仮想マシンで行われるアドレス変換の種類を特定する。例えば、特定部３３は、各仮想マシンの処理をキーとしてアドレス変換タイプテーブル４２のネットワーク機能の欄を検索し、ヒットしたエントリに対応付けられているタイプを、その仮想マシンでの処理によるアドレス変換タイプとして決定する。
【００５４】
図１６は、ＶＮＦ８ｇ、ＶＮＦ８ｈ、ＶＮＦ８ｉ、ＶＮＦ８ｊ、ＶＮＦ８ｋ、ＶＮＦ８ｍの各々について、各ＶＮＦ８に含まれる各仮想マシンで行われる処理に伴うアドレス変換の種類の特定の結果の例を示す。仮想マシンごとのアドレス変換タイプの特定が終わると、特定部３３は、ＶＮＦ８ごとのアドレス変換タイプを特定する。特定部３３は、ＶＮＦ８に含まれる仮想マシンがいずれもＴｙｐｅ１に分類されるアドレス変換を行う場合、そのＶＮＦ８で行われるアドレス変換はＴｙｐｅ１であると判定する。例えば、図１６のＶＮＦ８ｇに含まれている仮想マシンでの処理に伴うアドレス変換タイプは、いずれもＴｙｐｅ１である。このため、特定部３３はＶＮＦ８ｇで行われるアドレス変換はＴｙｐｅ１であると判定する。
【００５５】
一方、ＶＮＦ８中の仮想マシンが、Ｔｙｐｅ１に分類されるアドレス変換を行う仮想マシンと、Ｔｙｐｅ２に分類されるアドレス変換を行う仮想マシンだけを含む場合、特定部３３は、そのＶＮＦ８で行われるアドレス変換がＴｙｐｅ２であると判定する。図１６のＶＮＦ８ｈでは、境界に配置された仮想マシンはＴｙｐｅ１、中央に配置された仮想マシンはＴｙｐｅ２のアドレス変換タイプに分類されている。このため、特定部３３はＶＮＦ８ｈで行われるアドレス変換はＴｙｐｅ２であると判定する。
【００５６】
ＶＮＦ８中の仮想マシンが、Ｔｙｐｅ１に分類されるアドレス変換を行う仮想マシンと、Ｔｙｐｅ３に分類されるアドレス変換を行う仮想マシンだけを含む場合、特定部３３は、そのＶＮＦ８で行われるアドレス変換がＴｙｐｅ３であると判定する。図１６のＶＮＦ８ｉでは、境界に配置された仮想マシンの１つはＴｙｐｅ１、他方の境界に配置された仮想マシンと中央に配置された仮想マシンはＴｙｐｅ３のアドレス変換タイプに分類されている。このため、特定部３３はＶＮＦ８ｉで行われるアドレス変換はＴｙｐｅ３であると判定する。
【００５７】
特定部３３は、その他の組合せのＶＮＦ８ではＴｙｐｅ４のアドレス変換が行われると判定する。例えば、図１６のＶＮＦ８ｊでは、境界に配置された仮想マシンはＴｙｐｅ１、中央に配置された仮想マシンはＴｙｐｅ４のアドレス変換タイプに分類されている。このため、特定部３３はＶＮＦ８ｊで行われるアドレス変換はＴｙｐｅ４であると判定する。ＶＮＦ８ｋは、Ｔｙｐｅ４、Ｔｙｐｅ１、Ｔｙｐｅ２に分類される仮想マシンを１台ずつ含んでいる。このため、特定部３３はＶＮＦ８ｋで行われるアドレス変換はＴｙｐｅ４であると判定する。同様に、ＶＮＦ８ｍはＴｙｐｅ３、Ｔｙｐｅ１、Ｔｙｐｅ２に分類される仮想マシンを１台ずつ含んでいるため、特定部３３はＶＮＦ８ｍで行われるアドレス変換はＴｙｐｅ４であると判定する。
【００５８】
特定部３３は、各ＶＮＦ８について特定したアドレス変換の種類を、アドレス変換タイプテーブル４２を、アドレス変換タイプテーブル４２（図１５）のＶＮＦの欄に記録する。なお、特定部３３は、適宜、各ＶＮＦ８についてのアドレス変換の種類の特定結果を、管理装置５０に通知しても良い。この場合、管理装置５０の取得部６２は、アドレス変換タイプテーブル７２のネットワーク機能の欄に含まれている機能を提供するＶＮＦの識別子を、アドレス変換タイプテーブル７２のＶＮＦの欄に記録する。
【００５９】
図１７は、アドレス変換タイプの決定方法の例を説明するフローチャートである。なお、図１７は一例であり、例えば、ステップＳ１１、Ｓ１３、Ｓ１５の判定が行われる順序は実装に応じて任意に変更され得る。
【００６０】
特定部３３は、処理対象のＶＮＦ８はＴｙｐｅ１の仮想マシンのみを含むかを判定する（ステップＳ１１）。処理対象のＶＮＦ８がＴｙｐｅ１の仮想マシンのみを含む場合、特定部３３は、処理対象のＶＮＦ８ではアドレス変更が行われないと判定する（ステップＳ１１でＹｅｓ、ステップＳ１２）。すなわち、特定部３３は、処理対象のＶＮＦ８で行われるアドレス変換の種類はＴｙｐｅ１であると判定する。
【００６１】
処理対象のＶＮＦ８がＴｙｐｅ１以外の仮想マシンを含む場合、特定部３３は、処理対象のＶＮＦ８がＴｙｐｅ１かＴｙｐｅ２の仮想マシンのみを含むかを判定する（ステップＳ１１でＮｏ、ステップＳ１３）。処理対象のＶＮＦ８がＴｙｐｅ１かＴｙｐｅ２の仮想マシンのみを含む場合、特定部３３は、処理対象のＶＮＦ８は、送信元アドレスを変更するが宛先アドレスを変更しないＶＮＦ８であると判定する（ステップＳ１３でＹｅｓ、ステップＳ１４）。すなわち、特定部３３は、処理対象のＶＮＦ８で行われるアドレス変換の種類はＴｙｐｅ２であると判定する。
【００６２】
処理対象のＶＮＦ８がＴｙｐｅ１とＴｙｐｅ２以外の仮想マシンを含む場合、特定部３３は、処理対象のＶＮＦ８がＴｙｐｅ１かＴｙｐｅ３の仮想マシンのみを含むかを判定する（ステップＳ１３でＮｏ、ステップＳ１５）。処理対象のＶＮＦ８がＴｙｐｅ１かＴｙｐｅ３の仮想マシンのみを含む場合、特定部３３は、処理対象のＶＮＦ８は、送信元アドレスを変更しないが宛先アドレスを変更するＶＮＦ８であると判定する（ステップＳ１５でＹｅｓ、ステップＳ１６）。すなわち、特定部３３は、処理対象のＶＮＦ８で行われるアドレス変換の種類はＴｙｐｅ３であると判定する。
【００６３】
ステップＳ１５において、処理対象のＶＮＦ８には、Ｔｙｐｅ１かＴｙｐｅ３の仮想マシン以外のタイプの仮想マシンが含まれると判定されたとする（ステップＳ１５でＮｏ）。この場合、特定部３３は、処理対象のＶＮＦ８は、送信元アドレスと宛先アドレスを変更するＶＮＦ８であると判定する（ステップＳ１７）。すなわち、特定部３３は、処理対象のＶＮＦ８で行われるアドレス変換の種類はＴｙｐｅ４であると判定する。
【００６４】
（２）制御装置２０でのアドレスの割り当て
図１８は、アドレスの割り当て方法の例を説明する図である。割り当て部３４は、特定部３３での特定処理の結果に応じて、ＶＮＦ８にアドレスを割り当てる。割り当て部３４は、いずれのＶＮＦ８にも、そのＶＮＦ８がパケットを他のＶＮＦ８などから受信する際に使用する受信用アドレス（ＩＰｉｎ）と、そのＶＮＦ８が他のＶＮＦ８などへパケットを送信する際に使用する送信用アドレス（ＩＰｏｕｔ）を割り当てる。
【００６５】
次に、割り当て部３４は、処理対象のＶＮＦ８のアドレス変換タイプと、処理対象のＶＮＦ８での仮想マシンの接続関係に応じて、受信用アドレス（ＩＰｉｎ）と送信用アドレス（ＩＰｏｕｔ）以外のアドレスを割り当てるかを決定する。例えば、Ｔｙｐｅ１のアドレス変換が行われるＶＮＦ８には、割り当て部３４は、受信用アドレス（ＩＰｉｎ）と送信用アドレス（ＩＰｏｕｔ）以外のアドレスを割り当てない。
【００６６】
図１８のケースＣ１およびＣ２に示すように、Ｔｙｐｅ２のアドレス変換を行うＶＮＦ８は、転送するパケットの送信元アドレスを変更する。以下、Ｔｙｐｅ２のアドレス変換を行うＶＮＦ８から送信されるパケットの送信元に設定されるアドレスを「送信設定アドレス」と記載することがある。Ｔｙｐｅ２のアドレス変換を行うＶＮＦ８では、アドレス変換を行う仮想マシンの出力側のポートへの経路情報を経路情報生成部３５で生成できれば、サービスチェイン７を用いたパケットの転送処理を行うことができる。すなわち、割り当て部３４がＴｙｐｅ２のアドレス変換を行うＶＮＦ８に対して、送信設定アドレスを設定できれば、サービスチェイン７を用いた通信が可能になる。なお、あるＶＮＦ８に対して割り当てられた送信設定アドレスは、サービスチェイン７の宛先の通信装置５から送信元の通信装置５に対してパケットを送信する際に、そのＶＮＦ８で終端されるパケットの宛先として使用される。
【００６７】
ケースＣ１に示すように、Ｔｙｐｅ２のアドレス変換を行う仮想マシンがＶＮＦ８での出力側の境界に位置している場合、アドレス変換を行う仮想マシンの出力側のポートには送信用アドレス（ＩＰｏｕｔ）が割り当てられることになる。この場合、制御装置２０において、ＩＰｏｕｔまでの経路計算が可能であるため、割り当て部３４は、ケースＣ１に示すＶＮＦ８には送信設定アドレスを割り当てない。なお、ケースＣ１では、送信用アドレス（ＩＰｏｕｔ）が送信設定アドレスとしても使用されているとも言える。
【００６８】
一方、ケースＣ２に示すように、Ｔｙｐｅ２のアドレス変換を行う仮想マシンがＶＮＦ８での出力側の境界に位置していないとする。この場合、アドレス変換を行う仮想マシンの出力側のポートには、受信用アドレス（ＩＰｉｎ）と送信用アドレス（ＩＰｏｕｔ）のいずれも割り当てられない。このため、割り当て部３４は、ケースＣ２に示すＶＮＦ８には送信設定アドレスを割り当てることにより、制御装置２０において、アドレス変換を行う仮想マシンに割り当てられたアドレスまでの経路計算を行うことができるようにする。
【００６９】
ケースＣ３およびＣ４に示すように、Ｔｙｐｅ３のアドレス変換を行うＶＮＦ８は、転送するパケットの宛先アドレスを変更する。以下、Ｔｙｐｅ３のアドレス変換を行うＶＮＦ８に向けて送信されるパケットの宛先に設定されるアドレスを「宛先設定アドレス」と記載することがある。Ｔｙｐｅ３のアドレス変換を行うＶＮＦ８では、アドレス変換を行う仮想マシンの入力側のポートへの経路情報を経路情報生成部３５で生成できれば、サービスチェイン７を用いたパケットの転送処理を行うことができる。すなわち、割り当て部３４がＴｙｐｅ３のアドレス変換を行うＶＮＦ８に対して、宛先設定アドレスを設定できれば、サービスチェイン７を用いた通信が可能になる。なお、あるＶＮＦ８に対して割り当てられた宛先設定アドレスは、サービスチェイン７の送信元の通信装置５から宛先の通信装置５に対してパケットを送信する際に、そのＶＮＦ８で終端されるパケットの宛先として使用される。
【００７０】
ケースＣ３に示すように、Ｔｙｐｅ３のアドレス変換を行う仮想マシンがＶＮＦ８での入力側の境界に位置している場合、アドレス変換を行う仮想マシンの入力側のポートには受信用アドレス（ＩＰｉｎ）が割り当てられることになる。この場合、制御装置２０において、ＩＰｉｎまでの経路計算が可能であるため、割り当て部３４は、ケースＣ３に示すＶＮＦ８には宛先設定アドレスを割り当てない。なお、ケースＣ３では、受信用アドレス（ＩＰｉｎ）が受信設定アドレスとしても使用されているとも言える。
【００７１】
一方、ケースＣ４に示すように、Ｔｙｐｅ３のアドレス変換を行う仮想マシンがＶＮＦ８での入力側の境界に位置していないとする。この場合、アドレス変換を行う仮想マシンの入力側のポートには、受信用アドレス（ＩＰｉｎ）と送信用アドレス（ＩＰｏｕｔ）のいずれも割り当てられない。このため、割り当て部３４は、ケースＣ４に示すＶＮＦ８には宛先設定アドレスを割り当てることにより、制御装置２０において、アドレス変換を行う仮想マシンに割り当てられたアドレスまでの経路計算を行うことができるようにする。
【００７２】
ケースＣ５およびＣ６に示すように、Ｔｙｐｅ４のアドレス変換を行うＶＮＦ８は、転送するパケットの宛先アドレスと送信元アドレスを変更する。このため、Ｔｙｐｅ４のアドレス変換を行うＶＮＦ８では、宛先アドレスの変換を行う仮想マシンの入力側のポートへの経路情報と、送信元アドレスの変換を行う仮想マシンの出力側のポートへの経路情報とを経路情報生成部３５で計算することが求められる。
【００７３】
ケースＣ５に示すように、パケットの宛先アドレスを変換する仮想マシンがＶＮＦ８での入力側の境界に位置している場合、アドレス変換を行う仮想マシンの入力側のポートには受信用アドレス（ＩＰｉｎ）が割り当てられることになる。このため、割り当て部３４は、ケースＣ５に示すＶＮＦ８には宛先設定アドレスを割り当てない。さらに、ケースＣ５では、パケットの送信元アドレスを変換する仮想マシンがＶＮＦ８での出力側の境界に位置している。この場合、アドレス変換を行う仮想マシンの出力側のポートには送信用アドレス（ＩＰｏｕｔ）が割り当てられることになる。このため、割り当て部３４は、ケースＣ５に示すＶＮＦ８には、送信設定アドレスも割り当てない。
【００７４】
ケースＣ６に示すように、パケットの宛先アドレスを変換する仮想マシンがＶＮＦ８での入力側の境界に位置していない場合、アドレス変換を行う仮想マシンの入力側のポートには受信用アドレス（ＩＰｉｎ）が割り当てられない。このため、割り当て部３４は、ケースＣ６に示すＶＮＦ８に宛先設定アドレスを割り当てる。さらに、ケースＣ６では、パケットの送信元アドレスを変換する仮想マシンもＶＮＦ８での出力側の境界に位置していない。このため、ケースＣ６では、アドレス変換を行う仮想マシンの出力側のポートには送信用アドレス（ＩＰｏｕｔ）が割り当てられない。そこで、割り当て部３４は、ケースＣ６に示すＶＮＦ８には、送信設定アドレスも割り当てる。
【００７５】
図１９は、アドレスの割り当て方法の例を説明するフローチャートである。なお、図１９は、一例であり、例えば、ステップＳ２２〜Ｓ２４の処理の前にステップＳ２５〜Ｓ２７の処理が行われるなど、実装に応じて処理が変更されても良い。
【００７６】
割り当て部３４は、処理対象のＶＮＦ８に、サービスチェイン７で送受信されるパケットの受信用アドレスと送信用アドレスを割り当てる（ステップＳ２１）。割り当て部３４は、処理対象のＶＮＦ８が送信元アドレスを変更するかを判定する（ステップＳ２２）。処理対象のＶＮＦ８が送信元アドレスを変更する場合、割り当て部３４は、出力側の境界の仮想マシンがＴｙｐｅ２とＴｙｐｅ４のいずれかの仮想マシンであるかを判定する（ステップＳ２２でＹｅｓ、ステップＳ２３）。出力側の境界の仮想マシンがＴｙｐｅ２とＴｙｐｅ４のいずれの仮想マシンでもない場合、割り当て部３４は、ＶＮＦ８での処理で送信元に設定するためのアドレス（送信設定アドレス）を、処理対象のＶＮＦ８に割り当てる（ステップＳ２３でＮｏ、ステップＳ２４）。
【００７７】
次に、割り当て部３４は、処理対象のＶＮＦ８が宛先アドレスを変更するかを判定する（ステップＳ２５）。処理対象のＶＮＦ８が宛先アドレスを変更する場合、割り当て部３４は、入力側の境界の仮想マシンがＴｙｐｅ３とＴｙｐｅ４のいずれかの仮想マシンであるかを判定する（ステップＳ２５でＹｅｓ、ステップＳ２６）。入力側の境界の仮想マシンがＴｙｐｅ３とＴｙｐｅ４のいずれの仮想マシンでもない場合、割り当て部３４は、ＶＮＦ８での処理で終端するパケットの宛先となるアドレス（宛先設定アドレス）を、処理対象のＶＮＦ８に割り当てる（ステップＳ２６でＮｏ、ステップＳ２７）。
【００７８】
なお、処理対象のＶＮＦ８が送信元アドレスを変更しない場合（ステップＳ２２でＮｏ）、ステップＳ２５以降の処理が行われる。また、処理対象のＶＮＦ８が送信元アドレスを変更するが、出力側の境界の仮想マシンがＴｙｐｅ２とＴｙｐｅ４のいずれかの仮想マシンである場合（ステップＳ２３でＹｅｓ）も、ステップＳ２５以降の処理が行われる。
【００７９】
さらに、処理対象のＶＮＦ８が宛先アドレスを変更しない場合（ステップＳ２５でＮｏ）、割り当て部３４は処理を終了する。また、処理対象のＶＮＦ８が宛先アドレスを変更するが、入力側の境界の仮想マシンがＴｙｐｅ３とＴｙｐｅ４のいずれかの仮想マシンである場合（ステップＳ２６でＹｅｓ）も、割り当て部３４は処理を終了する。
【００８０】
（３）制御装置２０での経路計算
図２０は、経路の設定方法の例を説明する図である。経路情報生成部３５は、パス計算部３２によって計算された経路を使用するために、経路中に位置するルータ８０などの中継装置や、仮想マシンに設定する転送情報を生成する。例えば、通信装置５ｘから通信装置５ｙにパケットを転送するために、ルータ８０ａ、ＶＮＦ８ｘ、ルータ８０ｂ、ＶＮＦ８ｙ、ルータ８０ｃ、ＶＮＦ８ｚ、ルータ８０ｄという経路を使用することをパス計算部３２が決定したとする。以下、ＶＮＦ８ｙに対して設定される経路情報を決定する場合の処理の例を説明する。
【００８１】
経路情報生成部３５は、パス計算部３２で計算された経路を使用するための経路情報を、適宜、アドレス変換タイプテーブル４２の情報を用いて、装置ごとに求める。図２０の例では、通信装置５ｘから通信装置５ｙの方向へのパケットの転送処理では、ＶＮＦ８ｘはＴｙｐｅ２、ＶＮＦ８ｙはＴｙｐｅ３、ＶＮＦ８ｘはＴｙｐｅ４のアドレス変換を行うものとする。
【００８２】
経路情報生成部３５は、転送情報経路を決定するために、パケットの転送方向の逆方向にたどることにより、経路を設定する対象のＶＮＦ８から宛先の通信装置５に至るまでにＴｙｐｅ３かＴｙｐｅ４のＶＮＦ８が存在するかを判定する。経路を設定する対象のＶＮＦ８から宛先の通信装置５に至るまでに、Ｔｙｐｅ３かＴｙｐｅ４のＶＮＦ８がある場合、そのＶＮＦ８において宛先アドレスが変更される。このため、経路の設定対象のＶＮＦ８では、宛先の通信装置５に至るまでにパケットが到達するＴｙｐｅ３かＴｙｐｅ４のＶＮＦ８に割り当てられた宛先設定アドレスをパケットの転送先にする。例えば、通信装置５ｘから通信装置５ｙに向けて転送されるパケットについてのＶＮＦ８ｙでの転送経路を計算する場合、経路情報生成部３５は、矢印Ａ１１〜Ａ１４に示すように、通信装置５ｙからＶＮＦ８ｙまで、パケットの転送経路を逆にたどる。この処理により、経路情報生成部３５は、通信装置５ｙからＶＮＦ８ｙに到達するまでに、ＶＮＦ８ｚにおいて宛先アドレスが変更されることを特定する。
【００８３】
ＶＮＦ８ｚに宛先設定アドレスが設定されている場合、経路情報生成部３５は、ＶＮＦ８ｙから通信装置５ｙに向けて転送されるパケットの宛先アドレスは、ＶＮＦ８ｚに割り当てられた宛先設定アドレスであると判定する。ここで、ＶＮＦ８ｚには、アドレスＰ４が宛先設定アドレスとして割り当てられているとする。さらに、ＶＮＦ８ｙとＶＮＦ８ｚの間の通信は、ルータ８０ｃにより中継されており、ルータ８０ｃにはアドレスＲ３が割り当てられているとする。すると、経路情報生成部３５は、ＶＮＦ８ｙでは、アドレスＰ４宛てのパケットをルータ８０ｃに転送すると判定し、アドレスＰ４宛てのパケットをアドレスＲ３に転送することをＶＮＦ８ｙに対する経路情報として決定する。
【００８４】
経路情報生成部３５は、サービスチェイン７でのパケットの宛先の通信装置５から送信元の通信装置５に至るパケットの転送情報についても設定処理を行う。経路情報生成部３５は、パケットの経路を転送方向にたどることにより、サービスチェイン７での送信元の通信装置５から、経路を設定する対象のＶＮＦ８に至るまでに、Ｔｙｐｅ２かＴｙｐｅ４のＶＮＦ８が存在するかを判定する。サービスチェイン７で送信元の通信装置５ｘから通信装置５ｚにパケットが送信される場合、送信元の通信装置５ｘから経路を設定する対象のＶＮＦ８に至るまでに、Ｔｙｐｅ２かＴｙｐｅ４のＶＮＦ８において、送信元アドレスが変更される。このため、サービスチェイン７とは逆向きの経路において、経路情報の設定対象のＶＮＦ８では、サービスチェイン７での送信元の通信装置５ｘとの間にあるＴｙｐｅ２かＴｙｐｅ４のＶＮＦ８に割り当てられた送信設定アドレスを、パケットの転送先にする。例えば、通信装置５ｙから通信装置５ｘに向けて転送されるパケットについてのＶＮＦ８ｙでの転送経路を計算する場合、経路情報生成部３５は、矢印Ａ１〜Ａ４に示すように、通信装置５ｘからＶＮＦ８ｙまで、サービスチェイン７でのパケットの転送経路をたどる。この処理により、経路情報生成部３５は、通信装置５ｘからＶＮＦ８ｙに到達するまでに、ＶＮＦ８ｘにおいて送信元アドレスが変更されることを特定する。
【００８５】
ＶＮＦ８ｘに送信設定アドレスが設定されている場合、経路情報生成部３５は、ＶＮＦ８ｙから通信装置５ｘに向けて転送されるパケットの宛先アドレスは、ＶＮＦ８ｘに割り当てられた送信設定アドレスであると判定する。ここで、ＶＮＦ８ｘには、アドレスＰ２が送信設定アドレスとして割り当てられているとする。さらに、ＶＮＦ８ｙとＶＮＦ８ｘの間の通信は、ルータ８０ｂにより中継されており、ルータ８０ｂにはアドレスＲ２が割り当てられているとする。すると、経路情報生成部３５は、ＶＮＦ８ｙでは、アドレスＰ２宛てのパケットをルータ８０ｂに転送すると判定し、アドレスＰ４宛てのパケットをアドレスＲ２に転送することをＶＮＦ８ｙに対する経路情報として決定する。
【００８６】
図２１は、サービスチェイン７の送信元から宛先に向けた経路情報の決定方法の例を説明するフローチャートである。経路情報生成部３５は、サービスチェイン７での宛先の通信装置５のアドレスをターゲットアドレスに設定する（ステップＳ３１）。ここで、ターゲットアドレスは、経路設定の処理対象のＶＮＦ８が転送するパケットの宛先アドレスとして仮定されるアドレスである。経路情報生成部３５は、処理対象のＶＮＦ８からターゲットアドレスが設定されたポートまでの経路にＴｙｐｅ３かＴｙｐｅ４のＶＮＦ８があるかを判定する（ステップＳ３２）。図２１の説明では、処理対象のＶＮＦ８からターゲットアドレスが設定されたポートまでの経路に位置するＴｙｐｅ３かＴｙｐｅ４のＶＮＦ８のことを「転送先ＶＮＦ」と記載する。転送先ＶＮＦがある場合、経路情報生成部３５は、転送先ＶＮＦには宛先設定アドレスが割り当てられているかを判定する（ステップＳ３２でＹｅｓ、ステップＳ３３）。転送先ＶＮＦに宛先設定アドレスが割り当てられている場合、経路情報生成部３５は、ターゲットアドレスを転送先ＶＮＦの宛先設定アドレスに変更する（ステップＳ３３でＹｅｓ、ステップＳ３４）。転送先ＶＮＦに宛先設定アドレスが割り当てられていない場合、経路情報生成部３５は、ターゲットアドレスを転送先ＶＮＦの受信用アドレス（ＩＰｉｎ）に変更する（ステップＳ３３でＮｏ、ステップＳ３５）。一方、転送先ＶＮＦがない場合、経路情報生成部３５は、ターゲットアドレスを変更しない（ステップＳ３２でＮｏ）。
【００８７】
経路情報生成部３５は、処理対象のＶＮＦ８に至るまでの経路中の全てのＶＮＦ８を処理したかを判定する（ステップＳ３６）。処理対象のＶＮＦ８に至るまでの経路中の全てのＶＮＦ８を処理していない場合、経路情報生成部３５は、ステップＳ３２以降の処理を繰り返す（ステップＳ３６でＮｏ）。処理対象のＶＮＦ８に至るまでの経路中の全てのＶＮＦ８を処理した場合、経路情報生成部３５は、処理対象のＶＮＦの経路情報において、ターゲットアドレスを宛先アドレスとし、Ｎｅｘｔ  ｈｏｐ  ＧＷを転送先に設定する（ステップＳ３６でＹｅｓ、ステップＳ３７）。
【００８８】
図２２は、サービスチェイン７の宛先から送信元に向けた経路情報の決定方法の例を説明するフローチャートである。経路情報生成部３５は、サービスチェイン７での送信元の通信装置５のアドレスをターゲットアドレスに設定する（ステップＳ４１）。経路情報生成部３５は、ターゲットアドレスが設定されたポートから処理対象のＶＮＦ８までの経路に、Ｔｙｐｅ２かＴｙｐｅ４のＶＮＦ８があるかを判定する（ステップＳ４２）。図２２の説明では、ターゲットアドレスが設定されたポートから処理対象のＶＮＦ８までの経路に位置するＴｙｐｅ２かＴｙｐｅ４のＶＮＦ８のことを「転送先ＶＮＦ」と記載する。転送先ＶＮＦがある場合、経路情報生成部３５は、転送先ＶＮＦには送信設定アドレスが割り当てられているかを判定する（ステップＳ４２でＹｅｓ、ステップＳ４３）。転送先ＶＮＦに送信設定アドレスが割り当てられている場合、経路情報生成部３５は、ターゲットアドレスを転送先ＶＮＦの送信設定アドレスに変更する（ステップＳ４３でＹｅｓ、ステップＳ４４）。転送先ＶＮＦに送信設定アドレスが割り当てられていない場合、経路情報生成部３５は、ターゲットアドレスを転送先ＶＮＦの送信用アドレス（ＩＰｏｕｔ）に変更する（ステップＳ４３でＮｏ、ステップＳ４５）。一方、転送先ＶＮＦがない場合、経路情報生成部３５は、ターゲットアドレスを変更しない（ステップＳ４２でＮｏ）。
【００８９】
経路情報生成部３５は、処理対象のＶＮＦ８に至るまでの経路中の全てのＶＮＦ８を処理したかを判定する（ステップＳ４６）。処理対象のＶＮＦ８に至るまでの経路中の全てのＶＮＦ８を処理していない場合、経路情報生成部３５は、ステップＳ４２以降の処理を繰り返す（ステップＳ４６でＮｏ）。処理対象のＶＮＦ８に至るまでの経路中の全てのＶＮＦ８を処理した場合、経路情報生成部３５は、処理対象のＶＮＦの経路情報において、ターゲットアドレスを宛先アドレスとし、Ｎｅｘｔ  ｈｏｐ  ＧＷを転送先に設定する（ステップＳ４６でＹｅｓ、ステップＳ４７）。
【００９０】
経路情報生成部３５は、経路情報の設定が終わると、管理装置５０に対して、その管理装置５０が管理するＶＮＦ８についての情報を、送信部２１を介して、通知する。制御装置２０から管理装置５０に通知される情報は、受信用アドレス（ＩＰｉｎ）、送信用アドレス（ＩＰｏｕｔ）、宛先設定アドレス、送信設定アドレス、経路情報を含む。なお、管理装置５０が複数のＶＮＦ８を管理する場合は、通知情報には、ＶＮＦ８の識別子の情報も含められる。また、宛先設定アドレスと送信設定アドレスは、それらのアドレスが割り当てられているＶＮＦ８についてのみ通知される。
【００９１】
（４）管理装置５０でのアドレスの割り当て
図２３は、アドレスの割り当て方法の例を説明する図である。以下、管理装置５０に制御装置２０からテーブルＴ１１に示す通知情報を含む制御パケットが送信された場合を例として、管理装置５０の処理を説明する。
【００９２】
管理装置５０中の取得部６２は、受信部５２を介して、制御装置２０からの通知情報を取得する。取得部６２は、管理装置５０の処理対象のＶＮＦ８には、以下のアドレスが割り当てられていることと、Ｄ２宛てのパケットをＣ２に転送することを認識する。
受信用アドレス（ＩＰｉｎ）＝Ｂ２
送信用アドレス（ＩＰｏｕｔ）＝Ｃ１
宛先設定アドレス＝Ｘ２
送信設定アドレス＝Ｙ１
【００９３】
一方、パス計算部６１は、トポロジーテーブル７１を用いて、ＶＮＦ８中の仮想マシンで、Ｄ２宛てのパケットをＣ２に転送するための経路を生成する。図２３のＶＮＦ８ｗの例では、ＶＭ２がパケットの受信側の境界に位置し、パケットがＶＭ２からＶＭ３を経由してＶＭ４に転送されるパスが計算されたとする。ここで、ＶＭ２とＶＭ４はＴｙｐｅ１の仮想マシンであり、ＶＭ３はＴｙｐｅ４の仮想マシンであるとする。
【００９４】
割り当て部６３は、ＶＮＦ８のうち、サービスチェイン７の送信元の通信装置５から送信されたパケットの受信に使用されるインタフェースに、受信用アドレスＩＰｉｎを割り当てる。なお、サービスチェイン７の送信元の通信装置５から送信されたパケットの受信に使用されるインタフェースは、入口側の境界に設置された仮想マシンの入口側のインタフェースである。図２３のＶＮＦ８ｗの場合、受信用アドレスとして通知されたＢ２は、ＶＭ２のうち、ＶＮＦ８ｗに含まれない装置との通信に使用されるポートに割り当てられる。
【００９５】
割り当て部６３は、ＶＮＦ８のうち、サービスチェイン７の送信元の通信装置５から送信されたパケットの送信に使用されるインタフェースに、送信用アドレスＩＰｏｕｔを割り当てる。なお、サービスチェイン７の送信元の通信装置５から送信されたパケットの送信に使用されるインタフェースは、出口側の境界に設置された仮想マシンの出口側のインタフェースである。図２３のＶＮＦ８ｗの場合、送信用アドレスとして通知されたＣ１は、ＶＭ４のうち、ＶＮＦ８ｗに含まれない装置との通信に使用されるポートに割り当てられる。
【００９６】
割り当て部６３は、ＶＮＦ８のうち、サービスチェイン７の送信元の通信装置５から送信されたパケットの入口側に最も近いＴｙｐｅ３またはＴｙｐｅ４の仮想マシンを特定する。割り当て部６３は、特定した仮想マシンのうち、サービスチェイン７の宛先に向かうパケットの入口側の仮想インタフェースに、宛先設定アドレスを割り当てる。なお、宛先設定アドレスは、特定された仮想マシンのＬｏｏｐｂａｃｋアドレスとして割り当てられても良い。図２３のＶＮＦ８ｗの場合、宛先設定アドレスとして通知されたＸ２は、ＶＭ３のうち、ＶＮＦ８ｗの入口側のポートに割り当てられる。
【００９７】
割り当て部６３は、ＶＮＦ８のうち、サービスチェイン７の送信元の通信装置５から送信されたパケットの出口側に最も近いＴｙｐｅ２またはＴｙｐｅ４の仮想マシンを特定する。割り当て部６３は、特定した仮想マシンのうち、サービスチェイン７の宛先に向かうパケットの出口側の仮想インタフェースに、送信設定アドレスを割り当てる。なお、送信設定アドレスは、特定された仮想マシンのＬｏｏｐｂａｃｋアドレスとして割り当てられても良い。図２３のＶＮＦ８ｗの場合、送信設定アドレスとして通知されたＹ１は、ＶＭ３のうち、ＶＮＦ８ｗの出口側のポートに割り当てられる。
【００９８】
さらに、割り当て部６３は、ＶＮＦ８内での通信に使用するアドレスを割り当てる。例えば、ＶＮＦ８ｗにおいて、ＶＭ２の出口側のポートにはＸ１が割り当てられ、ＶＭ４の入口側のポートにはＹ２が割り当てられる。
【００９９】
アドレスの割り当てが終わると、経路決定部６４は、ＶＮＦ８内の通信を行うための経路情報を生成する。このとき、経路決定部６４が計算する経路には、宛先設定アドレスに到達するための経路情報も含まれる。例えば、ＶＮＦ８ｗでは、宛先設定アドレスであるＸ２に到達するための経路情報が設定される。すなわち、ＶＭ２に対して、Ｘ２宛てのパケットをＸ２に転送することが決定される。
【０１００】
同様に、経路決定部６４は、サービスチェイン７での宛先側の通信装置５から送信側の通信装置５に送信されたパケットを転送するための経路も生成する。このとき、経路決定部６４が計算する経路には、送信設定アドレスに到達するための経路情報も含まれる。例えば、ＶＮＦ８ｗでは、送信設定アドレスであるＹ１に到達するための経路情報が設定される。すなわち、ＶＭ４に対して、Ｙ１宛てのパケットをＹ１に転送することが決定される。経路決定部６４は、決定した経路情報を、送信部５１を介して、個々の仮想マシンに通知する。
【０１０１】
図２４は、アドレスの割り当て方法の例を説明するフローチャートである。割り当て部６３は、ＶＮＦ８の境界に、制御装置２０から割り当てられた境界用アドレスを設定する（ステップＳ５１）。なお、境界用アドレスは、受信用アドレスと送信用アドレスである。割り当て部６３は、送信設定アドレスが通知されているかを判定する（ステップＳ５２）。送信設定アドレスが通知されている場合、割り当て部６３は、サービスチェイン７のパケットの出力側の境界に最も近いＴｙｐｅ２又はＴｙｐｅ４の仮想マシンの出力側のポートに、送信設定アドレスを割り当てる（ステップＳ５２でＹｅｓ、ステップＳ５３）。ステップＳ５３の処理により、例えば、パケットの送信元アドレスが複数回変更される場合、送信設定アドレスは、ＶＮＦ８から出力されるパケット中に設定される送信元アドレスへの変更を行う仮想マシンに設定されることになる。
【０１０２】
ステップＳ５３の後か、ステップＳ５２でＮｏと判定された場合、割り当て部６３は、宛先設定アドレスが通知されているかを判定する（ステップＳ５４）。宛先設定アドレスが通知されている場合、割り当て部６３は、サービスチェイン７のパケットの入力側の境界に最も近いＴｙｐｅ３又はＴｙｐｅ４の仮想マシンの入力側のポートに、宛先設定アドレスを割り当てる（ステップＳ５４でＹｅｓ、ステップＳ５５）。ステップＳ５５の処理により、パケットの宛先アドレスが複数回変更される場合、宛先設定アドレスは、ＶＮＦ８に入力されたパケットを終端する仮想マシンに設定されることになる。ステップＳ５５の後か、ステップＳ５４でＮｏと判定された場合、割り当て部６３は、ＶＮＦ８の通信に使用する他のアドレスの割り当て処理を行う。
【０１０３】
図２３を参照しながら説明したように、実施形態にかかるシステムでは、宛先設定アドレスや送信設定アドレスに至る経路が生成される。このため、ＶＮＦ８内では、宛先設定アドレスや送信設定アドレスが宛先に設定されたパケットを、そのアドレスが割り当てられた仮想マシンに転送することができる。換言すると、制御装置２０は、アドレス変換を行うＶＮＦ８に対しては、そのＶＮＦ８で終端されるパケットの宛先として使用されるアドレスを割り当てていることになる。さらに、図２０〜図２２を参照しながら説明したように、制御装置２０は、宛先設定アドレスや送信設定アドレスが割り当てられたＶＮＦ８については、宛先設定アドレスや送信設定アドレスに至る経路を経路情報として生成し、各ＶＮＦ８の管理装置５０に送信する。このため、実施形態にかかるシステムでは、ＶＮＦ８間の通信に使用されるアドレスと、ＶＮＦ８内の通信に使用されるアドレスが別個に管理され、パケットのアドレスがＶＮＦ８内で変更されても、通信が正常に行われる。
【０１０４】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１０５】
以上の説明では、図を見やすくするために、制御装置２０、管理装置５０、制御装置２０および管理装置５０の通信に使用される接続などをネットワーク中に記載していないが、制御装置２０は、ネットワーク中の全ての管理装置５０と通信可能である。また、管理装置５０は、自装置の管理対象となるＶＮＦ８中の仮想マシンの各々と通信可能である。なお、管理装置５０は、任意の数のＶＮＦ８を管理することができる。
【０１０６】
以上の説明で使用したテーブルなどに含まれる情報要素は一例であり、実装に応じて任意に変更され得る。
【０１０７】
図１９などのフローチャートでは、出力側の境界の仮想マシンがＴｙｐｅ２かＴｙｐｅ４の仮想マシンの場合に送信設定アドレスを割り当てない場合を例として説明したが、送信設定アドレスをＶＮＦ８の送信用アドレスと同じ値に設定しても良い。同様に、ＶＮＦ８の入力側の境界の仮想マシンがＴｙｐｅ３かＴｙｐｅ４の仮想マシンの場合、宛先設定アドレスがＶＮＦ８の受信用アドレスと同じ値に設定されても良い。
【０１０８】
さらに、制御装置２０がＶＮＦ８中の仮想マシンの配置を認識しない場合、割り当て部３４は、Ｔｙｐｅ２の仮想マシンを含むＶＮＦ８に対して、送信設定アドレスとして、受信用アドレスと送信用アドレスのいずれとも異なるアドレスを割り当てることもできる。この場合、割り当て部３４は、Ｔｙｐｅ３の仮想マシンを含むＶＮＦ８に対しては、宛先設定アドレスとして、受信用アドレスと送信用アドレスのいずれとも異なるアドレスを割り当てる。同様に、割り当て部３４は、Ｔｙｐｅ４の仮想マシンを含むＶＮＦ８に対しては、宛先設定アドレスと送信設定アドレスの各々として、受信用アドレスと送信用アドレスのいずれとも異なるアドレスを割り当てる。この場合、管理装置５０では、Ｔｙｐｅ２またはＴｙｐｅ４の仮想マシンが出力側の境界の仮想マシンである場合、送信用アドレスを使用せずに、送信設定アドレスを、出力側の境界の仮想マシンの出力側のポートに設定する。同様に、管理装置５０では、Ｔｙｐｅ３またはＴｙｐｅ４の仮想マシンが入力側の境界の仮想マシンである場合、受信用アドレスを使用せずに、宛先設定アドレスを入力側の境界の仮想マシンの入力側のポートに設定する。
【０１０９】
この変形例では、制御装置２０において各ＶＮＦ８での仮想マシンの配置が特定されない場合もアドレスの割り当てが行われるので、制御装置２０が記憶する情報量が削減される。
【０１１０】
上述の実施形態に関し、さらに以下の付記を開示する。
（付記１）
複数のグループに分類された複数の仮想マシンを含む通信システム中で、前記複数のグループのうちの管理対象のグループである対象グループ内での通信に使用されるアドレスを管理する管理装置であって、
前記複数のグループ間での通信を制御する制御装置から、前記対象グループを経由する通信パケットの宛先となるアドレスを取得する取得部と、
前記対象グループ中でアドレス変換を伴う通信処理を行う仮想マシンに、前記制御装置から取得したアドレスから選択したアドレスを割り当てる割り当て部と、
前記対象グループ中の仮想マシンの各々に、当該仮想マシンに割り当てたアドレスを通知する通知パケットを送信する送信部
を備えることを特徴とする管理装置。
（付記２）
前記割り当て部は、
前記通信パケットの送信元アドレスを変更する仮想マシンに、前記通信パケットが前記対象グループから出力される際の送信元アドレスとして使用される送信設定アドレスを割り当て、
前記通信パケットの宛先アドレスを変更する仮想マシンに、前記通信パケットが前記対象グループに到達するための宛先アドレスとして使用される宛先設定アドレスを割り当てる
ことを特徴とする付記１に記載の管理装置。
（付記３）
前記対象グループを経由する通信パケットの宛先アドレスを変更する仮想マシンが、前記通信パケットの前記対象グループへの入力の際の境界となる第１の仮想マシンではない場合、
前記取得部は、前記通信パケットの前記対象グループへの入力に使用するインタフェースに割り当てられる第１のアドレスを取得し、
前記割り当て部は、前記第１の仮想マシンに前記第１のアドレスを割り当て、
前記対象グループを経由する通信パケットの送信元アドレスを変更する仮想マシンが、前記対象グループから前記通信パケットを出力する際の境界となる第２の仮想マシンではない場合、
前記取得部は、前記通信パケットの前記対象グループからの出力に使用するインタフェースに割り当てられる第２のアドレスを取得し、
前記割り当て部は、前記第２の仮想マシンに前記第２のアドレスを割り当てる
ことを特徴とする付記２に記載の管理装置。
（付記４）
前記割り当て部は、
前記通信パケットの宛先アドレスが前記対象グループで複数回変更される場合、前記第１の仮想マシンで受信されたパケットを終端する仮想マシンに、前記宛先設定アドレスを割り当て、
前記通信パケットの送信元アドレスが前記対象グループで複数回変更される場合、前記通信パケットが前記第２の仮想マシンから送信される際の送信元アドレスへの変更を行う仮想マシンに、前記送信設定アドレスを割り当てる
ことを特徴とする付記３に記載の管理装置。
（付記５）
複数のグループに分類された複数の仮想マシンを含む通信システムで、前記複数のグループ間での通信に使用されるアドレスの割り当てを制御する制御装置であって、
アドレスを割り当てる対象となる対象グループが前記対象グループを経由する通信パケットのアドレスを変換する仮想マシンを含む場合、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当てる割り当て部と、
前記対象グループに割り当てたアドレスを通知する制御パケットを、前記対象グループ内での通信に使用されるアドレスを管理する管理装置に送信する送信部
を備えることを特徴とする制御装置。
（付記６）
前記対象グループ中の仮想マシンが行う処理の種類を用いて、前記対象グループで行われるアドレス変換のパターンを特定する特定部をさらに備え、
前記割り当て部は、前記パターンと前記対象グループ中の仮想マシンの配置を用いて、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当てる
ことを特徴とする付記５に記載の制御装置。
（付記７）
前記割り当て部は、
前記通信パケットの送信元アドレスが前記対象グループ内の仮想マシンによって変更される場合、前記通信パケットが前記対象グループから出力される際の送信元アドレスとして使用される送信設定アドレスを前記対象グループに割り当て、
前記通信パケットの宛先アドレスが前記対象グループ内の仮想マシンによって変更される場合、前記通信パケットが前記対象グループに到達するための宛先アドレスとして使用される宛先設定アドレスを前記対象グループに割り当てる
ことを特徴とする付記５または６に記載の制御装置。
（付記８）
前記割り当て部は、
前記対象グループに、前記通信パケットの前記対象グループへの入力に使用するインタフェースに割り当てられる第１のアドレスと、前記通信パケットの前記対象グループからの出力に使用するインタフェースに割り当てられる第２のアドレスを割り当て、
前記通信パケットの送信元アドレスを変更する仮想マシンが、前記対象グループから前記通信パケットを出力する際の境界となる仮想マシンである場合、前記第２のアドレスを前記送信設定アドレスとして使用し、
前記通信パケットの宛先アドレスを変更する仮想マシンが、前記対象グループへの前記通信パケットの入力の際の境界となる仮想マシンである場合、前記第１のアドレスを前記宛先設定アドレスとして使用する
ことを特徴とする付記７に記載の制御装置。
（付記９）
前記複数のグループ間での通信を行うための経路を計算すると共に、前記対象グループから前記通信パケットの送信を行うための経路情報を生成する生成部をさらに備え、
前記生成部は、
前記複数のグループでの前記通信パケットのアドレスの変換状況を用いて、前記対象グループから送信されたパケットを終端するグループに割り当てた宛先設定アドレスをターゲットアドレスに設定し、
前記対象グループが前記通信パケットを前記ターゲットアドレスが設定された仮想マシンを含むグループに転送するための転送経路を、前記対象グループが使用する経路として、前記管理装置に通知する
ことを特徴とする付記７または８に記載の制御装置。
（付記１０）
複数のグループに分類された複数の仮想マシンと、
前記複数のグループ内での通信に使用されるアドレスを管理する管理装置と、
前記複数のグループ間での通信に使用されるアドレスの割り当てを制御する制御装置
を備え、
前記制御装置は、
アドレスを割り当てる対象のグループである対象グループが前記対象グループを経由する通信パケットのアドレスを変換する仮想マシンを含む場合、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当て、
前記対象グループに割り当てたアドレスを前記管理装置に通知し、
前記管理装置は、前記対象グループに割り当てられたアドレスを、前記対象グループ中でアドレス変換を伴う通信処理を行う仮想マシンに設定する
ことを特徴とする通信システム。
（付記１１）
前記制御装置は、
アドレスを割り当てる対象のグループである対象グループ中の仮想マシンが行う処理の種類を用いて、前記対象グループで行われるアドレス変換のパターンを特定し、
前記パターンと前記対象グループ中の仮想マシンの配置を用いて、前記対象グループ宛のパケットの宛先として使用されるアドレスを前記対象グループに割り当てる
ことを特徴とする付記１０に記載の通信システム。
（付記１２）
前記管理装置は、
前記通信パケットが前記対象グループから出力される際の送信元アドレスとして通知された送信設定アドレスを、前記対象グループを経由する通信パケットの送信元アドレスを変更する仮想マシンに割り当て、
前記通信パケットが前記対象グループに到達するための宛先アドレスとして通知された宛先設定アドレスを、前記通信パケットの宛先アドレスを変更する仮想マシンに割り当てる
ことを特徴とする付記１０または１１に記載の通信システム。
【符号の説明】
【０１１１】
５  通信装置
７  サービスチェイン
８  ＶＮＦ
１０  管理サーバ
２０  制御装置
２１、５１  送信部
２２、５２  受信部
２３、５３  通信部
３０、６０  制御部
３２、６１  パス計算部
３３  特定部
３４、６３  割り当て部
３５  経路情報生成部
４０、７０  記憶部
４１、７１  トポロジーテーブル
４２、７２  アドレス変換タイプテーブル
５０  管理装置
６２  取得部
６４  経路決定部
８０  ルータ
１０１  プロセッサ
１０２  メモリ
１０３  入力装置
１０４  出力装置
１０５  バス
１０６  記憶装置
１０７  ネットワークインタフェース
１０８  ネットワーク
【図２】
2017041846.tif 000003
【図３】
2017041846.tif 000004
【図４】
2017041846.tif 000005
【図５】
2017041846.tif 000006
【図６】
2017041846.tif 000007
【図７】
2017041846.tif 000008
【図８】
2017041846.tif 000009
【図９】
2017041846.tif 000010
【図１０】
2017041846.tif 000011
【図１１】
2017041846.tif 000012
【図１３】
2017041846.tif 000013
【図１４】
2017041846.tif 000014
【図１５】
2017041846.tif 000015
【図１６】
2017041846.tif 000016
【図１７】
2017041846.tif 000017
【図１８】
2017041846.tif 000018
【図１９】
2017041846.tif 000019
【図２１】
2017041846.tif 000020
【図２２】
2017041846.tif 000021
【図２３】
2017041846.tif 000022
【図２４】
2017041846.tif 000023
【図１】
2017041846.tif 000024
【図１２】
2017041846.tif 000025
【図２０】
2017041846.tif 000026