JP2016100625A - 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム - Google Patents
経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム Download PDFInfo
- Publication number
- JP2016100625A JP2016100625A JP2014233578A JP2014233578A JP2016100625A JP 2016100625 A JP2016100625 A JP 2016100625A JP 2014233578 A JP2014233578 A JP 2014233578A JP 2014233578 A JP2014233578 A JP 2014233578A JP 2016100625 A JP2016100625 A JP 2016100625A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- packet
- information
- virtual machine
- route
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
Abstract
【課題】仮想マシンの移動に追従した仮想ルータのルーティング制御を行う、経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システムを提供する。
【解決手段】第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する、処理をコンピュータに実行させる。
【選択図】図6
【解決手段】第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する、処理をコンピュータに実行させる。
【選択図】図6
Description
本発明は、経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システムに関する。
IaaS(Infrastructure as a Service:IaaS)は、コンピュータシステムの稼働に必要なハードウェア資源を利用者に提供するサービスである。IaaSは、利用者が要求した仮想マシンと仮想ネットワークからなるシステムをハードウェア基盤上に構築し、利用者に提供する。
仮想マシンは、仮想ルータ及び仮想ネットワークを介して、他の仮想マシンと通信する。この仮想ルータを、仮想マシンを搭載する物理マシンに分散させる方式(分散ルータ方式)がある。仮想ルータは、仮想マシンから送信されたパケットに応じてルーティング処理を行い、通信先の仮想マシンを搭載する物理マシンに送信する。
一方、IaaSの管理者は、データセンタ内のハードウェア資源の再分配や物理マシンのメンテナンス等のために、ある物理マシン上で動作している仮想マシンを他の物理マシンに移動(マイグレーションともいう)する。仮想マシンの移動については、例えば、特許文献1、2に記載される。
仮想マシンの移動に伴って、仮想マシンは、移動後の物理マシンで動作する仮想ルータを、デフォルトルートに変更する。また、IaaSの管理装置は、仮想マシンの移動を検知すると、全ての仮想ルータに、ルーティングテーブルの変更を通知する。これにより、移動した仮想マシンと他の仮想マシンは、通信可能になる。
デフォルトルートの設定を変更するために、例えば、仮想マシンでエージェントを動作させる方法がある。エージェントは、仮想マシンの移動に伴って、デフォルトルートを変更する。
しかしながら、IaaSでは、IaaSの管理者が利用者にハードウェア資源を提供し、利用者がハードウェア資源に仮想マシンを構築する。したがって、仮想マシンは、利用者が独自に構築するものであるから、管理側で変更することは好ましくない。また、管理者の都合による仮想マシンの移動のために、仮想マシンで、エージェント等のプログラムを動作させることは避けるほうが望ましい。
1つの側面は、本発明は、仮想マシンの移動に追従した仮想ルータのルーティング制御を行う、経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システムを提供することを目的とする。
第1の側面は、第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する、処理をコンピュータに実行させる。
第1の側面によれば、利用者側の仮想マシンを変更することなく、管理者側の責任範囲で仮想マシンの移動に追従したルーティング制御を行うことにより、仮想マシンの移動による通信の不通時間を抑制する。
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[情報処理システム]
図1は、本実施の形態における情報処理システムのブロック図の一例を示す図である。図1に示す情報処理システムは、データセンタDcと、管理者のクライアント装置60と、利用者のクライアント装置30a、30bとを含む。データセンタDcは、複数の物理マシン(以下、サーバ装置と称する)10a〜10cと、管理サーバ装置20と、ゲートウェイ装置40とを含む。複数のサーバ装置10a〜10c、管理サーバ装置20、及び、ゲートウェイ装置40は、有線または無線のネットワーク50によって接続する。ネットワーク50は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)などである。
図1は、本実施の形態における情報処理システムのブロック図の一例を示す図である。図1に示す情報処理システムは、データセンタDcと、管理者のクライアント装置60と、利用者のクライアント装置30a、30bとを含む。データセンタDcは、複数の物理マシン(以下、サーバ装置と称する)10a〜10cと、管理サーバ装置20と、ゲートウェイ装置40とを含む。複数のサーバ装置10a〜10c、管理サーバ装置20、及び、ゲートウェイ装置40は、有線または無線のネットワーク50によって接続する。ネットワーク50は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)などである。
図1に示す情報処理システムは、コンピュータシステムの稼働に必要な基盤そのものを利用者に提供するIaaS(Infrastructure as a Service:IaaS)システムである。情報処理システム(以下、IaaSシステムと称する)は、仮想マシンと仮想ネットワークからなる仮想システムを、利用者(以下、テナントともいう)に提供するサービスを指す。
IaaSシステムは、利用者の仮想システムを構築するサーバ装置10a〜10c(サーバ装置10ともいう)と、IaaSシステムを管理する管理サーバ装置20から構成される。管理サーバ装置20は、IaaSシステム内のサーバ装置10a〜10c、物理ネットワーク50、物理ストレージ装置(図示せず)等の計算機資源を管理する機能を有する。複数のサーバ装置10a〜10cのそれぞれは、例えば、数十のデータ処理装置で構成され、ラックに設置される。なお、サーバ装置10a〜10cの数は、図1の例に限定されるものではない。
サーバ装置10a〜10cは、IaaSシステム内の計算機資源であり、自装置のハードウェア資源を仮想化して、複数の異なるOS(Operating System:OS)を実行可能なコンピュータである。サーバ装置10a〜10cのハードウェア構成は、図21にしたがって後述する。
サーバ装置10a〜10cは、仮想マシンvma、vmbを配備する。仮想マシンvma、vmbは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。サーバ装置10a〜10cでは、ハイパ−バイザ(hypervisor)Hyが動作し、ハイパ−バイザHy上で1つ以上の仮想マシンvma、vmbが動作する。仮想マシンvma、vmb(仮想マシンvmともいう)の実体は、例えば、プログラムやOSなどのソフトウェア、及び、ソフトウェアを実行させるためのハードウェア資源を指定する情報等を含むものである。仮想マシンvma、vmbは、OSw1、w2を動作させる。また、各OSw1、w2では、例えば、利用者が提供するサービスを実行するアプリケーションプログラムap1、ap2が動作する。
また、ハイパ−バイザHy上では、ソフトSW(SWitch:SW)/分散ルータ(以下、仮想ルータと称する)vraが動作する。仮想ルータvraは、仮想システムを形成する構成要素であり、仮想システム内の仮想マシン間で送受信されるパケットのIP(Internet Protocol:IP)ルーティング機能を有する。仮想ルータvra(仮想ルータvrともいう)は、ハイパ−バイザHy上の仮想NIC(Network Interface Controller:NIC)を介して仮想マシンvma、仮想マシンvmbと接続する。
IaaSシステムでは、利用者が、提供されたハードウェア資源に基づいて、仮想マシンを構築する。したがって、仮想マシンvma、vmbは、利用者の専用(責任)範囲に該当する。つまり、管理者が、仮想マシンvma、vmbの設定を変更する場合や、仮想マシンvma、vmbで任意のプログラムを動作させる場合、利用者の許可が必要になる。一方、仮想ルータvraは、管理者側の責任範囲に該当する。
管理サーバ装置20は、例えば、仮想システムの配備要求に応じて、サーバ装置10や物理的なネットワーク等を仮想システムに割り当てる。また、管理サーバ装置20は、例えば、仮想マシンvmの配置変更、起動、停止要求等に応じて、サーバ装置10a〜10c上の仮想マシンvma、vmbの移動、起動、停止等の制御を行う。また、管理サーバ装置20は、サーバ装置10a〜10c上の仮想ルータvraの起動、停止等の制御を行う。
クライアント装置60は、IaaSシステムの管理者が使用するコンピュータである。クライアント装置60は、例えば、パーソナルコンピュータ等である。管理者は、クライアント装置60を介して、管理サーバ装置20にアクセスする。クライアント装置60は、例えば、管理サーバ装置20と有線または無線のネットワーク70を介して接続する。
また、ゲートウェイ装置40は、データセンタDcとクライアント装置30a、30bとの相互接続を実行する。クライアント装置30a、30bは、IaaSシステムの利用者が使用するコンピュータである。クライアント装置30a、30bは、例えば、パーソナルコンピュータや、携帯端末装置である。クライアント装置30a、30bは、インターネット80を介して、ゲートウェイ装置40と接続し、仮想システムと接続する。
図2は、図1で説明した管理サーバ装置20で動作するIaaS管理プログラムの概要を説明する図である。IaaS管理プログラム310は、図1で説明したIaaSシステムの管理処理を行うプログラムである。図2において、図1で示したものと同一のものは、同一の記号で示す。なお、本実施の形態例におけるIaaS管理プログラム310のソフトウェアブロック図については、図14で後述する。
図2に示す仮想システムVSは、利用者による配備要求に基づいて形成された仮想システムVSの一例である。図2の仮想システムVSは、仮想マシンvma〜vmdと、仮想ルータvraと、を含む。仮想マシンvma〜vmdと仮想ルータvraは、テナント専用の仮想ネットワークnw1によって相互に接続する。仮想システムVSは、例えば、図1に示す複数のサーバ装置10にしたがって構成される。
利用者(テナント、IaaSシステムの顧客ともいう)は、図1に示したクライアント装置30a、30bを介して、IaaS管理プログラム310に、仮想システムVSの配備、変更、撤収を要求する。また、管理者は、IaaS管理プログラム310にアクセスし、仮想マシンvmの配備状態の表示を指示する。
また、管理者は、クライアント装置60を介して、IaaS管理プログラム310に、仮想マシンのライブマイグレーション(以下、マイグレーションと称する)を指示する。マイグレーションは、あるサーバ装置10上で動作中の仮想マシンvmを停止することなく、別のサーバ装置10に移動して処理を継続させる機能を示す。図1に示したIaaSシステムでは、ハードウェア資源の再分配やメンテナンス等のために、管理者はマイグレーションを指示する。
IaaS管理プログラム310は、利用者による配備要求に基づいて、仮想システム構成情報21を生成する。仮想システム構成情報21は、仮想システムVSを形成する仮想マシンvmの識別情報や、仮想マシンvmの数、仮想ネットワークnw1の構成等を有する。また、IaaS管理プログラム310は、仮想システム構成情報21に基づいて、物理配置構成情報22を作成する。物理配置構成情報22は、仮想マシンvmと、仮想マシンvmを搭載するサーバ装置10との対応関係を有する。
IaaS管理プログラム310は、物理配置構成情報22に基づいて、仮想マシンvm及び仮想ネットワークnw1の配備、移動、削除等を行う。また、IaaS管理プログラム310は、表示の指示に応答して、物理配置構成情報22に基づいて、仮想システムVSの配備状態をクライアント装置60(図1)に出力する。
図3は、図1に示したIaaSシステムの部分詳細図である。図3において、図1で示したものと同一のものは、同一の記号で示す。図3では、サーバ装置10a、10bの仮想化構成を例示する。
図3に示すサーバ装置10aでは、仮想ルータ(ソフトSW/分散ルータ)vraと、2つの仮想マシンvma、vmbが動作する。仮想マシンvma、vmbと仮想ルータvraは、TCP(Transmission Control Protocol)/IP(Internet Protocol)等のネットワークを介して通信する。仮想マシンvma、vmbは、デフォルトルートを仮想ルータvraに設定することによって、仮想ルータvraを介して、他のサーバ装置10bが搭載する仮想マシンvmc、vmdと通信する。サーバ装置10bについても、サーバ装置10aと同様である。
また、仮想ルータvra、vrbは、実線で示す、テナントネットワーク(図2の仮想ネットワーク)nw1を介して、互いに接続する。また、仮想ルータvra、vrbは、点線で示す、仮想ネットワークである管理ネットワークnw2を介して、管理サーバ装置20と接続する。なお、仮想ルータvraは、ソフトウェア的に増減設可能であり、専用のサーバ装置(図示せず)で動作させてもよく、仮想マシンの一種として、汎用のサーバ装置(図示せず)上で動作させてもよい。
また、図3は、管理サーバ装置20のハードウェア構成図を示す。図3に示す管理サーバ装置20は、例えば、CPU(Central Processing Unit:CPU)101、RAM(Random Access Memory:RAM)120や不揮発性メモリ121等を備えるメモリ102、通信インタフェース部103を有する。各部は、バス104を介して相互に接続する。通信インタフェース部103は、管理ネットワークnw2を介してサーバ装置10a〜10bやクライアント装置60(図1)等と接続する。
CPU101は、バス104を介してメモリ102等と接続するとともに、管理サーバ装置20全体の制御を行う。メモリ102のRAM120は、CPU101が処理を行うデータ等を記憶する。
メモリ102の不揮発性メモリ121は、CPU101が実行するOSのプログラムを格納する領域(図示せず)や、OS上で動作するIaaS管理プログラムを格納する格納領域310を備える。また、不揮発性メモリ121は、テナント仮想システム管理情報格納領域410を備える。不揮発性メモリ121は、HDD(Hard disk drive:HDD)、不揮発性半導体メモリ等で構成される。
IaaS管理プログラム格納領域310のIaaS管理プログラム(以下、IaaS管理プログラム310と称する)は、CPU101の実行によって、本実施の形態例におけるIaaSシステムの管理処理を実現する。処理の詳細は、図14にしたがって後述する。
テナント仮想システム管理情報格納領域410のテナント仮想システム管理情報(以下、テナント仮想システム管理情報410と称する)は、IaaS管理プログラム310が利用する情報である。テナント仮想システム管理情報410は、図2に示した物理配置構成情報22を示す。テナント仮想システム管理情報410の詳細は、図14にしたがって後述する。
[分散ルータ方式]
図3に示すように、本実施の形態例では、分散ルータ方式を採用する。分散ルータ方式によると、仮想ルータvra、vrbは、仮想マシンvma〜vmdを搭載するサーバ装置10a、10bのそれぞれに分散して位置する。即ち、本実施の形態例では、仮想ルータvra、vrbが、仮想システム内の一箇所の仮想マシン(図示せず)に位置するのではなく、仮想マシンvma〜vmdを搭載するサーバ装置10a、10bのそれぞれに分散して位置する。分散ルータ方式を採用する場合、通信のトラフィック量を抑制可能になる。
図3に示すように、本実施の形態例では、分散ルータ方式を採用する。分散ルータ方式によると、仮想ルータvra、vrbは、仮想マシンvma〜vmdを搭載するサーバ装置10a、10bのそれぞれに分散して位置する。即ち、本実施の形態例では、仮想ルータvra、vrbが、仮想システム内の一箇所の仮想マシン(図示せず)に位置するのではなく、仮想マシンvma〜vmdを搭載するサーバ装置10a、10bのそれぞれに分散して位置する。分散ルータ方式を採用する場合、通信のトラフィック量を抑制可能になる。
仮想ルータvrが、仮想システム内の一箇所の仮想マシンvmに位置する場合を例示する。仮想ルータvrが、一箇所の仮想マシンvmに位置する場合、仮想マシン間の全パケットは当該一箇所の仮想ルータvrを通過する。したがって、仮想システム内のそれぞれのパケットは、仮想ルータvrを搭載するサーバ装置10に到達し、折り返して宛先の仮想マシンvmを搭載するサーバ装置10に到達する。これにより、無駄なトラフィックが発生する。
一方、分散ルータ方式を採用する場合、仮想マシンvmaを搭載するサーバ装置10aで動作する仮想ルータvra(図3)が、仮想マシンvmaを送信元とするパケットのルーティング処理を実行する。そして、仮想ルータvraは、ルーティング処理の結果に基づいて、トンネルパケットを生成し、宛先の仮想マシン(例えば、vm2)を搭載するサーバ装置10bに直接、送信する。トンネルパケットについては、図6にしたがって後述する。
分散ルータ方式によると、パケットは、サーバ装置10aの仮想マシンvra、vrbから、仮想ルータvraを介し、テナントネットワークnw1を経由して、サーバ装置10bの仮想ルータvrbに到達する。つまり、分散ルータ方式によると、仮想ルータvraからサーバ装置10bにパケットを直接送信することが可能になり、通信のトラフィック量を抑制可能になる。
ただし、分散ルータ方式によると、通信トラフィックを抑制できるものの、マイグレーションの発生時に、通信の不通時間が生じる場合がある。マイグレーション発生時における通信処理を、図4にしたがって後述する。また、分散ルータ方式によると、往復のパケットの往路と復路の経路が異なる場合がある。分散ルータ方式における、往復パケットの往路と復路の経路を、図5にしたがって後述する。
[マイグレーション]
図4は、分散ルータ方式における、マイグレーション発生時の通信処理を説明する図である。図4において、図3で示したものと同一のものは、同一の記号で示す。なお、図4では、仮想ルータvrとサーバ装置10とを別々に図示しているが、仮想ルータvr1はサーバ装置10aで動作し、仮想ルータvr2はサーバ装置10bで動作する。また、仮想ルータvr3はサーバ装置10cで動作する。
図4は、分散ルータ方式における、マイグレーション発生時の通信処理を説明する図である。図4において、図3で示したものと同一のものは、同一の記号で示す。なお、図4では、仮想ルータvrとサーバ装置10とを別々に図示しているが、仮想ルータvr1はサーバ装置10aで動作し、仮想ルータvr2はサーバ装置10bで動作する。また、仮想ルータvr3はサーバ装置10cで動作する。
図4の例では、マイグレーション前、仮想マシンvm1はサーバ装置10aで動作し、仮想マシンvm1のデフォルトルートは仮想ルータvr1を指す。したがって、仮想マシンvm1は、仮想ルータvr1を介して、他の仮想マシンvm2と通信する。また、仮想マシンvm2はサーバ装置10bで動作し、仮想マシンvm2のデフォルトルートは仮想ルータvr2を指す。
図4の例では、マイグレーションによって、仮想マシンvm1が、サーバ装置10aから、サーバ装置10cに移動する。仮想マシンvm1が、サーバ装置10aからサーバ装置10cに移動すると、移動後の仮想マシンvm1はデフォルトルートを、仮想ルータvr3に変更しない限り、他の仮想マシンvm2と通信できない。このように、デフォルトルートを迅速に変更できない場合、通信の不通時間が生じ得る。
通信の不通時間を抑制するために、仮想マシンvm1〜vm3でエージェント(図示せず)を動作させ、エージェントに、デフォルトルートの設定を変更させる方法が検討される。つまり、仮想マシンvm1、vm2上で、管理サーバ装置20と連動するエージェントを動作させる。そして、仮想マシンvm1のエージェントは、マイグレーションを検出すると、デフォルトルートを仮想ルータvr3に変更する。これにより、移動した仮想マシンvm1は、他の仮想マシンvm2と通信可能になる。
また、あわせて、マイグレーションの発生に応じて、図4に示す管理サーバ装置20は、管理用ネットワークnw2を介して、全ての仮想ルータvr1〜vr3に、仮想マシンvm1の移動後のサーバ装置10cの情報を通知する。
ただし、前述したように、IaaSシステムでは、IaaSシステムの管理者と、利用者(顧客)との間に、責任分界点がある。図1で前述したとおり、IaaSシステムでは、仮想マシンvm1、vm2は利用者の管轄である。一方、仮想ルータvra、vrbは、管理者の管轄である。
したがって、管理者は、利用者の許可なく、仮想マシンvmの設定を変更することはできない。また、管理側の都合で発生させるマイグレーションのために、仮想マシンvmで、エージェント等のプログラムを動作させることは避けることが望ましい。したがって、仮想マシンvma、vmbの設定変更を要することなく、マイグレーションに追従した、仮想ルータvrのルーティング制御を実現することが求められる。
また、図4の例によると、マイグレーション発生後、管理サーバ装置20が、全ての仮想ルータvr1〜vr3に、仮想マシンvm1の移動後のサーバ装置10cの情報を通知する。IaaSシステムは、例えば、数万の規模の仮想マシンvmを管理する。したがって、仮想マシンの数をnとする場合、1つの仮想マシンvm1マイグレーションに対してn回の通知処理が生じるため、負荷は値「O(n2)(Order:O)」と高くなる。つまり、仮想マシンvmの数に応じて、管理サーバ装置20の負荷が大幅に増大してしまう。
したがって、管理サーバ装置20の負荷を増大させることなく、マイグレーションに追従した、仮想ルータvrのルーティング制御を実現することが求められる。
なお、管理サーバ装置20に代わりに、DHCP(Dynamic Host Configuration Protocol:DHCP)サーバ(不図示)がデフォルトルートを設定する場合、仮想マシンvm1、vm2は、定期的に、DHCPサーバにデフォルトルートを問い合わせる。ただし、仮想マシンvm1、vm2からDHCPサーバへの問い合わせ間隔と、マイグレーション後の通信の不通時間とは、トレードオフの関係にある。したがって、不通時間を短縮しようとすると、DHCPサーバの負荷が増大してしまう。
したがって、本実施の形態例では、仮想マシンvmのマイグレーション時に、仮想ルータvrも合わせて、マイグレーション先のサーバ装置10に移動する。これにより、仮想マシンvmは、マイグレーション後、デフォルトルートの設定を変更する必要がない。ただし、マイグレーション後の仮想ルータvrは、マイグレーション先のサーバ装置10における経路情報を有していない。
したがって、本実施の形態例におけるIaaS管理プログラム310は、仮想ルータvrからの経路情報の問い合わせに応じて、パケットの経路情報を生成し、問い合わせ元の仮想ルータvrに送信する。具体的に、IaaS管理プログラム310は、図4に示す仮想ルータvrから、仮想マシンvm1から仮想マシンvm2への通信の経路情報の問い合わせを受信する。
そして、IaaS管理プログラム310は、仮想マシンvm2の識別情報と、テナント仮想システム管理情報410(図3、構成情報)に基づいて、仮想マシンvm2を搭載するサーバ装置10のネットワーク識別情報(IPアドレス)を含む経路情報を生成する。仮想マシンvmを搭載するサーバ装置10のIPアドレスを、搭載物理マシンIPアドレスと称する。テナント仮想システム管理情報410は、各仮想マシンvmの搭載物理マシンIPアドレスを含む。そして、IaaS管理プログラム310は、生成した経路情報を仮想ルータvrに送信する。
これにより、仮想ルータvrは、IaaS管理プログラム310に問い合わせることによって、宛先の仮想マシンvm2の搭載物理マシンIPアドレス(経路情報)を取得することができる。仮想ルータvrは、経路情報が含む、仮想マシンvm2の搭載物理マシンIPアドレスを、パケットに更新することによって、仮想マシンvm2にパケットを送信することができる。したがって、仮想ルータvrは、仮想マシンvm1がマイグレーションによって移動した場合であっても、仮想マシンvm2にパケットを送信することができる。
または、仮想マシンvm2がマイグレーションにより移動した場合、仮想ルータvrは、IaaS管理プログラム310に問い合わせることによって、宛先の仮想マシンvm2の搭載物理マシンIPアドレス(経路情報)を取得することができる。仮想ルータvrは、経路情報が含む、仮想マシンvm2の搭載物理マシンIPアドレスをパケットに更新することによって、仮想マシンvm2にパケットを送信することができる。したがって、仮想ルータvrは、仮想マシンvm2がマイグレーションによって移動した場合であっても、仮想マシンvm2にパケットを送信することができる。
また、前述したとおり、本実施の形態例では、マイグレーション時に、仮想マシンvmと合わせて、仮想ルータvrも移動する。したがって、仮想マシンvm1、vm2は、デフォルトルートの設定を変更する必要がない。これにより、仮想マシンvm1、vm2の設定の変更を要することなく、マイグレーションに追従した通信を実現可能になる。即ち、利用者の仮想システムに影響を生じさせることなく、管理者側の責任範囲で、仮想マシンvmの移動に追従したルーティング制御が可能になる。詳細は、図6、図7で後述する。
[往復経路の一致]
図5は、分散ルータ方式における、往復の経路の一致について説明する図である。図5において、図3で示したものと同一のものは、同一の記号で示す。なお、図5では、仮想ルータvrとサーバ装置10とを別々に図示しているが、仮想ルータvr1はサーバ装置10aで動作し、仮想ルータvr2はサーバ装置10bで動作する。また、仮想ルータvr3はサーバ装置10c(図示せず)で動作する。
図5は、分散ルータ方式における、往復の経路の一致について説明する図である。図5において、図3で示したものと同一のものは、同一の記号で示す。なお、図5では、仮想ルータvrとサーバ装置10とを別々に図示しているが、仮想ルータvr1はサーバ装置10aで動作し、仮想ルータvr2はサーバ装置10bで動作する。また、仮想ルータvr3はサーバ装置10c(図示せず)で動作する。
分散ルータ方式によると、仮想ルータvr1〜vr3は、仮想マシンvmを搭載するサーバ装置10に分散して位置する。したがって、ルーティング処理を行う仮想ルータvrは、往路と復路との間で異なる場合が生じる。往路と復路とでルーティング処理を行う仮想ルータvrが異なることにより、往路と復路とで異なる経路が選択される場合がある。
図5の例では、仮想マシンvm1のデフォルトルートは、仮想ルータvr1を指し、仮想マシンvm2のデフォルトルートは、仮想ルータvr2を指す。図5の例によると、仮想マシンvm2を宛先とするパケットを、仮想マシンvm1から受信すると、仮想ルータvr1は、当該パケットのルーティング処理を行う。また、当該パケットが往復パケットの場合、復路では、仮想ルータvr2が、仮想マシンvm1を宛先とするパケットのルーティング処理を行う。
このように、往復のパケットの場合、仮想ルータvr1が、往路のパケットのルーティング処理を行い、仮想ルータvr2が、復路のパケットのルーティング処理を行う。つまり、パケットの送信元の仮想ルータが、ルーティング処理を集約する。したがって、往路のパケットの経路と、復路のパケットの経路が一致しないことがある。
しかしながら、仮想ルータvr1、vr2がロードバランサやNAT(Network Address Translation:NAT)変換機能を備える場合、往路と復路の通信経路を一致させる必要がある。つまり、復路のパケットの経路は、往路で動的に選択された経路の逆の経路である必要がある。
したがって、本実施の形態例におけるIaaS管理プログラム310は、パケットのヘッダ情報(通信に関する第1の情報)と、テナント仮想システム管理情報410(図3)に基づいて、ルーティング処理を行い、経路情報を生成する。テナント仮想システム管理情報410は、さらに、仮想システムVSを構成する各構成要素のネットワーク識別情報(IPアドレス、MAC(Media Access Control address:MAC)アドレス)、IPアドレスの変換情報を含む。また、ルーティング処理は、パケットの経路の選択処理、及び、IPアドレスの変換処理を含む。IaaS管理プログラム310は、生成した経路情報を仮想ルータvrに送信する。
これにより、仮想ルータvrは、復路のパケットの送信時に、IaaS管理プログラム310に問い合わせることによって、往路の逆変換の経路を取得することができる。したがって、実質的に、同一の仮想ルータvrによる、往路及び復路のルーティング処理を実行することが可能になり、往復の経路を一致させることが可能になる。したがって、分散ルータ方式を採用しながら、簡易に、往路と復路の経路を一致させることが可能になる。
また、IaaS管理プログラム310は、往復通信の往路のパケットであるか否かを示す往復フラグ(往復情報)をさらに含む、経路情報を生成する。これにより、仮想ルータvrは、往復フラグに基づいて、パケットが往路のパケットであるかを判定することができる。そして、仮想ルータvrは、パケットが往路のパケットであると判定した場合に、往路の経路と逆方向の復路の経路情報を生成し、保持しておくことができる。
これにより、仮想ルータvrは、復路のパケットの送受信時に、生成済みの復路の経路に基づいて、復路のパケットを生成することができる。したがって、仮想ルータvrは、復路のパケットの送受信時に、復路の経路を問い合わせる必要なく、より効率的に、往路と一致する経路を取得することが可能になる。往復フラグについては、図8のパケットのフォーマット例にしたがって後述する。
次に、本実施の形態例における、図3に示したIaaS管理プログラム310による経路情報の提供処理の概要を説明する。
[経路情報の提供処理の概要]
図6は、マイグレーションにより移動した仮想マシンが、別の仮想マシンにパケットを送信する場合の動作を説明する図である。図6において、図3で示したものと同一のものは、同一の記号で示す。
図6は、マイグレーションにより移動した仮想マシンが、別の仮想マシンにパケットを送信する場合の動作を説明する図である。図6において、図3で示したものと同一のものは、同一の記号で示す。
図6の例では、マイグレーションM1により、仮想マシンvm1及び仮想ルータvr1が、サーバ装置10aからサーバ装置10cに移動する場合を例示する。なお、図6の例では、サーバ装置10cに移動した仮想ルータvr1を、仮想ルータvr3と記述している。
マイグレーション後、仮想マシンvm1は、仮想マシンvm2を宛先とするパケットを送信する。サーバ装置10cで動作する仮想ルータvr3は、仮想マシンvm1からの、新規のIPアドレスを宛先(仮想マシンvm2)とするパケットの受信を契機に、管理サーバ装置20のIaaS管理プログラム310に問い合わせる(n1)。
IaaS管理プログラム310は、テナント仮想システム管理情報410(図3)と、パケットのヘッダ情報(通信に関する第1の情報)に基づいて、パケットのルーティング処理をシミュレートし、経路情報を生成する。ヘッダ情報は、例えば、利用者パケットのEthernet(登録商標)ヘッダ、IPヘッダの情報を含む。
前述したとおり、経路情報は、宛先の仮想マシンvm2の搭載物理マシンIPアドレスと、パケットが往復のパケットであるか否か、及び、往路の復路のパケットであるかを示す往復フラグを含む。また、経路情報は、さらに、送信元の仮想マシンvmから、宛先の仮想マシンvmに対応する仮想ルータvrを介して、当該宛先の仮想マシンvmに到達する、利用者パケットのヘッダ情報(通信に関する第2の情報)を含む。経路情報が含む、利用者パケットのヘッダ情報は、シミュレーションによって、経路途中の1つまたは複数の仮想ルータvrが更新する情報である。
図3に示したように、IaaS管理プログラム310は、仮想システムVSの構成情報を示す、テナント仮想システム管理情報410を有する。前述したとおり、テナント仮想システム管理情報410は、各仮想マシンvmの搭載物理マシンIPアドレスを含む。したがって、IaaS管理プログラム310は、パケットの宛先の仮想マシンvmの識別情報と、テナント仮想システム管理情報410とに基づいて、仮想マシンvm2の搭載物理マシンIPアドレスを取得できる。
また、テナント仮想システム管理情報410は、さらに、仮想システムVSを構成する構成要素(仮想マシンvm、仮想ルータvr等)の論理的なネットワーク識別情報を含む。論理的なネットワーク識別情報は、IPアドレスやMACアドレス、NAT変換情報等である。論理的なネットワーク識別情報は、マイグレーションの発生に応じて変化しない。したがって、IaaS管理プログラム310は、テナント仮想システム管理情報410に基づくことにより、マイグレーションの発生にかかわらず、前述した経路情報を生成することができる。
図6のIaaS管理プログラム310は、生成した経路情報を、問い合わせ元の仮想ルータvr3に送信する。仮想ルータvr3は、受信した経路情報をセッション情報stとして保持する。そして、仮想ルータvr3は、セッション情報stに基づいて、トンネルパケットを生成する(n2)。本実施の形態例では、L2overL3(Layer2:L2、Layer3:L3)トンネリング方式にしたがって、トンネルパケットを生成し、転送する。
L2overL3トンネリング方式は、利用者パケットのL2(Ethernet)フレームをさらにIPパケットで搬送する方式である。L2overL3トンネリング方式では、パケットに利用者の各仮想ネットワークに固有のID情報(仮想ネットワークID)を搭載することにより、テナント固有の仮想ネットワークを実現する。L2overL3トンネリング方式のパケットの詳細については、図8、図9にしたがって後述する。
L2overL3トンネリング方式の例として、GRE(Generic Routing Encapsulation:GRE)(RFC1701)や、VXLAN(Virtual eXtensible Local Area Network:VXLAN)(RFC7348)がある。また、L2overL3トンネリング方式の別の例として、NVGRE(Network Virtualization using Generic Routing Encapsulation:NVGRE)(draft-sridharan-virtualization-nvgre-05)等がある。
具体的に、仮想ルータvr3は、経路情報が含む、宛先の仮想マシンvm2の搭載物理マシンIPアドレス(図6では、サーバ装置10bのIPアドレス)を、トンネルパケットの宛先に指定(更新)する。また、仮想ルータvr3は、経路情報が含む往復フラグを、トンネルパケットに指定(更新)する。また、仮想ルータvr3は、経路情報が含むヘッダ情報を、トンネルパケットの利用者パケットのL2フレームに更新する。
このように、仮想ルータvrは、IaaS管理プログラム310に問い合わせて取得した経路情報に基づいてトンネルパケットを更新し、宛先の仮想マシンvm1を搭載するサーバ装置10bに直接、転送する。
図6に示すように、マイグレーションにより移動した仮想ルータvr1は、IaaS管理プログラム310に問い合わせることにより、宛先の仮想マシンvm2への経路情報を取得できる。したがって、仮想ルータvr1は、マイグレーション後、通信の不通時間を要することなく、他の仮想マシンvm2を宛先とするパケットを送信することができる。
また、前述したとおり、仮想マシンvm1は、仮想ルータvr1もあわせて、サーバ装置10cに移動する。したがって、仮想マシンvm1は、デフォルトルートの設定を変更する必要がない。したがって、仮想マシンvm1は、マイグレーションが発生した場合であっても、設定の変更を要することなく、他の仮想マシンvmを宛先とするパケットを送信することができる。即ち、IaaS管理プログラム310は、利用者側の責任範囲である仮想マシンvm1、vm2を変更することなく、管理者側の責任範囲で、仮想マシンvm1の移動に追従したルーティング制御を可能にする。
図7は、別の仮想マシンが、マイグレーションした仮想マシンを宛先とするパケットを送信する場合の動作を説明する図である。図7において、図3で示したものと同一のものは、同一の記号で示す。図7の例では、図6と同様にして、マイグレーションM1により、仮想マシンvm1及び仮想ルータvr1が、サーバ装置10aからサーバ装置10cに移動する場合を例示する。
図7の例では、マイグレーション後、サーバ装置10bが搭載する仮想マシンvm2が、仮想マシンvm1を宛先とするパケットを送信する。サーバ装置10bで動作する仮想ルータvr2は、当該パケットを受信すると、マイグレーション前に取得したセッション情報stに基づいて、仮想マシンvm1を搭載していたサーバ装置10aにパケットを送信する(n11)。
サーバ装置10aで動作する仮想ルータvr1は、マイグレーションした仮想マシンvm1を宛先とするパケットを受信すると、管理サーバ装置20のIaaS管理プログラム310に問い合わせる(n12)。IaaS管理プログラム310は、図6と同様にして、仮想マシンvm1への経路情報を生成し、仮想ルータvr1に送信する。
このように、仮想ルータvr1は、パケットの宛先の仮想マシンvm1が移動している場合であっても、IaaS管理プログラム310に問い合わせることによって、仮想マシンvm1の搭載物理マシンIPアドレスを取得することができる。
仮想ルータvr1は、受信した経路情報をセッション情報stとして保持し、仮想マシンvm1の搭載物理マシンIPアドレスを有する物理マシン更新パケットを生成して、仮想ルータvr2に送信する(n13)。
物理マシン更新パケットは、マイグレーションにより移動した仮想マシンの搭載物理マシンIPアドレスを、他の仮想ルータvrに通知するパケットである。つまり、仮想ルータvr1は、仮想マシンvm1を宛先とするパケットを生成する別の仮想ルータvr2に、仮想マシンvm1への経路情報を通知する。物理マシン更新パケットの詳細は、図9で後述する。
仮想ルータvr2は、受信した物理マシン更新パケットが有する、仮想マシンvm1の搭載物理マシンIPアドレスをセッション情報stとして保持する。そして、仮想ルータvr2は、仮想マシンvm1の搭載物理マシンIPアドレスに基づいて、サーバ装置10cの仮想マシンvm1を宛先とするトンネルパケットを生成し、送信する(n14)。このように、仮想ルータvr2は、仮想ルータvr1が代表して問い合わせて取得した経路情報に基づいて、仮想マシンvm1にパケットを送信することができる。
また、仮想ルータvr1は、別の仮想マシンvm4から、仮想マシンvm1を宛先とするパケットを受信すると(n15)、保持するセッション情報stに基づく物理マシン更新パケットを、仮想ルータvr4に送信する(n16)。仮想ルータvr2と同様にして、仮想ルータvr4は、物理マシン更新パケットが有する、仮想マシンvm1の搭載物理マシンIPアドレスをセッション情報stとして保持し、トンネルパケットを生成し、サーバ装置10cに送信する(n17)。
図7に示すように、1つの仮想ルータ(図7では仮想ルータvr1)は、代表して、IaaS管理プログラム310に、仮想マシンvm1への経路情報を問い合わせる。そして、問い合わせた仮想ルータvr1は、取得した経路情報を、セッション情報stとして保持する。そして、仮想ルータvr1は、仮想マシンvm1を宛先とするパケットを受信した場合に、パケットの送信元の仮想ルータvr2、vr4に、セッション情報stに基づいて生成した物理マシン更新パケットを送信する。
このように、仮想ルータvr1は、仮想マシンvm1を宛先とするパケットの送信元の仮想マシンvm2、vm4の対応仮想ルータvr2、vr4に、仮想マシンvm1の搭載物理マシンIPアドレスを伝搬する。これにより、仮想マシンvm2、vm4は、仮想マシンvm1と迅速に通信可能になる。したがって、対向仮想マシンvm2、vm4は、不通時間を要することなく、マイグレーションした仮想マシンvm1にパケットを送信できる。
また、仮想ルータvr1は、移動した仮想マシンvm1を宛先とするパケットの受信を契機として、代表して、仮想マシンvm1の新しい搭載物理マシンIPアドレスを問い合わせる。つまり、1つの仮想ルータvr1が、代表して、仮想マシンvm1への経路情報をIaaS管理プログラム310に問い合わせる。これにより、IaaS管理プログラム310に対する、仮想マシンvm1への経路情報の問い合わせ回数は、1回に抑えることが可能になる。
したがって、IaaS管理プログラム310への問い合わせ回数は、仮想マシンの数nに対して値「O(n)(Order:O)」となる。したがって、数万の仮想マシンvmを管理し、分散ルータ方式を採用する、大規模なIaaSシステムであっても、マイグレーション発生時のIaaS管理プログラム310の負荷を抑えることが可能になる。
なお、仮想マシンvm1にパケットを送信する可能性がある全ての仮想ルータvrのセッション情報stを更新すると、トラフィックが増加してしまう。必ずしも、仮想マシンvm1にパケットを送信する可能性がある全ての仮想ルータvrのセッション情報stを更新する必要はない。しかし、仮想マシンvm1にパケットを実際に送信する仮想ルータvrを、事前に検出することは容易ではない。
したがって、仮想ルータvr1は、仮想マシンvm1を宛先とするパケットを受信した場合に、パケットの送信元に、新しい搭載物理マシンIPアドレスを通知する。したがって、仮想ルータvr1は、仮想マシンvm1に実際にパケットを送信する仮想ルータvrにのみ、新しい搭載物理マシンIPアドレスを通知することができる。これにより、本実施の形態例によると、負荷を抑えながら、簡易に、更新すべき、仮想ルータvrのセッション情報stを更新することが可能になる。
次に、図8、図9にしたがって、図6、図7で説明した仮想マシン間のトンネルパケットのフォーマット例を説明する。図8は、利用者のデータを保持するトンネルパケットのフォーマットの一例を示し、図9は、図7で説明した物理マシン更新パケットのフォーマットの一例を示す。
[トンネルパケットのフォーマット]
図8は、図6で説明した、利用者のデータを保持するトンネルパケットのフォーマットの一例を説明する図である。図6で前述したとおり、本実施の形態例におけるトンネルパケットPKaは、L2overL3トンネリング方式に基づくパケットである。
図8は、図6で説明した、利用者のデータを保持するトンネルパケットのフォーマットの一例を説明する図である。図6で前述したとおり、本実施の形態例におけるトンネルパケットPKaは、L2overL3トンネリング方式に基づくパケットである。
図8に示すパケットPKaのフォーマットは、前述したVXLANの規格(RFC7348)に基づくパケットPKaの、往復フラグfg1の実装例である。図8に示すように、パケットPKaは、トンネルヘッダと、利用者のEterhnetフレームとを有する。また、トンネルヘッダは、トンネルのUDP(User Datagram Protocol:UDP)/IPヘッダと、VXLANヘッダを有する。
仮想ルータvrは、IaaS管理プログラム310に問い合わせて取得した経路情報が含む、宛先の仮想マシンvmの搭載物理マシンIPアドレスを、UDP/IPヘッダに設定する。また、仮想ルータvrは、経路情報が含む更新ヘッダ情報を、利用者のEterhnetフレームに設定する。これにより、仮想ルータvrは、宛先の仮想マシンvmに到達するパケットを生成することができる。
また、本実施の形態例では、経路情報が含む往復フラグfg1を、VXLANヘッダの8バイト目の予約済(Reserved)領域の下位2ビットに付加する。下位2ビットが値「00」の場合、片道のパケットであることを示し、値「01」の場合、規定なし(エラー)を示す。また、下位2ビットが値「10」の場合、往復セッションの往路のパケットであることを示し、値「11」の場合、往復セッションの復路のパケットであることを示す。
トンネルパケットPKaが往復フラグfg1を有することによって、仮想ルータvrは、パケットPKaが往復セッションに基づくパケットであるか否か、往路または復路のパケットのいずれであるかを判定可能になる。つまり、仮想ルータvrは、送受信するトンネルパケットPKaが、NAT変換等を伴うパケットであるか否か、NAT変換等のクライアント側のパケットであるか否かを判定可能になる。
そして、仮想ルータvrは、往路のトンネルパケットPKaの送受信時に、復路の経路情報を生成して保持しておくことができる。また、仮想ルータvrは、復路のトンネルパケットPKaの送受信時に、往路で生成した復路の経路情報に基づいて、トンネルパケットPKaを更新することが可能になる。これにより、パケットの往路と復路の経路を一致させることが可能になる。
図9は、図7で説明した物理マシン更新パケットPKbのフォーマットの一例を説明する図である。図9に示す物理マシン更新パケットPKbのフォーマットは、図8と同様にして、VXLAN(RFC7348)の規格に基づく。
本実施の形態例では、物理マシン更新パケットPKbを示すフラグfg2を、VXLANヘッダの8バイト目の予約済(Reserved)領域の下位3ビットに付加する。また、物理マシン更新パケットPKbは、利用者パケットのL2フレームの代わりに、移動した仮想マシンのIPアドレス及び搭載物理マシンIPアドレスを有する。
[IaaS管理プログラム、及び、仮想ルータの処理の流れ]
次に、図6、図7に示した、マイグレーション発生時のIaaS管理プログラム310、及び、仮想ルータvrの処理の流れを説明する。
次に、図6、図7に示した、マイグレーション発生時のIaaS管理プログラム310、及び、仮想ルータvrの処理の流れを説明する。
図10は、図7に示した、マイグレーションして移動した仮想マシンvmが、対向仮想マシンvmからパケットを受信する場合の処理の流れを説明する図(その1)である。したがって、マイグレーションして移動した仮想マシンvmは、図7の仮想マシンvm1に対応し、対向仮想マシンvmは図7の仮想マシンvm2に対応する。
x1:対向仮想マシンvm2を搭載するサーバ装置10bの仮想ルータ(以下、対向仮想マシンの仮想ルータ)vr2は、対向仮想マシンvm2から、仮想マシン(以下、宛先の仮想マシン)vm1を宛先とするパケットを受信する(a1)。このとき、仮想ルータvr2は、宛先の仮想マシンvm1の、マイグレーション前のセッション情報(以下、旧情報)stを有する。
対向仮想マシンの仮想ルータvr2は、旧情報に基づいてトンネルパケットPKaを生成し送信する(a2、図7のn11)。これにより、トンネルパケットPKaは、マイグレーション前に、宛先の仮想マシンvm1を搭載していたサーバ装置(以下、旧物理マシン)10aで動作する仮想ルータvr1に到達する。
x2:旧物理マシン10aの仮想ルータvr1は、自マシンでトンネルパケットPKaの宛先の仮想マシンvm1が動作しているか否かを判定する。この場合、仮想マシンvm1はマイグレーションしたことにより、自マシンでは動作していない。したがって、旧物理マシンの仮想ルータvr1は、パケットを破棄し、管理サーバ装置20のネットワーク管理モジュール312に、管理ネットワークnw2を介して、仮想マシンvm1への経路情報を問い合わせる(a3、図7のn12)。
x3:ネットワーク管理モジュール312は、シミュレーション処理によって、宛先の仮想マシンvm1へ経路情報を生成し、問い合わせ元の仮想ルータvr1に送信する(a4、図7のn12)。
x4:仮想ルータvr1は、受信した経路情報を、セッション情報stとして記憶する。また、仮想ルータvr1は、セッション情報stに基づいて、図9に示した物理マシン更新パケットPKbを生成し、対向仮想マシンの仮想ルータvr2に送信する(a5、図7のn13)。
x5:対向仮想マシンの仮想ルータvr2は、受信した物理マシン更新パケットPKbに基づいて、セッション情報stを更新する。具体的に、仮想ルータvr2は、物理マシン更新パケットPKbが含む仮想マシンvm1の搭載物理マシンIPアドレスにしたがって、仮想マシンvm1を宛先とするセッション情報stを、更新する。
x6:再び、仮想マシンvm1を宛先とするパケットを受信すると(a6)、対向仮想マシンの仮想ルータvr2は、工程x5で更新したセッション情報stに基づいて、トンネルパケットPKaを生成し、送信する(a7、図7のn14)。これにより、トンネルパケットPKaは、マイグレーション後の仮想マシンvm1を搭載するサーバ装置(以下、新物理マシン)10cに到達する。
x7:新物理マシン10cで動作する仮想ルータvr3は、受信したトンネルパケットPKaを解析し、宛先の仮想マシンvm1に転送する。
図11は、図7に示した、マイグレーションして移動した仮想マシンvmが、対向仮想マシンvmからパケットを受信する場合の処理の流れを説明する図(その2)である。図10の後、仮想ルータvr1が、対向仮想マシンvm2とは他の対向仮想マシンvm4から、宛先の仮想マシンvm1へのパケットを受信する場合を例示する。
x8:他の対向仮想マシンvm4を搭載するサーバ装置10dの仮想ルータ(以下、他の対向仮想マシンの仮想ルータ)vr4は、仮想マシンvm1を宛先とするパケットを受信する(a9)。図10の工程x1と同様にして、他の対向仮想マシンの仮想ルータvr4は、仮想マシンvm1の、マイグレーション前のセッション情報st(旧情報)に基づいてトンネルパケットPKaを生成し送信する(a10、図7のn15)。これにより、工程x1と同様にして、トンネルパケットPKaは、旧物理マシン10aで動作する仮想ルータvr1に到達する。
x9:図10の工程x2と同様に、旧物理マシン10aの仮想ルータvr1は、パケットを破棄し、工程x4で記憶したセッション情報stに基づく物理マシン更新パケットPKbを、他の対向仮想マシンの仮想ルータvr4に送信する(a11、図7のn17)。
x10:他の対向仮想マシンの仮想ルータvr4は、図10の工程x5〜x7と同様にして、物理マシン更新パケットPKbに基づいてセッション情報stを更新し、宛先の仮想マシンvm1へのトンネルパケットPKaを生成し、送信する。これにより、仮想マシンvm4は、不通時間を要することなく、仮想マシンvm1にパケットを送信することができる。
x11:旧物理マシン10aの仮想ルータvr1は、仮想マシンvm1のマイグレーション後、セッションキャッシュタイマー値の2倍の期間が経過すると、終了する。旧物理マシン10aは、マイグレーション後、セッション情報stのキャッシュタイマーの2倍の期間、仮想ルータvr1を動作させる。
このように、仮想ルータvr1は、マイグレーション後、代表して取得した仮想マシンvm1の新しい搭載物理マシンIPアドレスをセッション情報stとして保持する。したがって、仮想ルータvr1は、セッション情報stに基づいて、他の仮想マシンvmに、仮想マシンvm1の搭載物理マシンIPアドレスを通知することができる。これにより、IaaS管理プログラム310への問い合わせ回数を、1回に抑えることができる。
図12は、図6に示す、マイグレーションして移動した仮想マシンvmから、対向仮想マシンvmにパケットを送信する場合を説明する図である。すなわち、マイグレーションして移動した仮想マシンvmは、図6の仮想マシンvm1に対応し、対向仮想マシンvmは図6の仮想マシンvm2に対応する。
x21:マイグレーション後の仮想マシンvm1を搭載するサーバ装置(以下、新物理マシン)10cの仮想ルータvr3は、仮想マシンvm1から、対向仮想マシンvm2を宛先とするパケットを受信する(a21)。新物理マシン10cの仮想ルータvr3は、マイグレーション後であるため、セッション情報stを有していない。したがって、新物理マシン10cの仮想ルータvr3は、ネットワーク管理モジュール312に、対向仮想マシンvm2への経路情報を問い合わせる(a22、図6のn1)。
x22:ネットワーク管理モジュール312は、図10の工程x3と同様に、宛先の仮想マシンvm2へ経路情報を生成し、問い合わせ元の仮想ルータvr3に送信する(a23、図6のn1)。なお、経路情報は、仮想マシンvm2への経路が、往復セッションの往路のパケットであることを示す往復フラグfg1を含む。
x23:新物理マシン10cの仮想ルータvr3は、受信した経路情報を、セッション情報stとして記憶し、対向の仮想マシンvm2へのトンネルパケットPKaを生成し、送信する(a24、図6のn2)。このとき、仮想ルータvr3は、往復フラグfg1に基づいて往路のパケットであることを検知し、往路と反対方向の経路に基づく、復路の利用者パケットのヘッダ情報を生成し、セッション情報stに記憶しておく。
x24:対向仮想マシンvm2を搭載する物理マシン10bの仮想ルータ(以下、対向仮想マシンの仮想ルータ)vr2は、受信したトンネルパケットPKaに基づいて、保持しているセッション情報stを更新する。このとき、対向仮想マシンvm2の仮想ルータvr2は、往復フラグfg1に基づいて往路のパケットであることを検知し、復路のパケットの宛先となる仮想マシンvm1の搭載物理マシンIPアドレスを、セッション情報stとして記憶しておく。仮想ルータvr2は、受信したトンネルパケットPKaを解析し、対向仮想マシンvm2にパケットを転送する(a25)。
x25:対向仮想マシンvm2の仮想ルータvr2は、対向仮想マシンvm2から復路のパケットを受信すると(a26)、復路のトンネルパケットPKaを生成する。具体的に、仮想ルータvr2は、工程x24で登録したセッション情報stに基づいて、復路の宛先のIPアドレスを取得する。そして、仮想ルータvr2は、取得したIPアドレスを宛先とし、復路であることを示す往復フラグfg1を有するトンネルパケットPKaを生成し、送信する(a27)。
x26:新物理マシン10cの仮想ルータvr3は、対向仮想マシンvm2の仮想ルータvr2からトンネルパケットPKaを受信する。このとき、仮想ルータvr3は、トンネルパケットPKaの往復フラグfg1に基づいて復路のパケットであることを検知する。そして、仮想ルータvr3は、工程x23でセッション情報stに登録した復路の経路に基づいて、仮想マシンvm1への利用者パケットのヘッダ情報を更新し、仮想マシンvm1に転送する(a28)。
工程x23〜x26に示すように、本実施の形態例におけるトンネルパケットPKaは、往復フラグfg1を有する。これにより、仮想ルータvr2、vr3は、送受信したパケットが、往復のパケットであるか、往路、復路のいずれのパケットであるかを判別することができる。そして、仮想ルータvr2、vr3は、往復フラグfg1に基づいて往路のパケットであることを検知すると、復路のパケットの経路情報を、セッション情報stとして記憶しておく。
これにより、仮想ルータvr2は、復路のパケットの送信時に、記憶したセッション情報stに基づいて、トンネルパケットPKaの宛先のIPアドレスを更新することができる(x25)。また、仮想ルータvr3は、復路のパケットの受信時に、記憶したセッション情報stに基づいて、トンネルパケットPKaの利用者パケットのヘッダ情報を更新することができる(x26)。
このように、往路の経路に基づいて復路の経路を生成することにより、パケットの往路と復路の経路を一致させることが可能になる。したがって、本実施の形態例によると、NAT変換やロードバランサ等を経由するパケットについても、往路と復路の経路を一致させることが可能になる。また、トンネルパケットPKaが往復フラグfg1を有することにより、仮想ルータvr2、vr3は、復路のパケットの送受信時に、IaaS管理プログラム310への問い合わせを行うことなく、往路と一致する復路のパケットの経路を取得可能になる。
図13は、マイグレーション後、所定の時間経過後、移動した仮想マシンvmが、対向仮想マシンvmからパケットを受信する場合を説明する図である。図13の例は、図7の例に対応する。
x31:対向仮想マシンvm2を搭載するサーバ装置10bの仮想ルータ(以下、対向仮想マシンの仮想ルータ)vr2では、セッション情報stのキャッシュタイマー値の期間の経過により、セッション情報stが消滅している。
x32:マイグレーションして移動した仮想マシンvm1を搭載していたサーバ装置(以下、旧物理マシン)10aで動作する仮想ルータvr1は、セッションキャッシュタイマー値の2倍の期間経過したことから、終了している。
x33:対向仮想マシンの仮想ルータvr2は、対向仮想マシンvm2から、仮想マシンvm1を宛先とするパケットを受信する(a31)。工程x31で説明したとおり、仮想ルータvr2が保持するセッション情報stは消滅している。したがって、対向仮想マシンの仮想ルータvr2は、管理サーバ装置20のネットワーク管理モジュール312に、管理ネットワークnw2を介して、仮想マシンvm1のセッション情報stを問い合わせる(a32)。
x34:ネットワーク管理モジュール312は、図10の工程x3と同様に、宛先の仮想マシンvm1へ経路情報を生成し、問い合わせ元の仮想ルータvr2に送信する(a23)。
x35:対向仮想マシンの仮想ルータvr2は、受信した経路情報を、セッション情報stとして記憶し、仮想マシンvm1へのトンネルパケットPKaを生成して送信する(a34)。
x36:新物理マシン10cの仮想ルータvr3は、受信したトンネルパケットPKaを解析し、仮想マシンvm1に転送する(a35)。
図13に示すように、本実施の形態例における仮想ルータvrは、タイマー値が示す期間、セッション情報(経路情報)stを保持(記憶)する。したがって、タイマー値の期間が経過すると、セッション情報stは消滅する。これにより、仮想ルータvrは、送信対象のパケットに対応するセッション情報stがない場合、パケットの宛先の仮想マシンvmへの経路情報をIaaS管理プログラム310に問い合わせる。即ち、仮想ルータvrは、セッション情報stがタイマーの満了により消滅したことにより、再度、IaaS管理プログラム310に経路情報を問い合わせる。
これにより、仮想ルータvrは、セッション情報stを更新することができる。したがって、送信対象のパケットの宛先の仮想マシンvmが、マイグレーションにより移動していた場合に、セッション情報stを更新することができる。これにより、古いセッション情報stに基づいてパケットを送信した結果、パケットが廃棄されることを回避することが可能になる。
次に、図14〜図20にしたがって、図1、図3に示した、管理サーバ装置20のソフトウェアブロック図、及び、IaaS管理プログラム310の処理を説明する。そして、図21、図22にしたがって、図1、図3に示した、サーバ装置10のハードウェア構成図、及び、仮想ルータvrのソフトウェアブロック図を説明する。
[管理サーバ装置]
図14は、図1、図3で示した、管理サーバ装置20のソフトウェアブロック図を示す図である。管理サーバ装置20のIaaS管理プログラム310は、VM管理モジュール311と、ネットワーク管理モジュール312とを有する。
図14は、図1、図3で示した、管理サーバ装置20のソフトウェアブロック図を示す図である。管理サーバ装置20のIaaS管理プログラム310は、VM管理モジュール311と、ネットワーク管理モジュール312とを有する。
図14に示す、VM管理モジュール311は、利用者や管理者の要求に応じて、仮想マシンvmの起動、配置、消去などを管理し、テナント仮想システム管理情報410を更新する。また、VM管理モジュール311は、管理者からのマイグレーションの指示に応じて仮想マシンvmの移動を行い、テナント仮想システム管理情報410を更新する。テナント仮想システム管理情報410は、仮想ネットワークデータベース141、仮想マシンデータベース142、仮想ルータデータベース143、物理マシンデータベース144を含む。各データベースの説明は、図16〜図20にしたがって後述する。
また、ネットワーク管理モジュール312は、テナントの仮想ネットワーク(図3のnw1)を管理する。また、ネットワーク管理モジュール312は、仮想ルータvrからの問い合わせに応答して、テナント仮想システム管理情報410に基づいて、シミュレーション処理を行い、経路情報を生成する。そして、ネットワーク管理モジュール312は、生成した経路情報を、問い合わせ元の仮想ルータvrに送信する。
次に、図15にしたがって、本実施の形態例における仮想システムVS1の構成例を説明する。また、図16〜図20では、図15に示す仮想システムVS1に対応する、仮想ネットワークデータベース141、仮想マシンデータベース142、仮想ルータデータベース143、及び、物理マシンデータベース144の例を説明する。
以下、仮想ネットワークデータベース141を、仮想ネットワークDBと称する。以下、仮想マシンデータベース142を、仮想マシンDBと称する。以下、仮想ルータデータベース143を、仮想ルータDBと称する。以下、物理マシンデータベース144を、物理マシンDBと称する。
図15は、本実施の形態例における仮想システムVS1の構成例を説明する図である。図15において、仮想システムVS1は、仮想マシン「Node-1」〜「Node-3」vm−1〜vm−3と、仮想ルータ「Router-1」vr−1とを含む。また、仮想システムVS1は、仮想ネットワーク「Net-1」n1、「Net-2」n2を有する。
仮想ネットワーク「Net-1」n1のIPアドレスの範囲は「130.69.100.0/24」である。仮想ネットワーク「Net-2」n2のIPアドレスの範囲は「172.16.10.0/24」である。また、仮想ルータ「Router-1」vr−1の仮想ネットワーク「Net-1」n1への接続インタフェースのIPアドレスは「130.69.100.1」である。また、仮想ルータ「Router-1」vr−1の仮想ネットワーク「Net-2」n2への接続インタフェースのIPアドレスは「172.16.10.1」である。
また、仮想ルータ「Router-1」vr−1は、NAT変換ルールを有する。NAT変換ルールは、IPアドレス「133.11.0.11」を、仮想マシン「Node-2」vm−2、または仮想マシン「Node-3」vm−3のIPアドレスに変換するルールである。
仮想マシン「Node-1」vm−1のIPアドレスは「130.69.100.10」であって、仮想マシン「Node-1」n1は、仮想ネットワーク「Net-1」n1に接続する。また、仮想マシン「Node-2」vm−2のIPアドレスは「172.16.10.10」であって、仮想マシン「Node-3」vm−3のIPアドレスは「172.16.10.11」である。仮想マシン「Node-2」vm−2、及び、仮想マシン「Node-3」vm−3は、仮想ネットワーク「Net-2」n2に接続する。
本実施の形態例では、図15に示す仮想システムVS1のネットワーク構成に基づいて、仮想マシン「Node-1」vm−1から、仮想マシン「Node-2」vm−2、または仮想マシン「Node-3」vm−3にパケットを送信する場合を例示する。
[仮想ネットワークDB]
図16は、図14に示した仮想ネットワークDB141の一例を示す図である。仮想ネットワークDB141は、仮想ネットワークごとに、ネットワークアドレスと、接続している仮想マシンvm、及び、ルータの情報を有するDBである。図16の仮想ネットワークDB141は、図15に示した仮想システムVS1に対応する。
図16は、図14に示した仮想ネットワークDB141の一例を示す図である。仮想ネットワークDB141は、仮想ネットワークごとに、ネットワークアドレスと、接続している仮想マシンvm、及び、ルータの情報を有するDBである。図16の仮想ネットワークDB141は、図15に示した仮想システムVS1に対応する。
仮想ネットワークDB141は、例えば、項目「ID」、項目「ネットワークアドレス」、項目「ネットマスク」、項目「仮想マシン」、項目「ルータ」等を有する。項目「ID」は、仮想ネットワークの識別情報を示す。項目「ネットワークアドレス」は、仮想ネットワークのネットワークアドレスである。項目「ネットマスク」は、仮想ネットワークのサブネットマスクである。項目「仮想マシン」は、仮想ネットワークに属する仮想マシンvmの識別情報を示す。項目「ルータ」は、仮想ネットワークと接続するルータを示す。
図16に示す仮想ネットワークDB141の例によると、仮想ネットワークID「Net-1」n1のネットワークアドレスは「130.69.100.0」であって、サブネットマスクは「255.255.255.0」である。また、仮想ネットワークID「Net-1」n1には、仮想マシン「Node-1」vm−1が属する。また、仮想ネットワークID「Net-1」n1は、ルータ「Router-1」vr−1と接続する。
また、仮想ネットワークID「Net-2」n2のネットワークアドレスは「172.16.10.0」であって、サブネットマスクは「255.255.255.0」である。また、仮想ネットワークID「Net-2」n2には、仮想マシン「Node-2、Node-3」vm−2、vm−3が属する。また、仮想ネットワークID「Net-2」n2は、ルータ「Router-1」vr−1と接続する。
[仮想マシンDB]
図17は、図14に示した仮想マシンDB142の一例を示す第1の図である。仮想マシンDB142は、仮想システムVSを構成する仮想マシンvmごとに、仮想マシンvmのプロパティやネットワーク情報を有するDBである。図17の仮想マシンDB142は、図15に示した仮想システムVS1に対応する。
図17は、図14に示した仮想マシンDB142の一例を示す第1の図である。仮想マシンDB142は、仮想システムVSを構成する仮想マシンvmごとに、仮想マシンvmのプロパティやネットワーク情報を有するDBである。図17の仮想マシンDB142は、図15に示した仮想システムVS1に対応する。
仮想マシンDB142は、例えば、項目「VM id」、項目「Accounts」、項目「Storages」、項目「NICs」、項目「物理マシン id」等を有する。項目「VM id」は、仮想マシンvmを識別する情報を示す。項目「Accounts」は、仮想マシンvmのプロパティを示し、所有者情報や認証情報等を示す。項目「Storages」は、仮想マシンvmのプロパティを示し、仮想マシンvmが接続する機器構成情報(ブロックストレージ情報)を示す。項目「NICs」は、仮想マシンvmのネットワーク情報を示し、仮想マシンvmが有する仮想インタフェースの情報を示す。仮想インタフェースが複数ある場合、項目「NICs」は、複数の仮想インタフェースの情報を有する。項目「物理マシン id」は、仮想マシンvmを搭載するサーバ装置10の識別情報である。
また、仮想マシンDB142は、ネットワークの仮想インタフェースの情報として、仮想インタフェースのMACアドレス及びIPアドレス等を管理する。
仮想マシンDB142は、ネットワークの仮想インタフェースの情報として、例えば、項目「Vif no.」、項目「Connect Net」、項目「Mac Address」、項目「IP address」、項目「Options」を有する。項目「Vif no.」は、仮想インタフェースの識別情報である。項目「Connect Net」は、仮想インタフェースが接続する仮想ネットワークIDを示す。項目「Mac Address」は、仮想インタフェースのMACアドレスを示す。項目「IP address」は、仮想インタフェースのIPアドレスを示す。項目「Options」は、仮想インタフェースの付加情報である。
図17に示す仮想マシンDB142の例によると、仮想マシン「Node-1」vm−1を搭載するサーバ装置10の識別情報は「#20010」である。また、仮想マシン「Node-1」vm−1は、仮想インタフェースを介して、仮想ネットワークID「Net-1」n1に接続する。また、仮想マシン「Node-1」vm−1の仮想インタフェースのMACアドレスは「Ab:cd:ef:12:34:56」であって、IPアドレスは「130.69.100.10」である。
図18は、図14に示した仮想マシンDB142の一例を示す第2の図である。図18は、仮想マシンDB142における、仮想マシン「Node-2」vm−2、「Node-3」vm−3の情報を示す。
図18に示す仮想マシンDB142の例によると、仮想マシン「Node-2」vm−2を搭載する物理マシンの識別情報は「#20011」であって、仮想ネットワークID「Net-2」n2に接続する。また、仮想マシン「Node-2」vm−2のMACアドレスは「Ab:cd:ef:12:34:78」であって、IPアドレスは「172.16.10.10」である。また、仮想マシン「Node-3」vm−3が動作する物理マシンの識別情報は「#20011」であって、仮想ネットワークID「Net-2」n2に接続する。また、仮想マシン「Node-3」vm−3のMACアドレスは「Ab:cd:ef:12:34:90」であって、IPアドレスは「172.16.10.11」である。
[仮想ルータDB]
図19は、図14に示した仮想ルータDB143の一例を示す図である。図19の仮想ルータDB143は、図15に示した仮想システムVS1に対応する。仮想ルータDB143は、仮想ルータの仮想インタフェースの情報、及び、ルーティング情報、NAT情報等を管理するDBである。
図19は、図14に示した仮想ルータDB143の一例を示す図である。図19の仮想ルータDB143は、図15に示した仮想システムVS1に対応する。仮想ルータDB143は、仮想ルータの仮想インタフェースの情報、及び、ルーティング情報、NAT情報等を管理するDBである。
仮想ルータDB143は、例えば、項目「Router id」、項目「NICs」、項目「ルーティングテーブル」、項目「NATテーブル」、項目「NAT active list」等を有する。項目「Router id」は、仮想ルータの識別情報を示す。項目「NICs」は、仮想インタフェースの情報を示す。項目「ルーティングテーブル」は、仮想ルータのルーティングテーブル(図示せず)の情報を有する。項目「NATテーブル」は、NAT変換のルールを有する。項目「NAT active list」は、発生中のNATセッションの情報を有する。
図19に示す仮想ルータDB143の例によると、仮想ルータ「Router-1」vr−1は2つの仮想インタフェースを有する。図19に示す仮想インタフェースの各項目は、図17、図18に示した仮想マシンDB142の仮想インタフェース説明で述べたとおりである。
1つ目の仮想インタフェースは、仮想ネットワークID「Net-1」n1に接続し、MACアドレスは「Ab:cd:ef:12:a0:56」であって、IPアドレスは「130.69.100.1」である。また、2つ目の仮想インタフェースは、仮想ネットワークID「Net-2」n2に接続し、MACアドレスは「Ab:cd:ef:12:a0:78」であって、IPアドレスは「172.16.10.1」である。
また、図19に示す仮想ルータDB143のNATテーブルは、例えば、項目「ID」、項目「NAT Type」、項目「Orig-D-IP」、項目「Orig-Proto」、項目「Orig-Port」を有する。また、NATテーブルは、さらに、項目「Trans-D-IP」、項目「Trans-Dport」、項目「LB-Policy」、項目「Next Net」等を有する。
項目「ID」は、NATテーブルの識別情報である。項目「NAT Type」は、NATテーブルの種別を示す。項目「Orig-D-IP」は、変換元の宛先のIPアドレスを示す。項目「Orig-Proto」は、変換元のプロトコルを示す。項目「Orig-Port」は、変換元のポート番号を示す。項目「Trans-D-IP」は、変換先の宛先のIPアドレスを示す。項目「Trans-Dport」は、変換先のポート番号を示す。項目「LB-Policy」は、NATテーブルの種別がロードバランサの場合の、ロードバランサの手法を示す。項目「Next Net」は、NAT変換後のパケットを転送する仮想ネットワークIDを示す。
図19に示す仮想ルータDB143のNATテーブルの例によると、NATテーブル「NAT-Rule-1」の項目「NAT Type」が「Load Balancer」であることから、ロードバランサによる変換を行うテーブルを示す。また、NATテーブル「NAT-Rule-1」によると、変換元の宛先のIPアドレス「133.11.0.11」は、IPアドレス「172.16.10.10」またはIPアドレス「172.16.10.11」に変換される。また、NATテーブル「NAT-Rule-1」によると、ロードバランサの手法は、「Round robin」であって、次の仮想ネットワークIDは、「Net-2」n2である。
なお、図19の仮想ルータDB143の例では、仮想ルータ「Router-1」は、「NAT active list」のエントリを有していない。したがって、図19に示した仮想ルータDB143は、NATセッションが発生していない状態を示す。
[物理マシンDB]
図20は、図14に示した物理マシンDB144の一例を示す図である。物理マシンDB144は、物理マシン(サーバ装置)10の情報を有するDBである。
図20は、図14に示した物理マシンDB144の一例を示す図である。物理マシンDB144は、物理マシン(サーバ装置)10の情報を有するDBである。
物理マシンDB144は、例えば、項目「物理マシン id」、項目「ラック番号」、項目「マシン情報」、項目「IP address」、項目「Options」等を有する。項目「物理マシン id」は、サーバ装置10の識別情報を示す。項目「ラック番号」は、サーバ装置10を配置するラック番号であって、サーバ装置10の物理的な位置を示す。項目「マシン情報」は、サーバ装置10が使用する機器等の情報を示す。項目「IP address」は、サーバ装置10のIPアドレスを示す。項目「Options」は、サーバ装置10の付加情報を示す。
図20に示す物理マシンDB144の例によると、サーバ装置「#20010」のIPアドレスは「10.20.4.120」であって、サーバ装置「#20011」のIPアドレスは「10.20.4.121」である。なお、図17、図18の仮想マシンDB142によると、サーバ装置「#20010」では仮想マシン「Node-1」vm−1が動作し、サーバ装置「#20011」では仮想マシン「Node-2」vm−2、及び、仮想マシン「Node-3」vm−3が動作する。
図14〜図20にしたがって、図1、図3に示した、管理サーバ装置20のソフトウェアブロックの説明をした。次に、図21にしたがって、図1、図3に示した、サーバ装置10のハードウェア構成を説明する。
[サーバ装置]
図21は、図1、図3に示した、サーバ装置10のハードウェア構成を説明する図である。図21において、図1で示したものと同一のものは、同一の記号で示す。
図21は、図1、図3に示した、サーバ装置10のハードウェア構成を説明する図である。図21において、図1で示したものと同一のものは、同一の記号で示す。
サーバ装置10は、例えば、CPU(Central Processing Unit:CPU)201、RAM(Random Access Memory:RAM)220や不揮発性メモリ221等を備えるメモリ202、通信インタフェース部203を有する。各部は、バス204を介して相互に接続する。通信インタフェース部203は、イントラネット50を介して管理サーバ装置20(図3)等と接続する。
CPU201は、バス204を介してメモリ202等と接続するとともに、サーバ装置10全体の制御を行う。メモリ202のRAM220は、CPU201が処理を行うデータ等を記憶する。メモリ202の不揮発性メモリ221は、ハイパ−バイザプログラム格納領域Hypや、仮想ルータプログラム格納領域vrpを備える。また、不揮発性メモリ202は、仮想マシンaデータ格納領域vmdaや、仮想マシンbデータ格納領域vmdbを備える。不揮発性メモリ202は、HDD(Hard disk drive:HDD)、不揮発性半導体メモリ等で構成される。
ハイパ−バイザプログラム格納領域Hypのハイパ−バイザプログラム(以下、ハイパ−バイザプログラムHypと称する)は、CPU201の実行によって、本実施の形態例におけるハイパ−バイザHyの処理を実現する。仮想ルータプログラム格納領域vrpの仮想ルータプログラム(以下、仮想ルータプログラムvrpと称する)は、CPU201の実行によって、本実施の形態例における仮想ルータvrの処理を実現する。
仮想マシンaデータ格納領域vmdaの仮想マシンaデータ(以下、仮想マシンaデータvmdaと称する)は、ハイパ−バイザHyによって参照または更新され、仮想マシンvmaとして動作する。仮想マシンbデータ格納領域vmdbの仮想マシンbデータ(以下、仮想マシンbデータvmdbと称する)は、ハイパ−バイザHyによって参照または更新され、仮想マシンvmbとして動作する。
(仮想ルータのソフトウェアブロック図)
図22は、図21に示したサーバ装置10の仮想ルータプログラムvrpのソフトウェアブロック図を示す図である。図22に示す仮想ルータプログラムvrpは、RX処理モジュール401、TX処理モジュール402、proxyARP(Address Resolution Protocol:ARP)モジュール403、TXセッションテーブルst−t、RXセッションテーブルst−rを有する。
図22は、図21に示したサーバ装置10の仮想ルータプログラムvrpのソフトウェアブロック図を示す図である。図22に示す仮想ルータプログラムvrpは、RX処理モジュール401、TX処理モジュール402、proxyARP(Address Resolution Protocol:ARP)モジュール403、TXセッションテーブルst−t、RXセッションテーブルst−rを有する。
RX処理モジュール401、及び、TX処理モジュール402は、パケットの送受信処理、トンネルパケットのヘッダの着脱、ブロードキャスト通信の対応、IP以外のパケットの応答処理を行う。また、本実施の形態例におけるRX処理モジュール401、及び、TX処理モジュール402は、さらに、IaaS管理プログラム310が提供する経路情報に基づくトンネルパケットPKaの更新処理を行う。また、RX処理モジュール401は、物理マシン更新パケットPKbの送受信処理を行う。
TX処理モジュール402の処理は、図38〜図40のフローチャートにしたがって後述する。RX処理モジュール401の処理は、図41〜図46のフローチャートにしたがって後述する。また、proxyARPモジュール403は、proxyARP処理を行う。即ち、proxyARPモジュール403は、ネットワーク内の機器からのARP要求を、問い合わせ先に代わって返答する。
TXセッションテーブルst−tは、送信処理用のセッション情報stを有し、RXセッションテーブルst−rは、受信処理用のセッション情報stを有する。TXセッションテーブルst−t、及び、RXセッションテーブルst−rの詳細は、図36で後述する。
[IaaS管理プログラム:シミュレーション処理]
次に、図23〜図35にしたがって、管理サーバ装置20のIaaS管理プログラム310によるシミュレーション処理を説明する。
次に、図23〜図35にしたがって、管理サーバ装置20のIaaS管理プログラム310によるシミュレーション処理を説明する。
(シミュレーション処理:入力情報)
図23は、図14に示すIaaS管理プログラム310のネットワーク管理モジュール312によるシミュレーション処理の入力情報を示す図である。図23に示す入力情報は、例えば、仮想ルータvrが仮想マシンvmから受信したTCP/IPパケットのヘッダ情報hdである。
図23は、図14に示すIaaS管理プログラム310のネットワーク管理モジュール312によるシミュレーション処理の入力情報を示す図である。図23に示す入力情報は、例えば、仮想ルータvrが仮想マシンvmから受信したTCP/IPパケットのヘッダ情報hdである。
図23のヘッダ情報hdは、項目「Src Mac Address」、項目「Dst Mac Address」、項目「Dst IP address」、項目「Src IP address」、項目「Protocol」、項目「Dst port」、項目「Src port」等を有する。
項目「Src Mac Address」は、パケットの送信元のMACアドレスを示す。項目「Dst Mac Address」は、パケットの宛先のMACアドレスを示す。項目「Dst IP address」は、パケットの宛先のIPアドレスを示す。項目「Src IP address」は、パケットの送信元のIPアドレスを示す。項目「Protocol」は、パケットのプロトコルを示す。項目「Dst port」は、パケットの宛先のポート番号を示す。項目「Src port」は、パケットの送信元のポート番号を示す。
仮想ルータ「Router-1」vr−1は、仮想マシン「Node-1」vm−1から、図23に示すヘッダ情報hdを有するパケットを受信する。図23に示すパケットは、仮想マシン「Node-1」vm−1から、NAT変換処理対象のIPアドレス「133.11.0.11」宛のパケットである。
したがって、図23のヘッダ情報hdの項目「Src Mac Address」が示す送信元のMACアドレスは、仮想マシン「Node-1」vm−1のMACアドレスを示す。また、ヘッダ情報hdの項目「Dst Mac Address」が示す宛先のMACアドレスは、仮想ルータ「Router-1」vr−1の仮想ネットワーク「Net-1」n1のMACアドレス「Ab:cd:ef:12:a0:56」を示す。また、ヘッダ情報hdの項目「Dst IP address」が示す宛先のIPアドレスは、NAT変換の変換元のIPアドレス「133.11.0.11」を示す。また、ヘッダ情報hdの項目「Src IP address」が示す送信元のIPアドレスは、仮想マシン「Node-1」vm−1のIPアドレス「130.69.100.10」を示す。また、ヘッダ情報hdの項目「Dst port」は、ポート番号「80」を示し、項目「Src port」は、ポート番号「48754」を示す。
(シミュレーション処理:出力情報)
図24は、図14に示す、ネットワーク管理モジュール312によるシミュレーション処理の出力情報を示す図である。ネットワーク管理モジュール312は、図23に示したパケットのヘッダ情報hdに基づいて、シミュレーション処理を行い、経路情報として、図24に示すパケットヘッダ書き換え表hwを出力する。
図24は、図14に示す、ネットワーク管理モジュール312によるシミュレーション処理の出力情報を示す図である。ネットワーク管理モジュール312は、図23に示したパケットのヘッダ情報hdに基づいて、シミュレーション処理を行い、経路情報として、図24に示すパケットヘッダ書き換え表hwを出力する。
パケットヘッダ書き換え表hwは、ヘッダ書き換え部分hwuの項目と、制御部hwcの項目とを有する。ヘッダ書き換え部分hwuの項目は、仮想ルータvrが転送するパケットのヘッダ情報hdのうち、書き換え対象の項目を示す。なお、ヘッダ書き換え部分hwuの項目のうち、空欄の項目については、書き換え対象外の項目である。
ヘッダ書き換え部分hwuは、図23に示すヘッダ情報hdの項目に加えて、項目「TTL」を有する。項目「TTL」は、トンネルパケットPKaが有する利用者パケットのヘッダ情報のTTL(Time To Live:TTL)の値から差し引く値である。TTLの値は、トンネルパケットPKaの有効期間を示す。
制御部hwcの項目は、例えば、項目「往復セッション」、項目「往路/復路」、項目「宛先物理マシンIP address」を有する。項目「往復セッション」は、往復セッションのトンネルパケットPKaであるか否かを示す。本実施の形態例では、往復セッションのトンネルパケットPKaである場合に値「1」、往復セッションのトンネルパケットPKaではない場合に値「0」を有する。
項目「往路/復路」は、往路のトンネルパケットPKaであるか、復路のトンネルパケットPKaであるかを示す。本実施の形態例では、往路のトンネルパケットPKaである場合に値「0」、復路のトンネルパケットPKaである場合に値「1」を有する。項目「宛先物理マシンIP address」は、トンネルパケットPKaの宛先として指定するIPアドレス(外側の宛先IPアドレス)を示す。
(シミュレーション処理の概要)
図25は、図14に示すネットワーク管理モジュール312によるシミュレーション処理の概要を説明する図である。仮想ネットワークでは、パケットは、送信元の仮想マシンvmから1つまたは複数の仮想ルータvrを経由して、宛先の仮想マシンvmに到達する。したがって、シミュレーション処理では、図25に示すように、仮想ルータvrによるルーティング処理を繰り返す。したがって、図26で説明するフローチャート図では、ルーティング処理(図26のS14)を0回以上、繰り返す。
図25は、図14に示すネットワーク管理モジュール312によるシミュレーション処理の概要を説明する図である。仮想ネットワークでは、パケットは、送信元の仮想マシンvmから1つまたは複数の仮想ルータvrを経由して、宛先の仮想マシンvmに到達する。したがって、シミュレーション処理では、図25に示すように、仮想ルータvrによるルーティング処理を繰り返す。したがって、図26で説明するフローチャート図では、ルーティング処理(図26のS14)を0回以上、繰り返す。
(シミュレーション処理の流れ)
図26は、図14に示すネットワーク管理モジュール312によるシミュレーション処理を説明するフローチャート図である。ネットワーク管理モジュール312は、開始仮想ネットワークID、及び、図23で説明した利用者パケットのヘッダ情報hdを入力とする。開始仮想ネットワークIDは、利用者パケットのヘッダ情報hdの項目「Src Mac Address」が示す、パケットの送信元のMACアドレスが属する仮想ネットワークのIDである。
図26は、図14に示すネットワーク管理モジュール312によるシミュレーション処理を説明するフローチャート図である。ネットワーク管理モジュール312は、開始仮想ネットワークID、及び、図23で説明した利用者パケットのヘッダ情報hdを入力とする。開始仮想ネットワークIDは、利用者パケットのヘッダ情報hdの項目「Src Mac Address」が示す、パケットの送信元のMACアドレスが属する仮想ネットワークのIDである。
S11:ネットワーク管理モジュール312は、シミュレーションの前処理を行う。シミュレーションの前処理の詳細は、図27のフローチャート図にしたがって説明する。
(シミュレーション処理:前処理(S11))
図27は、図26に示した、ネットワーク管理モジュール312の工程S11の処理を説明するフローチャート図である。
図27は、図26に示した、ネットワーク管理モジュール312の工程S11の処理を説明するフローチャート図である。
S11−1:ネットワーク管理モジュール312は、シミュレーションの前処理として、シミュレーション状態の初期化処理を行う。具体的に、ネットワーク管理モジュール312は、図24に示したパケットヘッダ書き換え表hwを初期化する。そして、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hwの項目「TTL」に初期値「64」を代入する。また、ネットワーク管理モジュール312は、入力された開始仮想ネットワークIDを、現仮想ネットワークIDとする。
(初期化後のパケットヘッダ書き換え表(S11−1))
図28は、工程S11−1による初期化後のパケットヘッダ書き換え表hw−1を示す図である。本実施の形態例の仮想システムVS1(図15)では、パケットの送信元の仮想マシン「Node-1」vm−1は、仮想ネットワーク「Net-1」n1と接続する。したがって、現仮想ネットワークIDは、仮想ネットワーク「Net-1」n1である。また、図27で前述したとおり、初期化後のパケットヘッダ書き換え表hw−1の項目「TTL」の値「64」である。
図28は、工程S11−1による初期化後のパケットヘッダ書き換え表hw−1を示す図である。本実施の形態例の仮想システムVS1(図15)では、パケットの送信元の仮想マシン「Node-1」vm−1は、仮想ネットワーク「Net-1」n1と接続する。したがって、現仮想ネットワークIDは、仮想ネットワーク「Net-1」n1である。また、図27で前述したとおり、初期化後のパケットヘッダ書き換え表hw−1の項目「TTL」の値「64」である。
図26のフローチャート図に戻る。
S12:ネットワーク管理モジュール312は、仮想マシンDB142(図17、図18)、及び、仮想ルータDB143(図19)を参照する。そして、ネットワーク管理モジュール312は、仮想マシンDB142及び仮想ルータDB143のエントリから、MACアドレスが、利用者パケットのヘッダ情報hdの項目「Dst Mac Address」が示す、宛先のMACアドレスと一致するエントリを検索する。
S13:ネットワーク管理モジュール312は、仮想ルータDB143(図19)から、利用者パケットヘッダ情報hdの項目「Dst Mac Address」と一致するエントリを検出したか否かを判定する。
図23に示したように、本実施の形態例では、利用者パケットヘッダ情報hdの項目「Dst Mac Address」は、仮想ネットワーク「Net-1」n1のMACアドレス「Ab:cd:ef:12:a0:56」である。したがって、ネットワーク管理モジュール312は、仮想ルータDB143から、MACアドレスが、MACアドレス「Ab:cd:ef:12:a0:56」と一致する、仮想ルータ「Router-1」vr−1のエントリを検出する。
S14:工程S13の検索処理の結果、一致するエントリ検出した場合(S13のyes)、ネットワーク管理モジュール312は、利用者パケットのルーティング処理を行う。工程S14の処理の詳細は、図29のフローチャート図にしたがって説明する。
(シミュレーション処理:ルーティング処理(S14))
図29は、図28に示した、ネットワーク管理モジュール312の工程S14の処理を説明するフローチャート図である。工程S14は、パケットのルーティング処理を示す。ルーティング処理では、パケットヘッダ書き換え表hwの更新処理、及び、仮想ネットワークの遷移を行う。
図29は、図28に示した、ネットワーク管理モジュール312の工程S14の処理を説明するフローチャート図である。工程S14は、パケットのルーティング処理を示す。ルーティング処理では、パケットヘッダ書き換え表hwの更新処理、及び、仮想ネットワークの遷移を行う。
S14−1:ネットワーク管理モジュール312は、パケットヘッダ書き換え表hwの項目「TTL」の値が、値「0」より大きいか否かを判定する。
S14−2:パケットヘッダ書き換え表hwの項目「TTL」の値が値「0」以下の場合(S14−1のno)、タイムアウトにより、ネットワーク管理モジュール312は、エラー終了する。ネットワーク管理モジュール312は、利用者パケットが宛先のアドレスに到達しない旨のエラー情報「network unreachable」を出力する。
S14−3:パケットヘッダ書き換え表hwの項目「TTL」の値が値「0」より大きい場合(S14−1のyes)、ネットワーク管理モジュール312は、検出した仮想ルータのNATルールテーブル(NAT rule table)を検索する。ネットワーク管理モジュール312は、仮想ルータDB143(図19)のNATルールテーブルのエントリから、項目「Orig-D-IP」が、利用者パケットのヘッダ情報hdの項目「Dst IP address」が示す宛先のIPアドレスと一致するエントリを検索する。
S14−4:ネットワーク管理モジュール312は、工程S14−3の検索処理の結果、一致するエントリを検出したか否かを判定する。本実施の形態例では、ネットワーク管理モジュール312は、仮想ルータ「Router-1」vr−1のNATルールテーブルのエントリ(図19)から、項目「Orig-D-IP」が、ヘッダ情報hdの宛先のIPアドレス「133.11.0.11」と一致するエントリを検出する(S14−4のyes)。
S14−5:一方、一致するエントリを検出しなかった場合(S14−4のno)、利用者パケットが、NAT変換対象のパケットではないことを示す。ネットワーク管理モジュール312は、検出した仮想ルータのルーティングテーブルから、利用者パケットヘッダ情報hdの宛先のIPアドレスのアドレスブロックを検索する。
S14−6:工程S14−5の検索処理の結果、ネットワーク管理モジュール312は、アドレスブロックを検出したか否かを判定する。
S14−7:アドレスブロックを検出しなかった場合(S14−6のno)、通信が不達であることを示す。したがって、ネットワーク管理モジュール312は、ネットワークが到達しない旨のエラー情報「network unreachable」を出力し、エラー終了する。
S14−8:工程S14−5の検索処理の結果、アドレスブロックを検出した場合(S14-6のyes)、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hwを更新する。
具体的に、ネットワーク管理モジュール312は、ルーティングテーブルのネクストホップ(nexthop)のIPアドレスを取得し、当該IPアドレスに対応するMACアドレスを取得する。そして、ネットワーク管理モジュール312は、取得したMACアドレスを、パケットヘッダ書き換え表hwの項目「Dst Mac Address」に更新する。また、ネットワーク管理モジュール312は、現在の仮想ネットワークIDを、ネクストホップ(nexthop)が示す仮想ネットワークIDに更新する。
S14−9:一方、工程S14−3の検索処理の結果、一致するNATテーブルのエントリを検出した場合(S14−4のyes)、利用者パケットが、NAT変換対象のパケットであることを示す。したがって、ネットワーク管理モジュール312は、検出したNATルールテーブルのエントリに基づいて、NAT変換処理を行う。なお、NATテーブルのエントリを検出した場合、往復のパケットであることを示す。NAT変換処理を、図30のフローチャート図にしたがって説明する。
(シミュレーション処理:NAT変換処理(S14−9))
図30は、図29に示した、ネットワーク管理モジュール312の工程S14−9のNAT変換処理を説明するフローチャート図である。
図30は、図29に示した、ネットワーク管理モジュール312の工程S14−9のNAT変換処理を説明するフローチャート図である。
S14−11:ネットワーク管理モジュール312は、検出したNATルールテーブルのNATアクティブリスト(「NAT active list」)のエントリから、所定の項目が、ヘッダ情報hdと一致するエントリを検索する。所定の項目は、項目「Orig-D-IP」、項目「Orig-Proto」、項目「Orig-Port」である。
S14−12:所定の項目が一致するNATアクティブリストのエントリが検出されたか否かを判定する。
S14−13:所定の項目が一致するNATアクティブリストのエントリを検出した場合(S14−12のyes)、パケットのヘッダ情報hdに対応するNAT変換処理が発生していることを示す。ネットワーク管理モジュール312は、検出したNATアクティブリストのエントリに基づいて、パケットヘッダ書き換え表hwを更新する。
具体的に、ネットワーク管理モジュール312は、検出したNATアクティブリストのエントリの項目「Trans-D-IP」が示す変換後のIPアドレスに対応するMACアドレスを、パケットヘッダ書き換え表hwの項目「Dst Mac Address」に更新する。また、ネットワーク管理モジュール312は、当該変換後のIPアドレスを、パケットヘッダ書き換え表hwの項目「Dst IP address」に更新する。また、ネットワーク管理モジュール312は、検出したNATアクティブリストのエントリの項目「Trans-Port」の値を、パケットヘッダ書き換え表hwの項目「Dst port」に更新する。
また、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hwの項目「往復セッション」に値「1」を更新するとともに、項目「往路/復路」に値「0/1」を更新する。NATアクティブリストのエントリを検出した場合、項目「往復セッション」の値が「1」であることを示す。また、ネットワーク管理モジュール312は、検出したNATアクティブリストのエントリに基づいて、項目「往路/復路」の値を更新する。また、ネットワーク管理モジュール312は、現在の仮想ネットワークIDに、NATルールテーブルの項目「Next Net」が示す仮想ネットワークIDを更新する。
S14−14:一方、所定の項目が一致するNATアクティブリストのエントリを検出しない場合(S14−12のno)、ネットワーク管理モジュール312は、NATルールテーブルを検出する。ネットワーク管理モジュール312は、利用者パケットのヘッダ情報hdの項目「Dst IP address」が示す宛先のIPアドレスと、項目「Trans-D-IP」が一致するNATルールテーブルのエントリを検出する。
本実施の形態例では、初めは、所定の項目が一致するNATアクティブリストのエントリは存在しない。したがって、ネットワーク管理モジュール312は、所定の項目が一致するNATアクティブリストのエントリを検出しない(S14−12のno)。そして、ネットワーク管理モジュール312は、利用者パケットのヘッダ情報hdの宛先のIPアドレス「133.11.0.11」と、項目「Trans-D-IP」が一致するNATルールテーブルのエントリを検出する(S14−14)。
S14−15:ネットワーク管理モジュール312は、検索したNATルールテーブルのエントリの項目「NAT Type」が「Load Balancer」であるか否かを判定する。
S14−16:項目「NAT Type」が「Load Balancer」である場合(S14−15のyes)、ネットワーク管理モジュール312は、負荷分散のポリシーにしたがって、パケットの宛先の仮想マシンvmを決定する。なお、項目「NAT Type」が「Load Balancer」ではない場合(S14−15のno)、ネットワーク管理モジュール312は、工程S14−16の処理を行わない。
図19に示した仮想ルータDB143によると、本実施の形態例では、検出したNATルールテーブルのエントリの項目「NAT Type」は「Load Balancer」である。したがって、ネットワーク管理モジュール312は、エントリの項目「LB-Policy」のラウンドロビン(Round robin)の手法にしたがって、宛先の仮想マシンvmを、仮想マシン「Node-2」vm−2に決定する。そして、ネットワーク管理モジュール312は、仮想マシン「Node-2」vm−2のIPアドレスアドレス「172.16.10.10」を取得する。
S14−17:ネットワーク管理モジュール312は、NAT変換処理後のIPアドレスから、宛先の仮想マシンのMACアドレスを取得する。本実施の形態例では、ネットワーク管理モジュール312は、仮想マシンDB142(図14)を参照し、仮想マシン「Node-2」vm−2のMACアドレス「Ab:cd:ef:12:34:78」を取得する。
S14−18:ネットワーク管理モジュール312は、検出したNATルールテーブルのエントリの項目と、工程S14−17で取得したIPアドレスとに基づいて、パケットヘッダ書き換え表hwを更新する。更新処理の詳細は、図31にしたがって後述する。
S14−19:ネットワーク管理モジュール312は、仮想ルータDB143(図19)の検出した仮想ルータvrのエントリに、NATアクティブリストを登録する。ネットワーク管理モジュール312は、ロードバランサ(Load Balancer)の状態を保持するために、NATアクティブリストに、往復のセッションのエントリを登録しておく。NATアクティブリストの登録例は、図32にしたがって後述する。
(シミュレーション処理:NAT変換処理後のパケットヘッダ書き換え表(S14−18))
図31は、図30のフローチャートの工程S14−18の、パケットヘッダ書き換え表hwの更新例を説明する図である。
図31は、図30のフローチャートの工程S14−18の、パケットヘッダ書き換え表hwの更新例を説明する図である。
ネットワーク管理モジュール312は、NAT変換処理後の宛先の仮想マシン「Node-2」vm−2のMACアドレス「Ab:cd:ef:12:34:78」を、パケットヘッダ書き換え表hw−2の項目「Dst Mac Address」に更新する。また、ネットワーク管理モジュール312は、宛先の仮想マシン「Node-2」vm−2のIPアドレス「172.16.10.10」を、パケットヘッダ書き換え表hw−2の項目「Dst IP address」に更新する。また、ネットワーク管理モジュール312は、NATルールテーブルの項目「Orig-Port」の値「80」を、パケットヘッダ書き換え表hw−2の項目「Dst port」に更新する。
また、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hw−2の項目「往復セッション」に値「1」を更新する。また、ネットワーク管理モジュール312は、NATアクティブリストが存在しないことから、パケットヘッダ書き換え表hw−2の項目「往路/復路」に値「0(往路)」を更新する。また、ネットワーク管理モジュール312は、現在の仮想ネットワークIDに、NATルールテーブルの項目「Next Net」の仮想ネットワークID「Net-2」n2を更新する。
(シミュレーション処理:NATアクティブリストの登録(S14−19))
図32は、図30のフローチャートの工程S14−19で登録した往復セッションのNATアクティブリスト(「NAT active list」)の一例を示す。
図32は、図30のフローチャートの工程S14−19で登録した往復セッションのNATアクティブリスト(「NAT active list」)の一例を示す。
図32は、仮想ルータ「Router-1」vr−1の往路と復路のNATアクティブリストの一例を示す。なお、図32に示す、仮想ルータ「Router-1」vr−1のNATルールテーブルは、図19に示す仮想ルータDB143と同様である。
NATアクティブリストは、項目「ID」、項目「Rule-ID」、項目「NAT Type」、項目「Session-Pair」、項目「Orig-D-IP」、項目「Orig-Proto」、項目「Orig-D-Port」、項目「Orig-S-IP」、項目「Orig-S-port」、項目「Trans-D-IP」、項目「Trans-Port」、項目「Timer」を有する。
項目「ID」は、NATアクティブリストの識別情報を示す。項目「Rule-ID」は、NAT変換のルールの識別情報を示す。項目「NAT Type」は、往路、または、復路を示す。項目「NAT Type」は、往路の場合に“DNAT(destination NAT)”を示し、復路の場合に“SNAT(Source NAT)”を示す。項目「Session-Pair」は、対となるNATアクティブリストの「ID」を示す。
項目「Orig-D-IP」は、NAT変換元のIPアドレスである。項目「Orig-Proto」は、NAT変換元のプロトコルを示す。項目「Orig-D-Port」は、NAT変換元の宛先のポート番号を示す。項目「Orig-S-IP」は、NAT変換元の送信元のIPアドレスを示す。項目「Orig-S-port」は、NAT変換元の送信元のポート番号を示す。項目「Trans-D-IP」は、NAT変換先の宛先のIPアドレスを示す。項目「Trans-Port」は、NAT変換先のポート番号を示す。項目「Timer」は、エントリの有効期間を示す。
図32の例によると、仮想ルータ「Router-1」は、ID「NAT-Active-1」、ID「NAT-Active-2」のNATアクティブリストを有する。ID「NAT-Active-1」及びID「NAT-Active-2」のNAT active listの項目「Rule-ID」の値は、ともに「NAT-Rule-1」であって、同一のNATルールテーブルに基づくことを示す。また、項目「Session-Pair」に示すように、ID「NAT-Active-1」及びID「NAT-Active-2」は対の情報である。ID「NAT-Active-1」の項目「NAT Type」の値は「DNAT」であって、ID「NAT-Active-2」の項目「NAT Type」の値は「SNAT」である。したがって、ID「NAT-Active-1」のエントリは、往路のNAT変換情報を示し、ID「NAT-Active-2」のエントリは、復路のNAT変換情報を示す。
また、ID「NAT-Active-1」のエントリによると、往路の変換元の、宛先のIPアドレスは値「133.11.0.11(項目「Orig-D-IP」)」、ポート番号は「80(項目「Orig-Proto」)」であって、プロトコルは「TCP(項目「Orig-D-Port」)」である。また、ID「NAT-Active-1」のエントリによると、往路の変換元の、送信元のIPアドレスは値「130.69.100.10(項目「Orig-S-IP」)」であり、ポート番号は「48754(項目「Orig-S-port」)」である。
また、ID「NAT-Active-1」のエントリによると、往路の変換先の、宛先のIPアドレスは値「172.16.10.10(項目「Trans-D-IP」)」、ポート番号は「80(項目「Trans-Port」)」である。また、エントリの有効期間(項目「Timer」)は、30秒である。ID「NAT-Active-2」のエントリが示す、復路のNAT変換情報は、ID「NAT-Active-1」が有する往路の変換情報の逆変換の情報を有する。
図30で説明した、工程S14−13、工程S14−19の処理後、NAT処理(図29の工程S14−9)が終了し、図29のルーティング処理のフローチャート図に戻る。
S14−10:工程S14−8、工程S14−9の後、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hwを更新する。パケットヘッダ書き換え表hwの更新処理を、図33にしたがって説明する。
(ルーティング処理後のパケットヘッダ書き換え表(S14−10))
図33は、図29のフローチャートの工程S14−10の、パケットヘッダ書き換え表hwの更新処理を説明する図である。工程S14−10では、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hw−3の項目「Src Mac Address」と、項目「TTL」の値を更新する。
図33は、図29のフローチャートの工程S14−10の、パケットヘッダ書き換え表hwの更新処理を説明する図である。工程S14−10では、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hw−3の項目「Src Mac Address」と、項目「TTL」の値を更新する。
本実施の形態例では、図30の示したNAT変換処理の結果、現在の仮想ネットワークIDは、仮想ネットワークID「Net-2」n2である。仮想ルータDB143(図19)の仮想ルータ「Router-1」vr−1のエントリによると、仮想ネットワークID「Net-2」n2のMACアドレスは、「Ab:cd:ef:12:a0:78」である。したがって、ネットワーク管理モジュール312は、MACアドレス「Ab:cd:ef:12:a0:78」を、パケットヘッダ書き換え表hw−3の「Srct Mac Address」に更新する。また、ネットワーク管理モジュール312は、パケットヘッダ書き換え表hw−3の項目「TTL」の値を、値「64」から値「63」にデクリメントする。
図29に示した、工程S14−10の処理後、ルーティング処理(図26の工程S14)が終了し、図26のフローチャート図に戻る。
ルーティング処理の結果、ネットワーク管理モジュール312は、再度、工程S12、S13の処理を行う。ネットワーク管理モジュール312は、仮想ルータDB143(図19)のエントリから、利用者パケットのヘッダ情報hdの項目「Dst Mac Address」が一致するエントリを検出すると(S13のyes)、再度、ルーティング処理を行う(S14)。ネットワーク管理モジュール312は、工程S12〜S14の処理を繰り返すことにより、1つまたは複数のルータによる、ルーティング処理をシミュレートする。
一方、ネットワーク管理モジュール312は、仮想ルータDB143(図19)のエントリから、MACアドレスが、利用者パケットのヘッダ情報hdの項目「Dst Mac Address」と一致するエントリを検出しない場合(S13のno)、工程S15の処理に遷移する。
S15:一致するエントリを検出しない場合(S13のno)、ネットワーク管理モジュール312は、仮想マシンDB142(図17、図18)から、MACアドレスが、ヘッダ情報hdの項目「Dst Mac Address」と一致するエントリを検出したか否かを判定する。
本実施の形態例では、NAT変換処理後の、パケットヘッダ書き換え表hw−3(図33)の項目「Dst Mac Address」の値は、仮想マシン「Node-2」vm−2のMACアドレス「Ab:cd:ef:12:34:78」を示す。したがって、ネットワーク管理モジュール312は、仮想マシンDB142(図17、図18)のエントリから、MACアドレス「Ab:cd:ef:12:34:78」と一致する仮想マシン「Node-2」vm−2のエントリを検出する(S15のyes)。
S16:工程S15の検索処理の結果、一致するエントリを検出しない場合(S15のno)、通信が不達であることを示す。したがって、ネットワーク管理モジュール312は、ネットワークが到達しない旨のエラー情報「network unreachable」を出力し、エラー終了する。
S17:一方、一致するエントリを検出した場合(S15のyes)、宛先の仮想マシンvmに到達したことを示す。したがって、ネットワーク管理モジュール312は、シミュレーションの後処理を行う。シミュレーションの後処理は、図34のフローチャート図で後述する。
S18:ネットワーク管理モジュール312は、シミュレーションの結果データを出力し、シミュレーション処理を終了する。ネットワーク管理モジュール312は、図35に後述するパケットヘッダ書き換え表hwを、シミュレーションの結果データ(経路情報)として、問い合わせ元の仮想ルータvrに送信する。
(シミュレーション処理:後処理(S17))
図34は、図26に示した、ネットワーク管理モジュール312の工程S17の処理を説明するフローチャート図である。工程S17では、ネットワーク管理モジュール312は、シミュレーションの後処理として、シミュレーションの結果データの生成処理を行う。
図34は、図26に示した、ネットワーク管理モジュール312の工程S17の処理を説明するフローチャート図である。工程S17では、ネットワーク管理モジュール312は、シミュレーションの後処理として、シミュレーションの結果データの生成処理を行う。
S17−1:ネットワーク管理モジュール312は、パケットヘッダ書き換え表hwが示す宛先の仮想マシンvmに基づいて、当該仮想マシンvmの搭載物理マシンIPアドレスを取得する。そして、ネットワーク管理モジュール312は、取得した搭載物理マシンIPアドレスを、パケットヘッダ書き換え表hwの項目「宛先物理マシンIP address」に設定する。
本実施の形態例では、パケットヘッダ書き換え表hw−3(図33)によると、宛先の仮想マシンvmは、仮想マシン「Node-2」vm−2である。したがって、ネットワーク管理モジュール312は、仮想マシンDB142(図17、図18)を参照し、仮想マシン「Node-2」vm−2を搭載するサーバ装置10の識別情報「#20011」を取得する。そして、ネットワーク管理モジュール312は、物理マシンDB144(図16)を参照し、サーバ装置「#20011」のIPアドレス「10.20.4.121」を取得する。
(シミュレーション処理:後処理後のパケットヘッダ書き換え表)
図35は、図34のフローチャートの工程S17−1の、パケットヘッダ書き換え表hw−4の更新処理を説明する図である。ネットワーク管理モジュール312は、取得した仮想マシン「Node-2」vm−2の搭載物理マシンIPアドレス「10.20.4.121」を、パケットヘッダ書き換え表hw−4の項目「宛先物理マシンIP address」にセットする。
図35は、図34のフローチャートの工程S17−1の、パケットヘッダ書き換え表hw−4の更新処理を説明する図である。ネットワーク管理モジュール312は、取得した仮想マシン「Node-2」vm−2の搭載物理マシンIPアドレス「10.20.4.121」を、パケットヘッダ書き換え表hw−4の項目「宛先物理マシンIP address」にセットする。
図26〜図35にしたがって、ネットワーク管理モジュール312によるシミュレーション処理を説明した。次に、図22に示した、仮想ルータvrのTX処理モジュール402、及び、RX処理モジュール401の処理を順次、説明する。
[仮想ルータの処理]
初めに、図22に示した、TXセッションテーブルst−t、RXセッションテーブルst−rが有するセッション情報stのフォーマットを説明する。
初めに、図22に示した、TXセッションテーブルst−t、RXセッションテーブルst−rが有するセッション情報stのフォーマットを説明する。
(TXセッションテーブル、RXセッションテーブル)
図36は、TXセッションテーブルst−t、及び、RXセッションテーブルst−rが有するセッション情報stのフォーマットを説明する図である。
図36は、TXセッションテーブルst−t、及び、RXセッションテーブルst−rが有するセッション情報stのフォーマットを説明する図である。
セッション情報stは、マッチ部分stm、ヘッダ書き換え部分stu、制御部stcを有する。マッチ部分stmは、送受信した利用者パケットのヘッダ情報hdと比較する部分である。ヘッダ書き換え部分stuが有する項目は、送受信した利用者パケットのヘッダ情報hdを書き換える対象の項目である。なお、ヘッダ書き換え部分stuが有する項目のうち、空欄の項目は、利用者パケットのヘッダ情報hdの書き換え対象外の項目である。制御部stcは、セッションの制御情報を有する。
マッチ部分stmは、シミュレーション処理の入力情報である、ヘッダ情報hd(図23)と同一の項目を有する。ヘッダ書き換え部分stuは、シミュレーション処理の出力情報である、パケットヘッダ書き換え表hw(図24)のヘッダ書き換え部分hwuと、同一の項目を有する。また、制御部stcは、パケットヘッダ書き換え表hw(図24)の制御部hwcの項目に加えて、項目「タイマー」を有する。項目「タイマー」の値は、セッション情報stの有効期限を示す。
(ヘッダ情報を書き換え)
図37は、図22に示した、TX処理モジュール402、及び、RX処理モジュール401による、利用者パケットのヘッダ情報hdの書き換え処理の有無を説明する図である。
図37は、図22に示した、TX処理モジュール402、及び、RX処理モジュール401による、利用者パケットのヘッダ情報hdの書き換え処理の有無を説明する図である。
TX処理モジュール402は、TXセッションテーブルst−tのセッション情報stのマッチ部分stmが一致する、送信対象のトンネルパケットPKaの利用者パケットのヘッダ情報を、ヘッダ書き換え部分stuにしたがって更新する。また、RX処理モジュール401は、RXセッションテーブルst−rのセッション情報stのマッチ部分stmが一致する、受信対象のトンネルパケットPKaの利用者パケットのヘッダ情報を、ヘッダ書き換え部分stuにしたがって更新する。
TX処理モジュール402、及び、RX処理モジュール401は、往復パケットfg1の値に応じて、利用者パケットのヘッダ情報の更新を行う。図37の表H1に示すヘッダ情報の更新の有無は、図38〜図46に示す、TX処理モジュール402、及び、RX処理モジュール401の処理のフローチャート図に対応する。
図37に示す表H1によると、TX処理モジュール402は、送信対象のパケットが、片道のパケット、または、往路パケットである場合、セッション情報stに基づいて、トンネルパケットPKaの、利用者パケットのヘッダ情報を更新する。また、RX処理モジュール401は、復路のトンネルパケットPKaを受信したときに、トンネルパケットPKaの、利用者パケットのヘッダ情報を更新する。
次に、図38〜図40にしたがって、TX処理モジュール402の処理を説明する。
(TX処理モジュール)
図38は、図22に示す、仮想ルータvrのTX処理モジュール402の処理を説明するフローチャート図である。
図38は、図22に示す、仮想ルータvrのTX処理モジュール402の処理を説明するフローチャート図である。
S21:TX処理モジュール402は、仮想マシンvmから送信対象のパケットを受信すると、仮想マシンvmの仮想インタフェースが接続する、仮想ネットワークIDを取得する。具体的に、TX処理モジュール402は、仮想マシンDB142(図17、図18)の当該仮想マシンvmの仮想インタフェースの項目「Connect Net」が示す、仮想ネットワークIDを取得する。
S22:TX処理モジュール402は、仮想マシンvmから、送信対象のパケットを解析し、パケットの種別を取得する。
S23:TX処理モジュール402は、解析結果に基づいて、送信対象のパケットがarp要求か否かを判定する。
S24:パケットがarp要求である場合(S23のyes)、TX処理モジュール402は、arp要求をproxyARPモジュール403に通知する。
S25:一方、パケットがarp要求ではない場合(S23のno)、TX処理モジュール402は、パケットの解析結果に応じて、パケットがIPユニキャストであるか否かを判定する。
S26:パケットがIPユニキャストではない場合(S25のno)、TX処理モジュール402は、解析結果に応じて、ブロードキャストの処理や、L2パケットの送信処理を行い、処理を終了する。
S27:一方、パケットがIPユニキャストである場合(S25のyes)、TX処理モジュール402は、パケットの送信処理を行う。工程S27の処理は、図39のフローチャート図にしたがって説明する。
(TX処理モジュール:IPユニキャストの送信処理)
図39は、図38の工程S27の処理を説明するフローチャート図である。工程S27は、IPユニキャストのパケットの送信処理を示す。
図39は、図38の工程S27の処理を説明するフローチャート図である。工程S27は、IPユニキャストのパケットの送信処理を示す。
S31:TX処理モジュール402は、送信対象のパケットのヘッダ情報hdに基づいて、TXセッションテーブルst−tを検索する。具体的に、TX処理モジュール402は、TXセッションテーブルst−tのエントリから、マッチ部分stmが、送信対象のパケットのヘッダ情報hdと一致するエントリを検索する。
S32:TX処理モジュール402は、送信対象のパケットのヘッダ情報hdと一致するマッチ部分stmを有するエントリが、TXセッションテーブルst−tに登録済みであるか否かを判定する。
S33:登録済みではない場合(S32のno)、TX処理モジュール402は、TXセッションテーブルst−tに、送信対象のパケットのヘッダ情報hdに対応するセッション情報stを登録する。工程S33の処理の詳細は、図40にしたがって後述する。なお、既に登録済みの場合(S32のyes)、TX処理モジュール402は、工程S33の処理を行わない。
工程S31〜S33によって、TX処理モジュール402は、送信対象のパケットのヘッダ情報hdとマッチ部分stmが一致する、TXセッションテーブルst−tのエントリを取得する。
S34:TX処理モジュール402は、取得したエントリのヘッダ書き換え部分stuに基づいて、トンネルパケットPKaが含む、利用者パケットのヘッダ情報hdを更新する。
S35:TX処理モジュール402は、取得したエントリに基づいて、トンネルパケットPKaのVXLANヘッダ(図8)が含む、仮想ネットワークID、往復フラグfg1を設定する。
S36:TX処理モジュール402は、取得したエントリに基づいて、トンネルパケットPKaのトンネリングUPD/IPヘッダ(図8)が含む、宛先IPアドレスに、宛先の仮想マシンvmの搭載物理マシンIPアドレスを指定する。
工程S34〜S36の処理によって、宛先の仮想マシンvmを搭載するサーバ装置10にトンネルパケットPKaが到達するとともに、宛先の仮想マシンvmに、トンネルパケットPKaが含む、利用者パケットが到達する。また、トンネルパケットPKaの往復フラグfg1に基づいて、パケットが往復セッションのパケットであるか否か、往路、復路のいずれのパケットであるかが検知可能になる。
S37:TX処理モジュール402は、更新したトンネルパケットPKaを、サーバ装置10のネットワークインタフェース(図21の通信インタフェース部203)を介して、送信する。
(TX処理モジュール:セッションの登録)
図40は、図39の工程S33の処理を説明するフローチャート図である。工程S33は、TXセッションテーブルst−tに、送信対象のパケットのヘッダ情報hdに対応するセッション情報stを登録する処理を示す。
図40は、図39の工程S33の処理を説明するフローチャート図である。工程S33は、TXセッションテーブルst−tに、送信対象のパケットのヘッダ情報hdに対応するセッション情報stを登録する処理を示す。
S41:TX処理モジュール402は、送信対象のパケットのヘッダ情報hdに基づいて、管理サーバ装置20のネットワーク管理モジュール312に、ヘッダ情報hdに対応する経路情報を問い合わせる。そして、TX処理モジュール402は、ネットワーク管理モジュール312から、パケットヘッダ書き換え表hwを受信する。
S42:TX処理モジュール402は、取得したパケットヘッダ書き換え表hwに基づいて、送信対象のパケットが往復セッションのパケットであるか否かを判定する。
S43:往復セッションのパケットである場合(S42のyes)、TX処理モジュール402は、さらに、送信対象のパケットが往路のパケットであるか否かを判定する。
S44:往復セッションのパケットであって(S42のyes)、復路のパケットである場合(S43のno)、TX処理モジュール402は、取得したパケットヘッダ書き換え表hwのヘッダ書き換え部分hwuの情報をクリアする。即ち、TX処理モジュール402は、ヘッダ書き換え部分hwuの情報を無効化する。
S45:また、往路のパケットである場合(S43のyes)、TX処理モジュール402は、取得したパケットヘッダ書き換え表hwが示す経路の逆の経路を、RXセッションテーブルst−rに登録する。即ち、TX処理モジュール402は、取得したパケットヘッダ書き換え表hwに基づいて復路の経路を生成し、RXセッションテーブルst−rに登録しておく。これにより、RX処理モジュール401は、復路のパケットの受信時に、RXセッションテーブルst−rに基づいて、利用者パケットのヘッダ情報を更新可能になる。これにより、往路と復路の経路を一致させることが実現可能になる。
なお、片道のパケットである場合(S42のno)、または、往路のパケットである場合(S43のyes)、TX処理モジュール402は、ヘッダ書き換え部分hwuの情報を、トンネルパケットPkaの書き換え(図39のS34)に使用する(図37)。
S46:工程S42〜S45の後、TX処理モジュール402は、パケットヘッダ書き換え表hwを、TXセッションテーブルst−tに追加して登録する。このとき、TX処理モジュール402は、追加した、TXセッションテーブルst−tのエントリの項目「タイマー」に、有効期限を設定する。
このように、TX処理モジュール402は、TXセッションテーブルst−tに、送信対象のパケットのヘッダ情報hdに対応するセッション情報stがない場合、IaaS管理プログラム310に経路情報を問い合わせる。そして、TX処理モジュール402は、経路情報に基づいて、送信対象のトンネルパケットPKaを更新する。これにより、マイグレーションに追従した、仮想ルータvrのルーティング制御が可能になる。
次に、図41〜図46にしたがって、RX処理モジュール401の処理を説明する。
(RX処理モジュール)
図41は、図22に示す、仮想ルータvrのRX処理モジュール401の処理を説明するフローチャート図である。
図41は、図22に示す、仮想ルータvrのRX処理モジュール401の処理を説明するフローチャート図である。
S51:RX処理モジュール401は、テナントネットワークnw1から受信したパケットのヘッダ情報hdを解析し、パケットの種別を取得する。
S52:RX処理モジュール401は、物理マシン更新パケットPKbの処理を行う。工程S52の処理の詳細は、図42のフローチャート図にしたがって後述する。
S53:RX処理モジュール401は、受信パケットを解析し、パケットがIPユニキャストであるか否かを判定する。
S54:受信パケットがIPユニキャストではない場合(S53のno)、RX処理モジュール401は、解析結果に応じて、ブロードキャストの処理や、L2パケットの送信処理を行い、処理を終了する。
S55:一方、受信パケットがIPユニキャストである場合(S53のyes)、RX処理モジュール401は、パケットの受信処理を行う。工程S55の処理は、図45のフローチャート図にしたがって後述する。
S56:RX処理モジュール401は、パケットの仮想ネットワークIDと、パケットの宛先のMACアドレスとに対応する、自マシンに搭載の仮想マシンvmにパケットを転送する。
(RX処理モジュール:物理マシン更新パケットの処理)
図42は、図41の工程S52の処理を説明するフローチャート図である。工程S52は、物理マシン更新パケットPKbの受信処理、及び、送信処理を示す。
図42は、図41の工程S52の処理を説明するフローチャート図である。工程S52は、物理マシン更新パケットPKbの受信処理、及び、送信処理を示す。
S61:RX処理モジュール401は、受信パケットのフラグfg2(図9)に基づいて、受信パケットが、物理マシン更新パケットPKbであるか否かを判定する。
S62:物理マシン更新パケットPKbである場合(S61のyes)、RX処理モジュール401は、TXセッションテーブルst−tを更新し、処理を終了する。
TXセッションテーブルst−tは、仮想ネットワークIDごとに管理される。したがって、RX処理モジュール401は、TXセッションテーブルst−tの全エントリから、物理マシン更新パケットPKbが有する仮想ネットワークIDと仮想IPアドレスとが一致するエントリを検出する。RX処理モジュール401は、一致したエントリが有する搭載物理マシンIPアドレスを、物理マシン更新パケットPKbが有する搭載物理マシンIPアドレスにしたがって更新する。
このように、RX処理モジュール401は、物理マシン更新パケットPKbが有する搭載物理マシンIPアドレスにしたがって、仮想ルータvrが保持するTXセッションテーブルst−tを更新する。即ち、RX処理モジュール401は、TXセッションテーブルst−tが有する、マイグレーションにより移動した仮想マシンvmの搭載物理マシンIPアドレスを更新する。これにより、TX処理モジュール402は、TXセッションテーブルst−tに基づいて、マイグレーションにより移動した仮想マシンvmと通信できる。
S63:一方、物理マシン更新パケットPKbではない場合(S61のno)、RX処理モジュール401は、RXセッションテーブルst−rに、マッチ部分stmが、パケットのヘッダ情報hdと一致するエントリがあるか否かを判定する。
S64:一致するエントリがある場合(S63のyes)、RX処理モジュール401は、自マシンに、パケットの宛先の仮想マシンvmが搭載されているか否かを判定する。RX処理モジュール401は、ハイパ−バイザHy(図1)に問い合わせることによって、仮想マシンvmが搭載されているか否かを判定する。
なお、自マシンに、パケットの宛先の仮想マシンvmが搭載されている場合(S64のyes)、パケットの宛先の仮想マシンvmが動作していることを示す。したがって、RX処理モジュール401は、図41のフローチャート図の工程S53の判定処理に遷移する。
S65:一致するエントリがあり(S63のyes)、自マシンに、パケットの宛先の仮想マシンvmが搭載されていない場合(S64のno)、自マシンで動作していた仮想マシンvmがマイグレーションにより移動したことを示す。このように、ヘッダ情報hdと一致するRXセッションテーブルst−rのエントリがあるか否かを判定することによって、仮想マシンvmを過去に搭載していたか否かが判定可能になる。
そして、RX処理モジュール401は、自マシンで動作していた仮想マシンvmの、マイグレーション後の搭載物理マシンIPアドレスをIaaS管理プログラム310に問い合わせる。そして、RX処理モジュール401は、問い合わせて取得した、マイグレーション後の搭載物理マシンIPアドレスにしたがって、過去搭載していた仮想マシン表vhを更新する。過去搭載していた仮想マシン表vhは、図43にしたがって説明する。また、工程S65の処理の詳細は、図44のフローチャート図にしたがって後述する。
(過去搭載していた仮想マシン表)
図43は、過去搭載していた仮想マシン表vhの一例を説明する図である。過去搭載していた仮想マシン表vhは、項目「エントリID」、項目「仮想ネットワークID」、項目「仮想マシンvmのIPアドレス」、項目「新搭載物理マシンIPアドレス」、項目「タイマー」を有する。
図43は、過去搭載していた仮想マシン表vhの一例を説明する図である。過去搭載していた仮想マシン表vhは、項目「エントリID」、項目「仮想ネットワークID」、項目「仮想マシンvmのIPアドレス」、項目「新搭載物理マシンIPアドレス」、項目「タイマー」を有する。
項目「エントリID」は、識別情報を示す。項目「仮想ネットワークID」は、仮想マシンvmが属する仮想ネットワークIDを示す。項目「仮想マシンvmのIPアドレス」は、仮想マシンvmのIPアドレスを示す。項目「新搭載物理マシンIPアドレス」は、マイグレーション後の仮想マシンvmを搭載するサーバ装置10のIPアドレスを示す。項目「タイマー」は、エントリを保持する期間を示す。
(RX処理モジュール:過去搭載していた仮想マシン表の更新処理)
図44は、図42の工程S65の処理を説明するフローチャート図である。工程S65は、自マシンに過去搭載していた仮想マシン表vh(図43)の更新処理を示す。
図44は、図42の工程S65の処理を説明するフローチャート図である。工程S65は、自マシンに過去搭載していた仮想マシン表vh(図43)の更新処理を示す。
S71:RX処理モジュール401は、RXセッションテーブルst−rから、マッチ部分stmの宛先のMACアドレスが、パケットの宛先の仮想マシンvmのIPアドレスと一致するエントリを削除する。つまり、RX処理モジュール401は、RXセッションテーブルst−rから、マイグレーションにより移動した仮想マシンvmを宛先とするエントリを削除する。
S72:RX処理モジュール401は、仮想ネットワークIDと、パケットのヘッダ情報hdとに基づいて、管理サーバ装置20のネットワーク管理モジュール312に、マイグレーションした仮想マシンvmの搭載物理マシンIPアドレスを問い合わせる。
具体的に、RX処理モジュール401は、パケットのヘッダ情報hdに基づいて、逆方向の経路のヘッダ情報hdを生成する。そして、RX処理モジュール401は、逆方向の経路のヘッダ情報hdと、仮想ネットワークIDとに基づいて、管理サーバ装置20のネットワーク管理モジュール312に、経路情報を問い合わせる。そして、RX処理モジュール401は、ネットワーク管理モジュール312から、パケットヘッダ書き換え表hwを受信する。
S73:RX処理モジュール401は、受信したパケットヘッダ書き換え表hwに基づいて、過去搭載していた仮想マシン表vhにエントリを登録する。
具体的に、RX処理モジュール401は、マイグレーションした仮想マシンvmの仮想ネットワークIDを、過去搭載していた仮想マシン表vhの項目「仮想ネットワークID」に登録する。また、RX処理モジュール401は、当該仮想マシンvmのIPアドレスを、過去搭載していた仮想マシン表vhの項目「仮想マシンvmのIPアドレス」に登録する。
また、RX処理モジュール401は、取得したパケットヘッダ書き換え表hwの制御部hwcの項目「宛先物理マシンIP address」の値を、過去搭載していた仮想マシン表vhの項目「新搭載物理マシンIPアドレス」に登録する。また、RX処理モジュール401は、過去搭載していた仮想マシン表vhのタイマー値を、キャッシュタイマーの2倍の値にセットする。
図42のRX処理モジュール401の処理に戻る。
S66:RXセッションテーブルst−rに、マッチ部分stmが、パケットのヘッダ情報hdと一致するエントリがない場合(S63のno)、RX処理モジュール401は、自マシンにパケットの宛先の仮想マシンvmが搭載されているか否かを判定する。仮想マシンvmが搭載されている場合(S66のyes)、新たなセッションを検出した場合に該当する。したがって、RX処理モジュール401は、図41のフローチャート図の工程S53の判定処理に遷移する。
S67:一致するエントリがなく(S63のno)、自マシンに、パケットの宛先の仮想マシンvmが搭載されていない場合(S66のno)、RX処理モジュール401は、過去搭載していた仮想マシン表vhを参照する。そして、RX処理モジュール401は、過去搭載していた仮想マシン表vhに、パケットの宛先の仮想マシンvmと一致するエントリがあるか否かを判定する。つまり、RX処理モジュール401は、受信パケットが、過去、搭載していた仮想マシンvmを宛先とするパケットであるか否かを判定する。
S68:受信したパケットの宛先の仮想マシンvmと一致するエントリがない場合(S67のno)、不適切なパケットであることを示す。したがって、RX処理モジュール401は、受信したパケットを廃棄し、処理を終了する。
S69:工程S65、工程S67のyesの場合、受信パケットが、過去に搭載していた仮想マシンvmを宛先とするパケットであることを示す。したがって、RX処理モジュール401は、受信パケットの送信元のIPアドレスに、受信パケットの宛先の仮想マシンvmの新しい搭載物理マシンIPアドレスを含む、物理マシン更新パケットPKbを送信する。
このように、過去に仮想マシンvmを搭載していたサーバ装置10で動作するRX処理モジュール401は、当該仮想マシンvm宛のパケットの受信を契機として、物理マシン更新パケットPKbを送信する。これにより、RX処理モジュール401は、パケットの送信元の仮想マシンvmに、過去に自マシンに搭載していた仮想マシンvmの搭載物理マシンIPアドレスを通知することができる。これにより、マイグレーションの発生による通信の不通時間を低減可能になる。
(RX処理モジュール:パケットの受信処理)
図45は、図41のフローチャート図の工程S55の処理を説明するフローチャート図である。工程S55は、パケットの受信処理を示す。
図45は、図41のフローチャート図の工程S55の処理を説明するフローチャート図である。工程S55は、パケットの受信処理を示す。
S81:RX処理モジュール401は、受信パケットのヘッダ情報hdに基づいて、RXセッションテーブルst−rを検索する。具体的に、RX処理モジュール401は、RXセッションテーブルst−rのエントリから、マッチ部分stmが、パケットのヘッダ情報hdと一致するエントリを検索する。
S82:RX処理モジュール401は、受信パケットのヘッダ情報hdと一致するマッチ部分stmを有するエントリが、RXセッションテーブルst−rに登録済みであるか否かを判定する。
S83:登録済みではない場合(S82のno)、RX処理モジュール401は、RXセッションテーブルst−rに、受信パケットのヘッダ情報hdに対応するセッション情報stを登録する。工程S83の処理の詳細は、図46にしたがって後述する。なお、既に登録済みの場合(S82のyes)、RX処理モジュール401は、工程S83の処理を行わない。
工程S81〜S83によって、RX処理モジュール401は、受信パケットのヘッダ情報hdとマッチ部分stmが一致する、RXセッションテーブルst−rのエントリを取得する。
S84:RX処理モジュール401は、取得したエントリに基づいて、トンネルパケットPKaが含む、利用者パケットのヘッダ情報hdを更新する。そして、RX処理モジュール401は、利用者パケットを宛先の仮想マシンvmに転送する。
なお、復路パケットの場合、RX処理モジュール401は、往路の際に、TX処理モジュール402が登録した、RXセッションテーブルst−rに基づいて(図40のS45)、利用者パケットのヘッダ情報hdを更新する(S84)。これにより、NATやロードバランサ等によるIP変換を介するパケットの、往路と復路の経路を一致させることが可能になる。
(RX処理モジュール:セッションの登録)
図46は、図45の工程S83の処理を説明するフローチャート図である。工程S83は、RXセッションテーブルst−rに、受信パケットのヘッダ情報hdに対応するセッション情報stを登録する処理を示す。
図46は、図45の工程S83の処理を説明するフローチャート図である。工程S83は、RXセッションテーブルst−rに、受信パケットのヘッダ情報hdに対応するセッション情報stを登録する処理を示す。
S91:RX処理モジュール401は、受信パケットのヘッダ情報hdに基づいて、管理サーバ装置20のネットワーク管理モジュール312に、ヘッダ情報hdに対応する経路情報を問い合わせる。そして、RX処理モジュール401は、ネットワーク管理モジュール312から、パケットヘッダ書き換え表hwを受信する。
S92:RX処理モジュール401は、取得したパケットヘッダ書き換え表hwに基づいて、受信パケットが往復セッションのパケットであるか否かを判定する。
S93:往復セッションのパケットである場合(S92のyes)、RX処理モジュール401は、さらに、受信パケットが往路のパケットであるか否かを判定する。
S94:往路のパケットである場合(S93のyes)、RX処理モジュール401は、受信パケットの送信元の仮想マシンvm及びIPアドレスを宛先とするセッション情報stを生成し、TXセッションテーブルst−tに登録する。これにより、TX処理モジュール402は、復路のパケットの送信時に、登録したセッション情報stに基づいて、トンネルパケットPKaの宛先のIPアドレスを取得できる。これにより、NATやロードバランサ等によるIP変換を介するパケットの、往路と復路の経路を一致させることが可能になる。
S95:片道のパケットである場合(S92のno)、または、往路のパケットである場合(S93のyes)、RX処理モジュール401は、取得したパケットヘッダ書き換え表hwのヘッダ書き換え部分hwuの情報をクリアする。即ち、RX処理モジュール401は、取得したパケットヘッダ書き換え表hwのヘッダ書き換え部分hwuを無効化する。
なお、往復セッションのパケットであって(S92のyes)、復路のパケットである場合(S93のno)、RX処理モジュール401は、ヘッダ書き換え部分hwuの情報を、トンネルパケットPkaの書き換え(図45のS84)に使用する(図37)。
S96:工程S92〜S95の後、RX処理モジュール401は、パケットヘッダ書き換え表hwを、RXセッションテーブルst−rに追加して登録する。このとき、RX処理モジュール401は、追加した、RXセッションテーブルst−rのエントリの項目「タイマー」に、有効期限を設定する。
このように、RX処理モジュール401は、キャッシュとして保持するRXセッションテーブルst−rに、受信したパケットのヘッダ情報hdに対応するセッション情報stがない場合、IaaS管理プログラム310に経路情報を問い合わせる。そして、RX処理モジュール401は、経路情報に基づいて、受信したパケットのヘッダ情報hdを更新し、仮想マシンvmに転送する。これにより、マイグレーションに追従した、仮想ルータvrのルーティング制御が可能になる。
[他の実施の形態例]
なお、上記の実施の形態例では、仮想ルータvrは、トンネルパケットPKaに往復フラグfg1を付加する。ただし、この例に限定されるものではない、仮想ルータvrは、トンネルパケットPKaに、往復フラグfg1を付加しなくてもよい。
なお、上記の実施の形態例では、仮想ルータvrは、トンネルパケットPKaに往復フラグfg1を付加する。ただし、この例に限定されるものではない、仮想ルータvrは、トンネルパケットPKaに、往復フラグfg1を付加しなくてもよい。
仮想ルータvrは、復路のパケットの送信時に、IaaS管理プログラム310に問い合わせることによって、復路の経路情報を取得してもよい。これにより、往復フラグfg1をトンネルパケットPKaに付加しない場合であっても、パケットの往路と復路の経路を一致させることが可能になる。
なお、上記の実施の形態例では、仮想マシンvmがデフォルトルートとして指定する、仮想ルータvrは、当該仮想マシンvmを搭載するサーバ装置10で動作する。ただし、この例に限定されるものではない。仮想マシンvmがデフォルトルートとして指定する仮想ルータvrは、当該仮想マシンvmを搭載するサーバ装置10とは、異なるサーバ装置10で動作してもよい。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
前記生成した経路情報を前記第1の仮想ルータに送信する、
処理をコンピュータに実行させる経路情報提供プログラム。
第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
前記生成した経路情報を前記第1の仮想ルータに送信する、
処理をコンピュータに実行させる経路情報提供プログラム。
(付記2)
付記1において、
前記生成は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供プログラム。
付記1において、
前記生成は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供プログラム。
(付記3)
付記2において、
前記生成は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供プログラム。
付記2において、
前記生成は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供プログラム。
(付記4)
付記2または3のいずれかにおいて、
前記生成は、さらに、前記第1の仮想マシンから前記第2の仮想マシンに対応する第2の仮想ルータを介して当該第2の仮想マシンに到達する、前記パケットの通信に関する第2の情報を含む前記経路情報を生成する、
経路情報提供プログラム。
付記2または3のいずれかにおいて、
前記生成は、さらに、前記第1の仮想マシンから前記第2の仮想マシンに対応する第2の仮想ルータを介して当該第2の仮想マシンに到達する、前記パケットの通信に関する第2の情報を含む前記経路情報を生成する、
経路情報提供プログラム。
(付記5)
付記2乃至4のいずれかにおいて、
前記送信は、前記パケットの前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を更新する、前記経路情報を、前記第1の仮想ルータに送信する、
経路情報提供プログラム。
付記2乃至4のいずれかにおいて、
前記送信は、前記パケットの前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を更新する、前記経路情報を、前記第1の仮想ルータに送信する、
経路情報提供プログラム。
(付記6)
付記2乃至5のいずれかにおいて、
前記送信は、さらに、前記第1の仮想ルータが、前記第2の仮想マシンへの通信のパケットを生成する第3の仮想ルータに送信するための、前記経路情報を、前記第1の仮想ルータに送信する、
経路情報提供プログラム。
付記2乃至5のいずれかにおいて、
前記送信は、さらに、前記第1の仮想ルータが、前記第2の仮想マシンへの通信のパケットを生成する第3の仮想ルータに送信するための、前記経路情報を、前記第1の仮想ルータに送信する、
経路情報提供プログラム。
(付記7)
付記1乃至6のいずれかにおいて、
前記生成は、前記構成情報が含む、前記仮想システムの各構成要素の前記ネットワーク識別情報を示す、MACアドレス及びIPアドレスに基づいて、前記ルーティング処理を行う、
経路情報提供プログラム。
付記1乃至6のいずれかにおいて、
前記生成は、前記構成情報が含む、前記仮想システムの各構成要素の前記ネットワーク識別情報を示す、MACアドレス及びIPアドレスに基づいて、前記ルーティング処理を行う、
経路情報提供プログラム。
(付記8)
付記1乃至7のいずれかにおいて、
前記送信は、前記第1の仮想ルータが、所定の期間、記憶する前記経路情報を前記第1の仮想ルータに送信する、
経路情報提供プログラム。
付記1乃至7のいずれかにおいて、
前記送信は、前記第1の仮想ルータが、所定の期間、記憶する前記経路情報を前記第1の仮想ルータに送信する、
経路情報提供プログラム。
(付記9)
処理部が、第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
処理部が、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
処理部が、前記生成した経路情報を前記第1の仮想ルータに送信する、
経路情報提供方法。
処理部が、第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
処理部が、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
処理部が、前記生成した経路情報を前記第1の仮想ルータに送信する、
経路情報提供方法。
(付記10)
付記9において、
前記生成は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供方法。
付記9において、
前記生成は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供方法。
(付記11)
付記10において、
前記生成は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供方法。
付記10において、
前記生成は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供方法。
(付記12)
第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報とを記憶する記憶部と、
第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する処理部と、
を有する経路情報提供装置。
第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報とを記憶する記憶部と、
第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する処理部と、
を有する経路情報提供装置。
(付記13)
付記12において、
前記処理部は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供装置。
付記12において、
前記処理部は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供装置。
(付記14)
付記13において、
前記処理部は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供装置。
付記13において、
前記処理部は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供装置。
(付記15)
第1の仮想マシンからのパケットを中継する第1の仮想ルータが、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを、経路情報提供装置に送信し、
前記経路情報提供装置は、前記問い合わせに応答して、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信し、
前記第1の仮想ルータは、前記受信した経路情報に基づいて、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットを更新する、
情報処理システムの経路制御方法。
第1の仮想マシンからのパケットを中継する第1の仮想ルータが、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを、経路情報提供装置に送信し、
前記経路情報提供装置は、前記問い合わせに応答して、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信し、
前記第1の仮想ルータは、前記受信した経路情報に基づいて、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットを更新する、
情報処理システムの経路制御方法。
(付記16)
付記15において、
前記情報提供装置は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
情報処理システムの経路制御方法。
付記15において、
前記情報提供装置は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
情報処理システムの経路制御方法。
(付記17)
付記16において、
前記情報提供装置は、さらに、前記パケットが往復通信の往路のパケットであるか否かを示す往復情報を含む前記経路情報を生成し、
前記第1の仮想ルータは、前記受信した経路情報が含む前記往復情報に基づいて、前記パケットが前記往路のパケットであるか否かを判定し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成する、
情報処理システムの経路制御方法。
付記16において、
前記情報提供装置は、さらに、前記パケットが往復通信の往路のパケットであるか否かを示す往復情報を含む前記経路情報を生成し、
前記第1の仮想ルータは、前記受信した経路情報が含む前記往復情報に基づいて、前記パケットが前記往路のパケットであるか否かを判定し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成する、
情報処理システムの経路制御方法。
(付記18)
付記16または17において、
前記情報提供装置は、さらに、前記第1の仮想マシンから前記第2の仮想マシンに対応する第2の仮想ルータを介して前記第2の仮想マシンに到達する、前記パケットの通信に関する第2の情報を含む前記経路情報を生成する、
情報処理システムの経路制御方法。
付記16または17において、
前記情報提供装置は、さらに、前記第1の仮想マシンから前記第2の仮想マシンに対応する第2の仮想ルータを介して前記第2の仮想マシンに到達する、前記パケットの通信に関する第2の情報を含む前記経路情報を生成する、
情報処理システムの経路制御方法。
(付記19)
付記15乃至18のいずれかにおいて、
前記第1の仮想ルータは、さらに、前記受信した経路情報を、前記第2の仮想マシンへの通信のパケットを生成する第3の仮想ルータに送信する、
情報処理システムの経路制御方法。
付記15乃至18のいずれかにおいて、
前記第1の仮想ルータは、さらに、前記受信した経路情報を、前記第2の仮想マシンへの通信のパケットを生成する第3の仮想ルータに送信する、
情報処理システムの経路制御方法。
(付記20)
付記15乃至19のいずれかにおいて、
前記第1の仮想ルータは、前記受信した経路情報を、所定の期間、記憶する、
情報処理システムの経路制御方法。
付記15乃至19のいずれかにおいて、
前記第1の仮想ルータは、前記受信した経路情報を、所定の期間、記憶する、
情報処理システムの経路制御方法。
(付記21)
第1のハードウェア資源で構成された第1の仮想マシンと、
第2のハードウェア資源で構成された第2の仮想マシンと、
前記第1、または、第3のハードウェア資源で構成された前記第1の仮想マシンからのパケットを中継する第1の仮想ルータと、
経路情報提供装置と、を有し、
前記第1の仮想ルータは、
前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを前記経路情報提供装置に送信し、前記経路情報提供装置から前記経路情報を受信する通信部と、
前記受信した経路情報に基づいて、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットを更新する処理部と、を有し、
前記経路情報提供装置は、
前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報を記憶する記憶部と、
前記構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する処理部と、
を有する情報処理システム。
第1のハードウェア資源で構成された第1の仮想マシンと、
第2のハードウェア資源で構成された第2の仮想マシンと、
前記第1、または、第3のハードウェア資源で構成された前記第1の仮想マシンからのパケットを中継する第1の仮想ルータと、
経路情報提供装置と、を有し、
前記第1の仮想ルータは、
前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを前記経路情報提供装置に送信し、前記経路情報提供装置から前記経路情報を受信する通信部と、
前記受信した経路情報に基づいて、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットを更新する処理部と、を有し、
前記経路情報提供装置は、
前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報を記憶する記憶部と、
前記構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する処理部と、
を有する情報処理システム。
Dc:データセンタ、10a〜10c:サーバ装置、20:管理サーバ装置、40:ゲートウェイ装置、30a、30b:利用者のクライアント装置、60:管理者のクライアント装置、vm:仮想マシン、vr:仮想ルータ
Claims (17)
- 第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
前記生成した経路情報を前記第1の仮想ルータに送信する、
処理をコンピュータに実行させる経路情報提供プログラム。 - 請求項1において、
前記生成は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供プログラム。 - 請求項2において、
前記生成は、さらに、前記第1の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供プログラム。 - 請求項2または3のいずれかにおいて、
前記生成は、さらに、前記第1の仮想マシンから前記第2の仮想マシンに対応する第2の仮想ルータを介して当該第2の仮想マシンに到達する、前記パケットの通信に関する第2の情報を含む前記経路情報を生成する、
経路情報提供プログラム。 - 請求項2乃至4のいずれかにおいて、
前記送信は、前記パケットの前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を更新する、前記経路情報を、前記第1の仮想ルータに送信する、
経路情報提供プログラム。 - 請求項2乃至5のいずれかにおいて、
前記送信は、さらに、前記第1の仮想ルータが、前記第2の仮想マシンへの通信のパケットを生成する第3の仮想ルータに送信するための、前記経路情報を、前記第1の仮想ルータに送信する、
経路情報提供プログラム。 - 請求項1乃至6のいずれかにおいて、
前記生成は、前記構成情報が含む、前記仮想システムの各構成要素の前記ネットワーク識別情報を示す、MACアドレス及びIPアドレスに基づいて、前記ルーティング処理を行う、
経路情報提供プログラム。 - 請求項1乃至7のいずれかにおいて、
前記送信は、前記第1の仮想ルータが、所定の期間、記憶する前記経路情報を前記第1の仮想ルータに送信する、
経路情報提供プログラム。 - 処理部が、第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
処理部が、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
処理部が、前記生成した経路情報を前記第1の仮想ルータに送信する、
経路情報提供方法。 - 第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報とを記憶する記憶部と、
第1の仮想マシンからのパケットを中継する第1の仮想ルータから、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する処理部と、
を有する経路情報提供装置。 - 第1の仮想マシンからのパケットを中継する第1の仮想ルータが、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを、経路情報提供装置に送信し、
前記経路情報提供装置は、前記問い合わせに応答して、前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信し、
前記第1の仮想ルータは、前記受信した経路情報に基づいて、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットを更新する、
情報処理システムの経路制御方法。 - 請求項11において、
前記情報提供装置は、さらに、前記通信のパケットの通信に関する第1の情報と、前記第1、第2の仮想マシン及び前記第1の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、IPアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記IPアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
情報処理システムの経路制御方法。 - 請求項12において、
前記情報提供装置は、さらに、前記パケットが往復通信の往路のパケットであるか否かを示す往復情報を含む前記経路情報を生成し、
前記第1の仮想ルータは、前記受信した経路情報が含む前記往復情報に基づいて、前記パケットが前記往路のパケットであるか否かを判定し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成する、
情報処理システムの経路制御方法。 - 請求項12または13において、
前記情報提供装置は、さらに、前記第1の仮想マシンから前記第2の仮想マシンに対応する第2の仮想ルータを介して前記第2の仮想マシンに到達する、前記パケットの通信に関する第2の情報を含む前記経路情報を生成する、
情報処理システムの経路制御方法。 - 請求項11乃至14のいずれかにおいて、
前記第1の仮想ルータは、さらに、前記受信した経路情報を、前記第2の仮想マシンへの通信のパケットを生成する第3の仮想ルータに送信する、
情報処理システムの経路制御方法。 - 請求項11乃至15のいずれかにおいて、
前記第1の仮想ルータは、前記受信した経路情報を、所定の期間、記憶する、
情報処理システムの経路制御方法。 - 第1のハードウェア資源で構成された第1の仮想マシンと、
第2のハードウェア資源で構成された第2の仮想マシンと、
前記第1、または、第3のハードウェア資源で構成された前記第1の仮想マシンからのパケットを中継する第1の仮想ルータと、
経路情報提供装置と、を有し、
前記第1の仮想ルータは、
前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットの経路情報の問い合わせを前記経路情報提供装置に送信し、前記経路情報提供装置から前記経路情報を受信する通信部と、
前記受信した経路情報に基づいて、前記第1の仮想マシンから第2の仮想マシンへの通信の前記パケットを更新する処理部と、を有し、
前記経路情報提供装置は、
前記第2の仮想マシンの識別情報と、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報を記憶する記憶部と、
前記構成情報に基づいて、前記第2の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第1の仮想ルータに送信する処理部と、
を有する情報処理システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014233578A JP2016100625A (ja) | 2014-11-18 | 2014-11-18 | 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム |
EP15191416.5A EP3024185A1 (en) | 2014-11-18 | 2015-10-26 | Route information provision program, route information provision method and information processing system |
US14/924,141 US20160142306A1 (en) | 2014-11-18 | 2015-10-27 | Route information provision program, route information provision method and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014233578A JP2016100625A (ja) | 2014-11-18 | 2014-11-18 | 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016100625A true JP2016100625A (ja) | 2016-05-30 |
Family
ID=54360223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014233578A Withdrawn JP2016100625A (ja) | 2014-11-18 | 2014-11-18 | 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160142306A1 (ja) |
EP (1) | EP3024185A1 (ja) |
JP (1) | JP2016100625A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023100331A1 (ja) * | 2021-12-02 | 2023-06-08 | 日本電信電話株式会社 | パケット中継システム、および、パケット中継方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109587065B (zh) * | 2017-09-28 | 2021-02-23 | 北京金山云网络技术有限公司 | 转发报文的方法、装置、交换机、设备及存储介质 |
EP3912321A1 (en) * | 2019-01-18 | 2021-11-24 | Nokia Solutions and Networks Oy | Method and apparatus for protecting pdu sessions in 5g core networks |
CN115443640A (zh) * | 2020-04-16 | 2022-12-06 | 瞻博网络公司 | 针对虚拟路由和转发的基于租户的映射 |
JP7153942B2 (ja) * | 2020-08-17 | 2022-10-17 | ラトナ株式会社 | 情報処理装置、方法、コンピュータプログラム、及び、記録媒体 |
US20220385570A1 (en) * | 2021-05-28 | 2022-12-01 | Juniper Networks, Inc. | Policy enforcement for bare metal servers by top of rack switches |
CN114844833A (zh) * | 2022-03-30 | 2022-08-02 | 阿里云计算有限公司 | 报文处理方法和系统,存储介质及计算机终端 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5190084B2 (ja) | 2010-03-30 | 2013-04-24 | 株式会社日立製作所 | 仮想マシンのマイグレーション方法およびシステム |
US8473557B2 (en) * | 2010-08-24 | 2013-06-25 | At&T Intellectual Property I, L.P. | Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network |
MY149439A (en) * | 2010-11-09 | 2013-08-30 | Mimos Berhad | A method to optimize path management in virtual machine environtment |
JP5760647B2 (ja) | 2011-04-27 | 2015-08-12 | 日本電気株式会社 | 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム |
WO2013020126A1 (en) * | 2011-08-04 | 2013-02-07 | Midokura Pte. Ltd. | System and method for implementing and managing virtual networks |
US9258266B2 (en) * | 2012-08-30 | 2016-02-09 | Cisco Technology, Inc. | Host detection by top of rack switch devices in data center environments |
-
2014
- 2014-11-18 JP JP2014233578A patent/JP2016100625A/ja not_active Withdrawn
-
2015
- 2015-10-26 EP EP15191416.5A patent/EP3024185A1/en not_active Withdrawn
- 2015-10-27 US US14/924,141 patent/US20160142306A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023100331A1 (ja) * | 2021-12-02 | 2023-06-08 | 日本電信電話株式会社 | パケット中継システム、および、パケット中継方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3024185A1 (en) | 2016-05-25 |
US20160142306A1 (en) | 2016-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3106407C (en) | Multi-cloud connectivity using srv6 and bgp | |
JP2016100625A (ja) | 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム | |
US11115374B2 (en) | Source-aware technique for facilitating LISP host mobility | |
US9477506B2 (en) | Dynamic virtual machines migration over information centric networks | |
US10034201B2 (en) | Stateless load-balancing across multiple tunnels | |
US8121146B2 (en) | Method, apparatus and system for maintaining mobility resistant IP tunnels using a mobile router | |
US9509603B2 (en) | System and method for route health injection using virtual tunnel endpoints | |
WO2014118938A1 (ja) | 通信経路の管理方法 | |
US10771390B2 (en) | Techniques for optimizing egress tunnel router failure scenarios in intelligent wide area networks | |
US9319377B2 (en) | Auto-split DNS | |
WO2017133291A1 (zh) | 一种基于服务器集群的报文生成方法和负载均衡器 | |
US20160285734A1 (en) | Cloud-environment provision system, route control method, and medium | |
US20150200910A1 (en) | Control apparatus and transfer control method | |
US10498836B2 (en) | Network based service discovery via unicast messages | |
JPWO2014142278A1 (ja) | 制御装置、通信システム、通信方法及びプログラム | |
US9763135B1 (en) | Load balancing with mobile resources | |
CN113545130A (zh) | 利用分布式散列的无线客户端的快速漫游和统一策略 | |
Kato et al. | Evaluation of Extended NTMobile System Running on vCPE with Mininet | |
Dunbar et al. | Practices for Scaling ARP and Neighbor Discovery (ND) in Large Data Centers | |
WO2022081356A1 (en) | Dhcp layer 2 relay in vxlan overlay fabric |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20171218 |