JP7189918B2 - 通信制御方法、計算機システム、及び計算機 - Google Patents

通信制御方法、計算機システム、及び計算機 Download PDF

Info

Publication number
JP7189918B2
JP7189918B2 JP2020184055A JP2020184055A JP7189918B2 JP 7189918 B2 JP7189918 B2 JP 7189918B2 JP 2020184055 A JP2020184055 A JP 2020184055A JP 2020184055 A JP2020184055 A JP 2020184055A JP 7189918 B2 JP7189918 B2 JP 7189918B2
Authority
JP
Japan
Prior art keywords
mac address
virtual machine
duplication
duplicate
virtual
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.)
Active
Application number
JP2020184055A
Other languages
English (en)
Other versions
JP2022074207A (ja
Inventor
球太 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020184055A priority Critical patent/JP7189918B2/ja
Priority to US17/405,062 priority patent/US20220141178A1/en
Publication of JP2022074207A publication Critical patent/JP2022074207A/ja
Application granted granted Critical
Publication of JP7189918B2 publication Critical patent/JP7189918B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、クラウド基盤上で稼働する仮想マシンの通信制御の技術に関する。
近年、複数のクラウド基盤を組み合わせて、システムを構築及び運用するケースが増大している。例えば、タイプが異なるプライベートクラウド及びパブリッククラウドの組合せ、異なるベンダが提供するパブリッククラウドの組合せ等がある。
各クラウド基盤は独立した仮想的なネットワークを構築しており、クラウド基盤間では当該仮想的なネットワークの情報が共有されない。そのため、クラウド基盤間でネットワーク情報、具体的には、仮想マシンに設定されたMACアドレスの重複が発生し、通信障害の原因となる。クラウド基盤上の仮想環境間をL2延伸する場合、特に、MACアドレスの重複が発生しやすい。
上記課題に対して特許文献1、特許文献2、及び特許文献3に記載の技術が知られている。
特許文献1には、「割当装置は、収集部と、分類部と、判定部と、割当部とを備える。収集部は、2拠点毎に構築された通信路同士を拠点内のスイッチを介して相互に接続することで、MACアドレスによる通信を行うネットワークを複数の拠点間に構築する場合に、2拠点毎に構築された通信路を識別する通信路識別子をスイッチ毎に収集する。分類部は、通信路識別子に基づいて通信路同士の接続関係を判定し、各拠点内の端末を、同一のネットワークに属するグループに分類する。判定部は、分類されたグループ毎に、MACアドレスの重複が生じているか否かを判定する。割当部は、MACアドレスの重複が生じている複数の端末の少なくとも一方に、グループ内で未使用のMACアドレスを割り当てる。」ことが記載されている。
特許文献2には、「MACアドレス変換装置は、送信元拠点配下の端末から送信されたフレームを宛先拠点配下の端末に向けて転送するシステムにおいて、MACアドレス変換部を備える。前記MACアドレス変換部は、前記送信元拠点から転送されたフレームを受信すると、該フレームに含まれるMACアドレスであって前記送信元拠点内で前記送信元拠点配下の端末及び前記宛先拠点配下の端末が一意に識別されるMACアドレスを、前記宛先拠点内で前記送信元拠点配下の端末及び前記宛先拠点配下の端末が一意に識別されるMACアドレスに変換する。」ことが記載されている。
特許文献3には、「通信システムは、異なるポートから受信した所定の仮想ネットワークに属する複数のフレームの送信元MACアドレスが同一の場合に、MAC重複の発生を示すMAC重複通知を送信するフロー処理装置と、前記フロー処理装置から前記MAC重複通知を受信した場合に、前記所定の仮想ネットワークの構成を変更するフロー制御装置と、を含む。」ことが記載されている。
特開2013-9261号公報 特開2013-5038号公報 国際公開第2017/170155号
仮想マシン上で稼働するゲストOSがMACアドレスに関連した設定情報を保持しているため、すでに割り当てられているMACアドレスの変更が困難なケースが存在する。この場合、特許文献1に記載の技術は採用できない。また、MACアドレスとミドルウェアとが関連付けられている場合も同様にMACアドレスの変更が困難である。
特許文献2に記載の技術では、クラウド基盤間で仮想マシンをマイグレーションする場合に以下のような問題がある。MACアドレスが重複している仮想マシンが異なるクラウド基盤に存在し、一方のクラウド基盤から他方のクラウド基盤に仮想マシンをマイグレーションした場合、MACアドレス変換部が機能しないため、MACアドレスの重複による通信障害が発生する。同一クラウド基盤で通信している仮想マシンのうち、一つ仮想マシンを別のクラウド基盤にマイグレーションした場合、MACアドレス変換部によってマイグレーション後の仮想マシンのMACアドレスは変換されるため、アドレス解決が完了するまでの間、マイグレーション後の仮想マシンとマイグレーション元のクラウド基盤の仮想マシンとの通信は一時的に切断される。
特許文献3に記載の技術では、仮想ネットワークの構成が変更されるため、変更規模が大きく、変更に要する時間も大きい。また、仮想ネットワークの構成を望まないケース、又は、クラウド基盤の性質によって仮想ネットワークの構成を変更できないケースが存在する。
本発明は、従来技術における課題を解消し、MACアドレスの重複による通信障害を回避する技術を提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の計算機を有するクラウド基盤を複数備える計算機システムであって、前記計算機は、当該計算機が有するリソースを用いて生成される仮想マシンを管理するハイパバイザを含み、前記仮想マシンには、MACアドレスが割り当てられ、前記ハイパバイザ上では、重複している前記MACアドレスが割り当てられている重複仮想マシンの通信を制御する重複是正仮想マシンが稼働し、前記クラウド基盤は、当該クラウド基盤及び他のクラウド基盤の各々の前記仮想マシンの前記MACアドレスの重複を監視するMACアドレス重複監視部を含み、前記MACアドレス重複監視部は、前記MACアドレスの重複を検知した場合、変換MACアドレスを生成し、前記重複仮想マシンが稼働する前記計算機に対して前記変換MACアドレスを含む重複是正リクエストを送信し、前記重複是正仮想マシンは、前記重複是正リクエストを受信した場合、前記重複仮想マシンに割り当てられる前記MACアドレスと前記変換MACアドレスと対応付けた変換情報を生成し、前記変換情報を用いて、前記重複仮想マシンと他の仮想マシンとの間の通信を制御する。
本発明によれば、従来技術における課題を解消し、MACアドレスの重複による通信障害を回避できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1の計算機システムの構成例を示す図である。 実施例1の計算機システムの動作の概要を説明する図である。 実施例1の計算機システムの動作の概要を説明する図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のMACアドレス変換情報のデータ構造の一例を示す図である。 実施例1のARP情報のデータ構造の一例を示す図である。 実施例1のARP情報のデータ構造の一例を示す図である。 実施例1のMACアドレス重複監視部が実行する処理の一例を説明するフローチャートである。 実施例1の重複是正サーバが実行する処理の一例を説明するフローチャートである。 実施例1の重複是正サーバが実行する処理の一例を説明するフローチャートである。 実施例1の重複是正サーバが実行する処理の一例を説明するフローチャートである。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のMACアドレス変換情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のMACアドレス変換情報のデータ構造の一例を示す図である。 実施例1のARP情報のデータ構造の一例を示す図である。 実施例1のARP情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のネットワーク構成情報のデータ構造の一例を示す図である。 実施例1のARP情報のデータ構造の一例を示す図である。 実施例1のARP情報のデータ構造の一例を示す図である。
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
図1は、実施例1の計算機システムの構成例を示す図である。
計算機システムは、複数のクラウド基盤100から構成される。各クラウド基盤100はネットワーク103を介して互いに通信可能に接続される。ネットワーク103は、例えば、LAN(Local Area Network)及びインターネット等である。ネットワーク103の接続方式は有線及び無線のいずれでもよい。
計算機システムには、特性の異なるクラウド基盤100が含まれるものとする。ここで、「特性」はパブリッククラウド及びプライベートクラウド等の種別、並びに、提供するベンタ等の違いを表す。
クラウド基盤100は複数の計算機101及びスイッチ102を含む。なお、クラウド基盤100は、ストレージシステム等その他の構成を含んでもよい。
計算機101は、計算機リソースとして、プロセッサ110、メモリ111、及びNIC(Network Interface Card)を有する。なお、計算機101は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶媒体を有してもよい。
プロセッサ110は、メモリ111に格納されるプログラムを実行する。プロセッサ110がプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、プロセッサ110が当該モジュールを実現するプログラムを実行していることを示す。
メモリ111は、プロセッサ110が実行するプログラム及びプログラムが使用する情報を格納する。また、メモリ111はワークエリアとしても用いられる。
NIC112は、ネットワークを介して通信するためのインタフェースである。
スイッチ102は、クラウド基盤100間を接続するネットワーク装置である。
少なくとも一つの計算機101のメモリ111には、仮想マシン150を制御するハイパバイザ120を実現するプログラムが格納される。また、当該メモリ111には、仮想マシン150及び重複是正サーバ160の実体である情報、仮想スイッチ170及び隔離仮想スイッチ171の実体である情報、仮想マシン150上で稼働するOS(Operating System)等のプログラム、及び各種情報が格納される。
ハイパバイザ120は、計算機リソースを用いて、一つの仮想NIC(vNIC)を有する仮想マシン150を生成し、また、仮想ネットワークを構成する仮想スイッチ170を生成する。実施例1のハイパバイザ120は、計算機リソースを用いて、二つのvNICを有する重複是正サーバ160を生成し、また、MACアドレスの重複を回避するために用いる隔離仮想スイッチ171を生成する。vNICには仮想的なMACアドレスが割り当てられる。
仮想マシン150は、所定のサービスを実現するための処理を実行する。仮想マシン150は、同一の仮想ネットワーク(同一のセグメント)に属する仮想マシン150と通信するためのARP情報190を管理する。ARP情報190のデータ構造については図5A及び図5Bを用いて説明する。
重複是正サーバ160は、重複するMACアドレスが割り当てられている仮想マシン150の通信を制御する。重複是正サーバ160はMACアドレス変換情報180を管理する。MACアドレス変換情報180のデータ構造については図4を用いて説明する。
少なくとも一つの計算機101のメモリ111には、MACアドレス重複監視部130を実現するプログラムが格納される。
MACアドレス重複監視部130は、仮想ネットワークにおけるMACアドレスの重複を監視する。MACアドレス重複監視部130は、仮想ネットワーク(セグメント)単位でMACアドレスの重複を監視する。MACアドレス重複監視部130は、各クラウド基盤100のMACアドレスを格納するネットワーク構成情報140を管理する。ネットワーク構成情報140のデータ構造については図3A及び図3Bを用いて説明する。
なお、MACアドレス重複監視部130は仮想マシンを用いて実現してもよい。また、ハイパバイザ120がMACアドレス重複監視部130の機能を備えてもよい。
図2A及び図2Bは、実施例1の計算機システムの動作の概要を説明する図である。
ハイパバイザ120は、仮想マシン150を生成したとき、仮想マシン150が仮想スイッチ170と接続するように設定する。仮想マシン150は、vNIC、仮想スイッチ170、NIC112、及びスイッチ102を介して、自クラウド基盤100又は他クラウド基盤100の仮想マシン150と通信する。ここで、自クラウド基盤100は、仮想マシン150が稼働する計算機101が含まれるクラウド基盤100を示し、他クラウド基盤100は、自クラウド基盤100以外のクラウド基盤100を示す。
ハイパバイザ120は、重複是正サーバ160を生成したとき、重複是正サーバ160の一つのvNICが仮想スイッチ170と接続し、もう一つのvNICが隔離仮想スイッチ171と接続するように設定する。
MACアドレスの重複が検知された場合、以下のような処理が実行される。ここでは、クラウド基盤(A)100の仮想マシン(A)150のMACアドレスと、クラウド基盤(B)100の仮想マシン(B)150のMACアドレスとが重複しているものとする。また、以下では、クラウド基盤(A)100側の処理を説明するが、クラウド基盤(B)でも同じ処理が実行される。
(処理1)MACアドレス重複監視部(A)130は、自クラウド基盤(A)100のMACアドレスの情報を取得し、ネットワーク構成情報140に格納する。また、MACアドレス重複監視部(A)130は、クラウド基盤(B)100のMACアドレス重複監視部(B)130と通信することによって、クラウド基盤100間でネットワーク構成情報140を同期する。
(処理2)MACアドレス重複監視部(A)130は、仮想マシン(A)150に割り当てられているMACアドレスの重複を検知した場合、変換MACアドレスを含む重複是正リクエストを重複是正サーバ(A)160に送信する。本明細書では、MACアドレスが重複している仮想マシン150を重複仮想マシン150と記載する。
(処理3)重複是正サーバ(A)160は、重複是正リクエストを受信した場合、重複仮想マシン(A)150のvNICの接続先を仮想スイッチ170から隔離仮想スイッチ171に切り替えるようにハイパバイザ120に指示を行う。この結果、図2Aの接続状態から図2Bの接続状態に遷移する。
(処理4)重複是正サーバ(A)160は、仮想ネットワーク内に、変換MACアドレスへの更新を促すGARPを送信する。
(処理5)重複是正サーバ(A)160は、隔離仮想スイッチ171を介して重複仮想マシン(A)150からパケットを受信した場合、MACアドレスを変換MACアドレスに変換し、仮想スイッチ170、NIC112、及びスイッチ102を介してパケットを送信する。重複是正サーバ(A)160は、仮想スイッチ170を介して重複仮想マシン(A)150宛てのパケットを受信した場合、変換MACアドレスをMACアドレスに変換し、隔離仮想スイッチ171を介して重複仮想マシン(A)150にパケットを送信する。
MACアドレスの重複が解消された場合には以下のような処理が実行される。
(処理6)MACアドレス重複監視部130は、重複仮想マシン(A)150に割り当てられているMACアドレスの重複が解消していることを検知した場合、解除リクエストを重複是正サーバ(A)160に送信する。
(処理7)重複是正サーバ(A)160は、解除リクエストを受信した場合、重複仮想マシン(A)150のvNICの接続先を隔離仮想スイッチ171から仮想スイッチ170に切り替えるようにハイパバイザ120に指示を行う。この結果、図2Bの接続状態から図2Aの接続状態に遷移する。この場合、重複仮想マシン(A)150から送信されるパケット及び重複仮想マシン(A)150宛てのパケットは、重複是正サーバ(A)160を経由することなく、仮想スイッチ170を介して送信される。
(処理8)重複是正サーバ(A)160は、仮想ネットワーク内に、MACアドレスへの更新を促すGARPを送信する。
図3A及び図3Bは、実施例1のネットワーク構成情報140のデータ構造の一例を示す図である。図3Aは、クラウド基盤(A)100側のネットワーク構成情報140を示し、図3Bは、クラウド基盤(B)100側のネットワーク構成情報140を示す。
ネットワーク構成情報140は、ID301、クラウドID302、ハイパバイザID303、MACアドレス304、変換MACアドレス305、VLAN ID306、仮想スイッチポートID307、隔離仮想スイッチポートID308、IPアドレス309、及び関連ID310から構成されるレコードを格納する。一つのレコードは一つの仮想マシン150に対応する。
ID301は、数値及び記号等、レコードの識別情報を格納するフィールドである。クラウドID302は、数値及び記号等、クラウド基盤100の識別情報を格納するフィールドである。ハイパバイザID303は、数値及び記号等、ハイパバイザ120の識別情報を格納するフィールドである。
MACアドレス304は、ハイパバイザ120上の仮想マシン150に割り当てられているMACアドレスを格納するフィールドである。変換MACアドレス305は、重複仮想マシン150に割り当てられている変換MACアドレスを格納するフィールドである。VLAN ID306は、VLANの識別情報を格納するフィールドである。
仮想スイッチポートID307は、仮想マシン150が接続する仮想スイッチ170のポートの識別情報を格納するフィールドである。隔離仮想スイッチポートID308は、重複仮想マシン150が接続する隔離仮想スイッチ171のポートの識別情報を格納するフィールドである。
IPアドレス309は、ハイパバイザ120上の仮想マシン150に割り当てられているIPアドレスを格納するフィールドである。
関連ID310は、重複したMACアドレスが設定されているレコードの識別情報を格納するフィールドである。
なお、ネットワーク構成情報140に格納されるレコードの構造は一例であって、これに限定されない。
図4は、実施例1のMACアドレス変換情報180のデータ構造の一例を示す図である。
MACアドレス変換情報180は、ID401、クラウドID402、ハイパバイザID403、MACアドレス404、変換MACアドレス405、VLAN ID406、仮想スイッチポートID407、隔離仮想スイッチポートID408、及びIPアドレス409から構成されるレコードを格納する。一つのレコードは一つの重複仮想マシン150に対応する。
MACアドレス変換情報180のレコードの各フィールドは、ネットワーク構成情報140のレコードの各フィールドと同一のものである。
なお、MACアドレス変換情報180に格納されるレコードの構造は一例であって、これに限定されない。
図5A及び図5Bは、実施例1のARP情報190のデータ構造の一例を示す図である。図5Aは、仮想マシン(A)150が管理するARP情報190を示し、図5Bは、仮想マシン(B)150が管理するARP情報190を示す。
ARP情報190は、ID501、MACアドレス502、及びIPアドレス503から構成されるレコードを格納する。仮想ネットワーク内の一つの仮想マシン150に対して一つレコードが存在する。
ID501は、数値及び記号等、レコードの識別情報を格納するフィールドである。MACアドレス502は、仮想マシン150に割り当てられているMACアドレスを格納するフィールドである。IPアドレス503は、仮想マシン150に割り当てられているIPアドレスを格納するフィールドである。
次に、図6から図9を用いて計算機システムの処理の詳細について説明する。
図6は、実施例1のMACアドレス重複監視部130が実行する処理の一例を説明するフローチャートである。
MACアドレス重複監視部130は、周期的に、又は、イベントを検知した場合、以下で説明する処理を実行する。イベントは、例えば、ユーザからの実行要求の受信及び仮想マシン150のマイグレーションの実行である。
MACアドレス重複監視部130は、自クラウド基盤100の各ハイパバイザ120から仮想マシン150に割り当てられているMACアドレスの情報を取得し(ステップS101)、取得した情報に基づいてネットワーク構成情報140を更新する。
具体的には、MACアドレス重複監視部130は、仮想マシン150のレコードが存在する場合には、当該レコードのMACアドレス304にMACアドレスを設定する。仮想マシン150のレコードが存在しない場合、MACアドレス重複監視部130は、レコードを追加し、追加したレコードのID301、クラウドID302、ハイパバイザID303、MACアドレス304、VLAN ID306、仮想スイッチポートID307、及びIPアドレス309に値を設定する。
次に、MACアドレス重複監視部130は、ネットワーク構成情報140を参照して、重複するMACアドレスが存在するか否かを判定する(ステップS102)。具体的には、以下のような処理が実行される。
(S102-1)MACアドレス重複監視部130は、クラウドID302に自クラウド基盤100の識別情報が設定されるレコードを検索する。
(S102-2)MACアドレス重複監視部130は、検索されたレコードの中から一つのターゲットレコードを選択する。
(S102-3)MACアドレス重複監視部130は、ターゲットレコードと他のレコードのMACアドレス304及びVLAN ID306を参照して、重複するMACアドレスが存在するか否かを判定する。MACアドレス304及びVLAN ID306の値の組合せが、ターゲットレコードのMACアドレス304及びVLAN ID306の値の組合せと一致するレコードが一つ以上存在する場合、MACアドレス重複監視部130は、重複するMACアドレスが存在すると判定する。
(S102-4)MACアドレス重複監視部130は、S102-1において検索された全てのレコードの処理が完了したか否かを判定する。全てのレコードの処理が完了していない場合、MACアドレス重複監視部130はS102-2に戻り、同様の処理を実行する。全てのレコードの処理が完了した場合、MACアドレス重複監視部130はステップS102の処理を終了する。
なお、変換MACアドレス305に変換MACアドレスが設定されているレコードについては当該判定からは除外される。
以上が、ステップS102の処理の説明である。
重複するMACアドレスが存在しない場合、MACアドレス重複監視部130はステップS105に進む。
重複するMACアドレスが存在する場合、MACアドレス重複監視部130は、重複仮想マシン150に割り当てる変換MACアドレスを生成する(ステップS103)。具体的には、以下のような処理が実行される。
(S103-1)MACアドレス重複監視部130は、ランダムに変換MACアドレスを生成する。MACアドレス重複監視部130は、ネットワーク構成情報140の各レコードのMACアドレス304及び変換MACアドレス305を参照し、生成された変換MACアドレスと同一のMACアドレスが存在する場合、再度、変換MACアドレスを生成する。
(S103-2)MACアドレス重複監視部130は、各レコードの関連ID310に、同一のMACアドレスが設定されている他のレコードの識別情報を設定する。
以上がステップS103の処理の説明である。
次に、MACアドレス重複監視部130は、重複仮想マシン150が稼働するハイパバイザ120上の重複是正サーバ160に、変換MACアドレスが設定されたレコードを含む重複是正リクエストを送信する(ステップS104)。その後、MACアドレス重複監視部130はステップS105に進む。
なお、MACアドレス重複監視部130は、重複是正サーバ160から隔離仮想スイッチ171のポート番号の通知を受信した場合、該当するレコードの隔離仮想スイッチポートID308に値を設定する。
ステップS105では、MACアドレス重複監視部130は、ネットワーク構成情報140を参照して、重複が解消されたMACアドレスが存在するか否かを判定する(ステップS105)。具体的には、以下のような処理が実行される。
(S105-1)MACアドレス重複監視部130は、クラウドID302に自クラウド基盤100の識別情報が設定され、かつ、関連ID310に値が設定されるレコードを検索する。
(S105-2)MACアドレス重複監視部130は、検索されたレコードの中からターゲットレコードを選択する。
(S105-3)MACアドレス重複監視部130は、ターゲットレコードのMACアドレス304の値と、当該レコードの関連ID310に対するレコードのMACアドレス304の値とが一致するか否かを判定する。二つのレコードのMACアドレス304の値が一致しない場合、MACアドレス重複監視部130は、重複が解消されたMACアドレスが存在すると判定する。
MACアドレス重複監視部130は、S105-1において検索された全てのレコードの処理が完了したか否かを判定する。全てのレコードの処理が完了していない場合、MACアドレス重複監視部130はS105-2に戻り、同様の処理を実行する。全てのレコードの処理が完了した場合、MACアドレス重複監視部130はステップS105の処理を終了する。
以上がステップS105の処理の説明である。
重複が解消されたMACアドレスが存在しない場合、MACアドレス重複監視部130はステップS107に進む。
重複が解消されたMACアドレスが存在する場合、MACアドレス重複監視部130は、重複仮想マシン150が稼働するハイパバイザ120上の重複是正サーバ160に、重複が解消されたMACアドレスが設定されたレコードを含む解除リクエストを送信する(ステップS106)。その後、MACアドレス重複監視部130はステップS107に進む。
このとき、MACアドレス重複監視部130は、自クラウド基盤100の重複仮想マシン150のレコードの変換MACアドレス305、隔離仮想スイッチポートID308、及び関連ID310の値を削除する。また、MACアドレス重複監視部130は、自クラウド基盤100の重複仮想マシン150のレコードの関連ID310の値を削除する。
ステップS107では、MACアドレス重複監視部130は、他クラウド基盤100のMACアドレス重複監視部130との間でネットワーク構成情報140を同期する(ステップS107)。
次に、MACアドレス重複監視部130は、ネットワーク構成情報140を参照して、重複するMACアドレスが存在するか否かを判定する(ステップS108)。ステップS108の処理はステップS102の処理と同一の処理である。
重複するMACアドレスが存在しない場合、MACアドレス重複監視部130はステップS111に進む。
重複するMACアドレスが存在する場合、MACアドレス重複監視部130は、重複仮想マシン150に割り当てる変換MACアドレスを生成する(ステップS109)。ステップS109の処理はステップS103の処理と同一の処理である。
次に、MACアドレス重複監視部130は、重複仮想マシン150が稼働するハイパバイザ120上の重複是正サーバ160に、重複仮想マシン150の識別情報及び変換MACアドレスを含む重複是正リクエストを送信する(ステップS110)。その後、MACアドレス重複監視部130はステップS111に進む。ステップS110の処理はステップS104の処理と同一である。
ステップS111では、MACアドレス重複監視部130は、ネットワーク構成情報140を参照して、重複が解消されたMACアドレスが存在するか否かを判定する(ステップS111)。ステップS111の処理はステップS105の処理と同一である。
重複が解消されたMACアドレスが存在しない場合、MACアドレス重複監視部130は処理を終了する。
重複が解消されたMACアドレスが存在する場合、MACアドレス重複監視部130は、重複仮想マシン150が稼働するハイパバイザ120上の重複是正サーバ160に、重複仮想マシン150の識別情報を含む解除リクエストを送信する(ステップS112)。その後、MACアドレス重複監視部130は処理を終了する。ステップS112の処理はステップS106の処理と同一である。
なお、重複仮想マシン150のマイグレーション時には、MACアドレス変換情報180の該当レコードが削除される。重複仮想マシン150のマイグレーション先のMACアドレス重複監視部130によって同様の処理が行われる。これによって、マイグレーション後もMACアドレスの重複による通信障害を回避できる。
図7は、実施例1の重複是正サーバ160が実行する処理の一例を説明するフローチャートである。
重複是正サーバ160は、重複是正リクエストを受信した場合、以下で説明する処理を実行する。
重複是正サーバ160は、重複是正リクエストに含まれるレコードに基づいて、MACアドレス変換情報180を更新する(ステップS201)。
具体的には、重複是正サーバ160は、MACアドレス変換情報180にレコードを追加し、当該レコードのID401に識別情報を設定する。また、重複是正サーバ160は、追加されたレコードの各フィールドに、重複是正リクエストに含まれるレコードの各フィールドの値をコピーする。
次に、重複是正サーバ160は、ハイパバイザ120に接続変更指示を送信する(ステップS202)。接続変更指示には重複仮想マシン150を特定するための情報としてMACアドレスが含まれる。当該MACアドレスはハイパバイザ120によって割り当てられたMACアドレスである。
ハイパバイザ120は、接続変更指示を受信した場合、重複仮想マシン150のvNICの接続先を仮想スイッチ170から隔離仮想スイッチ171に切り替える。ハイパバイザ120は、処理結果として、隔離仮想スイッチ171のポート番号を重複仮想マシン150に通知する。重複是正サーバ160は、通知に含まれる隔離仮想スイッチ171のポート番号をMACアドレス重複監視部130に通知する。
次に、重複是正サーバ160は、重複仮想マシン150が接続する仮想ネットワークに属する仮想マシン150に、変換MACアドレスが設定されたGARP(Gratuitous ARP)を送信する(ステップS203)。その後、重複是正サーバ160は処理を終了する。GARPを受信した仮想マシン150はARP情報190を更新する。
なお、MACアドレス重複監視部130が、重複是正リクエストとともに接続変更指示を送信してもよい。この場合、ステップS202の処理は省略できる。ハイパバイザ120は、隔離仮想スイッチ171のポート番号をMACアドレス重複監視部130に通知する。
図8は、実施例1の重複是正サーバ160が実行する処理の一例を説明するフローチャートである。
重複是正サーバ160は、隔離仮想スイッチ171からパケットを受信した場合、以下で説明する処理を実行する。
重複是正サーバ160は、受信したパケットが仮想マシン150から送信されたパケットであるか否かを判定する(ステップS301)。
受信したパケットが仮想マシン150から送信されたパケットである場合、重複是正サーバ160は、MACアドレス変換情報180に基づいて、パケットに含まれるMACアドレスを変換MACアドレスに変換し(ステップS302)、仮想スイッチ170を介して外部に当該パケットを送信する。その後、重複是正サーバ160は処理を終了する。
具体的には、重複是正サーバ160は、MACアドレス404に、パケットに含まれるMACアドレスが設定されたレコードを検索し、検索されたレコードの変換MACアドレス405に設定された変換MACアドレスを取得する。重複是正サーバ160は、パケットに含まれるMACアドレスを取得した変換MACアドレスに変換する。
受信したパケットが仮想マシン150から送信されたパケットでない場合、重複是正サーバ160は、受信したパケットが仮想マシン150のIPアドレス宛のARPであるか否かを判定する(ステップS303)。
受信したパケットが仮想マシン150のIPアドレス宛のARPである場合、重複是正サーバ160は、IPアドレス及び変換MACアドレスが設定されたARPを代理応答する(ステップS304)。その後、重複是正サーバ160は処理を終了する。
受信したパケットが仮想マシン150のIPアドレス宛のARPではない場合、重複是正サーバ160は、受信したパケットが仮想マシン150宛てのパケットであるか否かを判定する(ステップS305)。
受信したパケットが仮想マシン150宛てのパケットではない場合、重複是正サーバ160は処理を終了する。
受信したパケットが仮想マシン150宛てのパケットである場合、重複是正サーバ160は、受信したパケットの変換MACアドレスをMACアドレスに変換し(ステップS306)、隔離仮想スイッチ171を介して仮想マシン150に当該パケットを送信する。その後、重複是正サーバ160は処理を終了する。
具体的には、重複是正サーバ160は、変換MACアドレス405に、パケットに含まれる変換MACアドレスが設定されたレコードを検索し、検索されたレコードのMACアドレス404に設定されたMACアドレスを取得する。重複是正サーバ160は、パケットに含まれる変換MACアドレスを取得したMACアドレスに変換する。
図9は、実施例1の重複是正サーバ160が実行する処理の一例を説明するフローチャートである。
重複是正サーバ160は、解除リクエストを受信した場合、以下で説明する処理を実行する。
重複是正サーバ160は、ハイパバイザ120に接続初期化指示を送信する(ステップS401)。接続初期化指示には重複仮想マシン150を特定するための情報としてMACアドレスが含まれる。当該MACアドレスはハイパバイザ120によって割り当てられたMACアドレスである。
ハイパバイザ120は、接続初期化指示を受信した場合、重複仮想マシン150のvNICの接続先を隔離仮想スイッチ171から仮想スイッチ170に切り替える。
次に、重複是正サーバ160は、重複仮想マシン150が接続する仮想ネットワークに属する仮想マシン150に、MACアドレスが設定されたGARPを送信する(ステップS402)。その後、重複是正サーバ160は処理を終了する。GARPを受信した仮想マシン150はARP情報190を更新する。
重複是正サーバ160は、解除リクエストに含まれるレコードに基づいて、MACアドレス変換情報180を更新する(ステップS403)。その後、重複是正サーバ160は処理を終了する。
具体的には、重複是正サーバ160は、MACアドレス変換情報180を参照し、MACアドレス404の値が、解除リクエストに含まれるレコードのMACアドレス304の値と一致するレコードを検索する。重複是正サーバ160は、検索されたレコードを削除する。
なお、MACアドレス重複監視部130は、解除リクエストとともに接続初期化指示を送信してもよい。この場合、ステップS401の処理は省略できる。
次に、具体的なデータ処理について説明する。まず、MACアドレスの重複が発生した場合のデータ処理について説明する。
クラウド基盤(A)100及びクラウド基盤(B)100のMACアドレス変換情報180は図4に示す状態であるものとする。また、仮想マシン(A)150は図5Aに示すARP情報190を保持し、仮想マシン(B)150は図5Bに示すARP情報190を保持しているものとする。なお、この時点ではMACアドレスが重複しているため、ARP情報190は不定である。
クラウド基盤(A)100側のデータ処理について説明する。MACアドレス重複監視部(A)130は、クラウド基盤(A)100からMACアドレスの情報を取得した結果、図3Aに示すネットワーク構成情報140を保持する。この場合、ステップS102及びステップS105の判定結果はともにNOとなる。
MACアドレス重複監視部130(A)は、クラウド基盤(B)100のMACアドレス重複監視部(B)130との間でネットワーク構成情報140を同期した結果、図10Aに示すネットワーク構成情報140を保持する。この場合、ID301が「0001」、「0004」のレコードはVLAN ID306の値が同一であり、かつ、「MAC1」が重複しているため、ステップS108の判定結果はYESとなる。
ステップS109では、MACアドレス重複監視部(A)130は、「MAC10」を変換MACアドレスとして生成する。MACアドレス重複監視部(A)130は、自クラウド基盤(A)100の重複仮想マシン(A)150に対応するレコード、すなわち、ID301が「0001」であるレコードの変換MACアドレス305に「MAC10」を設定する。また、MACアドレス重複監視部(A)130は、当該レコードの関連ID310に「0004」を設定し、ID301が「0004」のレコードの関連ID310に「0001」を設定する。
ステップS110では、MACアドレス重複監視部(A)130は、重複是正サーバ(A)160に重複是正リクエストを送信する。MACアドレス重複監視部(A)130は、重複是正サーバ(A)160から隔離仮想スイッチ171のポート番号「0010」の通知を受信した場合、自クラウド基盤(A)100の重複仮想マシン(A)150に対応するレコードの隔離仮想スイッチポートID308に「0010」を設定する。
以上の処理によってネットワーク構成情報140は図10Bのように更新される。
MACアドレス重複監視部(A)130は、次の実行周期で、クラウド基盤(B)100のMACアドレス重複監視部(B)130との間でネットワーク構成情報140を同期した結果、図10Cに示すネットワーク構成情報140を保持する。
重複是正サーバ(A)160は、重複是正リクエストに基づいて、図11に示すようにMACアドレス変換情報180を更新する。また、重複是正サーバ(A)160は、VLAN IDが「10」の仮想ネットワークに属する仮想マシン(A)150及び仮想マシン(B)150に「MAC10」が設定されたGARPを送信する。
クラウド基盤(B)100側のデータ処理について説明する。MACアドレス重複監視部(B)130は、クラウド基盤(B)100からMACアドレスの情報を取得した結果、図3Bに示すネットワーク構成情報140を保持する。この場合、ステップS102及びステップS105の判定結果はともにNOとなる。
MACアドレス重複監視部130(B)は、クラウド基盤(A)100のMACアドレス重複監視部(A)130との間でネットワーク構成情報140を同期した結果、図12Aに示すネットワーク構成情報140を保持する。この場合、ID301が「0001」、「0003」のレコードの「MAC1」が重複しているため、ステップS108の判定結果はYESとなる。
ステップS109では、MACアドレス重複監視部(B)130は、「MAC20」を変換MACアドレスとして生成する。MACアドレス重複監視部(B)130は、自クラウド基盤(B)100の重複仮想マシン(B)150に対応するレコード、すなわち、ID301が「0001」であるレコードの変換MACアドレス305に「MAC20」を設定する。また、MACアドレス重複監視部(B)130は、当該レコードの関連ID310に「0003」を設定し、ID301が「0003」のレコードの関連ID310に「0001」を設定する。
ステップS110では、MACアドレス重複監視部(B)130は、重複是正サーバ(B)160に重複是正リクエストを送信する。MACアドレス重複監視部(B)130は、重複是正サーバ(B)160から隔離仮想スイッチ171のポート番号「0110」の通知を受信した場合、自クラウド基盤(B)100の重複仮想マシン(B)150に対応するレコードの隔離仮想スイッチポートID308に「0110」を設定する。
以上の処理によってネットワーク構成情報140は図12Bのように更新される。
MACアドレス重複監視部(B)130は、次の実行周期で、クラウド基盤(A)100のMACアドレス重複監視部(A)130との間でネットワーク構成情報140を同期した結果、図12Cに示すネットワーク構成情報140を保持する。
重複是正サーバ(B)160は、重複是正リクエストに基づいて、図13に示すようにMACアドレス変換情報180を更新する。また、重複是正サーバ(B)160は、VLAN IDが「10」の仮想ネットワークに属する仮想マシン(A)150及び仮想マシン(B)150に「MAC20」が設定されたGARPを送信する。
重複是正サーバ(A)160及び重複是正サーバ(B)160によって送信されたGARPによって、重複仮想マシン(A)150は図14Aに示すARP情報190を保持し、重複仮想マシン(B)150は図14Bに示すARP情報190を保持する。
次に、MACアドレスの重複が解消された場合のデータ処理について説明する。
クラウド基盤(A)100側のデータ処理について説明する。MACアドレス重複監視部(A)130は、クラウド基盤(B)100のMACアドレス重複監視部(B)130との間でネットワーク構成情報140を同期した結果、図15Aに示すネットワーク構成情報140を保持する。この場合、ID301が「0001」、「0004」のレコードのMACアドレスの重複が解消しているため、ステップS111の判定結果はYESとなる。
ステップS112では、MACアドレス重複監視部(A)130は、重複是正サーバ160(A)に解除リクエストを送信する。MACアドレス重複監視部(A)130は、ID301が「0001」であるレコードの変換MACアドレス305、隔離仮想スイッチポートID308、及び関連ID310の値を削除する。また、MACアドレス重複監視部(A)130は、ID301が「0004」であるレコードの関連ID310の値を削除する。以上の処理によってネットワーク構成情報140は図15Bのように更新される。
MACアドレス重複監視部(A)130は、次の実行周期で、クラウド基盤(B)100のMACアドレス重複監視部(B)130との間でネットワーク構成情報140を同期した結果、図15Cに示すネットワーク構成情報140を保持する。
重複是正サーバ(A)160は、解除リクエストに基づいて、MACアドレス404に「MAC1」が設定されたレコードを削除する。また、重複是正サーバ(A)160は、VLAN IDが「10」の仮想ネットワークに属する仮想マシン(A)150及び仮想マシン(B)150に「MAC1」が設定されたGARPを送信する。
クラウド基盤(B)100側のデータ処理について説明する。MACアドレス重複監視部(B)130は、クラウド基盤(A)100のMACアドレス重複監視部(A)130との間でネットワーク構成情報140を同期した結果、図16Aに示すネットワーク構成情報140を保持する。この場合、ID301が「0001」、「0003」のレコードのMACアドレスの重複が解消しているため、ステップS111の判定結果はYESとなる。
ステップS112では、MACアドレス重複監視部(B)130は、重複是正サーバ160(B)に解除リクエストを送信する。MACアドレス重複監視部(B)130は、ID301が「0001」であるレコードの変換MACアドレス305、隔離仮想スイッチポートID308、及び関連ID310の値を削除する。また、MACアドレス重複監視部(B)130は、ID301が「0003」であるレコードの関連ID310の値を削除する。以上の処理によってネットワーク構成情報140は図16Bのように更新される。
MACアドレス重複監視部(B)130は、次の実行周期で、クラウド基盤(A)100のMACアドレス重複監視部(A)130との間でネットワーク構成情報140を同期した結果、図16Cに示すネットワーク構成情報140を保持する。
重複是正サーバ(B)160は、解除リクエストに基づいて、MACアドレス404に「MAC1」が設定されたレコードを削除する。また、重複是正サーバ(B)160は、VLAN IDが「10」の仮想ネットワークに属する仮想マシン(A)150及び仮想マシン(B)150に「MAC100」が設定されたGARPを送信する。
重複是正サーバ(A)160及び重複是正サーバ(B)160によって送信されたGARPによって、重複仮想マシン(A)150は図17Aに示すARP情報190を保持し、重複仮想マシン(B)150は図17Bに示すARP情報190を保持する。
本発明は、MACアドレスの重複による通信障害を回避することができる。また、本発明は、以下のような効果を奏する。
(1)本発明は、仮想マシン150に割り当てられたMACアドレスを変更できないケースであっても、MACアドレスの重複による通信障害を回避できる。
(2)本発明は、重複仮想マシン150が異なるクラウド基盤100に存在するケース及び重複仮想マシン150が同一クラウド基盤100に存在するケースのいずれにも対応できる。したがって、重複仮想マシン150がマイグレーションした場合、マイグレーション先のクラウド基盤100でも同様の制御が行われるため、マイグレーション後の通信断を回避できる。
(3)本発明では、重複是正サーバ160は、重複仮想マシン150の通信についてのみ制御を行うため、他の仮想マシン150の通信に影響を与えない。したがって、MACアドレスが重複していない仮想マシン150をクラウド基盤100間でマイグレーションした場合、当該仮想マシン150のMACアドレスは変更されないため、通信を継続できる。
(4)本発明では、重複是正サーバ160が変換MACアドレスを用いて通信を行うように設定を行うのみでよいため、仮想スイッチ170及びスイッチ102の設定を変更することなく、L2接続を維持できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 クラウド基盤
101 計算機
102 スイッチ
103 ネットワーク
110 プロセッサ
111 メモリ
112 NIC
120 ハイパバイザ
130 MACアドレス重複監視部
140 ネットワーク構成情報
150 仮想マシン
160 重複是正サーバ
170 仮想スイッチ
171 隔離仮想スイッチ
180 MACアドレス変換情報
190 ARP情報

Claims (14)

  1. 複数の計算機を有するクラウド基盤を複数含む計算機システムの通信制御方法であって、
    前記計算機は、当該計算機が有するリソースを用いて生成される仮想マシンを管理するハイパバイザを含み、
    前記仮想マシンには、MACアドレスが割り当てられ、
    前記ハイパバイザ上では、重複している前記MACアドレスが割り当てられている重複仮想マシンの通信を制御する重複是正仮想マシンが稼働し、
    前記クラウド基盤は、当該クラウド基盤及び他のクラウド基盤の各々の前記仮想マシンの前記MACアドレスの重複を監視するMACアドレス重複監視部を含み、
    前記通信制御方法は、
    前記MACアドレス重複監視部が、前記MACアドレスの重複を検知した場合、変換MACアドレスを生成する第1のステップと、
    前記MACアドレス重複監視部が、前記重複仮想マシンが稼働する前記計算機に対して前記変換MACアドレスを含む重複是正リクエストを送信する第2のステップと、
    前記重複是正仮想マシンが、前記重複是正リクエストを受信した場合、前記重複仮想マシンに割り当てられる前記MACアドレスと前記変換MACアドレスと対応付けた変換情報を生成する第3のステップと、
    前記重複是正仮想マシンが、前記変換情報を用いて、前記重複仮想マシンと他の仮想マシンとの間の通信を制御する第4のステップと、を含むことを特徴とする通信制御方法。
  2. 請求項1に記載の通信制御方法であって、
    前記MACアドレス重複監視部は、前記複数のクラウド基盤の各々の前記仮想マシンに設定された前記MACアドレスを管理するネットワーク構成情報を保持し、
    前記第1のステップは、前記MACアドレス重複監視部が、前記ネットワーク構成情報に基づいて、重複した前記MACアドレスが存在するか否かを判定するステップを含むことを特徴とする通信制御方法。
  3. 請求項2に記載の通信制御方法であって、
    前記MACアドレス重複監視部が、当該MACアドレス重複監視部が含まれる前記クラウド基盤に含まれる前記複数の計算機上で稼働する前記仮想マシンに割り当てられた前記MACアドレスの情報を収集し、前記ネットワーク構成情報を更新するステップと、
    前記MACアドレス重複監視部が、前記複数のクラウド基盤の各々の前記MACアドレス重複監視部が保持する前記ネットワーク構成情報を同期するステップと、を含むことを特徴とする通信制御方法。
  4. 請求項2に記載の通信制御方法であって、
    前記MACアドレス重複監視部が、前記ネットワーク構成情報に基づいて、前記重複仮想マシンに割り当てられる前記MACアドレスが変更されたか否かを監視する第5のステップと、
    前記MACアドレス重複監視部が、前記重複仮想マシンに割り当てられる前記MACアドレスが変更されたことを検知した場合、前記重複仮想マシンが稼働する前記計算機に対して、解除リクエストを送信する第6のステップと、
    前記重複是正仮想マシンが、前記解除リクエストを受信した場合、前記変換情報を削除する第7のステップと、を含むことを特徴とする通信制御方法。
  5. 請求項4に記載の通信制御方法であって、
    前記ハイパバイザは、
    仮想ネットワークと接続するための仮想スイッチと前記重複是正仮想マシンと接続するための隔離仮想スイッチを含み、
    前記重複是正仮想マシンが前記仮想スイッチ及び前記隔離仮想スイッチに接続されるように設定し、
    前記仮想マシンを生成した場合、前記仮想マシンが前記仮想スイッチに接続されるように設定し、
    前記第3のステップは、前記重複是正仮想マシンが、前記ハイパバイザに、前記重複仮想マシンを前記隔離仮想スイッチに接続する変更指示を出力するステップを含み、
    前記第7のステップは、前記重複是正仮想マシンが、前記ハイパバイザに、前記重複仮想マシンを前記仮想スイッチに接続する変更指示を出力するステップを含むことを特徴とする通信制御方法。
  6. 請求項4に記載の通信制御方法であって、
    前記ハイパバイザは、
    仮想ネットワークと接続するための仮想スイッチと前記重複是正仮想マシンと接続するための隔離仮想スイッチを含み、
    前記重複是正仮想マシンが前記仮想スイッチ及び前記隔離仮想スイッチに接続されるように設定し、
    前記仮想マシンを生成した場合、前記仮想マシンが前記仮想スイッチに接続されるように設定し、
    前記第2のステップは、前記MACアドレス重複監視部が、前記ハイパバイザに、前記重複仮想マシンを前記隔離仮想スイッチに接続する変更指示を出力するステップを含み、
    前記第6のステップは、前記MACアドレス重複監視部が、前記ハイパバイザに、前記重複仮想マシンを前記仮想スイッチに接続する変更指示を出力するステップを含むことを特徴とする通信制御方法。
  7. 請求項5又は請求項6に記載の通信制御方法であって、
    前記第4のステップは、
    前記重複是正仮想マシンが、前記隔離仮想スイッチを介して前記重複仮想マシンに割り当てられる前記MACアドレスを含むパケットを受信した場合、前記変換情報に基づいて、前記パケットに含まれる前記MACアドレスを前記変換MACアドレスに変換し、前記仮想スイッチを介して前記他の仮想マシンに前記パケットを送信するステップと、
    前記重複是正仮想マシンが、前記隔離仮想スイッチを介して前記変換MACアドレスを含むパケットを受信した場合、前記変換情報に基づいて、前記パケットに含まれる前記変換MACアドレスを前記重複仮想マシンに割り当てられる前記MACアドレスに変換し、前記重複仮想マシンに前記パケットを送信するステップと、を含むことを特徴とする通信制御方法。
  8. 複数の計算機を有するクラウド基盤を複数備える計算機システムであって、
    前記計算機は、当該計算機が有するリソースを用いて生成される仮想マシンを管理するハイパバイザを含み、
    前記仮想マシンには、MACアドレスが割り当てられ、
    前記ハイパバイザ上では、重複している前記MACアドレスが割り当てられている重複仮想マシンの通信を制御する重複是正仮想マシンが稼働し、
    前記クラウド基盤は、当該クラウド基盤及び他のクラウド基盤の各々の前記仮想マシンの前記MACアドレスの重複を監視するMACアドレス重複監視部を含み、
    前記MACアドレス重複監視部は、
    前記MACアドレスの重複を検知した場合、変換MACアドレスを生成し、
    前記重複仮想マシンが稼働する前記計算機に対して前記変換MACアドレスを含む重複是正リクエストを送信し、
    前記重複是正仮想マシンは、
    前記重複是正リクエストを受信した場合、前記重複仮想マシンに割り当てられる前記MACアドレスと前記変換MACアドレスと対応付けた変換情報を生成し、
    前記変換情報を用いて、前記重複仮想マシンと他の仮想マシンとの間の通信を制御することを特徴とする計算機システム。
  9. 請求項8に記載の計算機システムであって、
    前記MACアドレス重複監視部は、
    前記複数のクラウド基盤の各々の前記仮想マシンに設定された前記MACアドレスを管理するネットワーク構成情報を保持し、
    前記ネットワーク構成情報に基づいて、重複した前記MACアドレスが存在するか否かを判定することを特徴とする計算機システム。
  10. 請求項9に記載の計算機システムであって、
    前記MACアドレス重複監視部は、
    当該MACアドレス重複監視部が含まれる前記クラウド基盤に含まれる前記複数の計算機上で稼働する前記仮想マシンに割り当てられた前記MACアドレスの情報を収集し、前記ネットワーク構成情報を更新し、
    前記複数のクラウド基盤の各々の前記MACアドレス重複監視部が保持する前記ネットワーク構成情報を同期することを特徴とする計算機システム。
  11. 請求項9に記載の計算機システムであって、
    前記MACアドレス重複監視部は、
    前記ネットワーク構成情報に基づいて、前記重複仮想マシンに割り当てられる前記MACアドレスが変更されたか否かを監視し、
    前記重複仮想マシンに割り当てられる前記MACアドレスが変更されたことを検知した場合、前記重複仮想マシンが稼働する前記計算機に対して解除リクエストを送信し、
    前記重複是正仮想マシンは、前記解除リクエストを受信した場合、前記変換情報を削除することを特徴とする計算機システム。
  12. 請求項11に記載の計算機システムであって、
    前記ハイパバイザは、
    仮想ネットワークと接続するための仮想スイッチと前記重複是正仮想マシンと接続するための隔離仮想スイッチを含み、
    前記重複是正仮想マシンが前記仮想スイッチ及び前記隔離仮想スイッチに接続されるように設定し、
    前記仮想マシンを生成した場合、前記仮想マシンが前記仮想スイッチに接続されるように設定し、
    前記重複是正仮想マシンは、
    前記重複是正リクエストを受信した場合、前記ハイパバイザに、前記重複仮想マシンを前記隔離仮想スイッチに接続する変更指示を出力し、
    前記解除リクエストを受信した場合、前記ハイパバイザに、前記重複仮想マシンを前記仮想スイッチに接続する変更指示を出力することを特徴とする計算機システム。
  13. 請求項11に記載の計算機システムであって、
    前記ハイパバイザは、
    仮想ネットワークと接続するための仮想スイッチと前記重複是正仮想マシンと接続するための隔離仮想スイッチを含み、
    前記重複是正仮想マシンが前記仮想スイッチ及び前記隔離仮想スイッチに接続されるように設定し、
    前記仮想マシンを生成した場合、前記仮想マシンが前記仮想スイッチに接続されるように設定し、
    前記MACアドレス重複監視部は、
    前記重複是正リクエストとともに、前記ハイパバイザに、前記重複仮想マシンを前記隔離仮想スイッチに接続する変更指示を出力し、
    前記解除リクエストとともに、前記ハイパバイザに、前記重複仮想マシンを前記仮想スイッチに接続する変更指示を出力することを特徴とする計算機システム。
  14. 請求項12又は請求項13に記載の計算機システムであって、
    前記重複是正仮想マシンは、
    前記隔離仮想スイッチを介して前記重複仮想マシンに割り当てられる前記MACアドレスを含むパケットを受信した場合、前記変換情報に基づいて、前記パケットに含まれる前記MACアドレスを前記変換MACアドレスに変換し、前記仮想スイッチを介して前記他の仮想マシンに前記パケットを送信し、
    前記隔離仮想スイッチを介して前記変換MACアドレスを含むパケットを受信した場合、前記変換情報に基づいて、前記パケットに含まれる前記変換MACアドレスを前記重複仮想マシンに割り当てられる前記MACアドレスに変換し、前記重複仮想マシンに前記パケットを送信することを特徴とする計算機システム。
JP2020184055A 2020-11-04 2020-11-04 通信制御方法、計算機システム、及び計算機 Active JP7189918B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020184055A JP7189918B2 (ja) 2020-11-04 2020-11-04 通信制御方法、計算機システム、及び計算機
US17/405,062 US20220141178A1 (en) 2020-11-04 2021-08-18 Communication control method, computer system, and computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020184055A JP7189918B2 (ja) 2020-11-04 2020-11-04 通信制御方法、計算機システム、及び計算機

Publications (2)

Publication Number Publication Date
JP2022074207A JP2022074207A (ja) 2022-05-18
JP7189918B2 true JP7189918B2 (ja) 2022-12-14

Family

ID=81379448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020184055A Active JP7189918B2 (ja) 2020-11-04 2020-11-04 通信制御方法、計算機システム、及び計算機

Country Status (2)

Country Link
US (1) US20220141178A1 (ja)
JP (1) JP7189918B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013005038A (ja) 2011-06-13 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> MAC(MediaAccessControl)アドレス変換装置、MACアドレス変換方法、MACアドレス変換プログラム、及び拠点間接続システム
JP2013257841A (ja) 2012-06-14 2013-12-26 Fuji Xerox Co Ltd アドレス管理装置、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198299A (ja) * 2010-03-23 2011-10-06 Fujitsu Ltd プログラム、コンピュータ、通信装置および通信制御システム
US8792502B2 (en) * 2012-08-07 2014-07-29 Cisco Technology, Inc. Duplicate MAC address detection
JP2014236330A (ja) * 2013-05-31 2014-12-15 富士通株式会社 使用態様情報生成プログラム、使用態様情報生成装置、通信システム、及び使用態様情報生成方法
US9634948B2 (en) * 2013-11-07 2017-04-25 International Business Machines Corporation Management of addresses in virtual machines
JP2016009972A (ja) * 2014-06-24 2016-01-18 富士通株式会社 通信制御装置,通信制御プログラム及び通信制御方法
US10757170B2 (en) * 2014-10-13 2020-08-25 Vmware, Inc. Cross-cloud namespace management for multi-tenant environments
CN109246162A (zh) * 2017-07-10 2019-01-18 中兴通讯股份有限公司 Mac地址信息同步方法、设备及存储介质
US10750435B2 (en) * 2018-06-18 2020-08-18 Blackberry Limited Network address policy information received in a pre-associated state
US10931638B1 (en) * 2019-07-31 2021-02-23 Capital One Services, Llc Automated firewall feedback from network traffic analysis
US20210067466A1 (en) * 2019-08-30 2021-03-04 Nutanix, Inc. Virtual machine migration in cloud infrastructure networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013005038A (ja) 2011-06-13 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> MAC(MediaAccessControl)アドレス変換装置、MACアドレス変換方法、MACアドレス変換プログラム、及び拠点間接続システム
JP2013257841A (ja) 2012-06-14 2013-12-26 Fuji Xerox Co Ltd アドレス管理装置、及びプログラム

Also Published As

Publication number Publication date
US20220141178A1 (en) 2022-05-05
JP2022074207A (ja) 2022-05-18

Similar Documents

Publication Publication Date Title
US11375016B2 (en) Routing messages between cloud service providers
US9336103B1 (en) Using a network bubble across multiple hosts on a disaster recovery site for fire drill testing of a multi-tiered application
US9471356B2 (en) Systems and methods for providing VLAN-independent gateways in a network virtualization overlay implementation
US7996560B2 (en) Managing virtual ports in an information processing system
US8745196B2 (en) Enabling co-existence of hosts or virtual machines with identical addresses
US8370588B2 (en) Computer system control method and computer system
US7792148B2 (en) Virtual fibre channel over Ethernet switch
US8495208B2 (en) Migrating virtual machines among networked servers upon detection of degrading network link operation
US8214528B2 (en) Address identifier scaling in converged networks
US20190116132A1 (en) Mirror packet control method and mirror packet control device
US8433779B2 (en) Computer system for allocating IP address to communication apparatus in computer subsystem newly added and method for newly adding computer subsystem to computer system
JP2022509645A (ja) 分解されたネットワーク要素を含む論理ルータ
JP2012244621A (ja) ネットワークスイッチ及びサーバのvlanidによる接続の発見方法及び装置
JP6007547B2 (ja) 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム
US20130064066A1 (en) Updating a switch software image in a distributed fabric protocol (dfp) switching network
JP6020273B2 (ja) 監視装置,情報処理システム,監視方法および監視プログラム
EP3477460A1 (en) Data processing method and related storage apparatus
JP5941442B2 (ja) 仮想ホストのライブマイグレーション方法およびネットワーク装置
JP7189918B2 (ja) 通信制御方法、計算機システム、及び計算機
US10764330B2 (en) LAN/SAN network security management
JP2014003408A (ja) 中継転送システム、経路制御装置およびエッジ装置
JP5919981B2 (ja) 検疫ネットワークシステム、検疫サーバ、検疫方法、及びプログラム
JP2012203421A (ja) 情報処理方法、管理サーバおよび管理プログラム
WO2024001549A9 (zh) 地址配置方法和电子设备
JPWO2015146215A1 (ja) ネットワークアドレス変換装置、ネットワークアドレス変換システム、ネットワークアドレス変換方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221202

R150 Certificate of patent or registration of utility model

Ref document number: 7189918

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150