(57)【要約】  本発明の実施例で提供される方法及び装置では、第１のスイッチは、SDNコントローラからARP応答を受信し、ARP応答は、宛先ゲートウェイのMACアドレスを保持する。第１のスイッチは、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、VTEP情報に対応するルータは、第１のデータセンタに位置する。VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、第１のスイッチは、VTEP情報に従って、IPパケットをVTEP情報に対応するルータに送信する。従って、SDNコントローラは、プロキシとして機能し、このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、パケットは、第１のデータセンタのルータのみを通過し、このことは、データセンタの間でのパケットの迂回のルーティングを軽減する。
2016509448.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する方法であって、
前記第１のスイッチにより、前記第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するステップであり、前記ARP要求は、宛先ゲートウェイのIPアドレスを保持するステップと、
前記第１のスイッチにより、前記ARP要求を前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するステップと、
前記第１のスイッチにより、前記SDNコントローラからARP応答を受信するステップであり、前記ARP応答は、前記宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを保持するステップと、
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するステップであり、前記VTEP情報に対応するルータは、前記第１のデータセンタに位置するステップと、
前記VTEP情報に対応する前記ルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記第１のスイッチにより、前記VTEP情報に従って、前記IPパケットを前記VTEP情報に対応する前記ルータに送信するステップと
を有する方法。
【請求項２】
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応するVTEP情報を取得するステップは、
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための要求を前記SDNコントローラに送信するステップと、
前記SDNコントローラにより送信された、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を受信するステップと
を有する、請求項１に記載の方法。
【請求項３】
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応するVTEP情報を取得するステップは、
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得するステップを有する、請求項１に記載の方法。
【請求項４】
前記第１のスイッチにより、ローカルに格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得するステップは、
前記第１のスイッチが前記宛先ゲートウェイの前記MACアドレスに従って前記ローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報として前記第１のデータセンタに位置する前記ルータのVTEP情報を使用するステップを有する、請求項３に記載の方法。
【請求項５】
前記第１のスイッチが前記宛先ゲートウェイの前記MACアドレスに従って前記ローカルに格納されたフローテーブルに問い合わせ、前記第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、前記第１のスイッチは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を選択する、請求項４に記載の方法。
【請求項６】
前記VTEP情報に対応する前記ルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記第１のスイッチにより、前記VTEP情報に従って、前記IPパケットを前記VTEP情報に対応する前記ルータに送信するステップは、
前記第１のスイッチにより、前記第１の仮想マシンから受信したIPパケットで拡張可能仮想ローカルネットワーク（VxLAN）カプセル化を実行するステップであり、前記VxLANカプセル化の宛先IPアドレスは、前記取得されたVTEP情報であり、仮想ネットワーク識別子（VNI）は、前記第１のサブネットの識別子であり、前記IPパケットの宛先MACアドレスは、前記宛先ゲートウェイの前記MACアドレスであるステップと、
前記VTEP情報に対応する前記ルータにより、前記宛先IPアドレスを前記第２のスイッチのIPアドレスに変更し、前記VNIを前記第２のサブネットの識別子に変更し、前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、VxLANカプセル化が変更された前記IPパケットを前記第２のスイッチに送信するステップと、
VxLANカプセル化が変更された受信IPパケットで前記第２のスイッチがVxLANカプセル化解除を実行した後に、前記IPパケットを前記第２の仮想マシンに送信するステップと
を有する、請求項１ないし５のうちいずれか１項に記載の方法。
【請求項７】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する方法であって、
前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラにより、前記第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するステップであり、前記ARP要求は、宛先ゲートウェイのIPアドレスを保持するステップと、
前記SDNコントローラにより、前記宛先ゲートウェイの前記IPアドレスに従って前記宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを取得し、ARP応答を前記第１のスイッチに送信するステップであり、前記第１のスイッチが前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、前記ARP応答は、前記宛先ゲートウェイの前記MACアドレスを保持し、前記VTEP情報に対応するルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報に対応する前記ルータは、前記第１のデータセンタに位置するステップと
を有する方法。
【請求項８】
前記SDNコントローラにより、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための、前記第１のスイッチにより送信された要求を受信するステップと、
前記SDNコントローラにより、前記宛先ゲートウェイの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得し、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を前記第１のスイッチに返信するステップと
を更に有する、請求項７に記載の方法。
【請求項９】
前記SDNコントローラにより、ローカルに格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得するステップは、
前記SDNコントローラが前記宛先ゲートウェイの前記MACアドレスに従って前記ローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報として前記第１のデータセンタに位置する前記ルータのVTEP情報を使用するステップを有する、請求項８に記載の方法。
【請求項１０】
前記SDNコントローラが前記宛先ゲートウェイの前記MACアドレスに従って前記ローカルに格納されたフローテーブルに問い合わせ、前記第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、前記SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を選択する、請求項９に記載の方法。
【請求項１１】
前記第２の仮想マシンが第２のデータセンタに位置する場合、
前記第１のデータセンタの前記SDNコントローラの制御で、前記VTEP情報に対応する前記ルータが前記ルータと前記第２のスイッチとの間の前記トンネルを通じて前記IPパケットを前記第２の仮想マシンに送信するために、前記第１のデータセンタの前記SDNコントローラにより、前記第２のデータセンタのSDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のサブネットの仮想ネットワーク識別子（VNI）と、前記第２のスイッチのVTEP情報とを取得するステップを更に有する、請求項７ないし１０のうちいずれか１項に記載の方法。
【請求項１２】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信し、前記第１の仮想マシン及び前記第２の仮想マシンは、同じサブネットに位置する方法であって、
前記第１のスイッチにより、前記第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するステップであり、前記ARP要求は、宛先仮想マシンのIPアドレスを保持するステップと、
前記第１のスイッチにより、前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得するステップと、
前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するステップであり、前記VTEP情報は、前記第２のスイッチのIPアドレスであるステップと、
前記第１のスイッチにより、前記第１のスイッチと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するステップと
を有する方法。
【請求項１３】
前記第１のスイッチにより、前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得するステップは、
前記第１のスイッチにより、前記ARP要求を前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するステップであり、前記ARP要求は、前記宛先仮想マシンの前記IPアドレスを保持するステップと、
前記第１のスイッチにより、前記SDNコントローラからARP応答を受信し、前記ARP応答は、前記宛先仮想マシンの前記MACアドレスを保持するステップと
を有する、請求項１２に記載の方法。
【請求項１４】
前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応するVTEP情報を取得するステップは、
前記第１のスイッチにより、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための要求を前記SDNコントローラに送信するステップと、
前記SDNコントローラにより送信された、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を受信するステップと
を有する、請求項１２又は１３に記載の方法。
【請求項１５】
前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応するVTEP情報を取得するステップは、
前記第１のスイッチにより、前記宛先仮想マシンの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得するステップを有する、請求項１２又は１３に記載の方法。
【請求項１６】
前記第１のスイッチにより、前記第１のスイッチと前記第２のスイッチとの間の前記トンネルを通じて前記IPパケットを前記第２の仮想マシンに送信するために、前記SDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のスイッチのVTEP情報とを取得するステップを更に有する、請求項１５に記載の方法。
【請求項１７】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信し、前記第１の仮想マシン及び前記第２の仮想マシンは、同じサブネットに位置する方法であって、
前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラにより、前記第１のスイッチからアドレス解決プロトコル（ARP）要求を受信し、前記ARP要求は、宛先仮想マシンのIPアドレスを保持するステップと、
前記SDNコントローラにより、前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、ARP応答を前記第１のスイッチに送信するステップであり、前記第１のスイッチが前記宛先仮想マシンの前記MACアドレスに従って前記宛先仮想マシンの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、前記ARP応答は、前記宛先仮想マシンの前記MACアドレスを保持し、前記第１のスイッチが前記第１のスイッチと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報は、前記第２のスイッチのIPアドレスであるステップと
を有する方法。
【請求項１８】
前記SDNコントローラにより、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための、前記第１のスイッチにより送信された要求を受信するステップと、
前記SDNコントローラにより、前記宛先仮想マシンの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得し、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を前記第１のスイッチに返信するステップと
を更に有する、請求項１７に記載の方法。
【請求項１９】
前記第１のデータセンタの前記SDNコントローラにより、前記第２のデータセンタのSDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のスイッチのVTEP情報とを取得し、前記第２の仮想マシンの前記IPアドレス及び前記MACアドレスと、前記第２のスイッチの前記VTEP情報とを前記第１のスイッチに送信するステップを更に有する、請求項１７又は１８に記載の方法。
【請求項２０】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する第１のスイッチであり、前記第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、前記第１のスイッチと通信し、前記第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する第１のスイッチであって、
前記第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、前記ARP要求は、宛先ゲートウェイのIPアドレスを保持する受信モジュールと、
前記ARP要求を前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するように構成された送信モジュールと
を有し、
前記受信モジュールは、前記SDNコントローラからARP応答を受信するように更に構成され、前記ARP応答は、前記宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを保持し、
前記第１のスイッチは、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するように構成された取得モジュールであり、前記VTEP情報に対応するルータは、前記第１のデータセンタに位置する取得モジュールを有し、
前記送信モジュールは、前記VTEP情報に対応する前記ルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報に従って、前記IPパケットを前記VTEP情報に対応する前記ルータに送信するように更に構成される第１のスイッチ。
【請求項２１】
前記取得モジュールが、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応するVTEP情報を取得するように構成されることは、
前記取得モジュールが、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための要求を前記SDNコントローラに送信し、前記SDNコントローラにより送信された、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を受信するように構成されることである、請求項２０に記載のスイッチ。
【請求項２２】
前記取得モジュールが、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応するVTEP情報を取得するように構成されることは、
前記取得モジュールが、前記宛先ゲートウェイの前記MACアドレスに従って前記第１のスイッチにより格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得するように構成されることである、請求項２０に記載のスイッチ。
【請求項２３】
前記取得モジュールが、前記第１のスイッチにより格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得するように構成されることは、
前記取得モジュールが、前記宛先ゲートウェイの前記MACアドレスに従って前記第１のスイッチにより格納された前記フローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報として前記第１のデータセンタに位置する前記ルータのVTEP情報を使用するように構成されることである、請求項２２に記載のスイッチ。
【請求項２４】
仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラであり、前記SDNコントローラは、第１のデータセンタに位置し、少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用され、前記第１の仮想マシンは、前記第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信するSDNコントローラであって、
前記第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、前記ARP要求は、宛先ゲートウェイのIPアドレスを保持する受信モジュールと、
前記宛先ゲートウェイの前記IPアドレスに従って前記宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを取得するように構成された処理モジュールと、
ARP応答を前記第１のスイッチに送信するように構成された送信モジュールであり、前記第１のスイッチが前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、前記ARP応答は、前記宛先ゲートウェイの前記MACアドレスを保持し、前記VTEP情報に対応するルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報に対応する前記ルータは、前記第１のデータセンタに位置する送信モジュールと
を有するSDNコントローラ。
【請求項２５】
前記受信モジュールは、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための、前記第１のスイッチにより送信された要求を受信するように更に構成され、
前記処理モジュールは、前記宛先ゲートウェイの前記MACアドレスに従って前記SDNコントローラにより格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得し、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を前記第１のスイッチに返信するように更に構成される、請求項２４に記載のコントローラ。
【請求項２６】
前記処理モジュールが、前記SDNコントローラに格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得するように構成されることは、
前記処理モジュールが、前記宛先ゲートウェイの前記MACアドレスに従って前記SDNコントローラにより格納された前記フローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報として前記第１のデータセンタに位置する前記ルータのVTEP情報を使用するように構成されることである、請求項２５に記載のコントローラ。
【請求項２７】
前記処理モジュールが前記宛先ゲートウェイの前記MACアドレスに従って前記SDNコントローラにより格納された前記フローテーブルに問い合わせ、前記第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、前記処理モジュールは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を選択するように構成される、請求項２６に記載のコントローラ。
【請求項２８】
前記第２の仮想マシンが第２のデータセンタに位置する場合、前記処理モジュールは、前記第２のデータセンタのSDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のサブネットの仮想ネットワーク識別子（VNI）と、前記第２のスイッチのVTEP情報とを取得するように更に構成される、請求項２４ないし２７のうちいずれか１項に記載のコントローラ。
【請求項２９】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する第１のスイッチであり、前記第１の仮想マシンは、第１のデータセンタに位置し、前記第１のスイッチと通信し、前記第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信し、前記第１の仮想マシン及び前記第２の仮想マシンは、同じサブネットに位置する第１のスイッチであって、
前記第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、前記ARP要求は、宛先仮想マシンのIPアドレスを保持する受信モジュールと、
前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するように構成された処理モジュールであり、前記VTEP情報は、前記第２のスイッチのIPアドレスである処理モジュールと、
前記第１のスイッチと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するように構成された送信モジュールと
を有する第１のスイッチ。
【請求項３０】
前記処理モジュールが、前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンのMACアドレスを取得するように構成されることは、
前記処理モジュールが、前記ARP要求を前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するように構成され、前記ARP要求は、前記宛先仮想マシンの前記IPアドレスを保持し、前記SDNコントローラからARP応答を受信するように構成され、前記ARP応答は、前記宛先仮想マシンの前記MACアドレスを保持することである、請求項２９に記載のスイッチ。
【請求項３１】
前記処理モジュールが、前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応するVTEP情報を取得するように構成されることは、
前記処理モジュールが、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための要求を前記SDNコントローラに送信し、前記SDNコントローラにより送信された、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を受信するように構成されることである、請求項２９又は３０に記載のスイッチ。
【請求項３２】
前記処理モジュールが、前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応するVTEP情報を取得するように構成されることは、
前記処理モジュールが、前記宛先仮想マシンの前記MACアドレスに従って前記第１のスイッチにより格納されたフローテーブルに問い合わせ、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得するように構成されることである、請求項２９又は３０に記載のスイッチ。
【請求項３３】
前記処理モジュールは、前記第１のデータセンタの前記SDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のスイッチのVTEP情報とを取得するように更に構成される、請求項３２に記載のスイッチ。
【請求項３４】
仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラであり、前記SDNコントローラは、第１のデータセンタに位置し、少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用され、前記第１の仮想マシンは、前記第１のデータセンタに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信し、前記第１の仮想マシン及び前記第２の仮想マシンは、同じサブネットに位置するSDNコントローラであって、
前記第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、前記ARP要求は、宛先仮想マシンのIPアドレスを保持する受信モジュールと、
前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得するように構成された取得モジュールと、
ARP応答を前記第１のスイッチに送信するように構成された送信モジュールであり、前記第１のスイッチが前記宛先仮想マシンの前記MACアドレスに従って前記宛先仮想マシンの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、前記ARP応答は、前記宛先仮想マシンの前記MACアドレスを保持し、前記第１のスイッチが前記第１のスイッチと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報は、前記第２のスイッチのIPアドレスである送信モジュールと
を有するSDNコントローラ。
【請求項３５】
前記受信モジュールは、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための、前記第１のスイッチにより送信された要求を受信するように更に構成され、
前記取得モジュールは、前記宛先仮想マシンの前記MACアドレスに従って前記SDNコントローラにより格納されたフローテーブルに問い合わせ、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得し、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を前記第１のスイッチに返信するように更に構成される、請求項３４に記載のコントローラ。
【請求項３６】
前記取得モジュールは、前記第２のデータセンタのSDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のスイッチのVTEP情報とを取得するように更に構成され、
前記送信モジュールは、前記第２の仮想マシンの前記IPアドレス及び前記MACアドレスと、前記第２のスイッチの前記VTEP情報とを前記第１のスイッチに送信するように更に構成される、請求項３４又は３５に記載のコントローラ。
【請求項３７】
プロセッサと、メモリと、システムバスとを有する、仮想マシンの間で通信を実現するスイッチであって、
前記プロセッサ及び前記メモリは、前記システムバスを使用することにより相互に接続されて通信を行い、
前記メモリは、コンピュータ実行可能命令を格納するように構成され、
前記プロセッサは、前記コンピュータ実行可能命令を実行して、請求項１ないし６のうちいずれか１項に記載の方法を実行するように構成されるスイッチ。
【請求項３８】
プロセッサと、メモリと、システムバスとを有する、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラであって、
前記プロセッサ及び前記メモリは、前記システムバスを使用することにより相互に接続されて通信を行い、
前記メモリは、コンピュータ実行可能命令を格納するように構成され、
前記プロセッサは、前記コンピュータ実行可能命令を実行して、請求項７ないし１１のうちいずれか１項に記載の方法を実行するように構成されるSDNコントローラ。
【請求項３９】
プロセッサと、メモリと、システムバスとを有する、仮想マシンの間で通信を実現するスイッチであって、
前記プロセッサ及び前記メモリは、前記システムバスを使用することにより相互に接続されて通信を行い、
前記メモリは、コンピュータ実行可能命令を格納するように構成され、
前記プロセッサは、前記コンピュータ実行可能命令を実行して、請求項１２ないし１６のうちいずれか１項に記載の方法を実行するように構成されるスイッチ。
【請求項４０】
プロセッサと、メモリと、システムバスとを有する、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラであって、
前記プロセッサ及び前記メモリは、前記システムバスを使用することにより相互に接続されて通信を行い、
前記メモリは、コンピュータ実行可能命令を格納するように構成され、
前記プロセッサは、前記コンピュータ実行可能命令を実行して、請求項１７ないし１９のうちいずれか１項に記載の方法を実行するように構成されるSDNコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、ネットワーク通信の分野に関し、特に、仮想マシンの間で通信を実現する方法及び装置に関する。
【背景技術】
【０００２】
従来技術において、ユーザのために十分な量の仮想ネットワークを取得するために、拡張可能仮想ローカルエリアネットワーク（VxLAN、Virtual  extensible  LAN）技術がネットワーク仮想化を拡張するために使用される。
【０００３】
複数の仮想ネットワークの仮想マシン（VM、Virtual  Machine）は、各データセンタで実行し得る。他のデータセンタのVMと通信する場合、データセンタのVMは、ブロードキャスト・アドレス解決プロトコル（ARP、Address  Resolution  Protocol）要求を第１ホップのルータに送信し、ブロードキャスト方式で宛先ゲートウェイのMACアドレスを取得する。次に、ARP要求は各VMにブロードキャストされる。宛先ゲートウェイのMACアドレスが取得された後に、パケットは、宛先ゲートウェイのMACアドレスを使用することにより、各データセンタのルータに送信され、宛先VMに到達する。これにより、VMの間の通信を実現する。しかし、各VMへのAPRブロードキャストのこの方式では、大量の送信帯域幅が占有される。更に、パケットは、各データセンタのルータを通過することによってのみ、宛先VMに到達することができる。このことは、データセンタの間での重大な迂回のルーティングを生じる。
【発明の概要】
【０００４】
本発明の実施例は、パケットのブロードキャストにより占有される送信帯域幅を低減し、データセンタの間でのパケットの迂回のルーティングを軽減するための、仮想マシンの間で通信を実現する方法及び装置を提案する。
【０００５】
第１の態様によれば、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する方法を提案する。第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する。第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。この方法は、第１のスイッチにより、第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信し、ARP要求は、宛先ゲートウェイのIPアドレスを保持し、第１のスイッチにより、ARP要求を第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送し、第１のスイッチにより、SDNコントローラからARP応答を受信し、ARP応答は、宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを保持し、第１のスイッチにより、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得し、VTEP情報に対応するルータは、第１のデータセンタに位置し、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、第１のスイッチにより、VTEP情報に従って、IPパケットをVTEP情報に対応するルータに送信することを含む。
【０００６】
第１の態様を参照して、第１の可能な実現方式では、第１のスイッチにより、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することは、第１のスイッチにより、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求をSDNコントローラに送信し、SDNコントローラにより送信された、宛先ゲートウェイのMACアドレスに対応するVTEP情報を受信することを具体的に含む。
【０００７】
第１の態様を参照して、第２の可能な実現方式では、第１のスイッチにより、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することは、第１のスイッチにより、宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを具体的に含む。
【０００８】
第１の態様の第２の可能な実現方式を参照して、第３の可能な実現方式では、第１のスイッチにより、ローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することは、第１のスイッチが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報として第１のデータセンタに位置するルータのVTEP情報を使用することを具体的に含む。
【０００９】
第１の態様の第３の可能な実現方式を参照して、第４の可能な実現方式では、第１のスイッチが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、第１のスイッチは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って宛先ゲートウェイのMACアドレスに対応するVTEP情報を選択する。
【００１０】
第１の態様又は第１の態様の第１〜第４の可能な実現方式のうちいずれか１つを参照して、第５の可能な実現方式では、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、第１のスイッチにより、VTEP情報に従って、IPパケットをVTEP情報に対応するルータに送信することは、第１のスイッチにより、第１の仮想マシンから受信したIPパケットで拡張可能仮想ローカルネットワーク（VxLAN）カプセル化を実行し、VxLANカプセル化の宛先IPアドレスは、取得されたVTEP情報であり、仮想ネットワーク識別子（VNI）は、第１のサブネットの識別子であり、IPパケットの宛先MACアドレスは、宛先ゲートウェイのMACアドレスであり、VTEP情報に対応するルータにより、宛先IPアドレスを第２のスイッチのIPアドレスに変更し、VNIを第２のサブネットの識別子に変更し、宛先MACアドレスを第２の仮想マシンのMACアドレスに変更し、VxLANカプセル化が変更されたIPパケットを第２のスイッチに送信し、VxLANカプセル化が変更された受信IPパケットで第２のスイッチがVxLANカプセル化解除を実行した後に、IPパケットを第２の仮想マシンに送信することを具体的に含む。
【００１１】
第２の態様によれば、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する方法を提案する。第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する。第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。この方法は、第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラにより、第１のスイッチからアドレス解決プロトコル（ARP）要求を受信し、ARP要求は、宛先ゲートウェイのIPアドレスを保持し、SDNコントローラにより、宛先ゲートウェイのIPアドレスに従って宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを取得し、ARP応答を第１のスイッチに送信し、第１のスイッチが宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、ARP応答は、宛先ゲートウェイのMACアドレスを保持し、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報に対応するルータは、第１のデータセンタに位置することを含む。
【００１２】
第２の態様を参照して、第１の可能な実現方式では、SDNコントローラは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための、第１のスイッチにより送信された要求を受信し、SDNコントローラは、宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第１のスイッチに返信する。
【００１３】
第２の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、SDNコントローラにより、ローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することは、SDNコントローラが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報として第１のデータセンタに位置するルータのVTEP情報を使用することを具体的に含む。
【００１４】
第２の態様の第２の可能な実現方式を参照して、第３の可能な実現方式では、SDNコントローラが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って宛先ゲートウェイのMACアドレスに対応するVTEP情報を選択する。
【００１５】
第２の態様又は第２の態様の第１〜第３の可能な実現方式のうちいずれか１つを参照して、第４の可能な実現方式では、第２の仮想マシンが第２のデータセンタに位置する場合、この方法は、第１のデータセンタのSDNコントローラの制御で、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、第１のデータセンタのSDNコントローラにより、第２のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のサブネットの仮想ネットワーク識別子（VNI）と、第２のスイッチのVTEP情報とを取得することを更に含む。
【００１６】
第３の態様によれば、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する第１のスイッチを提案する。第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する。第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。第１のスイッチは、第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、ARP要求は、宛先ゲートウェイのIPアドレスを保持する受信モジュールと、ARP要求を第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するように構成された送信モジュールとを含み、受信モジュールは、SDNコントローラからARP応答を受信するように更に構成され、ARP応答は、宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを保持し、第１のスイッチは、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するように構成された取得モジュールであり、VTEP情報に対応するルータは、第１のデータセンタに位置する取得モジュールを含み、送信モジュールは、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報に従って、IPパケットをVTEP情報に対応するルータに送信するように更に構成される。
【００１７】
第３の態様を参照して、第１の可能な実現方式では、取得モジュールが、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、取得モジュールが、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求をSDNコントローラに送信し、SDNコントローラにより送信された、宛先ゲートウェイのMACアドレスに対応するVTEP情報を受信するように構成されることである。
【００１８】
第３の態様を参照して、第２の可能な実現方式では、取得モジュールが、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、取得モジュールが、宛先ゲートウェイのMACアドレスに従って第１のスイッチにより格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることである。
【００１９】
第３の態様の第２の可能な実現方式を参照して、第３の可能な実現方式では、取得モジュールが、第１のスイッチにより格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、取得モジュールが、宛先ゲートウェイのMACアドレスに従って第１のスイッチにより格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報として第１のデータセンタに位置するルータのVTEP情報を使用するように構成されることである。
【００２０】
第４の態様によれば、本発明の実施例は、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提案する。SDNコントローラは、第１のデータセンタに位置し、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される。第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する。第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。SDNコントローラは、第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、ARP要求は、宛先ゲートウェイのIPアドレスを保持する受信モジュールと、宛先ゲートウェイのIPアドレスに従って宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを取得するように構成された処理モジュールと、ARP応答を第１のスイッチに送信するように構成された送信モジュールであり、第１のスイッチが宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、ARP応答は、宛先ゲートウェイのMACアドレスを保持し、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報に対応するルータは、第１のデータセンタに位置する送信モジュールとを含む。
【００２１】
第４の態様を参照して、第１の可能な実現方式では、受信モジュールは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための、第１のスイッチにより送信された要求を受信するように更に構成され、処理モジュールは、宛先ゲートウェイのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第１のスイッチに返信するように更に構成される。
【００２２】
第４の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、処理モジュールが、SDNコントローラに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、処理モジュールが、宛先ゲートウェイのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報として第１のデータセンタに位置するルータのVTEP情報を使用するように構成されることである。
【００２３】
第４の態様の第２の可能な実現方式を参照して、第３の可能な実現方式では、処理モジュールが宛先ゲートウェイのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、処理モジュールは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って宛先ゲートウェイのMACアドレスに対応するVTEP情報を選択するように構成される。
【００２４】
第４の態様又は第４の態様の第１〜第３の可能な実現方式のうちいずれか１つを参照して、第４の可能な実現方式では、第２の仮想マシンが第２のデータセンタに位置する場合、処理モジュールは、第２のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のサブネットの仮想ネットワーク識別子（VNI）と、第２のスイッチのVTEP情報とを取得するように更に構成される。
【００２５】
第５の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するスイッチを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第１の態様又は第１の態様の第１〜第５の可能な実現方式のうちいずれか１つを実行するように構成される。
【００２６】
第６の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第２の態様又は第２の態様の第１〜第４の可能な実現方式のうちいずれか１つを実行するように構成される。
【００２７】
本発明の実施例では、第１のスイッチは、SDNコントローラからARP応答を受信し、ARP応答は、宛先ゲートウェイのMACアドレスを保持する。第１のスイッチは、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、VTEP情報に対応するルータは、第１のデータセンタに位置する。VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、第１のスイッチは、VTEP情報に従って、IPパケットをVTEP情報に対応するルータに送信する。従って、SDNコントローラは、プロキシとして機能し、このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、パケットが第１のデータセンタのルータと第２のデータセンタのルータとの双方を通過し得る従来技術とは異なり、パケットは、第１のデータセンタのルータのみを通過し、このことは、データセンタの間でのパケットの迂回のルーティングを軽減する。
【００２８】
第７の態様によれば、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する方法を提案する。第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信する。第１の仮想マシン及び第２の仮想マシンは、同じサブネットに位置し、第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。この方法は、第１のスイッチにより、第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信し、ARP要求は、宛先仮想マシンのIPアドレスを保持し、第１のスイッチにより、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得し、VTEP情報は、第２のスイッチのIPアドレスであり、第１のスイッチにより、第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信することを含む。
【００２９】
第７の態様を参照して、第１の可能な実現方式では、第１のスイッチにより、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得することは、第１のスイッチにより、ARP要求を第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送し、ARP要求は、宛先仮想マシンのIPアドレスを保持し、第１のスイッチにより、SDNコントローラからARP応答を受信し、ARP応答は、宛先仮想マシンのMACアドレスを保持することを具体的に含む。
【００３０】
第７の態様又は第７の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することは、第１のスイッチにより、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための要求をSDNコントローラに送信し、SDNコントローラにより送信された、宛先仮想マシンのMACアドレスに対応するVTEP情報を受信することを具体的に含む。
【００３１】
第７の態様又は第７の態様の第１の可能な実現方式を参照して、第３の可能な実現方式では、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することは、第１のスイッチにより、宛先仮想マシンのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを具体的に含む。
【００３２】
第７の態様の第３の可能な実現方式を参照して、第４の可能な実現方式では、第１のスイッチは、第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、SDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを取得する。
【００３３】
第８の態様によれば、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する方法を提案する。第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信する。第１の仮想マシン及び第２の仮想マシンは、同じサブネットに位置し、第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。この方法は、第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラにより、第１のスイッチからアドレス解決プロトコル（ARP）要求を受信し、ARP要求は、宛先仮想マシンのIPアドレスを保持し、SDNコントローラにより、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、ARP応答を第１のスイッチに送信し、第１のスイッチが宛先仮想マシンのMACアドレスに従って宛先仮想マシンのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、ARP応答は、宛先仮想マシンのMACアドレスを保持し、第１のスイッチが第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報は、第２のスイッチのIPアドレスであることを含む。
【００３４】
第８の態様を参照して、第１の可能な実現方式では、SDNコントローラは、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための、第１のスイッチにより送信された要求を受信し、SDNコントローラは、宛先仮想マシンのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得し、宛先仮想マシンのMACアドレスに対応するVTEP情報を第１のスイッチに返信する。
【００３５】
第８の態様又は第８の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、第１のデータセンタのSDNコントローラは、第２のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを取得し、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを第１のスイッチに送信する。
【００３６】
第９の態様によれば、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する第１のスイッチを提案する。第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信する。第１の仮想マシン及び第２の仮想マシンは、同じサブネットに位置し、第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。このスイッチは、第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、ARP要求は、宛先仮想マシンのIPアドレスを保持する受信モジュールと、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するように構成された処理モジュールであり、VTEP情報は、第２のスイッチのIPアドレスである処理モジュールと、第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するように構成された送信モジュールとを含む。
【００３７】
第９の態様を参照して、第１の可能な実現方式では、処理モジュールが、宛先仮想マシンのIPアドレスに従って宛先仮想マシンのMACアドレスを取得するように構成されることは、具体的に、処理モジュールが、ARP要求を第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するように構成され、ARP要求は、宛先仮想マシンのIPアドレスを保持し、SDNコントローラからARP応答を受信するように構成され、ARP応答は、宛先仮想マシンのMACアドレスを保持することである。
【００３８】
第９の態様又は第９の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、処理モジュールが、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、処理モジュールが、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための要求をSDNコントローラに送信し、SDNコントローラにより送信された、宛先仮想マシンのMACアドレスに対応するVTEP情報を受信するように構成されることである。
【００３９】
第９の態様又は第９の態様の第１の可能な実現方式を参照して、第３の可能な実現方式では、処理モジュールが、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、処理モジュールが、宛先仮想マシンのMACアドレスに従って第１のスイッチにより格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得するように構成されることである。
【００４０】
第９の態様の第３の可能な実現方式を参照して、第４の可能な実現方式では、処理モジュールは、第１のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを取得するように更に構成される。
【００４１】
第１０の態様によれば、本発明の実施例は、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提案する。SDNコントローラは、第１のデータセンタに位置し、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される。第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信する。第１の仮想マシン及び第２の仮想マシンは、同じサブネットに位置し、第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。SDNコントローラは、第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュールであり、ARP要求は、宛先仮想マシンのIPアドレスを保持する受信モジュールと、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得するように構成された取得モジュールと、ARP応答を第１のスイッチに送信するように構成された送信モジュールであり、第１のスイッチが宛先仮想マシンのMACアドレスに従って宛先仮想マシンのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、ARP応答は、宛先仮想マシンのMACアドレスを保持し、第１のスイッチが第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報は、第２のスイッチのIPアドレスである送信モジュールとを含む。
【００４２】
第１０の態様を参照して、第１の可能な実現方式では、受信モジュールは、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための、第１のスイッチにより送信された要求を受信するように更に構成され、取得モジュールは、宛先仮想マシンのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得し、宛先仮想マシンのMACアドレスに対応するVTEP情報を第１のスイッチに返信するように更に構成される。
【００４３】
第１０の態様又は第１０の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、取得モジュールは、第２のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを取得するように更に構成され、送信モジュールは、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを第１のスイッチに送信するように更に構成される。
【００４４】
第１１の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するスイッチを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第７の態様又は第７の態様の第１〜第４の可能な実現方式のうちいずれか１つを実行するように構成される。
【００４５】
第１２の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第８の態様又は第８の態様の第１〜第２の可能な実現方式のうちいずれか１つを実行するように構成される。
【００４６】
本発明の実施例では、第１のスイッチは、宛先仮想マシンのIPアドレスに従って宛先仮想マシンのMACアドレスを取得し、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得する。VTEP情報は、第２のスイッチのIPアドレスである。第１のスイッチは、第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信する。従って、SDNコントローラは、プロキシとして機能し、このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。パケットは、第１のデータセンタのルータを通過する必要はなく、第２のデータセンタのルータも通過する必要がない。このことは、２つのデータセンタの間でのパケットの迂回のルーティングを軽減する。
【図面の簡単な説明】
【００４７】
本発明の実施例の技術的対策を明確に説明するために、以下に、従来技術又は実施例を説明するために必要な添付図面について簡単に紹介する。明らかに、以下の説明において、添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みを行うことなく、依然としてこれらの添付図面から他の図面を導き得る。
【図１ａ】本発明の実施例に従って仮想マシンの間で通信を実現するシステムのアーキテクチャ図
【図１ｂ】本発明の実施例に従って仮想マシンの間で通信を実現するシステムのアーキテクチャ図
【図２】本発明の実施例による構成方法の概略図
【図３】本発明の実施例による構成方法のフローチャート
【図４ａ】本発明の実施例に従ってVMを追加するフローチャート
【図４ｂ】本発明の実施例に従ってVMを削除するフローチャート
【図５ａ】本発明の実施例に従ってVMの間で通信を実現するフローチャート
【図５ｂ】本発明の実施例に従ってVMの間で通信を実現するフローチャート
【図６ａ】本発明の実施例に従ってVMの間で通信を実現するフローチャート
【図６ｂ】本発明の実施例に従ってVMの間で通信を実現するフローチャート
【図７ａ】本発明の実施例に従ってVMの間で通信を実現するフローチャート
【図７ｂ】本発明の実施例に従ってVMの間で通信を実現するフローチャート
【図８】本発明の実施例によるスイッチの概略構成図
【図９】本発明の実施例によるコントローラの概略構成図
【図１０】本発明の実施例によるスイッチの概略構成図
【図１１】本発明の実施例によるコントローラの概略構成図
【図１２】本発明の実施例によるハードウェアの概略構成図
【発明を実施するための形態】
【００４８】
本発明の実施例の目的、技術的対策及び利点を明確にするために、以下に、本発明の実施例において添付図面を参照して本発明の実施例の技術的対策を明確且つ完全に説明する。
【００４９】
本発明の実施例は、パケットのブロードキャストにより占有される送信帯域幅を低減し、データセンタの間でのパケットの迂回のルーティングを軽減し得る、仮想マシンの間で通信を実現する方法及びシステムを提案する。
【００５０】
＜本発明の実施例のシステムアーキテクチャ＞
本発明の実施例に従って仮想マシンの間で通信を実現する方法は、図１ａ及び図１ｂに示すシステムアーキテクチャで実現されてもよい。図１ａ及び図１ｂは、単なる例示の図であり、具体的なネットワーキング方式に限定を課すものではない。
【００５１】
拡張可能仮想ローカルエリアネットワーク（VxLAN、Virtual  extensible  LAN）は、レイヤ３ネットワークでカプセル化を実行することにより、ネットワーク仮想化を実現する。具体的に、VxLANカプセル化は、VxLANトンネルエンドポイント（VTEP、VxLAN  Tunnel  End  Point）を使用することにより行われる。エンドポイントは、hypervisorスイッチ又は物理アクセススイッチにより提供されてもよい。VTEPの間にトンネル（Tunnel）が確立され、仮想ネットワークのデータは、トンネルを通じて送信される。
【００５２】
図１ａに示すように、システムは、第１のデータセンタ（DC1）及び第２のデータセンタ（DC2）を含む。DC1は、仮想マシン（VM、Virtual  Machine）VM1、VM2、VM3及びVM4を含み、DC2は、仮想マシンVM5、VM6及びVM7を含む。
【００５３】
ネットワークマネージャ（NetworkManager）は、いずれかのデータセンタに配置され、各データセンタのソフトウェア・デファインド・ネットワーク・コントローラ（SDN  Controller、Software  Defined  Network  Controller）と通信を実現してもよい。ネットワークマネージャの機能については、具体的には図２及び図３の説明を参照されたい。
【００５４】
１つのSDNコントローラが各データセンタに別々に配置されてもよい。データセンタのSDNコントローラは、相互に通信する。具体的に、SDNコントローラのクラスタはFull-Mesh方式で相互接続されてもよく、部分的に接続されてもよく、１つのSDNコントローラが複数のデータセンタに配置されることでもよく、本発明では限定されない。
【００５５】
DC1に位置するVM1は、第１のサブネット（サブネット1により表されてもよい）に属し、サブネットの仮想ネットワーク識別子（VNI、Virtual  Network  Identifier）は、一例として11111を使用する。DC1の第１のサブネットのゲートウェイのIPアドレスは、一例として192.168.1.1を使用し、DC1の第１のサブネットのゲートウェイの媒体アクセス制御（MAC、Media  Access  Control）アドレスは、MAC1である。DC2の第１のサブネットのゲートウェイのIPアドレスは、一例として192.168.1.1を使用し、DC2の第１のサブネットのゲートウェイのMACアドレスは、MAC1である。DC1の第１のサブネットのゲートウェイのIPアドレスは、DC2の第１のサブネットのゲートウェイのIPアドレスと同じでもよく、異なってもよい。DC1の第１のサブネットのゲートウェイのMACアドレスは、DC2の第１のサブネットのゲートウェイのMACアドレスと同じでもよく、異なってもよい。IPアドレス及びMACアドレスが同じ場合（デュアル・アクティベーションと呼ばれることがある）、この対策は更に相当の効果を有する。
【００５６】
VM1は、第１のスイッチ（Switch）を使用することにより、第１のサブネットの外側のVMと通信する。ここでは、スイッチは仮想的でもよく、物理的でもよく、本発明では限定されない。第１のスイッチのIPアドレスは、一例として10.10.10.2を使用し、第１のスイッチは、トンネルにおいてVTEP1により表される。VM1のIPアドレスは、一例として192.168.1.2を使用し、VM1のMACアドレスは、MAC-VM1により表される。
【００５７】
DC1に位置するVM2、VM3及びVM4と、DC2に位置するVM7とは、同じサブネットに属し、これは、第２のサブネット（サブネット2により表されてもよい）として示され、サブネットのVNIは、一例として22222を使用する。DC1の第２のサブネットのゲートウェイのIPアドレスは、一例として192.168.2.1を使用し、DC1の第２のサブネットのゲートウェイのMACアドレスは、MAC2である。DC2の第２のサブネットのゲートウェイのIPアドレスは、一例として192.168.2.1を使用し、DC2の第２のサブネットのゲートウェイのMACアドレスは、MAC2である。DC1の第２のサブネットのゲートウェイのIPアドレスは、DC2の第２のサブネットのゲートウェイのIPアドレスと同じでもよく、異なってもよい。DC1の第２のサブネットのゲートウェイのMACアドレスは、DC2の第２のサブネットのゲートウェイのMACアドレスと同じでもよく、異なってもよい。
【００５８】
VM2、VM3及びVM4は、第２のスイッチを使用することにより、第２のサブネットの外側のVMと通信する。ここでは、スイッチは仮想的でもよく、物理的でもよい。第２のスイッチのIPアドレスは、一例として10.10.10.3を使用し、第２のスイッチは、トンネルにおいてVTEP2により表される。VM7は、第３のスイッチを使用することにより、第２のサブネットの外側のVMと通信する。第３のスイッチのIPアドレスは、一例として11.11.11.3を使用し、第３のスイッチは、トンネルにおいてVTEP3により表される。VM2のIPアドレスは、一例として192.168.2.2を使用し、VM2のMACアドレスは、MAC-VM2により表される。VM3のIPアドレスは、一例として192.168.2.3を使用し、VM3のMACアドレスは、MAC-VM3により表される。VM4のIPアドレスは、一例として192.168.2.4を使用し、VM4のMACアドレスは、MAC-VM4により表される。VM7のIPアドレスは、一例として192.168.2.7を使用し、VM7のMACアドレスは、MAC-VM7により表される。
【００５９】
第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。
【００６０】
DC2に位置するVM5及びVM6は、第３のサブネット（サブネット3により表されてもよい）に属し、サブネットのVNIは、一例として33333を使用する。DC1の第３のサブネットのゲートウェイのIPアドレスは、一例として192.168.3.1を使用し、DC1の第３のサブネットのゲートウェイのMACアドレスは、MAC3である。DC2の第３のサブネットのゲートウェイのIPアドレスは、一例として192.168.3.1を使用し、DC2の第３のサブネットのゲートウェイのMACアドレスは、MAC3である。DC1の第３のサブネットのゲートウェイのIPアドレスは、DC2の第３のサブネットのゲートウェイのIPアドレスと同じでもよく、異なってもよい。DC1の第３のサブネットのゲートウェイのMACアドレスは、DC2の第３のサブネットのゲートウェイのMACアドレスと同じでもよく、異なってもよい。
【００６１】
VM5及びVM6は、第４のスイッチを使用することにより、第３のサブネットの外側のVMと通信する。ここでは、スイッチは仮想的でもよく、物理的でもよい。第４のスイッチのIPアドレスは、一例として11.11.11.4を使用し、第４のスイッチは、トンネルにおいてVTEP4により表される。VM5のIPアドレスは、一例として192.168.3.5を使用し、VM5のMACアドレスは、MAC-VM5により表される。VM6のIPアドレスは、一例として192.168.3.6を使用し、VM6のMACアドレスは、MAC-VM6により表される。
【００６２】
第３のスイッチは、第４のスイッチと同じでもよく、異なってもよい。
【００６３】
１つ以上のルータ（router）がDC1に配置される。説明は、ルータ1が配置される例を使用することにより提供される。ルータ1は、トンネルにおいてVTEP5により表され、ルータ1のIPアドレスは、一例として10.10.10.5を使用する。同様に、１つ以上のルータがDC2に配置される。説明は、ルータ2が配置される例を使用することにより提供される。ルータ1は、トンネルにおいてVTEP6により表され、ルータ2のIPアドレスは、一例として11.11.11.6を使用する。
【００６４】
複数のルータが配置される場合、図１ｂに参照が行われてもよい。例えば、ルータ1及びルータ3は、クラスタを形成してもよく、これにより、単一のルータにおけるボトルネックを除去し、ルータの間での柔軟なスケーリングを実現する。配置されるルータの量は本発明で限定されず、明らかに、2より大きくてもよい。図１ｂの他の情報は、図１ａのものと同様であり、再び詳細に説明しない。
【００６５】
ネットワークマネージャがいずれかのSDNコントローラを構成する処理を説明する図２を参照する。以下の３つのコマンド、すなわち、AddRouterInfo、AddSwitchInfo及びADDPeerSDNCtrlが含まれるが、限定を構成するものではない。
【００６６】
AddRouterInfoは、ルータのIPアドレス及びDCの識別子情報を構成するために使用され、説明は一例として表１を使用することにより提供される。
【表１】
2016509448.tif 000003
【００６７】
AddSwitchInfoは、スイッチのVTEP情報を構成するために使用され、説明は一例として表２を使用することにより提供される。
【表２】
2016509448.tif 000004
【００６８】
ADDPeerSDNCtrlは、ピアSDNコントローラのIPアドレス及びピアDCの識別子を構成するために使用され、説明は一例として表３を使用することにより提供される。
【表３】
2016509448.tif 000005
【００６９】
任意選択で、SDNコントローラは、表１〜表３の項目についての情報をフローテーブルの形式で保存する。
【００７０】
次に図３を参照して、ネットワークマネージャがSDNコントローラを使用することにより各サブネットを構成する処理を説明する。
【００７１】
(A1)NetworkManagerは、サブネットとルータとの間の関連付けをDC1のSDNコントローラに追加する。具体的な追加コマンドは、一例としてAddRouterInterfaceを使用する。サブネット1が追加される例が使用される。サブネット1のVNIは11111であり、DC1のサブネットのゲートウェイのIPアドレスは192.168.1.1/24である。24は、サブネットマスクが255.255.255.0であることを示す。DC1のサブネットのゲートウェイのMACアドレスはMAC1である。
【００７２】
任意選択で、SDNコントローラは、追加された情報をフローテーブルの形式で保存する。同様に、SDNコントローラはまた、以下において他の追加された情報もフローテーブルの形式で保存する。
【００７３】
(A2)DC1のSDNコントローラは、サブネットとルータとの間の関連付けをDC1のルータ1に追加する。具体的な追加コマンドは、一例としてAddRouterGwIPを使用する。
【００７４】
(A3)VMがサブネット1で生成された場合、SDNコントローラは、ゲートウェイのMACアドレスに対応するVTEP情報を現在のデータセンタのSwitchに追加する。具体的な追加コマンドは、一例としてAddGwMacVTEPを使用する。一例として図１ａ及び図１ｂの情報を使用すると、サブネット1のVM1がパケットを送信し、パケットに対応するゲートウェイのMACアドレスがMAC1である場合、パケットは、VTEPが10.10.10.5であるルータに送信される。ルータの処理インタフェースは、VNIにより決定される。現在のデータセンタのSwitchは、ゲートウェイのMACアドレスに対応するVTEP情報をフローテーブルの形式で保存する。
【００７５】
(B1)NetworkManagerは、サブネットとルータとの間の関連付けをDC2のSDNコントローラに追加する。具体的な追加コマンドは、一例としてAddRouterInterfaceを使用する。サブネット1が追加される例が使用される。サブネット1のVNIは11111であり、DC2のサブネットのゲートウェイのIPアドレスは192.168.1.1/24である。24は、サブネットマスクが255.255.255.0であることを示す。DC2のサブネットのゲートウェイのMACアドレスはMAC1である。
【００７６】
(B2)DC2のSDNコントローラは、サブネットとルータとの間の関連付けをDC2のルータ2に追加する。具体的な追加コマンドは、一例としてAddRouterGwIPを使用する。
【００７７】
(B3)VMがサブネット1で生成された場合、SDNコントローラは、ゲートウェイのMACアドレスに対応するVTEP情報を現在のデータセンタのSwitchに追加する。具体的な追加コマンドは、一例としてAddGwMacVTEPを使用する。一例として図１ａ及び図１ｂの情報を使用して、サブネット1のVM1がパケットを送信し、パケットに対応するゲートウェイのMACアドレスがMAC1である場合、パケットは、VTEPが11.11.11.6であるルータに送信される。ルータの処理インタフェースは、VNIにより決定される。
【００７８】
ステップ(B1)、(B2)及び(B3)並びにステップ(A1)、(A2)及び(A3)を実行する順序は限定されない。同様に、ネットワークコントローラ及びSDNコントローラは、他のサブネットとルータとの間の関連付けを追加してもよい。
【００７９】
図３に示す構成中に、DC1のサブネット1のゲートウェイのIPアドレスと、DC2のサブネット1のゲートウェイのIPアドレスとは同じであり、DC1のサブネット1のゲートウェイのMACアドレスと、DC2のサブネット1のゲートウェイのIPアドレスとは同じであるが、ルータのVTEP情報（すなわち、ルータのVTEPのIPアドレス）は異なる。
【００８０】
VMを生成し、情報同期を実現する処理について、以下に図４ａを参照して説明する。VM2の生成が一例として使用される。
【００８１】
(A1)DC1の第２のスイッチに対して仮想マシンVM2を生成するコマンドを開始する。具体的な生成コマンドは、一例としてCreate  VM  on  switchを使用する。
【００８２】
(A2)DC1の第２のスイッチは、VM2を生成し、VM2の仮想ポート及び対応するVTEP情報をDC1のSDN  controllerに通知する。具体的な通知コマンドは、一例としてVM  vPort  VTEP  notifyを使用する。VM2のMACアドレスはMAC-VM2であり、VM2のIPアドレスは192.168.2.2である。VM2は第２のサブネットに属し、VNIは22222である。VM2に対応するVTEP情報は10.10.10.3である。VM2が位置する第２のスイッチのVTEP情報をDC1のSDN  controllerが格納している場合、第２のスイッチは、VM2の仮想ポートについての情報をDC1のSDN  controllerに通知しさえすればよい。
【００８３】
SDNコントローラは、ポート情報に従ってポートのVNIを取得してもよい。
【００８４】
(A3)DC1のSDN  controllerは、VM2の仮想ポート及び対応するVTEP情報をDC2のSDN  controllerに通知する。具体的な通知コマンドは、一例としてVM  vPort  VTEP  notifyを使用する。具体的に、DC1のSDN  controllerは、AddSwitchInfoを使用することにより、VM2が位置するvSwitchのVTEP情報を取得し、VM2の仮想ポート及び対応するVTEP情報をDC2のSDN  controllerに通知する。
【００８５】
(A4.1)DC1のSDN  controllerは、VM2についての情報をDC1のルータに追加する。具体的な追加コマンドは、一例としてAddVMMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2、VNI=222222及びVTEP=10.10.10.3が含まれる。
【００８６】
(A4.2)DC2のSDN  controllerは、VM2についての情報をDC2のルータに追加する。具体的な追加コマンドは、一例としてAddVMMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2、VNI=222222及びVTEP=10.10.10.3が含まれる。
【００８７】
(A3)及び(A4.1)を実行する順序は限定されず、(A4.1)及び(A4.2)を実行する順序も限定されない。
【００８８】
(A5)DC1のSDNコントローラは、ゲートウェイのMACアドレスに対応するVTEP情報をDC1のSwitchに追加する。具体的な追加コマンドは、一例としてAddGwMacVTEPを使用する。一例としてVM2を使用すると、サブネット2のVM2がパケットを送信し、パケットに対応するゲートウェイのMACアドレスがMAC2である場合、パケットは、VTEPが10.10.10.5であるルータに送信される。VNI=22222は、ルータの処理インタフェースを決定するために使用される。
【００８９】
図３の(B3)及び(A3)に示すように、VMがサブネットで生成された場合、SDNコントローラは、ゲートウェイのMACアドレスに対応するVTEP情報を現在のデータセンタのSwitchに追加する。図３においてサブネットが生成されたときにVMが生成されていない場合、ゲートウェイのMACアドレスに対応するVTEP情報は、図４ａの(A5)を使用することにより、現在のデータセンタのSwitchに追加されてもよい。
【００９０】
(A5)及び(A3)〜(A4.2)を実行する順序は限定されない。
【００９１】
VMを削除して情報同期を実現する処理について、以下に図４ｂを参照して説明する。VM2の削除が一例として使用される。
【００９２】
(B1)DC1の第２のスイッチに対して仮想マシンVM2を削除するコマンドを開始する。具体的な削除コマンドは、一例としてdelete  VM  on  switchを使用する。
【００９３】
(B2)DC1の第２のスイッチは、VM2を削除し、VM2の仮想ポート及び対応するVTEP情報を削除するためにDC1のSDN  controllerに通知する。具体的な削除コマンドは、一例としてdelete  VM  vPort  notifyを使用する。
【００９４】
図４ａの(A5)に対応して、ゲートウェイのMACアドレスに対応するVTEP情報も、ステップ(B2)において削除されてもよい。
【００９５】
(B3)DC1のSDN  controllerは、VM2についての情報を削除するためにDC2のSDN  controllerに通知する。具体的な通知コマンドは、一例としてdelete  VM  vPort  notifyを使用する。
【００９６】
(B4.1)DC1のSDN  controllerは、DC1のルータからVM2のMACアドレス及びVTEP情報を削除する。具体的な削除コマンドは、一例としてDeleteRouterMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2及びVNI=222222が含まれる。
【００９７】
明らかに、MAC=MAC-VM2及びVNI=222222が削除されることでもよく、更に、MAC=MAC-VM2、VNI=222222及びVTEP=10.10.10.3が削除されることでもよい。
【００９８】
(B4.2)DC2のSDN  controllerは、DC2のルータからVM2のMACアドレス及びVTEP情報を削除する。具体的な削除コマンドは、一例としてDeleteRouterMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2及びVNI=222222が含まれる。
【００９９】
明らかに、(B4.1)と同様に、MAC=MAC-VM2及びVNI=222222が削除されることでもよく、更に、MAC=MAC-VM2、VNI=222222及びVTEP=10.10.10.3が削除されることでもよい。
【０１００】
(B3)及び(B4.1)を実行する順序は限定されず、(B4.1)及び(B4.2)を実行する順序も限定されない。
【０１０１】
仮想マシンのマイグレーションは、VM生成及びVM削除の２つの動作に分割されてもよい。詳細については、図４ａ及び図４ｂにおいて説明した処理に参照が行われてもよく、再び詳細に説明しない。
【０１０２】
図２〜図４の構成処理を用いて、DC1のSDNコントローラは、DC1のルータ1についての情報と、第１のスイッチについての情報と、第２のスイッチについての情報と、DC1の各サブネットとルータとの間の関連付けと、DC1の各仮想マシンのMACアドレス及びVTEP情報とを取得する。一方で、DC1のSDNコントローラはまた、DC2のSDNコントローラについての情報と、DC2のSDNコントローラにより制御される仮想マシンのMACアドレス及びVTEP情報とを取得する。これらは、DC2のSDNコントローラにより制御されるいくつかの仮想マシンのMACアドレス及びVTEP情報でもよく、DC2のSDNコントローラにより制御される全ての仮想マシンのMACアドレス及びVTEP情報でもよい。同様に、DC2のSDNコントローラは、DC2のルータ2についての情報と、第３のスイッチについての情報と、第４のスイッチについての情報と、DC2の各サブネットとルータとの間の関連付けと、DC2の各仮想マシンのMACアドレス及びVTEP情報とを取得する。一方で、DC2のSDNコントローラはまた、DC1のSDNコントローラについての情報と、DC1のSDNコントローラにより制御される仮想マシンのMACアドレス及びVTEP情報とを取得する。これらは、DC1のSDNコントローラにより制御されるいくつかの仮想マシンのMACアドレス及びVTEP情報でもよく、DC1のSDNコントローラにより制御される全ての仮想マシンのMACアドレス及びVTEP情報でもよい。
【０１０３】
図１ａ及び図１ｂに示すシステムアーキテクチャにおいて、どのように仮想マシンの間で通信を実現するかについての詳細については、以下の実施例で提供される説明を参照されたい。
【０１０４】
＜仮想マシンの間で通信を実現する方法＞
本発明の実施例に従って仮想マシンの間で通信を実現する方法が以下に紹介される。この方法は、前述の実施例のシステムアーキテクチャにおいて実現されてもよい。
【０１０５】
図５ａに示す、仮想マシンの間で通信を実現する方法の実施例は、データセンタDC1に位置する仮想マシンVM4とデータセンタDC2に位置する仮想マシンVM5との間で通信を実現するために使用される。VM4は、第２のサブネットに位置し、VM5は、第３のサブネットに位置する。VM4は、第２のスイッチを使用することにより、第２のサブネットの外側のVMと通信し、VM5は、第４のスイッチを使用することにより、第３のサブネットの外側のVMと通信する。この方法は以下のステップを含む。
【０１０６】
(1)VM4はVM5と通信する必要がある。VM4は、ルーティングテーブルに問い合わせることにより、VM4及びVM5が異なるサブネットに位置することを発見する。VM4は、宛先ゲートウェイとして第２のサブネットのデフォルトゲートウェイ192.168.2.1を使用する。VM4は、宛先ゲートウェイのMACアドレスをブロードキャスト方式で取得するために、ブロードキャスト・アドレス解決プロトコル（ARP、Address  Resolution  Protocol）要求を第２のスイッチに送信する。ARP要求は、宛先ゲートウェイのIPアドレスを保持する。
【０１０７】
(2)第２のスイッチは、ARP要求を受信し、ARP要求を第１のデータセンタのSDNコントローラに転送する。
【０１０８】
(3)第１のデータセンタのSDNコントローラは、ARP要求を受信し、ARP要求に保持された宛先ゲートウェイのIPアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスとしてMAC2を取得する。SDNコントローラは、ARP応答を第２のスイッチに送信する。ARP応答は、宛先ゲートウェイのMACアドレスを保持し、ARP応答は、ブロードキャストARP要求に対してプロキシにより行われた応答に等しい。
【０１０９】
任意選択で、ARP要求は、ARP応答を受信した第２のスイッチのポート情報を更に保持してもよい。SDNコントローラは、ポート情報に従ってフローテーブルに問い合わせ、ポート情報に対応するVNIを取得する。宛先ゲートウェイのMACアドレスを取得することは、SDNコントローラにより、宛先ゲートウェイのIPアドレス及びポート情報に対応するVNIに従って宛先ゲートウェイのMACアドレスを取得することを具体的に含む。具体的に、ポート情報は、第２のスイッチにおけるVM4の仮想ポートについての情報でもよい。
【０１１０】
任意選択で、ARP要求は、ARP応答を受信した第２のスイッチのポートのVNIを更に保持してもよい。宛先ゲートウェイのMACアドレスを取得することは、SDNコントローラにより、宛先ゲートウェイのIPアドレス及び第２のスイッチのポートのVNIに従って宛先ゲートウェイのMACアドレスを取得することを具体的に含む。
【０１１１】
(4)第２のスイッチは、ARP応答を受信し、ARP応答をVM4に転送する。
【０１１２】
(5)VM4は、IPパケットを第２のスイッチに送信する。IPパケットの宛先MAC（DestMAC）はMAC2であり、IPパケットの宛先IP（DestIP）はVM5のIPアドレス192.168.3.5であり、IPパケットの送信元MACはVM4のMAC（MAC-VM4により表される）であり、IPパケットの送信元IPは、VM4のIPアドレス192.168.2.4である。
【０１１３】
図３、図４ａ及び図４ｂの構成処理を用いて、第２のスイッチは、MAC2に対応するVTEP情報を一時的に格納してもよい。MAC2に対応するVTEP情報が存在することを第２のスイッチが発見した場合、ステップ(8)が直接実行される。MAC2に対応するVTEP情報が存在しないことを第２のスイッチが発見した場合、ステップ(6)及びステップ(7)が実行される。
【０１１４】
(6)第２のスイッチは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求を現在のデータセンタのSDNコントローラに送信する。
【０１１５】
(7)SDNコントローラは、ローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第２のスイッチに送信する。
【０１１６】
SDNコントローラが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、第２のスイッチと同じデータセンタに位置するルータのVTEP情報が、宛先ゲートウェイのMACアドレスに対応するVTEP情報として使用される。
【０１１７】
この実施例では、２つのVTEP情報、すなわち、VTEP5（IPが10.10.10.5である）及びVTEP6（IPが11.11.11.6である）がMAC2に従って取得された場合、第２のスイッチと同じデータセンタに位置するVTEP5が、宛先ゲートウェイのMACアドレスに対応するVTEPとして選択される。
【０１１８】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM4のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第２のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RondRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【０１１９】
(8)第２のスイッチは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、VM4から受信したIPパケットでVxLANカプセル化を実行し、IPパケットをVTEP情報に対応するルータに送信する。VxLANカプセル化が実行されたIPパケットの送信元IPは、第２のスイッチのIPアドレス、すなわち、10.10.10.3であり、VxLANカプセル化が実行されたIPパケットの宛先IPは、取得されたVTEP情報（10.10.10.5）であり、VNIは22222である。
【０１２０】
第２のスイッチがローカルのフローテーブルに問い合わせることにより、MAC2に対応するVTEP情報が存在しないことを発見した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報は、前述のステップ(6)及びステップ(7)を使用することにより取得される。或いは、第２のスイッチは、ローカルのフローテーブルに問い合わせることにより、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得する。具体的に、２つ以上のVTEP情報が取得された場合、第２のスイッチと同じデータセンタに位置するルータのVTEP情報が、宛先ゲートウェイのMACアドレスに対応するVTEP情報として使用される。同じデータセンタが複数のルータを有する場合、ルータの負荷及びスケジューリングポリシーに従って選択が実行される。これはステップ(7)と同様であり、再び詳細に説明しない。
【０１２１】
(9)第１のデータセンタのルータは、受信したパケットのVxLANカプセル化を変更し、第１のデータセンタのルータと第４のスイッチとの間のトンネルを通じてパケットを第４のスイッチに送信する。
【０１２２】
図３、図４ａ及び図４ｂの構成処理を用いて、第１のデータセンタのルータは、第２のデータセンタの仮想マシンのMACアドレス及びVTEP情報を一時的に格納する。従って、VxLANトンネルは、第１のデータセンタのルータと第４のスイッチとの間に直接確立されてもよい。第１のデータセンタのルータと第４のスイッチとの間とを通じて、カプセル化が変更されたパケットは、第２のデータセンタのルータを通過することなく、第４のスイッチに直接送信される。
【０１２３】
VxLANカプセル化を変更することは、具体的には、ステップ(8)のVxLANカプセル化の送信元IPを10.10.10.5に変更し、ステップ(8)のVxLANカプセル化の宛先IPを第４のスイッチのIPアドレス、すなわち、11.11.11.4に変更し、ステップ(8)のVxLANカプセル化のVNIを33333に変更し、ステップ(5)のIPパケットの宛先MACをMAC-VM5に変更し、ステップ(5)のIPパケットの送信元MACをMAC2に変更することである。VxLANカプセル化を変更することにより、第４のスイッチは、カプセル化されたIPパケットを受信し、もはやARP要求をブロードキャストする処理を起動することなく、直接処理を実行する。
【０１２４】
(10)第４のスイッチは、VxLANカプセル化解除が実行された後に、IPパケットをVM5に送信する。
【０１２５】
VM5がIPパケットをVM4に送信する処理は、前述の処理と同様であり、再び詳細に説明しない。
【０１２６】
図５ｂに示す、仮想マシンの間で通信を実現する方法の実施例を参照する。適用場面は、図５ａに示す実施例と同様である。以下に相互作用処理について詳細に説明する。
【０１２７】
(1)〜(4)は、図５ａに示す実施例の(1)〜(4)と同様であり、再び詳細に説明しない。
【０１２８】
(5)VM4は、IPパケットを第２のスイッチに送信する。IPパケットの宛先MAC（DestMAC）はMAC2であり、IPパケットの宛先IP（DestIP）はVM5のIPアドレス192.168.3.5であり、IPパケットの送信元MACはVM4のMAC（MAC-VM4により表される）であり、IPパケットの送信元IPは、VM4のIPアドレス192.168.2.4である。
【０１２９】
(6)第２のスイッチは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求を現在のデータセンタのSDNコントローラに送信する。
【０１３０】
(7.1)SDNコントローラは、ローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得する。SDNコントローラは、第２のスイッチから受信したIPパケットでVxLANカプセル化を実行し、IPパケットを第２のスイッチに送信する。VxLANカプセル化が実行されたIPパケットの送信元IPは、第２のスイッチのIPアドレス、すなわち、10.10.10.3であり、VxLANカプセル化が実行されたIPパケットの宛先IPは、取得されたVTEP情報（10.10.10.5）であり、VNIは22222である。
【０１３１】
SDNコントローラが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、第２のスイッチと同じデータセンタに位置するルータのVTEP情報が、宛先ゲートウェイのMACアドレスに対応するVTEP情報として使用される。
【０１３２】
この実施例では、２つのVTEP情報、すなわち、VTEP5（IPが10.10.10.5である）及びVTEP6（IPが11.11.11.6である）がMAC2に従って取得された場合、第２のスイッチと同じデータセンタに位置するVTEP5が、宛先ゲートウェイのMACアドレスに対応するVTEPとして選択される。
【０１３３】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM4のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第２のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RondRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【０１３４】
(7.2)他の態様では、SDNコントローラは、フローテーブルの形式で、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第２のスイッチに送信する。次にIPパケットを受信した場合、第２のスイッチは、SDNコントローラからフローテーブルをもはや要求することなく、宛先ゲートウェイのMACアドレスに対応するVTEP情報に従って、カプセル化が実行された次に受信したIPパケットを、VTEP情報に対応するルータに直接転送してもよい。
【０１３５】
(8)第２のスイッチは、SDNコントローラから、VxLANカプセル化が実行されたIPパケットを受信し、VxLANカプセル化が実行されたIPパケットのVTEP情報に従って、VxLANカプセル化が実行されたIPパケットを、VTEP情報に対応するルータに転送する。
【０１３６】
ステップ(7.2)及びステップ(8)を実行する順序は限定されない点に留意すべきである。
【０１３７】
(9)及び(10)は、図５ａに示す実施例の(9)及び(10)と同様であり、再び詳細に説明しない。
【０１３８】
前述の処理のいずれかを用いて、データセンタ及びサブネットを通した通信が実現され、SDNコントローラは、VMにより送信されたブロードキャストARP要求に対する応答を行うプロキシとして機能することができる。このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、VMの間での通信中に、パケットは、第１のデータセンタのルータ及び第２のデータセンタのルータの双方を通過する代わりに、第１のデータセンタのルータのみを通過する。このことは、データセンタの間でのパケットの迂回のルーティングを軽減する。
【０１３９】
図６ａに示す、仮想マシンの間で通信を実現する方法の実施例は、データセンタDC1に位置する仮想マシンVM3とデータセンタDC2に位置する仮想マシンVM7との間で通信を実現するために使用される。VM3及びVM7の双方は、第２のサブネットに位置する。VM3は、第２のスイッチを使用することにより、第２のサブネットの外側のVMと通信し、VM7は、第３のスイッチを使用することにより、第２のサブネットの外側のVMと通信する。この方法は以下のステップを含む。
【０１４０】
(1)VM3はVM7と通信する必要がある。VM3は、ルーティングテーブルに問い合わせることにより、VM3及びVM7が同じサブネットに位置することを発見する。VM3がVM7のMACアドレスを格納していない場合、VM3は、宛先仮想マシンのMACアドレスをブロードキャスト方式で取得するために、ブロードキャスト・アドレス解決プロトコル（ARP、Address  Resolution  Protocol）要求を第２のスイッチに送信する。ARP要求は、VM7のIPアドレスを保持する。
【０１４１】
(2)第２のスイッチは、ARP要求を第１のデータセンタのSDNコントローラに転送する。
【０１４２】
(3)第１のデータセンタのSDNコントローラは、ARP要求を受信し、ARP要求に保持された宛先仮想マシンのIPアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスとしてMAC-VM7を取得する。SDNコントローラは、ARP応答を第２のスイッチに送信する。ARP応答は、宛先仮想マシンのMACアドレスを保持し、ARP応答は、ブロードキャストARP要求に対してプロキシにより行われた応答に等しい。
【０１４３】
(4)第２のスイッチは、ARP応答を受信し、ARP応答をVM3に転送する。
【０１４４】
(5)VM3は、IPパケットを第２のスイッチに送信する。IPパケットの宛先MAC（DestMAC）はMAC-VM7であり、IPパケットの宛先IP（DestIP）はVM7のIPアドレス192.168.2.7であり、IPパケットの送信元MACはVM3のMAC（MAC-VM3により表される）であり、IPパケットの送信元IPは、VM3のIPアドレス192.168.2.3である。
【０１４５】
図４ａ及び図４ｂの構成処理を用いて、第２のスイッチは、MAC-VM7に対応するVTEP情報を一時的に格納してもよい。MAC-VM7に対応するVTEP情報が存在することを第２のスイッチが発見した場合、ステップ(8)が直接実行される。MAC-VM7に対応するVTEP情報が存在しないことを第２のスイッチが発見した場合、ステップ(6)及びステップ(7)が実行される。
【０１４６】
(6)第２のスイッチは、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための要求を現在のデータセンタのSDNコントローラに送信する。
【０１４７】
(7)SDNコントローラは、ローカルに格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得し、宛先仮想マシンのMACアドレスに対応するVTEP情報を第２のスイッチに送信する。
【０１４８】
この実施例では、取得されたVTEPはVTEP3であり、VTEP情報はMAC-VM7に従って11.11.11.3である。
【０１４９】
(8)第２のスイッチは、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得し、VM3から受信したIPパケットでVxLANカプセル化を実行し、IPパケットをVTEP情報に対応するスイッチに送信する。VxLANカプセル化が実行されたIPパケットの送信元IPは、第２のスイッチのIPアドレス、すなわち、10.10.10.3であり、VxLANカプセル化が実行されたIPパケットの宛先IPは、取得されたVTEP情報（11.11.11.3）である。
【０１５０】
第２のスイッチがローカルのフローテーブルに問い合わせることにより、MAC-VM7に対応するVTEP情報が存在しないことを発見した場合、宛先仮想マシンのMACアドレスに対応するVTEP情報は、前述のステップ(6)及びステップ(7)を使用することにより取得される。或いは、第２のスイッチは、ローカルのフローテーブルに問い合わせることにより、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得する。
【０１５１】
図２、図３、図４ａ及び図４ｂの構成方法を使用することにより、第１のデータセンタのSDNコントローラは、第２のデータセンタのSDNコントローラから、VM7のIPアドレス及びMACアドレスと第３のスイッチのVTEP情報とを取得し、VM7のIPアドレス及びMACアドレスと第３のスイッチのVTEP情報とを第２のスイッチに送信する。このように、第２のスイッチは、第２のスイッチと第３のスイッチとの間のトンネルを通じてIPパケットをVM7に送信することができる。すなわち、IPパケットは、データセンタ1のルータを通過する必要はなく、データセンタ2のルータも通過する必要がない。
【０１５２】
(9)第３のスイッチは、VxLANカプセル化解除が実行された後に、IPパケットをVM7に送信する。
【０１５３】
VM7がIPパケットをVM3に送信する処理は、前述の処理と同様であり、再び詳細に説明しない。
【０１５４】
図６ｂに示す、仮想マシンの間で通信を実現する方法の実施例を参照する。適用場面は、図６ａに示す実施例と同様である。以下に相互作用処理について詳細に説明する。
【０１５５】
(1)VM3はVM7と通信する必要がある。VM3は、ルーティングテーブルに問い合わせることにより、VM3及びVM7が同じサブネットに位置することを発見する。VM3がVM7のMACアドレスを格納していない場合、VM3は、宛先仮想マシンのMACアドレスをブロードキャスト方式で取得するために、ブロードキャスト・アドレス解決プロトコル（ARP、Address  Resolution  Protocol）要求を第２のスイッチに送信する。ARP要求は、VM7のIPアドレスを保持する。
【０１５６】
(2)第２のスイッチは、ARP要求を第１のデータセンタのSDNコントローラに転送する。
【０１５７】
(3)第１のデータセンタのSDNコントローラは、ARP要求を受信し、ARP要求に保持された宛先仮想マシンのIPアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスとしてMAC-VM7を取得する。SDNコントローラは、ARP応答を第２のスイッチに送信する。ARP応答は、宛先仮想マシンのMACアドレスを保持し、ARP応答は、ブロードキャストARP要求に対してプロキシにより行われた応答に等しい。
【０１５８】
(4)第２のスイッチは、ARP応答を受信し、ARP応答をVM3に転送する。
【０１５９】
(5)VM3は、IPパケットを第２のスイッチに送信する。IPパケットの宛先MAC（DestMAC）はMAC-VM7であり、IPパケットの宛先IP（DestIP）はVM7のIPアドレス192.168.2.7であり、IPパケットの送信元MACはVM3のMAC（MAC-VM3により表される）であり、IPパケットの送信元IPは、VM3のIPアドレス192.168.2.3である。
【０１６０】
(6)第２のスイッチは、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための要求を現在のデータセンタのSDNコントローラに送信する。
【０１６１】
(7.1)SDNコントローラは、ローカルに格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得する。SDNコントローラは、第２のスイッチから受信したIPパケットでVxLANカプセル化を実行し、IPパケットを第２のスイッチに送信する。
【０１６２】
この実施例では、取得されたVTEPはVTEP3であり、VTEP情報は、MAC-VM7に従って11.11.11.3である。VxLANカプセル化が実行されたIPパケットの送信元IPは、第２のスイッチのIPアドレス、すなわち、10.10.10.3であり、VxLANカプセル化が実行されたIPパケットの宛先IPは、取得されたVTEP情報（11.11.11.3）であり、VNIは22222である。
【０１６３】
(7.2)他の態様では、SDNコントローラは、フローテーブルの形式で、宛先仮想マシンのMACアドレスに対応するVTEP情報を第２のスイッチに送信する。次にIPパケットを受信した場合、第２のスイッチは、SDNコントローラからフローテーブルをもはや要求することなく、宛先仮想マシンのMACアドレスに対応するVTEP情報に従って、カプセル化が実行された次に受信したIPパケットを、VTEP情報に対応するルータに直接転送してもよい。
【０１６４】
(8)第２のスイッチは、SDNコントローラから、VxLANカプセル化が実行されたIPパケットを受信し、VxLANカプセル化が実行されたIPパケットのVTEP情報に従って、VxLANカプセル化が実行されたIPパケットを、VTEP情報に対応するルータに転送する。
【０１６５】
ステップ(7.2)及びステップ(8)を実行する順序は限定されない点に留意すべきである。
【０１６６】
図２、図３、図４ａ及び図４ｂの構成方法を使用することにより、第１のデータセンタのSDNコントローラは、第２のデータセンタのSDNコントローラから、VM7のIPアドレス及びMACアドレスと第３のスイッチのVTEP情報とを取得し、VM7のIPアドレス及びMACアドレスと第３のスイッチのVTEP情報とを第２のスイッチに送信する。このように、第２のスイッチは、第２のスイッチと第３のスイッチとの間のトンネルを通じてIPパケットをVM7に送信することができる。すなわち、IPパケットは、データセンタ1のルータを通過する必要はなく、データセンタ2のルータも通過する必要がない。
【０１６７】
(9)第３のスイッチは、VxLANカプセル化解除が実行された後に、IPパケットをVM7に送信する。
【０１６８】
前述の処理のいずれかを用いて、同じサブネット内のデータセンタを通した通信が実現され、SDNコントローラは、VMにより送信されたブロードキャストARP要求に対する応答を行うプロキシとして機能することができる。このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、VMの間での通信中に、パケットは、第１のデータセンタのルータを通過する必要はなく、第２のデータセンタのルータも通過する必要がない。このことは、２つのデータセンタの間でのパケットの迂回のルーティングを軽減する。
【０１６９】
図７ａに示す、仮想マシンの間で通信を実現する方法の実施例は、データセンタDC1に位置する仮想マシンVM1と同じデータセンタDC1に位置する他の仮想マシンVM2との間で通信を実現するために使用される。VM1は、第１のサブネットに位置し、VM2は、第２のサブネットに位置し、第１のサブネット及び第２のサブネットは異なる。VM1は、第１のスイッチを使用することにより、第１のサブネットの外側のVMと通信し、VM2は、第２のスイッチを使用することにより、第２のサブネットの外側のVMと通信する。この方法は以下のステップを含む。
【０１７０】
(1)VM1はVM2と通信する必要がある。VM1は、ルーティングテーブルに問い合わせることにより、VM2及びVM1が異なるサブネットに位置することを発見する。VM1は、宛先ゲートウェイとして第１のサブネットのデフォルトゲートウェイ192.168.1.1を使用する。VM1は、宛先ゲートウェイのMACアドレスをブロードキャスト方式で取得するために、ブロードキャスト・アドレス解決プロトコル（ARP、Address  Resolution  Protocol）要求を第１のスイッチに送信する。ARP要求は、宛先ゲートウェイのIPアドレスを保持する。
【０１７１】
(2)第１のスイッチは、ARP要求を受信し、ARP要求を第１のデータセンタのSDNコントローラに転送する。
【０１７２】
(3)第１のデータセンタのSDNコントローラは、ARP要求を受信し、ARP要求に保持された宛先ゲートウェイのIPアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスとしてMAC1を取得する。SDNコントローラは、ARP応答を第１のスイッチに送信する。ARP応答は、宛先ゲートウェイのMACアドレスを保持し、ARP応答は、ブロードキャストARP要求に対してプロキシにより行われた応答に等しい。
【０１７３】
任意選択で、ARP要求は、ARP応答を受信した第１のスイッチのポート情報を更に保持してもよい。SDNコントローラは、ポート情報に従ってフローテーブルに問い合わせ、ポート情報に対応するVNIを取得する。宛先ゲートウェイのMACアドレスを取得することは、SDNコントローラにより、宛先ゲートウェイのIPアドレス及びポート情報に対応するVNIに従って宛先ゲートウェイのMACアドレスを取得することを具体的に含む。具体的に、ポート情報は、第１のスイッチにおけるVM1の仮想ポートについての情報でもよい。
【０１７４】
任意選択で、ARP要求は、ARP応答を受信した第１のスイッチのポートのVNIを更に保持してもよい。宛先ゲートウェイのMACアドレスを取得することは、SDNコントローラにより、宛先ゲートウェイのIPアドレス及び第１のスイッチのポートのVNIに従って宛先ゲートウェイのMACアドレスを取得することを具体的に含む。
【０１７５】
(4)第１のスイッチは、ARP応答を受信し、ARP応答をVM1に転送する。
【０１７６】
(5)VM1は、IPパケットを第１のスイッチに送信する。IPパケットの宛先MAC（DestMAC）はMAC1であり、IPパケットの宛先IP（DestIP）はVM2のIPアドレス192.168.2.2であり、IPパケットの送信元MACはVM1のMAC（MAC-VM1により表される）であり、IPパケットの送信元IPは、VM1のIPアドレス192.168.1.2である。
【０１７７】
図３、図４ａ及び図４ｂの構成処理を用いて、第１のスイッチは、MAC1に対応するVTEP情報を一時的に格納してもよい。MAC1に対応するVTEP情報が存在することを第１のスイッチが発見した場合、ステップ(8)が直接実行される。MAC1に対応するVTEP情報が存在しないことを第１のスイッチが発見した場合、ステップ(6)及びステップ(7)が実行される。
【０１７８】
(6)第１のスイッチは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求を現在のデータセンタのSDNコントローラに送信する。
【０１７９】
(7)SDNコントローラは、ローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第１のスイッチに送信する。
【０１８０】
SDNコントローラが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、第１のスイッチと同じデータセンタに位置するルータのVTEP情報が、宛先ゲートウェイのMACアドレスに対応するVTEP情報として使用される。
【０１８１】
この実施例では、２つのVTEP情報、すなわち、VTEP5（IPが10.10.10.5である）及びVTEP6（IPが11.11.11.6である）がMAC1に従って取得された場合、第１のスイッチと同じデータセンタに位置するVTEP5が、宛先ゲートウェイのMACアドレスに対応するVTEPとして選択される。
【０１８２】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM4のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第１のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RondRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【０１８３】
(8)第１のスイッチは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、VM1から受信したIPパケットでVxLANカプセル化を実行し、IPパケットをVTEP情報に対応するルータに送信する。VxLANカプセル化が実行されたIPパケットの送信元IPは、第１のスイッチのIPアドレス、すなわち、10.10.10.2であり、VxLANカプセル化が実行されたIPパケットの宛先IPは、取得されたVTEP情報（10.10.10.5）であり、VNIは11111である。
【０１８４】
第１のスイッチがローカルのフローテーブルに問い合わせることにより、MAC1に対応するVTEP情報が存在しないことを発見した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報は、前述のステップ(6)及びステップ(7)を使用することにより取得される。或いは、第１のスイッチは、ローカルのフローテーブルに問い合わせることにより、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得する。具体的に、２つ以上のVTEP情報が取得された場合、第１のスイッチと同じデータセンタに位置するルータのVTEP情報が、宛先ゲートウェイのMACアドレスに対応するVTEP情報として使用される。同じデータセンタが複数のルータを有する場合、ルータの負荷及びスケジューリングポリシーに従って選択が実行される。これはステップ(7)と同様であり、再び詳細に説明しない。
【０１８５】
(9)第１のデータセンタのルータは、受信したパケットのVxLANカプセル化を変更し、第１のデータセンタのルータと第２のスイッチとの間のトンネルを通じてパケットを第２のスイッチに送信する。
【０１８６】
VxLANカプセル化を変更することは、具体的には、ステップ(8)のVxLANカプセル化の送信元IPを10.10.10.5に変更し、ステップ(8)のVxLANカプセル化の宛先IPを第２のスイッチのIPアドレス、すなわち、11.11.11.3に変更し、ステップ(8)のVxLANカプセル化のVNIを22222に変更し、ステップ(5)のIPパケットの宛先MACをMAC-VM2に変更し、ステップ(5)のIPパケットの送信元MACをMAC1に変更することである。VxLANカプセル化を変更することにより、第２のスイッチは、カプセル化されたIPパケットを受信し、もはやARP要求をブロードキャストする処理を起動することなく、直接処理を実行する。
【０１８７】
(10)第２のスイッチは、VxLANカプセル化解除が実行された後に、IPパケットをVM2に送信する。
【０１８８】
図７ｂに示す、仮想マシンの間で通信を実現する方法の実施例を参照する。適用場面は、図７ａに示す実施例と同様である。以下に相互作用処理について詳細に説明する。
【０１８９】
(1)〜(4)は、図７ａに示す実施例の(1)〜(4)と同様であり、再び詳細に説明しない。
【０１９０】
(5)VM1は、IPパケットを第１のスイッチに送信する。IPパケットの宛先MAC（DestMAC）はMAC1であり、IPパケットの宛先IP（DestIP）はVM2のIPアドレス192.168.2.2であり、IPパケットの送信元MACはVM1のMAC（MAC-VM1により表される）であり、IPパケットの送信元IPは、VM1のIPアドレス192.168.1.2である。
【０１９１】
(6)第１のスイッチは、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求を現在のデータセンタのSDNコントローラに送信する。
【０１９２】
(7.1)SDNコントローラは、ローカルに格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得する。SDNコントローラは、第１のスイッチから受信したIPパケットでVxLANカプセル化を実行し、IPパケットを第１のスイッチに送信する。VxLANカプセル化が実行されたIPパケットの送信元IPは、第１のスイッチのIPアドレス、すなわち、10.10.10.2であり、VxLANカプセル化が実行されたIPパケットの宛先IPは、取得されたVTEP情報（10.10.10.5）であり、VNIは11111である。
【０１９３】
SDNコントローラが宛先ゲートウェイのMACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、第１のスイッチと同じデータセンタに位置するルータのVTEP情報が、宛先ゲートウェイのMACアドレスに対応するVTEP情報として使用される。
【０１９４】
この実施例では、２つのVTEP情報、すなわち、VTEP5（IPが10.10.10.5である）及びVTEP6（IPが11.11.11.6である）がMAC1に従って取得された場合、第１のスイッチと同じデータセンタに位置するVTEP5が、宛先ゲートウェイのMACアドレスに対応するVTEPとして選択される。
【０１９５】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM4のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第１のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RondRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【０１９６】
(7.2)他の態様では、SDNコントローラは、フローテーブルの形式で、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第１のスイッチに送信する。次にIPパケットを受信した場合、第１のスイッチは、SDNコントローラからフローテーブルをもはや要求することなく、宛先ゲートウェイのMACアドレスに対応するVTEP情報に従って、カプセル化が実行された次に受信したIPパケットを、VTEP情報に対応するルータに直接転送してもよい。
【０１９７】
(8)第１のスイッチは、SDNコントローラから、VxLANカプセル化が実行されたIPパケットを受信し、VxLANカプセル化が実行されたIPパケットのVTEP情報に従って、VxLANカプセル化が実行されたIPパケットを、VTEP情報に対応するルータに転送する。
【０１９８】
ステップ(7.2)及びステップ(8)を実行する順序は限定されない点に留意すべきである。
【０１９９】
(9)及び(10)は、図７ａに示す実施例の(9)及び(10)と同様であり、再び詳細に説明しない。
【０２００】
前述の処理のいずれかを用いて、同じデータセンタ内でサブネットを通した通信が実現され、SDNコントローラは、VMにより送信されたブロードキャストARP要求に対する応答を行うプロキシとして機能することができる。このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、VMの間の通信中に、パケットがデータセンタ1のルータとデータセンタ2のルータとの双方を通過し得る従来技術とは異なり、パケットは、データセンタ1のルータのみを通過し、このことは、データセンタの間でのパケットの迂回のルーティングを軽減する。複数のルータの対策では、ルータの間での柔軟なスケーリングも実現され得る。
【０２０１】
ルータの通過は、同じデータセンタ及び同じサブネット内での通信に必要はない。一例としてVM2とVM3との間の通信を使用すると、VM2はパケットを第２のスイッチに送信し、次に第２のスイッチはパケットをVM3に送信する。
【０２０２】
様々な場面における本発明の実施例の適用が前述の処理において説明された。明らかに、これらの場面は限定を構成するものではない。
【０２０３】
＜本発明の実施例の装置＞
図８に示すように、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する第１のスイッチを提供する。第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する。第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。第１のスイッチは、第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュール801であり、ARP要求は、宛先ゲートウェイのIPアドレスを保持する受信モジュール801と、ARP要求を第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するように構成された送信モジュール803とを含み、受信モジュール801は、SDNコントローラからARP応答を受信するように更に構成され、ARP応答は、宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを保持し、第１のスイッチは、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するように構成された取得モジュール802であり、VTEP情報に対応するルータは、第１のデータセンタに位置する取得モジュール802を含み、送信モジュール803は、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報に従って、IPパケットをVTEP情報に対応するルータに送信するように更に構成される。
【０２０４】
取得モジュール802が、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、取得モジュール802が、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための要求をSDNコントローラに送信し、SDNコントローラにより送信された、宛先ゲートウェイのMACアドレスに対応するVTEP情報を受信するように構成されることである。或いは、取得モジュール802が、宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、取得モジュール802が、宛先ゲートウェイのMACアドレスに従って第１のスイッチにより格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得するように構成され、２つ以上のVTEP情報が取得された場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報として第１のデータセンタに位置するルータのVTEP情報を使用するように構成されることである。
【０２０５】
図９に示すように、本発明の実施例は、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提供する。SDNコントローラは、第１のデータセンタに位置し、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される。第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する。第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。SDNコントローラは、第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュール901であり、ARP要求は、宛先ゲートウェイのIPアドレスを保持する受信モジュール901と、宛先ゲートウェイのIPアドレスに従って宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを取得するように構成された処理モジュール902と、ARP応答を第１のスイッチに送信するように構成された送信モジュール903であり、第１のスイッチが宛先ゲートウェイのMACアドレスに従って、宛先ゲートウェイのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、ARP応答は、宛先ゲートウェイのMACアドレスを保持し、VTEP情報に対応するルータがルータと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報に対応するルータは、第１のデータセンタに位置する送信モジュール903とを含む。
【０２０６】
受信モジュール901は、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得することを要求するための、第１のスイッチにより送信された要求を受信するように更に構成される。
【０２０７】
処理モジュール902は、宛先ゲートウェイのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、宛先ゲートウェイのMACアドレスに対応するVTEP情報を取得し、宛先ゲートウェイのMACアドレスに対応するVTEP情報を第１のスイッチに返信するように更に構成され、SDNコントローラにより格納されたフローテーブルに問い合わせ、２つ以上のVTEP情報を取得した場合、宛先ゲートウェイのMACアドレスに対応するVTEP情報として第１のデータセンタに位置するルータのVTEP情報を使用するように更に構成される。処理モジュール902が宛先ゲートウェイのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、処理モジュール902は、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って宛先ゲートウェイのMACアドレスに対応するVTEP情報を選択する。
【０２０８】
第２の仮想マシンが第２のデータセンタに位置する場合、処理モジュール902は、第２のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のサブネットのVNIと、第２のスイッチのVTEP情報とを取得するように更に構成される。
【０２０９】
本発明の実施例に従って図８に提供されるスイッチ及び図９に提供されるSDNコントローラは、図２、図３、図４ａ及び図４ｂの構成処理を実行するために使用されてもよい。また、図５ａ、図５ｂ、図７ａ及び図７ｂに示す方法を実行するために使用される。具体的な処理については、システムの実施例及び方法の実施例の説明を参照されたい。詳細は再び説明しない。
【０２１０】
本発明の実施例に従って図８に提供されるスイッチ及び図９に提供されるSDNコントローラは、サブネットを通した通信を実現することができ、SDNコントローラは、VMにより送信されたブロードキャストARP要求に対する応答を行うプロキシとして機能することができる。このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、VMの間での通信中に、パケットは、データセンタ1のルータ及びデータセンタ2のルータの双方を通過する代わりに、データセンタ1のルータのみを通過する。このことは、データセンタの間でのパケットの迂回のルーティングを軽減する。
【０２１１】
図１０に示すように、本発明の実施例は、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される、仮想マシンの間で通信を実現する第１のスイッチを提供する。第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信する。第１の仮想マシン及び第２の仮想マシンは、同じサブネットに位置し、第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。第１のスイッチは、第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュール1001であり、ARP要求は、宛先仮想マシンのIPアドレスを保持する受信モジュール1001と、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するように構成された処理モジュール1002であり、VTEP情報は、第２のスイッチのIPアドレスである処理モジュール1002と、第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するように構成された送信モジュール1003とを含む。
【０２１２】
処理モジュール1002が、宛先仮想マシンのIPアドレスに従って宛先仮想マシンのMACアドレスを取得するように構成されることは、具体的に、ARP要求を第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送し、ARP要求は、宛先仮想マシンのIPアドレスを保持し、SDNコントローラからARP応答を受信し、ARP応答は、宛先仮想マシンのMACアドレスを保持することである。
【０２１３】
処理モジュール1002が、宛先仮想マシンのMACアドレスに従って、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得するように構成されることは、具体的に、処理モジュール1002が、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための要求をSDNコントローラに送信し、SDNコントローラにより送信された、宛先仮想マシンのMACアドレスに対応するVTEP情報を受信するように構成されることである。或いは、処理モジュール1002が、宛先仮想マシンのMACアドレスに従って第１のスイッチにより格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得するように構成されることである。
【０２１４】
処理モジュール1002は、第１のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを取得するように更に構成される。
【０２１５】
図１１に示すように、本発明の実施例は、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提供する。SDNコントローラは、第１のデータセンタに位置し、少なくとも第１の仮想マシン及び第２の仮想マシンを含むシステムに適用される。第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信する。第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信する。第１の仮想マシン及び第２の仮想マシンは、同じサブネットに位置し、第１のスイッチは、第２のスイッチと同じでもよく、異なってもよい。SDNコントローラは、第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するように構成された受信モジュール1101であり、ARP要求は、宛先仮想マシンのIPアドレスを保持する受信モジュール1101と、宛先仮想マシンのIPアドレスに従って宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得するように構成された取得モジュール1102と、ARP応答を第１のスイッチに送信するように構成された送信モジュール1103であり、第１のスイッチが宛先仮想マシンのMACアドレスに従って宛先仮想マシンのMACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、ARP応答は、宛先仮想マシンのMACアドレスを保持し、第１のスイッチが第１のスイッチと第２のスイッチとの間のトンネルを通じてIPパケットを第２の仮想マシンに送信するために、VTEP情報は、第２のスイッチのIPアドレスである送信モジュール1103とを含む。
【０２１６】
受信モジュール1101は、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得することを要求するための、第１のスイッチにより送信された要求を受信するように更に構成され、取得モジュール1102は、宛先仮想マシンのMACアドレスに従ってSDNコントローラにより格納されたフローテーブルに問い合わせ、宛先仮想マシンのMACアドレスに対応するVTEP情報を取得し、宛先仮想マシンのMACアドレスに対応するVTEP情報を第１のスイッチに返信するように更に構成される。
【０２１７】
取得モジュール1102は、第２のデータセンタのSDNコントローラから、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを取得するように更に構成され、送信モジュール1103は、第２の仮想マシンのIPアドレス及びMACアドレスと、第２のスイッチのVTEP情報とを第１のスイッチに送信するように更に構成される。
【０２１８】
本発明の実施例に従って図１０に提供されるスイッチ及び図１１に提供されるSDNコントローラは、図２、図３、図４ａ及び図４ｂの構成処理を実行するために使用されてもよい。また、図６ａ及び図６ｂに示す方法を実行するために使用される。具体的な処理については、システムの実施例及び方法の実施例の説明を参照されたい。詳細は再び説明しない。
【０２１９】
本発明の実施例に従って図１０に提供されるスイッチ及び図１１に提供されるSDNコントローラは、同じサブネット内でデータセンタを通した通信を実現することができ、SDNコントローラは、VMにより送信されたブロードキャストARP要求に対する応答を行うプロキシとして機能することができる。このことは、パケットのブロードキャストにより占有される送信帯域幅を低減する。更に、VMの間での通信中に、パケットは、データセンタ1のルータを通過する必要はなく、データセンタ2のルータも通過する必要がない。このことは、２つのデータセンタの間でのパケットの迂回のルーティングを軽減する。
【０２２０】
図１２の他の装置1200は、本発明の実施例に従って仮想マシンの間で通信を実現するために提供され、プロセッサ101と、メモリ102と、システムバス（略してバス）105とを含む。プロセッサ101及びメモリ102は、システムバス105を使用することにより相互に接続されて通信を行う。
【０２２１】
プロセッサ101は、本発明の実施例を実現するように構成されたシングルコア若しくはマルチコアの中央処理装置、特定用途向け集積回路又は１つ以上の集積回路でもよい。
【０２２２】
メモリ102は、高速RAMメモリでもよく、不揮発性メモリ（non-volatile  memory）、例えば、少なくとも１つのハードディスクメモリでもよい。
【０２２３】
メモリ102は、コンピュータ実行可能命令1021を格納するように構成され、具体的に、コンピュータ実行可能命令1021は、プログラムコードを含んでもよい。
【０２２４】
コンピュータが実行する場合、プロセッサ101は、コンピュータ実行可能命令1021を実行し、図２〜図７ｂの処理のうちいずれか１つが実行されてもよい。
【０２２５】
本発明の実施例は、仮想マシンの間で通信するためのコンピュータプログラムプロダクトを更に提供し、プログラムコードを格納するコンピュータ読み取り可能記憶媒体を含む。プログラムコードに含まれる命令は、図２〜図７ｂの処理のうちいずれか１つを実行するために使用される。
【０２２６】
当業者は、本発明の各態様又は各態様の可能な実現方式が具体的にシステム、方法又はコンピュータプログラムプロダクトとして実現されてもよいことを認識し得る。従って、本発明の各態様又は各態様の可能な実現方式は、ハードウェアのみの実施例、ソフトウェアのみの実施例（ファームウェア、常駐ソフトウェア等を含む）、又はソフトウェアとハードウェアとの組み合わせの実施例の形式を使用してもよい。これらは、ここでは、一律に“回路”、“モジュール”又は“システム”と呼ばれる。更に、本発明の各態様又は各態様の可能な実現方式は、コンピュータプログラムプロダクトの形式になってもよい。コンピュータプログラムプロダクトは、コンピュータ読み取り可能媒体に格納されたコンピュータ読み取り可能プログラムコードを示す。
【０２２７】
コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体又はコンピュータ読み取り可能記憶媒体でもよい。コンピュータ読み取り可能記憶媒体は、ランダムアクセスメモリ（RAM）、読み取り専用メモリ（ROM）、消去可能プログラム可能読み取り専用メモリ（EPROM又はフラッシュメモリ）、光ファイバ又はコンパクトディスク読み取り専用メモリ（CD-ROM）のような、電気、磁気、光、電磁気、赤外線又は半導体のシステム、デバイス若しくは装置、又はこれらのいずれか適切な組み合わせを含むが、これらに限定されない。
【０２２８】
コンピュータのプロセッサは、プロセッサがフローチャートの各ステップ又はステップの組み合わせで指定された機能及び動作を実行することができるように、コンピュータ読み取り可能媒体に格納されたコンピュータ読み取り可能プログラムコードを読み取り、ブロック図の各ブロック又はブロックの組み合わせで指定された機能及び動作を実現する装置が生成される。
【０２２９】
全てのコンピュータ読み取り可能プログラムコードは、ユーザコンピュータで実行されてもよく、一部は、スタンドアローンのソフトウェアパッケージとしてユーザコンピュータで実行されてもよく、一部が遠隔コンピュータで実行されつつ一部がユーザのコンピュータで実行されてもよく、全てのコードが遠隔コンピュータ又はサーバで実行されてもよい。また、或る別の実現の対策では、フローチャートの各ステップ又はブロック図の各ブロックで指定された機能は、図示の順序で生じなくてもよい点に留意すべきである。例えば、関与する機能に依存する図面の２つの連続するステップ又は２つのブロックは、実質的に同時に実行されてもよく、これらのブロックが場合によっては逆の順序で実行されてもよい。
【０２３０】
当業者は、この明細書に開示された実施例に記載の例と組み合わせて、ユニット及びアルゴリズムのステップは、電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実現されてもよいことを認識し得る。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的対策の具体的な用途及び設計上の制約条件に依存する。当業者は、具体的な用途毎に記載の機能を実現するために異なる方法を使用してもよいが、この実現は本発明の範囲を超えるものと考えられるべきではない。
【図１ａ】
2016509448.tif 000006
【図１ｂ】
2016509448.tif 000007
【図２】
2016509448.tif 000008
【図３】
2016509448.tif 000009
【図４ａ】
2016509448.tif 000010
【図４ｂ】
2016509448.tif 000011
【図５ａ】
2016509448.tif 000012
【図５ｂ】
2016509448.tif 000013
【図６ａ】
2016509448.tif 000014
【図６ｂ】
2016509448.tif 000015
【図７ａ】
2016509448.tif 000016
【図７ｂ】
2016509448.tif 000017
【図８】
2016509448.tif 000018
【図９】
2016509448.tif 000019
【図１０】
2016509448.tif 000020
【図１１】
2016509448.tif 000021
【図１２】
2016509448.tif 000022
【手続補正書】
【提出日】平成27年9月8日(2015.9.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する方法であって、
前記第１のスイッチにより、前記第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するステップであり、前記ARP要求は、宛先ゲートウェイのIPアドレスを保持するステップと、
前記第１のスイッチにより、前記ARP要求を前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラに転送するステップと、
前記第１のスイッチにより、前記SDNコントローラからARP応答を受信するステップであり、前記ARP応答は、前記宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを保持するステップと、
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するステップであり、前記VTEP情報に対応するルータは、前記第１のデータセンタに位置するステップと、
前記VTEP情報に対応する前記ルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記第１のスイッチにより、前記VTEP情報に従って、前記IPパケットを前記VTEP情報に対応する前記ルータに送信するステップと
を有する方法。
【請求項２】
前記取得するステップは、
前記第１のスイッチにより、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための要求を前記SDNコントローラに送信するステップと、
前記SDNコントローラにより送信された、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を受信するステップと
を有する、請求項１に記載の方法。
【請求項３】
前記取得するステップは、
前記第１のスイッチにより、VTEP情報を取得するために、前記宛先ゲートウェイの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせるステップと、
２つ以上のVTEP情報を取得した場合、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報として前記第１のデータセンタに位置する前記ルータのVTEP情報を使用するステップと
を有する、請求項１に記載の方法。
【請求項４】
前記VTEP情報に対応する前記ルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記第１のスイッチにより、前記VTEP情報に従って、前記IPパケットを前記VTEP情報に対応する前記ルータに送信するステップは、
前記第１のスイッチにより、前記第１の仮想マシンから受信したIPパケットで拡張可能仮想ローカルネットワーク（VxLAN）カプセル化を実行するステップであり、前記VxLANカプセル化の宛先IPアドレスは、前記取得されたVTEP情報であり、仮想ネットワーク識別子（VNI）は、前記第１のサブネットの識別子であり、前記VxLANカプセル化の宛先MACアドレスは、前記宛先ゲートウェイの前記MACアドレスであるステップと、
前記VTEP情報に対応する前記ルータにより、前記宛先IPアドレスを前記第２のスイッチのIPアドレスに変更し、前記VNIを前記第２のサブネットの識別子に変更し、前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、VxLANカプセル化が変更された前記IPパケットを前記第２のスイッチに送信するステップと、
VxLANカプセル化が変更された受信IPパケットで前記第２のスイッチがVxLANカプセル化解除を実行した後に、前記IPパケットを前記第２の仮想マシンに送信するステップと
を有する、請求項１ないし３のうちいずれか１項に記載の方法。
【請求項５】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタの第１のサブネットに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のサブネットに位置し、第２のスイッチと通信する方法であって、
前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラにより、前記第１のスイッチからアドレス解決プロトコル（ARP）要求を受信するステップであり、前記ARP要求は、宛先ゲートウェイのIPアドレスを保持するステップと、
前記SDNコントローラにより、前記宛先ゲートウェイの前記IPアドレスに従って前記宛先ゲートウェイの媒体アクセス制御（MAC）アドレスを取得し、ARP応答を前記第１のスイッチに送信するステップであり、前記第１のスイッチが前記宛先ゲートウェイの前記MACアドレスに従って、前記宛先ゲートウェイの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、前記ARP応答は、前記宛先ゲートウェイの前記MACアドレスを保持し、前記VTEP情報に対応するルータが前記ルータと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報に対応する前記ルータは、前記第１のデータセンタに位置するステップと
を有する方法。
【請求項６】
前記SDNコントローラにより、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための、前記第１のスイッチにより送信された要求を受信するステップと、
前記SDNコントローラにより、前記宛先ゲートウェイの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を取得し、前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を前記第１のスイッチに返信するステップと
を更に有する、請求項５に記載の方法。
【請求項７】
前記SDNコントローラが前記宛先ゲートウェイの前記MACアドレスに従って前記ローカルに格納されたフローテーブルに問い合わせ、前記第１のデータセンタに位置するルータの２つ以上のVTEP情報を取得した場合、前記SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従って前記宛先ゲートウェイの前記MACアドレスに対応する前記VTEP情報を選択する、請求項６に記載の方法。
【請求項８】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信し、前記第１の仮想マシン及び前記第２の仮想マシンは、同じサブネットに位置する方法であって、
前記第１のスイッチにより、前記第１の仮想マシンからアドレス解決プロトコル（ARP）要求を受信するステップであり、前記ARP要求は、宛先仮想マシンのIPアドレスを保持するステップと、
前記第１のスイッチにより、前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得するステップと、
前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・エンドポイント（VTEP）情報を取得するステップであり、前記VTEP情報は、前記第２のスイッチのIPアドレスであるステップと、
前記第１のスイッチにより、前記第１のスイッチと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するステップと
を有する方法。
【請求項９】
前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応するVTEP情報を取得するステップは、
前記第１のスイッチにより、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための要求を前記SDNコントローラに送信するステップと、
前記SDNコントローラにより送信された、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を受信するステップと
を有する、請求項８に記載の方法。
【請求項１０】
前記宛先仮想マシンの前記MACアドレスに従って、前記宛先仮想マシンの前記MACアドレスに対応するVTEP情報を取得するステップは、
前記第１のスイッチにより、前記宛先仮想マシンの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得するステップを有する、請求項８に記載の方法。
【請求項１１】
少なくとも第１の仮想マシン及び第２の仮想マシンを有するシステムに適用される、仮想マシンの間で通信を実現する方法であり、前記第１の仮想マシンは、第１のデータセンタに位置し、第１のスイッチと通信し、前記第２の仮想マシンは、第２のデータセンタに位置し、第２のスイッチと通信し、前記第１の仮想マシン及び前記第２の仮想マシンは、同じサブネットに位置する方法であって、
前記第１のデータセンタのソフトウェア・デファインド・ネットワーク（SDN）コントローラにより、前記第１のスイッチからアドレス解決プロトコル（ARP）要求を受信し、前記ARP要求は、宛先仮想マシンのIPアドレスを保持するステップと、
前記SDNコントローラにより、前記宛先仮想マシンの前記IPアドレスに従って前記宛先仮想マシンの媒体アクセス制御（MAC）アドレスを取得し、ARP応答を前記第１のスイッチに送信するステップであり、前記第１のスイッチが前記宛先仮想マシンの前記MACアドレスに従って前記宛先仮想マシンの前記MACアドレスに対応する拡張可能仮想ローカルエリアネットワーク・トンネルエンドポイント（VTEP）情報を取得するために、前記ARP応答は、前記宛先仮想マシンの前記MACアドレスを保持し、前記第１のスイッチが前記第１のスイッチと前記第２のスイッチとの間のトンネルを通じてIPパケットを前記第２の仮想マシンに送信するために、前記VTEP情報は、前記第２のスイッチのIPアドレスであるステップと
を有する方法。
【請求項１２】
前記SDNコントローラにより、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得することを要求するための、前記第１のスイッチにより送信された要求を受信するステップと、
前記SDNコントローラにより、前記宛先仮想マシンの前記MACアドレスに従ってローカルに格納されたフローテーブルに問い合わせ、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を取得し、前記宛先仮想マシンの前記MACアドレスに対応する前記VTEP情報を前記第１のスイッチに返信するステップと
を更に有する、請求項１１に記載の方法。
【請求項１３】
前記第１のデータセンタの前記SDNコントローラにより、前記第２のデータセンタのSDNコントローラから、前記第２の仮想マシンのIPアドレス及びMACアドレスと、前記第２のスイッチのVTEP情報とを取得し、前記第２の仮想マシンの前記IPアドレス及び前記MACアドレスと、前記第２のスイッチの前記VTEP情報とを前記第１のスイッチに送信するステップを更に有する、請求項１１又は１２に記載の方法。
【請求項１４】
プロセッサと、メモリと、システムバスとを有する、仮想マシンの間で通信を実現するスイッチであって、
前記プロセッサ及び前記メモリは、前記システムバスを使用することにより相互に接続されて通信を行い、
前記メモリは、コンピュータ実行可能命令を格納するように構成され、
前記プロセッサは、前記コンピュータ実行可能命令を実行して、請求項１ないし４のうちいずれか１項に記載の方法を実行するように構成されるスイッチ。
【請求項１５】
プロセッサと、メモリと、システムバスとを有する、仮想マシンの間で通信を実現するスイッチであって、
前記プロセッサ及び前記メモリは、前記システムバスを使用することにより相互に接続されて通信を行い、
前記メモリは、コンピュータ実行可能命令を格納するように構成され、
前記プロセッサは、前記コンピュータ実行可能命令を実行して、請求項８ないし１０のうちいずれか１項に記載の方法を実行するように構成されるスイッチ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
第５の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するスイッチを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第１の態様又は第１の態様の第１〜第５の可能な実現方式のうちいずれか１つによる方法を実行するように構成される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
第６の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第２の態様又は第２の態様の第１〜第４の可能な実現方式のうちいずれか１つによる方法を実行するように構成される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
第１１の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するスイッチを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第７の態様又は第７の態様の第１〜第４の可能な実現方式のうちいずれか１つによる方法を実行するように構成される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
第１２の態様によれば、本発明の実施例は、プロセッサと、メモリと、システムバスとを含む、仮想マシンの間で通信を実現するソフトウェア・デファインド・ネットワーク（SDN）コントローラを提案する。プロセッサ及びメモリは、システムバスを使用することにより相互に接続されて通信を行う。メモリは、コンピュータ実行可能命令を格納するように構成され、プロセッサは、コンピュータ実行可能命令を実行して、第８の態様又は第８の態様の第１〜第２の可能な実現方式のうちいずれか１つによる方法を実行するように構成される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
１つ以上のルータ（router）がDC1に配置される。説明は、ルータ1が配置される例を使用することにより提供される。ルータ1は、トンネルにおいてVTEP5により表され、ルータ1のIPアドレスは、一例として10.10.10.5を使用する。同様に、１つ以上のルータがDC2に配置される。説明は、ルータ2が配置される例を使用することにより提供される。ルータ2は、トンネルにおいてVTEP6により表され、ルータ2のIPアドレスは、一例として11.11.11.6を使用する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
AddSwitchInfoは、スイッチのVTEP情報及びDCの識別子情報を構成するために使用され、説明は一例として表２を使用することにより提供される。
【表２】
2016509448.tif 000023
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
ステップ(B1)、(B2)及び(B3)並びにステップ(A1)、(A2)及び(A3)を実行する順序は限定されない。同様に、ネットワークマネージャ及びSDNコントローラは、他のサブネットとルータとの間の関連付けを追加してもよい。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
図３に示す構成中に、DC1のサブネット1のゲートウェイのIPアドレスと、DC2のサブネット1のゲートウェイのIPアドレスとは同じであり、DC1のサブネット1のゲートウェイのMACアドレスと、DC2のサブネット1のMACアドレスとは同じであるが、ルータのVTEP情報（すなわち、ルータのVTEPのIPアドレス）は異なる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
(A3)DC1のSDN  controllerは、VM2の仮想ポート及び対応するVTEP情報をDC2のSDN  controllerに通知する。具体的な通知コマンドは、一例としてVM  vPort  VTEP  notifyを使用する。具体的に、DC1のSDN  controllerは、AddSwitchInfoを使用することにより、VM2が位置するvSwitch（すなわち、第２のスイッチ）のVTEP情報を取得し、VM2の仮想ポート及び対応するVTEP情報をDC2のSDN  controllerに通知する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
(A4.1)DC1のSDN  controllerは、VM2についての情報をDC1のルータに追加する。具体的な追加コマンドは、一例としてAddVMMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2、VNI=22222及びVTEP=10.10.10.3が含まれる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
(A4.2)DC2のSDN  controllerは、VM2についての情報をDC2のルータに追加する。具体的な追加コマンドは、一例としてAddVMMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2、VNI=22222及びVTEP=10.10.10.3が含まれる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
(B2)DC1の第２のスイッチは、VM2を削除し、VM2の仮想ポート及び対応するVTEP情報を削除するためにDC1のSDN  controllerに通知する。具体的な通知コマンドは、一例としてdelete  VM  vPort  notifyを使用する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
(B4.1)DC1のSDN  controllerは、DC1のルータからVM2のMACアドレス及びVTEP情報を削除する。具体的な削除コマンドは、一例としてDeleteRouterMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2及びVNI=22222が含まれる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
明らかに、MAC=MAC-VM2及びVNI=22222が削除されることでもよく、更に、MAC=MAC-VM2、VNI=22222及びVTEP=10.10.10.3が削除されることでもよい。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
(B4.2)DC2のSDN  controllerは、DC2のルータからVM2のMACアドレス及びVTEP情報を削除する。具体的な削除コマンドは、一例としてDeleteRouterMacVTEPを使用する。VM2のIP=192.168.2.2、MAC=MAC-VM2及びVNI=22222が含まれる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
明らかに、(B4.1)と同様に、MAC=MAC-VM2及びVNI=22222が削除されることでもよく、更に、MAC=MAC-VM2、VNI=22222及びVTEP=10.10.10.3が削除されることでもよい。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM4のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第２のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RoundRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM4のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第２のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RoundRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０１５１
【補正方法】変更
【補正の内容】
【０１５１】
図２、図３、図４ａ及び図４ｂの構成方法を使用することにより、第１のデータセンタのSDNコントローラは、第２のデータセンタのSDNコントローラから、VM7のIPアドレス及びMACアドレスと第３のスイッチのVTEP情報とを取得し、VM7のIPアドレス及びMACアドレスと第３のスイッチのVTEP情報とを第２のスイッチに送信する。このように、第２のスイッチは、第２のスイッチと第３のスイッチとの間のトンネルを通じてIPパケットをVM7に送信することができる。すなわち、IPパケットは、データセンタ1（すなわち、第１のデータセンタ）のルータを通過する必要はなく、データセンタ2（すなわち、第２のデータセンタ）のルータも通過する必要がない。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】０１８２
【補正方法】変更
【補正の内容】
【０１８２】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM1のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第１のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RoundRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０１９５
【補正方法】変更
【補正の内容】
【０１９５】
図１ｂに示す複数のルータの対策に示すように、宛先ゲートウェイのMACアドレスに対応する２つ以上のVTEP情報が第１のデータセンタに存在する場合、SDNコントローラは、ルータの負荷及びスケジューリングポリシーのうち少なくとも１つに従ってVM1のための適したVTEPを選択し、選択された適したVTEPのIPアドレスを第１のスイッチに送信する。ルータの負荷は、ルータのトラヒック及びルータのCPU負荷を含むが、これらに限定されない。スケジューリングポリシーは、RoundRobin、最小負荷優先及び最大負荷優先を含むが、これらに限定されない。
【国際調査報告】
2016509448.tif 000024
2016509448.tif 000025
2016509448.tif 000026
2016509448.tif 000027