(57)【要約】  本発明の実施例は、コンピューティングシステムにおけるパケット処理方法、ホスト及びシステムを提供する。少なくとも１つのネットワークインタフェースカードがホストに接続される。仮想マシンモニタVMMがホスト上で実行する。第１の仮想マシンがVMM上で実行する。VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含む。ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含む。第１のネットワークポートは、少なくとも１つの物理機能PF及び複数の仮想機能VFに対応している。第１のネットワークポートの少なくとも１つのVFは、パススルー方式で第１の仮想マシンに対して提供される。第１の仮想マシンは、仮想マシンに接続されたVFからデータパケットを送出する。第１のネットワークポートのスイッチング機器は、データパケットの宛先MACアドレスに従ってデータパケットを転送し、データパケットをVMM上の仮想ブリッジに送出する。仮想ブリッジは、データパケットを仮想ネットワーク機能モジュールに転送する。仮想ネットワーク機能モジュールは、データパケットに対して豊富なネットワーク機能処理を提供する。ネットワークインタフェースカード・パススルーのシナリオでは、パススルーVFからデータパケットを送出した後に、仮想マシンは、前述の方式でネットワークインタフェースカードからのデータパケットをVMM上の仮想ネットワーク機能モジュールにリダイレクトし、ソフトウェアモジュールを使用することにより、ユーザに対して豊富な仮想ネットワーク機能を提供してもよい。
2019503599.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンモニタVMMと少なくとも１つのネットワークインタフェースカードとを含むホストであり、第１の仮想マシンが前記ホスト上で実行し、前記VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、前記少なくとも１つのネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つの物理機能PF及び複数の仮想機能VFに対応しており、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続される、ホストであって、
前記第１の仮想マシンは、送出対象のデータパケットの宛先媒体アクセス制御MACアドレスを決定するように構成され、前記送出対象のデータパケットの前記MACアドレスは、前記仮想ブリッジのアップリンクポートのMACアドレスであり、
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するように更に構成され、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであり、
前記スイッチング機器は、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するように構成され、
前記仮想ブリッジは、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを前記仮想ネットワーク機能モジュールに送出するように構成され、
前記仮想ネットワーク機能モジュールは、前記変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するように構成され、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスである、ホスト。
【請求項２】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有する、請求項１に記載のホスト。
【請求項３】
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、アドレス解決プロトコルARP要求パケットを送出するように更に構成され、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送し、
前記スイッチング機器は、前記ARP要求パケットをブロードキャストするように更に構成され、前記ARP要求パケットは、前記アップリンクポートを使用することにより、前記仮想ブリッジに送出され、
前記仮想ブリッジは、前記ARP要求パケットをソフトウェア・デファインド・ネットワーキングSDNコントローラに転送し、前記SDNコントローラにより返信されたフローエントリを受信するように更に構成され、前記フローエントリは、ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいてARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送し、
前記仮想ブリッジは、前記ARP応答パケットを前記第１の仮想マシンに返信するように更に構成され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送する、請求項２に記載のホスト。
【請求項４】
前記フローエントリは、MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項３に記載のホスト。
【請求項５】
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートのPFであり、前記仮想ブリッジは、前記PFを使用することにより、前記ネットワークインタフェースカードに接続されるか、或いは
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートの選択されたVFであり、前記仮想ブリッジは、前記選択されたVFを使用することにより、前記ネットワークインタフェースカードに接続され、前記仮想ブリッジに接続された前記選択されたVFは、プロミスキャスモードに設定される、請求項１乃至４のうちいずれか１項に記載のホスト。
【請求項６】
前記第２の仮想マシン及び前記第１の仮想マシンは、同じホスト上で実行し、
前記仮想ブリッジは、前記処理されたデータパケットを受信し、前記スイッチング機器を使用することにより、前記データパケットの前記宛先MACアドレスに従って前記処理されたデータパケットを前記第２の仮想マシンに送出するように更に構成される、請求項１乃至４のうちいずれか１項に記載のホスト。
【請求項７】
前記第２の仮想マシン及び前記第１の仮想マシンは、異なるホスト上で実行し、
前記仮想ネットワーク機能モジュールは、前記仮想ネットワーク機能モジュールと、前記第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記処理されたデータパケットを前記ネットワークインタフェースカードの第２のネットワークポートに送出し、前記トンネルを使用することにより、前記処理されたデータパケットを前記第２の仮想マシンが位置する前記ホストに送出するように具体的に構成され、これにより、前記他の仮想ネットワーク機能モジュールは、前記処理されたデータパケットを前記第２の仮想マシンに送出する、請求項１乃至４のうちいずれか１項に記載のホスト。
【請求項８】
クラウドコンピューティングシステムにおけるパケット処理方法であり、前記クラウドコンピューティングシステム内の少なくとも１つのホストは、仮想マシンモニタVMMと少なくとも１つのネットワークインタフェースカードとを含み、第１の仮想マシンが前記ホスト上で実行し、前記VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、前記ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応しており、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続される、方法であって、
前記第１の仮想マシンにより、送出対象のデータパケットの宛先MACアドレスを決定するステップであり、前記送出対象のデータパケットの前記MACアドレスは、前記仮想ブリッジのアップリンクポートのMACアドレスであるステップと、
前記第１の仮想マシンにより、前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するステップであり、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであるステップと、
前記スイッチング機器により、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するステップと、
前記仮想ブリッジにより、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを前記仮想ネットワーク機能モジュールに送出するステップと、
前記仮想ネットワーク機能モジュールにより、前記変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するステップであり、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスであるステップと
を含む方法。
【請求項９】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有する、請求項８に記載の方法。
【請求項１０】
前記第１の仮想マシンにより、送出対象のデータパケットの宛先MACアドレスを決定するステップは、
前記第１の仮想マシンにより、前記第１の仮想マシンに接続された前記VFを使用することにより、ARP要求パケットを送出するステップであり、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送するステップと、
前記スイッチング機器により、前記ARP要求パケットをブロードキャストするステップであり、前記ARP要求パケットは、前記アップリンクポートを使用することにより、前記仮想ブリッジに送出されるステップと、
前記仮想ブリッジにより、前記ARP要求パケットをSDNコントローラに転送し、前記SDNコントローラにより返信されたフローエントリを受信するステップであり、前記フローエントリは、ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいてARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップと、
前記仮想ブリッジにより、前記ARP応答パケットを前記第１の仮想マシンに返信するステップであり、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップと
を含む、請求項９に記載の方法。
【請求項１１】
前記フローエントリは、MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項１０に記載の方法。
【請求項１２】
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートのPFであり、前記仮想ブリッジは、前記PFを使用することにより、前記ネットワークインタフェースカードに接続されるか、或いは
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートの選択されたVFであり、前記仮想ブリッジは、前記選択されたVFを使用することにより、前記ネットワークインタフェースカードに接続され、前記仮想ブリッジに接続された前記選択されたVFは、プロミスキャスモードに設定される、請求項８乃至１１のうちいずれか１項に記載の方法。
【請求項１３】
前記第２の仮想マシン及び前記第１の仮想マシンは、同じホスト上で実行し、前記方法は、
前記仮想ブリッジにより、前記処理されたデータパケットを受信し、前記スイッチング機器を使用することにより、前記データパケットの前記宛先MACアドレスに従って前記処理されたデータパケットを前記第２の仮想マシンに送出するステップを更に含む、請求項８乃至１１のうちいずれか１項に記載の方法。
【請求項１４】
前記第２の仮想マシン及び前記第１の仮想マシンは、異なるホスト上で実行し、前記方法は、
前記仮想ネットワーク機能モジュールにより、前記仮想ネットワーク機能モジュールと、前記第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記処理されたデータパケットを前記ネットワークインタフェースカードの第２のネットワークポートに送出し、前記トンネルを使用することにより、前記処理されたデータパケットを前記第２の仮想マシンが位置する前記ホストに送出し、これにより、前記他の仮想ネットワーク機能モジュールは、前記処理されたデータパケットを前記第２の仮想マシンに送出するステップを更に含む、請求項８乃至１１のうちいずれか１項に記載の方法。
【請求項１５】
ソフトウェア・デファインド・ネットワーキングSDNコントローラと少なくとも１つのホストとを含むクラウドコンピューティングシステムであり、前記ホストは、仮想マシンモニタVMMと少なくとも１つのネットワークインタフェースカードとを含み、第１の仮想マシンが前記ホスト上で実行し、前記VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、前記ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応しており、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続される、システムであって、
前記SDNコントローラは、前記仮想ブリッジにより転送された前記第１の仮想マシンからのARP要求パケットを受信し、フローエントリを前記仮想ブリッジに返信するように構成され、前記フローエントリは、ARP取得設定とMACアドレス設定とを含み、前記ARP取得設定は、前記仮想ブリッジに対して前記第１の仮想マシンのためのARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される前記仮想ブリッジのアップリンクポートのMACアドレスを搬送し、
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するように構成され、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであり、
前記スイッチング機器は、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するように構成され、
前記仮想ブリッジは、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを前記仮想ネットワーク機能モジュールに送出するように構成され、
前記仮想ネットワーク機能モジュールは、前記変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するように構成され、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスである、システム。
【請求項１６】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有する、請求項１５に記載のシステム。
【請求項１７】
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、前記ARP要求パケットを送出するように更に構成され、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送し、
前記スイッチング機器は、前記ARP要求パケットをブロードキャストするように更に構成され、前記ARP要求パケットは、前記アップリンクポートを使用することにより、前記仮想ブリッジに送出され、
前記仮想ブリッジは、前記ARP要求パケットを前記SDNコントローラに転送し、前記SDNコントローラにより返信された前記フローエントリを受信するように更に構成され、前記フローエントリは、前記ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいて前記ARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送し、
前記仮想ブリッジは、前記ARP応答パケットを前記第１の仮想マシンに返信するように更に構成され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送する、請求項１６に記載のシステム。
【請求項１８】
前記フローエントリは、前記MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項１７に記載のシステム。
【請求項１９】
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートのPFであり、前記仮想ブリッジは、前記PFを使用することにより、前記ネットワークインタフェースカードに接続されるか、或いは
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートの選択されたVFであり、前記仮想ブリッジは、前記選択されたVFを使用することにより、前記ネットワークインタフェースカードに接続され、前記仮想ブリッジに接続された前記選択されたVFは、プロミスキャスモードに設定される、請求項１５乃至１８のうちいずれか１項に記載のシステム。
【請求項２０】
前記第２の仮想マシン及び前記第１の仮想マシンは、同じホスト上で実行し、
前記仮想ブリッジは、前記処理されたデータパケットを受信し、前記スイッチング機器を使用することにより、前記データパケットの前記宛先MACアドレスに従って前記処理されたデータパケットを前記第２の仮想マシンに送出するように更に構成される、請求項１５乃至１８のうちいずれか１項に記載のシステム。
【請求項２１】
前記第２の仮想マシン及び前記第１の仮想マシンは、異なるホスト上で実行し、
前記仮想ネットワーク機能モジュールは、前記仮想ネットワーク機能モジュールと、前記第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記処理されたデータパケットを前記ネットワークインタフェースカードの第２のネットワークポートに送出し、前記トンネルを使用することにより、前記処理されたデータパケットを前記第２の仮想マシンが位置する前記ホストに送出するように具体的に構成され、これにより、前記他の仮想ネットワーク機能モジュールは、前記処理されたデータパケットを前記第２の仮想マシンに送出する、請求項１５乃至１８のうちいずれか１項に記載のシステム。
【請求項２２】
第１のプロセッサと、第１のメモリと、少なくとも１つのネットワークインタフェースカードとを含むホストであり、前記ネットワークインタフェースカードは、第２のプロセッサと、第２のメモリと、少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応しており、前記第１のメモリ及び前記第２のメモリは、命令を記憶し、前記第１のプロセッサは、第１の仮想マシンの機能を実現するために、前記第１のメモリ内の第１の命令を実行し、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続され、前記第１のプロセッサは、仮想ブリッジの機能を実現するために、前記第１のメモリ内の第２の命令を実行し、前記第１のプロセッサは、仮想ネットワーク機能モジュールの機能を実現するために、前記第１のメモリ内の第３の命令を実行し、前記第２のプロセッサは、スイッチング機器の機能を実現するために、前記第２のメモリ内の命令を実行するように構成される、ホストであって、
前記第１のプロセッサは、前記第１のメモリ内の前記第１の命令を実行し、以下のステップ、すなわち、送出対象のデータパケットの宛先MACアドレスを決定するステップであり、前記送出対象のデータパケットの前記MACアドレスは、前記仮想ブリッジのアップリンクポートのMACアドレスであるステップ、及び前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するステップであり、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであるステップを実行するように構成され、
前記第２のプロセッサは、前記第２のメモリ内の前記命令を実行し、以下のステップ、すなわち、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するステップを実行するように構成され、
前記第１のプロセッサは、前記第１のメモリ内の前記第２の命令を実行し、以下のステップ、すなわち、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更するステップを実行するように更に構成され、
前記第１のプロセッサは、前記第１のメモリ内の前記第３の命令を実行し、以下のステップ、すなわち、変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するステップであり、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスであるステップを実行するように更に構成される、ホスト。
【請求項２３】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有し、
前記第１のプロセッサは、前記第１のメモリ内の前記第１の命令を実行し、以下のステップ、すなわち、前記第１の仮想マシンに接続された前記VFを使用することにより、ARP要求パケットを送出するステップであり、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送するステップを実行するように更に構成され、
前記第２のプロセッサは、前記第２のメモリ内の前記命令を実行し、以下のステップ、すなわち、前記ARP要求パケットをブロードキャストし、前記アップリンクポートを使用することにより、前記ARP要求パケットを前記仮想ブリッジに送出するステップを実行するように構成され、
前記第１のプロセッサは、前記第１のメモリ内の前記第２の命令を実行し、以下のステップ、すなわち、前記ARP要求パケットをSDNコントローラに転送し、前記SDNコントローラにより返信されたフローエントリを受信するステップであり、前記フローエントリは、ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいてARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップ、及び前記ARP応答パケットを前記第１の仮想マシンに返信するステップであり、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップを実行するように更に構成される、請求項２２に記載のホスト。
【請求項２４】
前記フローエントリは、MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項２２に記載のホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、IT技術の分野に関し、特にクラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステムに関する。
【背景技術】
【０００２】
仮想化技術は、クラウドコンピューティング分野において鍵となる技術の１つである。仮想化技術によれば、ホストの物理リソースは、ホスト上で実行する仮想マシン（Virtual  Machine,  VM）により使用される共有リソースプールに抽象化できる。ホスト上で実行する仮想マシンは、ホストの外部ネットワークと通信するために、ホストのネットワークインタフェースカードを共有し得る。従来技術では、ネットワークインタフェースカードは、ネットワークインタフェースカード仮想化を用いて、使用のために仮想マシンに割り当てられ得る。ネットワークインタフェースカード仮想化は、シングルルート入出力仮想化（Single-Root  I/O  Virtualization,  SR-IOV）又はマルチルート入出力仮想化（Multi  Root  Input/Output  Virtualization,  MR-IOV）を用いて実現され得る。ネットワークインタフェースカード仮想化はまた、ネットワークインタフェースカード・パススルーとも呼ばれる。SR-IOVパススルーが例として使用される。ネットワークインタフェースカードがSR-IOVをサポートするときに、ホスト上で実行する仮想マシンは、SR-IOV技術を使用することにより、ホスト上でネットワークインタフェースカードを共有し得る。
【０００３】
SR-IOV能力をサポートするネットワークインタフェースカードがホスト上で使用されるときに、ネットワークインタフェースカードのネットワークポートは、少なくとも１つの物理機能（Physical  Function,  PF）及び複数の仮想機能（Virtual  Function,  VF）に仮想化される。ホスト上の仮想マシンは、少なくとも１つのVFに接続される。ネットワークインタフェースカードは、スイッチとして機能するスイッチング機器の内部に備えられる。スイッチング機器は、媒体アクセス制御（MediaAccessControl,  MAC）テーブルに従ってデータパケットを転送し、物理ネットワークポートとPFとVFとの間でデータパケットを転送する。限られた処理及び記憶能力のため、スイッチング機器は、セキュリティグループ、サービス品質（Quality  of  Service,  QoS）、レイヤ2トンネルカプセル化及び分散ルーティングのような豊富なネットワーク機能をユーザに提供できない。
【発明の概要】
【０００４】
この明細書は、ネットワークインタフェースカード・パススルーのシナリオにおいて豊富なネットワーク機能が提供できないという問題を解決するための、クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステムを記載する。
【０００５】
第１の態様によれば、本発明の実施例は、ホストを提供する。少なくとも１つのネットワークインタフェースカードがホストに接続される。仮想マシンモニタVMMがホスト上で実行し、第１の仮想マシンがVMM上で実行する。VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、仮想ネットワーク機能モジュールは、ネットワーク機能処理能力を提供できる。ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含む。第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、第１のネットワークポートは、少なくとも１つの物理機能PF及び複数の仮想機能VFに対応しており、第１のネットワークポートの少なくとも１つのVFは、パススルー方式で第１の仮想マシンに対して提供される。
【０００６】
第１の仮想マシンは、第１の仮想マシンに接続されたVFからデータパケットを送出する。データパケットの宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。第１のネットワークポートのスイッチング機器は、データパケットの宛先MACアドレスに従ってデータパケットを転送し、データパケットをVMM上の仮想ブリッジに送出する。仮想ブリッジは、データパケットを仮想ネットワーク機能モジュールに転送する。仮想ネットワーク機能モジュールは、データパケットに対して豊富なネットワーク機能を提供する。ネットワークインタフェースカード・パススルーのシナリオでは、パススルーVFからデータパケットを送出した後に、仮想マシンは、前述の方式でネットワークインタフェースカードからのデータパケットをVMM上の仮想ネットワーク機能モジュールに導き、ソフトウェアモジュールを使用することにより、ユーザに対して豊富なネットワーク機能を提供してもよい。
【０００７】
可能な設計では、複数の仮想マシンがホスト上で実行してもよく、各仮想マシンが第１のネットワークポートの少なくとも１つのVFに接続され、第１のネットワークポートの複数のVFが異なる仮想ローカルエリアネットワークVLAN識別子を有する。他のVFのVLAN識別子と異なるVLAN識別子がVF毎に設定される。これは、VLAN識別子を搬送するブロードキャストパケットがVLAN識別子に対応する仮想ローカルエリアネットワーク上のみで伝搬され、異なるVLAN識別子を有する他のVFに送出されないことを確保する。
【０００８】
可能な設計では、第１の仮想マシンは、APRプロセスを使用することにより、送出対象のデータパケットの宛先MACアドレスを取得する。具体的には、
【０００９】
第１の仮想マシンは、第１の仮想マシンに接続されたVFを使用することにより、ARP要求パケットを送出し、ARP要求パケットは、ARP要求パケットを送出するVFのVLAN識別子を搬送し、
ARP要求パケットを受信した後に、第１のネットワークポートのスイッチング機器は、ARP要求パケットをブロードキャストし、スイッチング機器によりブロードキャストされたARP要求パケットを受信した後に、VMM上の仮想ブリッジは、ARP要求パケットをSDNコントローラに転送し、SDNコントローラは、クラウドコンピューティングシステムのネットワークトポロジ情報を記録し、ARP要求パケットを受信したときに、SDNコントローラは、フローエントリを構築し、フローエントリを仮想ブリッジに返信し、フローエントリは、ARP取得設定を含み、ARP取得設定は、仮想ブリッジに対してARP応答パケットを構築するように命令するために使用され、ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される仮想ブリッジのアップリンクポートのMACアドレスを搬送し、
仮想ブリッジは、フローエントリに従ってARP応答パケットを第１の仮想マシンに返信し、ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される仮想ブリッジのアップリンクポートのMACアドレスを搬送する。
【００１０】
本発明のこの実施例では、新たなARPプロセスが規定される。送出対象のデータパケットの宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスに設定され、これにより、第１の仮想マシンにより送出されたデータパケットは、レイヤ2転送を用いて仮想ブリッジに転送され、データパケットは、ネットワークインタフェースカードからVMMにリダイレクトされて戻される。
【００１１】
可能な設計では、フローエントリは、MACアドレス設定を更に含み、MACアドレス設定は、仮想ブリッジが第１の仮想マシンにより第２の仮想マシンに送出されたデータパケットを受信したときに、データパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに変更するように、仮想ブリッジに対して命令するために使用される。第１の仮想マシンにより送出されたデータパケットの宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。したがって、データパケットを受信したときに、仮想ブリッジは、データパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに置換する必要があり、これにより、仮想ブリッジにより送出されたデータパケットは、第２の仮想マシンの実際のアドレスに従って第２の仮想マシンにルーティングできる。
【００１２】
可能な設計では、仮想ブリッジのアップリンクポートは、第１のネットワークポートのPFであり、仮想ブリッジは、PFを使用することにより、ネットワークインタフェースカードに接続されるか、或いは仮想ブリッジのアップリンクポートは、第１のネットワークポートの選択されたVFであり、仮想ブリッジは、選択されたVFを使用することにより、ネットワークインタフェースカードに接続され、仮想ブリッジに接続された選択されたVFは、プロミスキャスモードに設定される。仮想ブリッジがPF又はVFを使用することによりネットワークインタフェースカードに接続されることは、仮想ブリッジがネットワークインタフェースカードに論理的に接続されること、すなわち、データパケットがPF又はVFを使用することにより仮想ブリッジとネットワークインタフェースカードとの間で送信されることを意味する点に留意すべきである。
【００１３】
可能な設計では、データパケットの送信元仮想マシン（第１の仮想マシン）及び宛先仮想マシン（第２の仮想マシン）は、同じホスト上にある。この場合、データパケットを処理した後に、仮想ネットワーク機能モジュールは、処理されたデータパケットを仮想ブリッジに返信する。仮想ブリッジは、処理されたデータパケットを受信し、スイッチング機器を使用することにより、データパケットの宛先MACアドレスに従って処理されたデータパケットを第２の仮想マシンに送出する。
【００１４】
或いは、第２の仮想マシン及び第１の仮想マシンは、異なるホスト上で実行してもよい。この場合、仮想ネットワーク機能モジュールは、仮想ネットワーク機能モジュールと、第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、処理されたデータパケットをネットワークインタフェースカードの第２のネットワークポートに送出し、次に、トンネルを使用することにより、処理されたデータパケットを第２の仮想マシンが位置するホストに送出し、これにより、他の仮想ネットワーク機能モジュールは、処理されたデータパケットを第２の仮想マシンに送出する。
【００１５】
第２の態様によれば、本発明の実施例は、クラウドコンピューティングシステムにおけるパケット処理方法を更に提供する。クラウドコンピューティングシステム内の少なくとも１つのホストは、仮想マシンモニタVMMと少なくとも１つのネットワークインタフェースカードとを含む。第１の仮想マシンがホスト上で実行する。VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含む。ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含む。第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートする。第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応している。第１の仮想マシンは、第１のネットワークポートの少なくとも１つのVFに接続される。方法は、
第１の仮想マシンにより、送出対象のデータパケットの宛先MACアドレスを決定するステップであり、送出対象のデータパケットのMACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスであるステップと、
第１の仮想マシンにより、第１の仮想マシンに接続されたVFを使用することにより、データパケットを第２の仮想マシンに送出するステップであり、データパケットで搬送される宛先IPアドレスは、第２の仮想マシンのIPアドレスであり、データパケットで搬送される宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスであるステップと、
スイッチング機器により、データパケットを受信し、仮想ブリッジのアップリンクポートを使用することにより、データパケットの宛先MACアドレスに従ってデータパケットを仮想ブリッジに送出するステップと、
仮想ブリッジにより、データパケットを受信し、データパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを仮想ネットワーク機能モジュールに送出するステップと、
仮想ネットワーク機能モジュールにより、変更されたデータパケットに対してネットワーク機能処理を実行し、処理されたデータパケットを送出するステップであり、処理されたデータパケットの宛先MACアドレスは、第２の仮想マシンのMACアドレスであるステップと
を含む。
【００１６】
可能な設計では、第１のネットワークポートの複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有する。
【００１７】
他の可能な設計では、第１の仮想マシンは、ARPプロセスを使用することにより、SDNコントローラから送出対象のデータパケットの宛先MACアドレスを取得する。宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。具体的な取得方式は、第１の態様における説明のものと同じである。
【００１８】
第３の態様によれば、本発明の実施例は、クラウドコンピューティングシステムを提供する。クラウドコンピューティングシステムは、第１の態様に記載のホストとSDNコントローラとを含む。SDNコントローラは、仮想ブリッジにより転送された第１の仮想マシンからのARP要求パケットを受信し、フローエントリを仮想ブリッジに返信するように構成される。フローエントリは、ARP取得設定とMACアドレス設定とを含み、ARP取得設定は、仮想ブリッジに対してARP要求に基づいてARP応答パケットを構築するように命令するために使用される。ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される仮想ブリッジのアップリンクポートのMACアドレスを搬送する。
【００１９】
第４の態様によれば、前述の装置、方法及びシステムに対応して、本発明の実施例は、ホストを提供する。ホストは、第１の態様に規定されたホストを実現する機能を有する。機能は、ハードウェアにより実現されてもよく、或いはハードウェアにより対応するソフトウェアを実行することにより実現されてもよい。ハードウェア又はソフトウェアは、前述の機能に対応する１つ以上のモジュールを含む。具体的には、ホストは、第１のプロセッサと、第１のメモリと、少なくとも１つのネットワークインタフェースカードとを含む。ネットワークインタフェースカードは、第２のプロセッサと、第２のメモリと、少なくとも２つのネットワークポートとを含む。第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートする。第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応している。第１の仮想マシンは、第１のネットワークポートの少なくとも１つのVFに接続される。第１のメモリ及び第２のメモリは、命令を記憶する。
【００２０】
第１のプロセッサは、第１のメモリ内の命令を実行し、第１の態様における第１の仮想マシン、仮想ブリッジ及び仮想ネットワーク機能モジュールの機能を実現するように構成される。
【００２１】
第２のプロセッサは、第２のメモリ内の命令を実行し、第１の態様におけるスイッチング機器の機能を実現するように構成される。
【００２２】
可能な設計では、ホスト及びSDNコントローラは、汎用又は専用サーバにより実現される。サーバの構造は、プロセッサと、メモリと、システムバスと、入出力インタフェースとを含む。プロセッサは、システム内のホストの対応する機能をサポートするように構成される。入出力インタフェースは、クラウドコンピューティングシステム内の他のコンポーネントと通信するように構成される。プロセッサは、メモリに記憶された命令を実行する。
【００２３】
第５の態様によれば、本発明の実施例は、前述のホストにより使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の態様を実行するように設計されたプログラムを含む。
【００２４】
第６の態様によれば、本発明の実施例は、前述のネットワークインタフェースカード内のスイッチング機器により使用されるコンピュータソフトウェア命令を記憶するように構成された他のコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の態様を実行するように設計されたプログラムを含む。
【００２５】
第７の態様によれば、本発明の実施例は、コンピュータプログラムを提供する。物理サーバがコンピュータプログラムを実行したときに、物理サーバは、ホスト内の仮想マシン、仮想ブリッジ及び仮想ネットワーク機能モジュールの機能を実行する。
【００２６】
第８の態様によれば、本発明の実施例は、コンピュータプログラムを提供する。ネットワークインタフェースカード内のプロセッサ又はプログラム可能論理回路がコンピュータプログラムを実行したときに、ネットワークインタフェースカードは、前述の態様におけるスイッチング機器の機能を実行する。
【図面の簡単な説明】
【００２７】
本発明の実施例又は従来技術における技術的解決策をより明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は、本発明の単にいくつかの実施例を示しているに過ぎず、当業者は、創造的取り組みなしにこれらの添付図面から他の実現を導くことができる。全てのこれらの実施例又は実現は、本発明の保護範囲内に入る。
【図１Ａ】本発明の実施例によるホスト上の仮想化された構造の概略図である。
【図１Ｂ】本発明の実施例によるネットワークインタフェースカード・パススルーのシナリオにおけるホスト上の仮想化された構造の概略図である。
【図２】本発明の実施例によるホスト上の他の仮想化されたアーキテクチャの概略図である。
【図３】本発明の実施例によるARPプロセスの概略図である。
【図４】本発明の実施例に従ってデータパケットをVM1によりVM2に送出する概略フローチャートである。
【図５】本発明の実施例によるコンピュータデバイスのハードウェアの概略構成図である。
【図６】本発明の実施例によるクラウドコンピューティングシステムの概略構成図である。
【発明を実施するための形態】
【００２８】
本発明の実施例において記載されるネットワークアーキテクチャ及びサービスシナリオは、本発明の実施例における技術的解決策をより明確に説明するために使用されており、本発明の実施例において提供される技術的解決策への制限を全く構成しない。当業者は、ネットワークアーキテクチャの進化及び新たなサービスシナリオの出現により、本発明の実施例において提供される技術的解決策がまた、同様の技術的課題にも適用可能であることを習得し得る。
【００２９】
図１Ａに示すように、図１Ａは、本発明の実施例によるホスト上の仮想化された構造の概略図である。ホストは、物理サーバである。物理サーバの下部レイヤは、ハードウェアレイヤである。ハードウェアレイヤは、中央処理装置（CPU,  Central  Processing  Unit）、メモリ、ハードディスク及びネットワークインタフェースカードのようなハードウェアリソースを主に含む。サーバ仮想化は、仮想化ソフトウェア（例えば、VMWare  ESX又はCitrix  XEN）を使用することにより、物理サーバ上に複数の仮想マシン（Virtual  Machine,  VM）の仮想化された実行環境を実現する。仮想化された環境を実現するためにサーバ上にインストールされたソフトウェアレイヤは、仮想マシンモニタ（Virtual  MAChine  Monitor,  VMM）と呼ばれる。ハードウェアレイヤ上で実行するVMMは、ハードウェアレイヤにおけるハードウェアリソースをスケジューリングし、割り当て、管理する役目をする。複数の仮想マシンVMがVMM上で実行する。VMMは、複数の仮想マシンが互いに隔離した方式で実行することを確保するように、仮想化されたCPU、メモリ、ストレージ、IOデバイス（ネットワークインタフェースカード等）及びイーサーネットスイッチのようなハードウェア環境を各仮想マシンに提供する。
【００３０】
仮想化された実行環境では、VMMは、仮想マシン毎に仮想ネットワークインタフェースカード（Virtual  Network  Interface  Card,  vNIC）を作成し、仮想スイッチvSwitchは、仮想マシンの間及び仮想マシンと外部ネットワークとの間の通信の能力を提供する。各仮想マシンの仮想ネットワークインタフェースカードは、vSwitchの論理ポートに対応している。ホストの物理ネットワークインタフェースカードは、vSwitchを外部物理スイッチに接続するポートに対応している。仮想マシンにより送出又は受信されるデータパケットがVMMを通過するときに、VMM上の仮想ネットワーク機能モジュールは、VMMを通過するデータに対してネットワーク機能処理を実行する。仮想ネットワーク機能モジュールは、ソフトウェアモジュールであり、必要に応じてアップデートできる。したがって、VMM上の仮想ネットワーク機能モジュールは、ユーザに対して豊富なネットワーク機能を提供できる。
【００３１】
物理ネットワークインタフェースカードのネットワークポートは、仮想化能力をサポートする。これは、シングルルート入出力仮想化（Single  Root  Input/Output  Virtualization,  SR-IOV）又はマルチルート入出力仮想化（Multi  Root  Input/Output  Virtualization,  MR-IOV）を用いて実現できる。本発明のこの実施例では、SR-IOV技術が説明のための例として使用される。SR-IOV技術は、ハードウェアに基づく仮想化解決策である。PCIe（Peripheral  Component  Interconnect  Express,  ペリフェラル・コンポーネント・インターコネクト・エクスプレス）デバイスは、仮想マシンの間で効率的に共有できる。さらに、SR-IOV技術は、ハードウェアで実現され、これにより、効率的なI/O性能が取得できる。
【００３２】
標準化組織PCI-SIG（Peripheral  Component  Interconnect  Special  Interest  Group,  ペリフェラル・コンポーネント・インターコネクト・スペシャル・インタレスト・グループ）は、SR-IOV仕様を規定している。SR-IOV仕様については、http://www.pcisig.comを参照する。
【００３３】
SR-IOV技術を使用することにより、単一のI/Oリソースは、ホスト上の複数の仮想マシンにより共有されてもよい。このように、各仮想マシンは、同じハードウェアリソースにアクセスできる。したがって、有効化されたSR-IOVを有するPCIeデバイス（例えば、物理ネットワークインタフェースカードのネットワークポート）は、複数の別個のデバイスとして表示されてもよい。表示されたそれぞれの別個のデバイスは、独立したPCIe構成空間を有する。SR-IOVをサポートする物理ネットワークインタフェースカードが例として使用される。物理ネットワークインタフェースカードは、ネットワークポートを含み、ネットワークポート毎にSR-IOV能力を有効化／無効化できる。SR-IOV能力が有効化されたネットワークポートは、少なくとも１つの物理機能（Physical  Function,  PF）及び複数の仮想機能（Virtual  Function,  VF）に対応している。既存のSR-IOV仕様によれば、各PFは、PFに関連する最大で64,000個のVFを有してもよい。VFが作成された後に、VFは、使用のためにホスト上の仮想マシンに直接割り振られてもよく、これにより、複数の仮想マシンは、複数の仮想マシンに接続された少なくとも１つのVFを使用することにより、PCIeデバイスを共有する。
【００３４】
図１Ｂに示すように、図１Ｂは、本発明の実施例によるネットワークインタフェースカード・パススルーのシナリオにおけるホスト上の仮想化された構造の概略図である。図１Ａと図１Ｂとの間の違いは、物理ネットワークインタフェースカードがシングルルートIO仮想化をサポートし、物理ネットワークインタフェースカードのネットワークポートが少なくとも１つのPF及び複数のVFに対応しており、VFが物理ネットワークインタフェースカードの物理リソース（例えば、ネットワークインタフェースカードのポート）を共有できる点にある。
【００３５】
ホスト上の仮想マシンがパススルーVFを使用することによりデータパケットを送出したときに、仮想マシンにより送出されたデータパケットは、仮想マシン上にインストールされたVFドライバを使用することにより、ネットワークインタフェースカードのVFに直接転送される。その結果、データパケットは、VMM上の仮想ネットワーク機能モジュールを通過できない。ネットワークインタフェースカードのスイッチング機器は、限られたMACテーブル容量及び限られた処理能力を有し、制約のない機能拡張を実行できない。したがって、ネットワークインタフェースカードは、豊富なネットワーク機能を提供できない。可能なシナリオでは、スイッチング機器は、virtual  Ethernet  bridge  &  classifierである。
【００３６】
本発明のこの実施例は、ネットワークインタフェースカード・パススルーのシナリオに基づく点に留意すべきである。前述のネットワークインタフェースカード・パススルーは、SR-IOV又はMR-IOVを用いて実現されてもよく、本発明のこの実施例は、これに対して制限を課さない。
【００３７】
図２に示すように、図２は、本発明の実施例によるホスト上の他の仮想化されたアーキテクチャの概略図である。ホストは、仮想マシンモニタVMMと少なくとも１つの物理ネットワークインタフェースカードとを含む。少なくとも１つの仮想マシンは、ホスト上で実行する。少なくとも１つの物理ネットワークインタフェースカードは、少なくとも２つのネットワークポート、すなわち、第１のネットワークポート及び第２のネットワークポートを含む。第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、第２のネットワークポートは、ホストの外部物理スイッチに接続される。第１のネットワークポートは、少なくとも１つのPF及び少なくとも２つのVFに仮想化される（図２では、２つのVFが説明のための例として使用される）。VFドライバは、第１の仮想マシン及び第２の仮想マシン上にインストールされる。第１の仮想マシン及び第２の仮想マシンは、少なくとも１つのVFに別個に接続される。PFは、VMM上の仮想ブリッジに接続される。仮想ブリッジは、VMM上の仮想ネットワーク機能モジュールに接続され、仮想ネットワーク機能モジュールは、第２のネットワークポートを使用することにより、ホストの外部物理スイッチに接続される。
【００３８】
具体的なシナリオでは、VMM上の仮想ブリッジは、Open  vSwitchブリッジでもよく、第１のネットワークポートのPFは、仮想ブリッジのアップリンクポートとして機能する。或いは、第１のネットワークポートのVFが仮想ブリッジのアップリンクポートとして選択されてもよく、すなわち、第１のネットワークポートは、選択されたVFを使用することにより、VMM上の仮想ブリッジに接続される点に留意すべきである。この場合、VFドライバは、VMM上にロードされる必要があり、仮想ブリッジに接続されたVFは、プロミスキャスモードに設定される必要がある。PFと同様に、プロミスキャスモードに設定されたVFは、宛先アドレスがVFのMACアドレスではないデータパケットを受信できる。プロミスキャスモードについての具体的な説明については、https://en.wikipedia.org/wiki/Promiscuous_modeを参照する。本発明の実施例では、第１のネットワークポートのPFが仮想ブリッジに接続される例が説明のために使用される。当業者は、前述の設定方式で、プロミスキャスモード（promiscuous  mode）のVFもまた、仮想ブリッジに接続するために使用されてもよいことを理解し得る。
【００３９】
可能な実現では、第１のネットワークポート及び第２のネットワークポートは、同じネットワークインタフェースカードに位置してもよく、或いは異なるネットワークインタフェースカードに独立して位置してもよい。本発明のこの実施例は、これに対して制限を課さない。
【００４０】
本発明の実施例では、ネットワークインタフェースカード仮想化は、具体的には、ネットワークインタフェースカードのハードウェア仮想化でもよい。
【００４１】
第１の仮想マシン及び第２の仮想マシンは、第１のネットワークポートの少なくとも１つのVFに別個に接続される。異なる仮想ローカルエリアネットワーク（Virtual  Local  Area  Network,  VLAN）識別子が第１のネットワークポートのVFに対して設定される。VLANは、ブロードキャストドメインである。したがって、ブロードキャストパケットは、VLAN上の仮想マシンのみに送出できる。したがって、異なるVLAN識別子がVFに対して設定され、これにより、仮想マシンは、異なるブロードキャストドメインに位置し、仮想マシンにより送出されたブロードキャストパケットは、仮想マシン自体及びPFのみにより受信できる。VFに対するVLAN識別子の設定中に、VLAN識別子がホスト範囲内で一意であることが確保される必要がある。異なるホスト上のVLAN識別子は、同じでもよい。
【００４２】
図２に示す実施例において、データパケットを第１の仮想マシンにより第２の仮想マシンに送出することは、同じホスト内の２つの仮想マシンの間の通信である点に留意すべきである。或いは、第２の仮想マシン及び第１の仮想マシンが異なるホストに位置してもよいことを当業者は理解し得る。この場合、第１の仮想マシンは、ホスト間方式で第２の仮想マシンと通信する。図２では、２つのVF及び２つのVLANサブインタフェースのみが説明のための例として使用される。実際の製品の実現では、ネットワークインタフェースカード仮想化機能をサポートするネットワークインタフェースカードは、少なくとも１つのPF及び複数のVFに仮想化されてもよい。VFの数量は２つに限定されず、対応して、VLANサブインタフェースの数量も２つに限定されない。
【００４３】
本発明のこの実施例では、VM1（第１の仮想マシン）がデータパケットをVM2（第２の仮想マシン）に送出する例が、データパケット処理プロセスを説明するための例として使用される。ネットワークインタフェースカード内のスイッチング機器は、処理のためにVM1からのデータパケットをVMM上の仮想ネットワーク機能モジュールに送出する必要がある。データパケットを送出する前に、第１の仮想マシンは、送出対象のデータパケットの宛先媒体アクセス制御MACアドレスがVMM上の仮想ブリッジのアップリンクポートのMACアドレスであると決定する。第１の仮想マシンは、第１の仮想マシンに接続されたVFを使用することにより、データパケットを第２の仮想マシンに送出する。データパケットで搬送される宛先IPアドレスは、第２の仮想マシンのIPアドレスであり、データパケットで搬送される宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。第１のネットワークポートのスイッチング機器は、VFを使用することにより、第１の仮想マシンにより送出されたデータパケットを受信し、仮想ブリッジのアップリンクポートを使用することにより、データパケットを仮想ブリッジに送出するために、データパケットの宛先MACアドレスに従ってデータパケットに対してレイヤ2転送を実行する。仮想ブリッジは、データパケットを受信し、データパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを仮想ネットワーク機能モジュールに送出する。データパケットの宛先MACアドレスが変更され、これにより、変更されたMACアドレスがデータの以降の送信プロセスにおいて使用されてもよい。これは、データパケットが第２の仮想マシンに送出できることを確保する。変更されたデータパケットを受信した後に、仮想ネットワーク機能モジュールは、ユーザに対して豊富なネットワーク機能サービスを提供するために、変更されたデータパケットに対してネットワーク機能処理を実行し、次に、第２の仮想マシンのMACアドレスに従って処理されたデータパケットを第２の仮想マシンに送出する。
【００４４】
本発明のこの実施例では、仮想マシンは、仮想マシンに接続されたVFからデータパケットを送出する。第１のネットワークポートのスイッチング機器は、データパケットを転送し、データパケットをVMM上の仮想ブリッジに送出する。仮想ブリッジは、データパケットを仮想ネットワーク機能モジュールに転送する。仮想ネットワーク機能モジュールは、データパケットに対して豊富なネットワーク機能を提供する。ネットワークインタフェースカード・パススルーのシナリオでは、パススルーVFからデータパケットを送出した後に、仮想マシンは、前述の方式でデータパケットをVMM上の仮想ネットワーク機能モジュールに送出してもよい。ソフトウェアモジュールは、ユーザに対して豊富なネットワーク機能を提供するために使用され、これにより、データパケットに対して仮想ネットワーク機能処理を実行する。
【００４５】
さらに、本発明の実施例は、アドレス解決プロトコル（Address  Resolution  Protocol,  ARP）プロセスを提供し、これにより、データパケットを送出する前に、第１の仮想マシンは、仮想ブリッジのアップリンクポートのMACアドレスを取得し、データパケットの宛先MACアドレスを仮想ブリッジのアップリンクポートのMACアドレスに設定してもよい。本発明のこの実施例において提供されるARPプロセスでは、ソフトウェア・デファインド・ネットワーキング（Software  Defined  Network,  SDN）コントローラは、VM1により開始されたARP要求の取得を実行し、VMM上の仮想ブリッジのアップリンクポートのMACアドレスをARP応答に追加し、VM1により送出されたデータパケットを、MACアドレスがデータパケットの宛先IPアドレスに対応することを可能にすることにより、仮想ブリッジに接続されたPF又はVFに導く。SDNコントローラは、クラウドコンピューティングネットワークのネットワークトポロジを取得してもよく、すなわち、前述のARPプロセスを実現してもよい点に留意すべきである。
【００４６】
具体的には、図３に示すように、図３は、本発明の実施例によるARPプロセスの概略図である。
【００４７】
ステップ301：VM1は、VM2のIPアドレスを搬送し、且つVM2のMACアドレスを取得するために使用されるARP要求パケットを送出する。ARP要求パケットは、VM1に接続されたVFから送出される。ネットワークインタフェースカード上のスイッチング機器は、ARP要求パケットを受信する。ARP要求パケットは、ARP要求パケットを送出するVFのVLAN識別子を搬送する。
【００４８】
ステップ302：スイッチング機器は、ARP要求パケットをブロードキャストする。ホスト上の各仮想マシンに接続されたVFは、異なるVLAN識別子を有するため、ARP要求パケットは、PFを使用することにより、仮想ブリッジに送出される。
【００４９】
可能な設計では、仮想ブリッジがVFを使用することによりネットワークインタフェースカードに接続されるときに、ARP要求パケットは、AFを使用することにより、仮想ブリッジに送出される。
【００５０】
ステップ303：仮想ブリッジは、ARP要求パケットをSDNコントローラに転送する。
【００５１】
具体的には、仮想ブリッジは、packet-inメッセージを使用することにより、ARP要求パケットをSDNコントローラに送出してもよい。
【００５２】
ステップ304：SDNコントローラは、仮想ブリッジのためのフローエントリを設定し、フローエントリを仮想ブリッジに配信する。
【００５３】
フローエントリは以下を含む。
(1)ARP取得設定：ARP取得設定は、VM1により送出され、且つVM2のMACアドレスを取得するために使用されるARPパケット要求を受信したときに、仮想ブリッジがARP応答パケットを構築することを示し、ARP応答パケットは、VM2のMACアドレスとして使用される仮想ブリッジのアップリンクポートのMACアドレスを搬送し、仮想ブリッジのアップリンクポートのMACアドレスは、仮想ブリッジに接続されたPF又はVFのMACアドレスである。
(2)VLAN識別子処理設定：VM1により送出されたユニキャストパケットについて、ユニキャストパケットで搬送されたVLAN識別子が除去される。及び
(3)MACアドレス設定：VM1によりVM2に送出されたユニキャストパケットについて、ユニキャストパケットの宛先MACアドレスがVM2のMACアドレスに変更され、変更されたユニキャストパケットが、仮想ネットワーク機能モジュールに接続されたポートを使用することにより、仮想ネットワーク機能モジュールに送出される。
【００５４】
前述のフローエントリの設定原理は、OpenFlowプロトコルに基づいてもよい点に留意すべきである。
【００５５】
ステップ305：仮想ブリッジは、フローエントリを構成し、ARP取得設定に従ってARP応答パケットをVM1に返信し、ARP応答パケットは、仮想ブリッジのアップリンクポートのMACアドレスを搬送し、アップリンクポートを使用することにより、ARP応答パケットをスイッチング機器に送出する。
【００５６】
ステップ306：スイッチング機器は、ARP応答パケットをVM1に転送する。
【００５７】
ステップ307：VM1は、ARP応答パケットを受信し、VM2のMACアドレスを仮想ブリッジのアップリンクポートのMACアドレスに設定する。
【００５８】
本発明のこの実施例では、前述のARPプロセスが規定され、これにより、VMトラヒックのレイヤ2転送制御は、MAC転送テーブルの自動学習なしに実現される。前述のARPプロセスによれば、VM1により送出されたデータパケットの宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。これは、データパケットがアップリンクポートを使用することにより仮想ブリッジに送出されることを確保する。次に、仮想ブリッジは、処理のためにデータパケットを仮想ネットワーク機能モジュールに転送する。
【００５９】
図４を参照すると、図４は、本発明の実施例に従ってデータパケットをVM1によりVM2に送出する概略フローチャートである。本発明のこの実施例では、ホスト1上のVM1は、データパケットをホスト2上のVM2に送出する。ホスト1のVMMは、第１の仮想ブリッジと第１の仮想ネットワーク機能モジュールとを含む。ホスト1のネットワークインタフェースカードは、少なくとも２つのネットワークポートと第１のスイッチング機器とを含む。ホスト2のVMMは、第２の仮想ブリッジと第２の仮想ネットワーク機能モジュールとを含む。ホスト2のネットワークインタフェースカードは、少なくとも２つのネットワークポートと第２のスイッチング機器とを含む。具体的には、ホスト1及びホスト2の構造並びにコンポーネントの機能は、図２に示される。詳細はここでは再び説明しない。データパケットをVM1によりVM2に送出するプロセスは以下を含む。
【００６０】
ステップ401：VM1は、VM1に接続されたVFを使用することにより、宛先がVM2であるデータパケットを送出する。データパケットの宛先IPアドレスは、VM2のIPアドレスであり、データパケットの宛先MACアドレスは、ホスト1上の第１の仮想ブリッジのアップリンクポートのMACアドレスである。データパケットは、VFのVLAN識別子を搬送する。
【００６１】
ステップ402：ネットワークインタフェースカード1の第１のスイッチング機器は、データパケットを受信し、アップリンクポートを使用することにより、データパケットの宛先MACアドレスに従ってデータパケットを第１の仮想ブリッジに送出する。
【００６２】
ステップ403：第１の仮想ブリッジは、予め設定されたフローエントリに従ってデータパケットを処理し、データパケット内のVLAN識別子を除去し、データパケットの宛先MACアドレスをVM2のMACアドレスに変更する。
【００６３】
ステップ404：第１の仮想ブリッジは、変更されたデータパケットを第１の仮想ネットワーク機能モジュールに送出する。
【００６４】
ステップ405：第１の仮想ネットワーク機能モジュールは、セキュリティグループ、QoS、レイヤ2トンネルカプセル化、分散ルーティング等を含むネットワーク機能処理をデータパケットに対して実行する。
【００６５】
第１の仮想ネットワーク機能モジュールは、従来技術における様々な実現を使用することにより、ネットワーク機能処理を実行してもよい点に留意すべきである。本発明のこの実施例は、これに対して制限を課さない。
【００６６】
ステップ406：第１の仮想ネットワーク機能モジュールは、第２のネットワークポートを使用することにより、処理されたデータパケットをホスト1の外部物理スイッチに送出し、物理スイッチは、ネットワークを通じてデータパケットをVM2が位置するホスト2にルーティングする。
【００６７】
データパケットは、VM2のIPアドレス及びMACアドレスを搬送し、データパケットは、既存のルーティング方式で、VM2が位置するホスト2にルーティングされてもよい点に留意すべきである。本発明のこの実施例は、ネットワーク上のデータパケットの送信プロセスを限定しない。例えば、VM1が位置するホスト1とVM2が位置するホスト2との間にトンネルが確立されてもよく、トンネルのエンドポイントがそれぞれホスト1の仮想ネットワーク機能モジュール及びホスト2の仮想ネットワーク機能モジュールであり、これにより、データ送信に必要なトンネルがVM1及びVM2のための２つのホストの間に確立される。
【００６８】
ステップ407：VM2が位置するホスト2の第２の仮想ネットワーク機能モジュールは、受信したデータパケットに対してネットワーク機能処理を実行し、処理されたデータパケットを第２の仮想ブリッジに送出する。
【００６９】
ステップ408：第２の仮想ブリッジは、VM2のMACアドレスに従ってレイヤ2転送を実行し、スイッチング機器を使用することにより、データパケットをVM2に接続されたVFに送出し、これにより、データパケットを第２の仮想マシンに送出する。
【００７０】
ホストの外部からホスト上の宛先仮想マシンに送出されたデータパケットについて、データパケットは、まず、第２のネットワークポートから仮想ネットワーク機能モジュールに転送され、次に、仮想ネットワーク機能処理を受けた後に、データパケットは、第１のネットワークポートを使用することにより、データパケットの宛先仮想マシンに転送される。
【００７１】
図４に示す実施例は、仮想マシンの間のホスト間通信を記載する。データパケットの送信元仮想マシン及び宛先仮想マシンは、同じホストに位置してもよいことが理解され得る。この場合、データパケット送信プロセスは、図４のプロセスと同様である。違いは、データパケットの送信元仮想マシン及び宛先仮想マシンが同じホストに位置するときに、ホストの仮想ネットワーク機能モジュールが、ネットワーク機能処理を完了した後に処理されたデータパケットを仮想ブリッジに送出し、仮想ブリッジが、宛先仮想マシンのMACアドレスに従って処理されたデータパケットを宛先仮想マシンに送出する点にある。
【００７２】
ホスト及びSDNコントローラは、汎用コンピュータデバイスを使用してもよい。例えば、図５に示すように、図５は、本発明の実施例によるコンピュータデバイスのハードウェアの概略構成図である。コンピュータデバイス500は、少なくとも１つのプロセッサ501と、通信バス502と、メモリ503と、少なくとも１つの通信インタフェース504とを含む。
【００７３】
プロセッサ501は、汎用中央処理装置（CPU）、マイクロプロセッサ、特定用途向け集積回路（application-specific  integrated  circuit,  ASIC）、又は本発明の解決策におけるプログラム実行を制御するように構成された１つ以上の集積回路でもよい。
【００７４】
通信バス502は、前述のコンポーネントの間で情報を転送するためのパスを含んでもよい。通信インタフェース504は、他のデバイス、又はイーサーネット、無線アクセスネットワーク（RAN）若しくは無線ローカルエリアネットワーク（Wireless  Local  Area  Networks,  WLAN）のような通信ネットワークと通信するために、トランシーバのような装置を使用する。
【００７５】
メモリ503は、読み取り専用メモリ（read-only  memory,  ROM）若しくは静的情報及び命令を記憶できる他の種類の静的記憶デバイス、ランダムアクセスメモリ（random  access  memory,  RAM）若しくは情報及び命令を記憶できる他の種類の動的記憶デバイス、電気的消去可能プログラム可能読み取り専用メモリ（Electrically  Erasable  Programmable  Read-Only  Memory,  EEPROM）、コンパクトディスク読み取り専用メモリ（Compact  Disc  Read-Only Memory,  CD-ROM）若しくは他のコンパクトディスクストレージ、光ディスクストレージ（コンパクトディスク、レーザーディスク、光ディスク、デジタル多用途ディスク、Blue-rayディスク等を含む）、磁気ディスク記憶媒体若しくは他の磁気記憶デバイス、又は命令若しくはデータ構造の形式で想定されるプログラムコードを搬送又は記憶するために使用でき、且つコンピュータによりアクセスできる他の媒体でもよい。これに対して制限は課されない。メモリは、単独で存在してもよく、バスを使用することにより、プロセッサに接続される。或いは、メモリは、プロセッサと統合されてもよい。
【００７６】
メモリ503は、本発明における解決策を実行するためのアプリケーションプログラムコードを記憶するように構成され、プロセッサ501は、実行を制御する。プロセッサ501は、メモリ503に記憶されたアプリケーションプログラムコードを実行するように構成される。
【００７７】
具体的な実現では、実施例において、プロセッサ501は、１つ以上のCPU、例えば、図５のCPU0及びCPU1を含んでもよい。
【００７８】
具体的な実現では、実施例において、コンピュータデバイス500は、複数のプロセッサ、例えば、図５のプロセッサ501及びプロセッサ508を含んでもよい。プロセッサのそれぞれは、シングルコア（single-CPU）プロセッサでもよく、或いはマルチコア（multi-CPU）プロセッサでもよい。ここでのプロセッサは、データ（例えば、コンピュータプログラム命令）を処理するように構成された１つ以上のデバイス、回路及び／又は処理コアでもよい。
【００７９】
具体的な実現では、実施例において、コンピュータデバイス500は、出力デバイス505と入力デバイス506とを更に含んでもよい。出力デバイス505は、プロセッサ501と通信し、複数の方式で情報を表示できる。例えば、出力デバイス505は、液晶ディスプレイ（liquid  crystal  display,  LCD）、発光ダイオード（light  emitting  diode,  LED）表示デバイス、陰極線管（cathode  ray  tube,  CRT）表示デバイス、プロジェクタ（projector）等でもよい。入力デバイス506は、プロセッサ501と通信し、複数の方式でユーザ入力を受信してもよい。例えば、入力デバイス506は、マウス、キーボード、タッチスクリーンデバイス、センシングデバイス等でもよい。
【００８０】
コンピュータデバイス500は、汎用コンピュータデバイス又は専用コンピュータデバイスでもよい。具体的な実現では、コンピュータデバイス500は、デスクトップコンピュータ、ポータブルコンピュータ、ネットワークサーバ、パーソナルデジタルアシスタント（Personal  Digital  Assistant,  PDA）、移動電話、タブレットコンピュータ、無線端末デバイス、通信デバイス、埋め込み式デバイス、又は図５の構造と同様の構造を有するデバイスでもよい。本発明のこの実施例は、コンピュータデバイス500の種類に制限を課さない。
【００８１】
SDNコントローラ及び図２のホストは、図５に示すデバイスでもよい。メモリは、ホスト及びSDNコントローラの機能を実現するための１つ以上のソフトウェアモジュールを記憶する。ホスト及びSDNコントローラは、プロセッサ及びメモリ内のプログラムコードを使用することにより、本発明の実施例に開示されたパケット処理方法を実現してもよい。
【００８２】
図５に示すコンピュータデバイスは、クラウドコンピューティングシステム内の部分の可能なハードウェア実現のみを提供している点に留意すべきである。システム内の部分の機能の違い又は変化に従って、コンピュータデバイスのハードウェアコンポーネントが、システム内の部分の機能に合致するように追加又は削除されてもよい。
【００８３】
さらに、図５に示すハードウェア装置と同様に、前述の実施例におけるネットワークインタフェースカードは、プロセッサとメモリとを含む。ネットワークインタフェースカード内のプロセッサは、前述のスイッチング機器の機能を実現するために、メモリ内の命令を実行する。本発明のこの実施例では、詳細は再び説明しない。
【００８４】
なおいっそう、図６に示すように、図６は、本発明の実施例によるクラウドコンピューティングシステムの概略構成図である。クラウドコンピューティングシステムは、少なくとも１つのホスト601とSDNコントローラ602とを含む。ホストは、少なくとも１つのネットワークインタフェースカードを含む。ホストの構造は、図２に示される。
【００８５】
ホスト601は、仮想マシンモニタVMMと少なくとも１つのネットワークインタフェースカードとを含む。第１の仮想マシンは、ホスト601上で実行する。VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含む。ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含む。第１のネットワークポートは、シングルルート入出力仮想化をサポートする。第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応している。第１の仮想マシンは、第１のネットワークポートの少なくとも１つのVFに接続される。
【００８６】
SDNコントローラ602は、仮想ブリッジにより転送された第１の仮想マシンからのARP要求パケットを受信し、フローエントリを仮想ブリッジに返信するように構成される。フローエントリは、ARP取得設定とMACアドレス設定とを含む。ARP取得設定は、仮想ブリッジに対して第１の仮想マシンのためのARP応答パケットを構築するように命令するために使用される。ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される仮想ブリッジのアップリンクポートのMACアドレスを搬送する。
【００８７】
第１の仮想マシンは、第１の仮想マシンに接続されたVFを使用することにより、データパケットを第２の仮想マシンに送出するように構成される。データパケットで搬送される宛先IPアドレスは、第２の仮想マシンのIPアドレスであり、データパケットで搬送される宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。
【００８８】
スイッチング機器は、データパケットを受信し、仮想ブリッジのアップリンクポートを使用することにより、データパケットの宛先MACアドレスに従ってデータパケットを仮想ブリッジに送出するように構成される。
【００８９】
仮想ブリッジは、データパケットを受信し、データパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを仮想ネットワーク機能モジュールに送出するように構成される。
【００９０】
仮想ネットワーク機能モジュールは、変更されたデータパケットに対してネットワーク機能処理を実行し、第２の仮想マシンのMACアドレスに従って処理されたデータパケットを第２の仮想マシンに送出するように構成される。
【００９１】
第１のネットワークポートの複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有する。
【００９２】
第１の仮想マシンは、第１の仮想マシンに接続されたVFを使用することにより、ARP要求パケットを送出するように更に構成される。ARP要求パケットは、ARP要求パケットを送出するVFのVLAN識別子を搬送する。
【００９３】
スイッチング機器は、ARP要求パケットをブロードキャストするように更に構成される。ARP要求パケットは、アップリンクポートを使用することにより、仮想ブリッジに送出される。
【００９４】
仮想ブリッジは、ARP要求パケットをSDNコントローラに転送し、SDNコントローラにより返信されたフローエントリを受信し、ARP応答パケットを第１の仮想マシンに返信するように更に構成される。ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される仮想ブリッジのアップリンクポートのMACアドレスを搬送する。
【００９５】
フローエントリは、MACアドレス設定を更に含む。MACアドレス設定は、仮想ブリッジが第１の仮想マシンにより第２の仮想マシンに送出されたユニキャストパケットを受信したときに、ユニキャストパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに変更するように、仮想ブリッジに対して命令するために使用される。
【００９６】
さらに、フローエントリは、出力設定を更に含む。出力設定は、仮想ネットワーク機能モジュールに接続されたポートを使用することにより、変更されたデータパケットを送出するように命令するために使用される。
【００９７】
仮想ブリッジのアップリンクポートは、第１のネットワークポートのPFであり、仮想ブリッジは、PFを使用することにより、ネットワークインタフェースカードに接続されるか、或いは仮想ブリッジのアップリンクポートは、第１のネットワークポートの選択されたVFであり、仮想ブリッジは、選択されたVFを使用することにより、ネットワークインタフェースカードに接続され、仮想ブリッジに接続された選択されたVFは、プロミスキャスモードに設定される。
【００９８】
第２の仮想マシン及び第１の仮想マシンが同じホスト上で実行するときに、仮想ブリッジは、処理されたデータパケットを受信し、スイッチング機器を使用することにより、データパケットの宛先MACアドレスに従って処理されたデータパケットを第２の仮想マシンに送出するように更に構成される。
【００９９】
第２の仮想マシン及び第１の仮想マシンが異なるホスト上で実行するときに、第１の仮想マシンが位置するホストの仮想ネットワーク機能モジュールと、第２の仮想マシンが位置するホストの仮想ネットワーク機能モジュールとの間にトンネルが確立される。処理されたデータパケットは、第２のネットワークポートから、第２の仮想マシンが位置するホストの仮想ネットワーク機能モジュールに送信される。データパケットに対してネットワーク機能処理が完了した後に、第２の仮想マシンが位置する仮想ネットワーク機能モジュールは、第２の仮想マシンが位置するホストの仮想ブリッジを使用することにより、データパケットを第２の仮想マシンに送出する。
【０１００】
本発明の実施例は、図２〜図６におけるデバイスにより使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体を更に提供する。コンピュータソフトウェア命令は、前述の方法の実施例を実行するように設計されたプログラムを含む。クラウドコンピューティングシステムにおけるパケット処理方法は、記憶されたプログラムを実行することにより実現されてもよい。
【０１０１】
要するに、本発明の実施例において提供されるクラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステムによれば、パススルーVFを使用する仮想マシンにより送出されたパケットは、VMM上の仮想ブリッジに導かれることができ、さらに、VMM上の仮想ネットワーク機能モジュールは、データパケットに対してネットワーク機能処理を実行し、これにより、ユーザに対して豊富なネットワーク機能を提供する。
【０１０２】
実施例を参照して本発明について説明したが、保護を請求する本発明の実施例を実現するプロセスにおいて、当業者は、添付図面、開示された内容及び添付の特許請求の範囲を見ることにより、開示された実施例の他の変形を理解及び実現し得る。特許請求の範囲において、「含む」（comprising）という用語は、他の構成要素の部分又はステップを除外しない。単一のプロセッサ又は他のユニットは、特許請求の範囲に列挙されたいくつかの機能を実現してもよい。いくつかの手段は、互いに異なる従属請求項に記録されるが、これは、これらの手段がより良い効果を生成するように結合できないことを意味するのではない。
【０１０３】
当業者は、本発明の実施例が方法、装置（デバイス）又はコンピュータプログラム製品として提供されてもよいことを理解すべきである。したがって、本発明は、ハードウェアのみの実施例、ソフトウェアのみの実施例、又はソフトウェアとハードウェアとの組み合わせを有する実施例の形式を使用してもよい。さらに、本発明の実施例は、コンピュータ使用可能プログラムコードを含む１つ以上のコンピュータ使用可能記憶媒体（ディスクメモリ、CD-ROM、光メモリ等を含むが、これらに限定されない）上に実現されたコンピュータプログラム製品の形式を使用してもよい。コンピュータプログラムは、適切な媒体に記憶／分配され、他のハードウェアと共にハードウェアの一部として提供又は使用され、或いはInternet又は他の有線若しくは無線電気通信システムを使用すること等により、他の割り当て形式を使用してもよい。
【０１０４】
本発明の実施例におけるコンピュータプログラム命令は、コンピュータ又は他のプログラム可能データ処理デバイスに対して特定の方式で動作するように命令できるコンピュータ読み取り可能メモリに記憶されてもよい。コンピュータプログラム命令は、前述の実施例におけるコンポーネントの機能を実現するように実行されてもよい。
【０１０５】
これらのコンピュータプログラム命令はまた、コンピュータ又は他のプログラム可能データ処理デバイスにロードされてもよく、これにより、一連の動作及びステップがコンピュータ又は他のプログラム可能デバイス上で実行され、これにより、コンピュータにより実現される処理を生成する。したがって、コンピュータ又は他のプログラム可能デバイス上で実行される命令は、フローチャート内の１つ以上のプロセス及び／又はブロック図内の１つ以上のブロックにおける特定の機能を実現するためのステップを提供する。
【０１０６】
具体的な特徴及びその実施例を参照して本発明について説明したが、明らかに、本発明の真意及び範囲を逸脱することなく、様々な変更及び組み合わせがこれらに対して行われてもよい。対応して、明細書及び添付図面は、添付の特許請求の範囲により規定される本発明の単に例示的な説明に過ぎず、本発明の範囲をカバーする変更、変形、組み合わせ又は均等物のいずれか又は全てとして考えられる。明らかに、当業者は、本発明の真意及び範囲を逸脱することなく、本発明に対して様々な変更及び変形を行うことができる。本発明は、以下の特許請求の範囲及びその均等技術により規定される保護の範囲内に入るという条件で、これらの変更及び変形をカバーすることを意図する。
【図１Ａ】
2019503599.tif 000003
【図１Ｂ】
2019503599.tif 000004
【図２】
2019503599.tif 000005
【図３】
2019503599.tif 000006
【図４】
2019503599.tif 000007
【図５】
2019503599.tif 000008
【図６】
2019503599.tif 000009
【手続補正書】
【提出日】平成30年2月26日(2018.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想マシンモニタ（VMM）と少なくとも１つのネットワークインタフェースカードとを含むホストであり、第１の仮想マシンが前記ホスト上で実行し、前記VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、前記少なくとも１つのネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つの物理機能（PF）及び複数の仮想機能（VF）に対応しており、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続される、ホストであって、
前記第１の仮想マシンは、送出対象のデータパケットの宛先媒体アクセス制御（MAC）アドレスを決定するように構成され、前記送出対象のデータパケットの前記宛先MACアドレスは、前記仮想ブリッジのアップリンクポートのMACアドレスであり、
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するように更に構成され、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであり、
前記スイッチング機器は、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するように構成され、
前記仮想ブリッジは、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを前記仮想ネットワーク機能モジュールに送出するように構成され、
前記仮想ネットワーク機能モジュールは、前記変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するように構成され、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスである、ホスト。
【請求項２】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワーク（VLAN）識別子を有する、請求項１に記載のホスト。
【請求項３】
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、アドレス解決プロトコル（ARP）要求パケットを送出するように更に構成され、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送し、
前記スイッチング機器は、前記ARP要求パケットをブロードキャストするように更に構成され、前記ARP要求パケットは、前記アップリンクポートを使用することにより、前記仮想ブリッジに送出され、
前記仮想ブリッジは、前記ARP要求パケットをソフトウェア・デファインド・ネットワーキング（SDN）コントローラに転送し、前記SDNコントローラにより返信されたフローエントリを受信するように更に構成され、前記フローエントリは、ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいてARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送し、
前記仮想ブリッジは、前記ARP応答パケットを前記第１の仮想マシンに返信するように更に構成され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送する、請求項２に記載のホスト。
【請求項４】
前記フローエントリは、MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項３に記載のホスト。
【請求項５】
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートのPFであり、前記仮想ブリッジは、前記PFを使用することにより、前記ネットワークインタフェースカードに接続されるか、或いは
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートの選択されたVFであり、前記仮想ブリッジは、前記選択されたVFを使用することにより、前記ネットワークインタフェースカードに接続され、前記仮想ブリッジに接続された前記選択されたVFは、プロミスキャスモードに設定される、請求項１乃至４のうちいずれか１項に記載のホスト。
【請求項６】
前記第２の仮想マシン及び前記第１の仮想マシンは、同じホスト上で実行し、
前記仮想ブリッジは、前記処理されたデータパケットを受信し、前記スイッチング機器を使用することにより、前記データパケットの前記宛先MACアドレスに従って前記処理されたデータパケットを前記第２の仮想マシンに送出するように更に構成される、請求項１乃至４のうちいずれか１項に記載のホスト。
【請求項７】
前記第２の仮想マシン及び前記第１の仮想マシンは、異なるホスト上で実行し、
前記仮想ネットワーク機能モジュールは、前記仮想ネットワーク機能モジュールと、前記第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記処理されたデータパケットを前記ネットワークインタフェースカードの第２のネットワークポートに送出し、前記トンネルを使用することにより、前記処理されたデータパケットを前記第２の仮想マシンが位置する前記ホストに送出するように構成され、これにより、前記他の仮想ネットワーク機能モジュールは、前記処理されたデータパケットを前記第２の仮想マシンに送出する、請求項１乃至４のうちいずれか１項に記載のホスト。
【請求項８】
クラウドコンピューティングシステムにおけるパケット処理方法であり、前記クラウドコンピューティングシステム内の少なくとも１つのホストは、仮想マシンモニタ（VMM）と少なくとも１つのネットワークインタフェースカードとを含み、第１の仮想マシンが前記ホスト上で実行し、前記VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、前記ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応しており、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続される、方法であって、
前記第１の仮想マシンにより、送出対象のデータパケットの宛先MACアドレスを決定するステップであり、前記送出対象のデータパケットの前記宛先MACアドレスは、前記仮想ブリッジのアップリンクポートのMACアドレスであるステップと、
前記第１の仮想マシンにより、前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するステップであり、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであるステップと、
前記スイッチング機器により、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するステップと、
前記仮想ブリッジにより、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを前記仮想ネットワーク機能モジュールに送出するステップと、
前記仮想ネットワーク機能モジュールにより、前記変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するステップであり、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスであるステップと
を含む方法。
【請求項９】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワーク（VLAN）識別子を有する、請求項８に記載の方法。
【請求項１０】
前記第１の仮想マシンにより、送出対象のデータパケットの宛先MACアドレスを決定するステップは、
前記第１の仮想マシンにより、前記第１の仮想マシンに接続された前記VFを使用することにより、ARP要求パケットを送出するステップであり、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送するステップと、
前記スイッチング機器により、前記ARP要求パケットをブロードキャストするステップであり、前記ARP要求パケットは、前記アップリンクポートを使用することにより、前記仮想ブリッジに送出されるステップと、
前記仮想ブリッジにより、前記ARP要求パケットをSDNコントローラに転送し、前記SDNコントローラにより返信されたフローエントリを受信するステップであり、前記フローエントリは、ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいてARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップと、
前記仮想ブリッジにより、前記ARP応答パケットを前記第１の仮想マシンに返信するステップであり、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップと
を含む、請求項９に記載の方法。
【請求項１１】
前記フローエントリは、MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項１０に記載の方法。
【請求項１２】
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートのPFであり、前記仮想ブリッジは、前記PFを使用することにより、前記ネットワークインタフェースカードに接続されるか、或いは
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートの選択されたVFであり、前記仮想ブリッジは、前記選択されたVFを使用することにより、前記ネットワークインタフェースカードに接続され、前記仮想ブリッジに接続された前記選択されたVFは、プロミスキャスモードに設定される、請求項８乃至１１のうちいずれか１項に記載の方法。
【請求項１３】
前記第２の仮想マシン及び前記第１の仮想マシンは、同じホスト上で実行し、前記方法は、
前記仮想ブリッジにより、前記処理されたデータパケットを受信し、前記スイッチング機器を使用することにより、前記データパケットの前記宛先MACアドレスに従って前記処理されたデータパケットを前記第２の仮想マシンに送出するステップを更に含む、請求項８乃至１１のうちいずれか１項に記載の方法。
【請求項１４】
前記第２の仮想マシン及び前記第１の仮想マシンは、異なるホスト上で実行し、前記方法は、
前記仮想ネットワーク機能モジュールにより、前記仮想ネットワーク機能モジュールと、前記第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記処理されたデータパケットを前記ネットワークインタフェースカードの第２のネットワークポートに送出し、前記トンネルを使用することにより、前記処理されたデータパケットを前記第２の仮想マシンが位置する前記ホストに送出し、これにより、前記他の仮想ネットワーク機能モジュールは、前記処理されたデータパケットを前記第２の仮想マシンに送出するステップを更に含む、請求項８乃至１１のうちいずれか１項に記載の方法。
【請求項１５】
ソフトウェア・デファインド・ネットワーキング（SDN）コントローラと少なくとも１つのホストとを含むクラウドコンピューティングシステムであり、前記ホストは、仮想マシンモニタ（VMM）と少なくとも１つのネットワークインタフェースカードとを含み、第１の仮想マシンが前記ホスト上で実行し、前記VMMは、仮想ブリッジと仮想ネットワーク機能モジュールとを含み、前記ネットワークインタフェースカードは、スイッチング機器と少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応しており、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続される、システムであって、
前記SDNコントローラは、前記仮想ブリッジにより転送された前記第１の仮想マシンからのARP要求パケットを受信し、フローエントリを前記仮想ブリッジに返信するように構成され、前記フローエントリは、ARP取得設定とMACアドレス設定とを含み、前記ARP取得設定は、前記仮想ブリッジに対して前記第１の仮想マシンのためのARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、送出対象のデータパケットの宛先MACアドレスとして使用される前記仮想ブリッジのアップリンクポートのMACアドレスを搬送し、
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するように構成され、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであり、
前記スイッチング機器は、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するように構成され、
前記仮想ブリッジは、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを前記仮想ネットワーク機能モジュールに送出するように構成され、
前記仮想ネットワーク機能モジュールは、前記変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するように構成され、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスである、システム。
【請求項１６】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワーク（VLAN）識別子を有する、請求項１５に記載のシステム。
【請求項１７】
前記第１の仮想マシンは、前記第１の仮想マシンに接続された前記VFを使用することにより、前記ARP要求パケットを送出するように更に構成され、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送し、
前記スイッチング機器は、前記ARP要求パケットをブロードキャストするように更に構成され、前記ARP要求パケットは、前記アップリンクポートを使用することにより、前記仮想ブリッジに送出され、
前記仮想ブリッジは、前記ARP要求パケットを前記SDNコントローラに転送し、前記SDNコントローラにより返信された前記フローエントリを受信するように更に構成され、前記フローエントリは、前記ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいて前記ARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送し、
前記仮想ブリッジは、前記ARP応答パケットを前記第１の仮想マシンに返信するように更に構成され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送する、請求項１６に記載のシステム。
【請求項１８】
前記フローエントリは、前記MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項１７に記載のシステム。
【請求項１９】
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートのPFであり、前記仮想ブリッジは、前記PFを使用することにより、前記ネットワークインタフェースカードに接続されるか、或いは
前記仮想ブリッジの前記アップリンクポートは、前記第１のネットワークポートの選択されたVFであり、前記仮想ブリッジは、前記選択されたVFを使用することにより、前記ネットワークインタフェースカードに接続され、前記仮想ブリッジに接続された前記選択されたVFは、プロミスキャスモードに設定される、請求項１５乃至１８のうちいずれか１項に記載のシステム。
【請求項２０】
前記第２の仮想マシン及び前記第１の仮想マシンは、同じホスト上で実行し、
前記仮想ブリッジは、前記処理されたデータパケットを受信し、前記スイッチング機器を使用することにより、前記データパケットの前記宛先MACアドレスに従って前記処理されたデータパケットを前記第２の仮想マシンに送出するように更に構成される、請求項１５乃至１８のうちいずれか１項に記載のシステム。
【請求項２１】
前記第２の仮想マシン及び前記第１の仮想マシンは、異なるホスト上で実行し、
前記仮想ネットワーク機能モジュールは、前記仮想ネットワーク機能モジュールと、前記第２の仮想マシンが位置するホスト上の他の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記処理されたデータパケットを前記ネットワークインタフェースカードの第２のネットワークポートに送出し、前記トンネルを使用することにより、前記処理されたデータパケットを前記第２の仮想マシンが位置する前記ホストに送出するように構成され、これにより、前記他の仮想ネットワーク機能モジュールは、前記処理されたデータパケットを前記第２の仮想マシンに送出する、請求項１５乃至１８のうちいずれか１項に記載のシステム。
【請求項２２】
第１のプロセッサと、第１のメモリと、少なくとも１つのネットワークインタフェースカードとを含むホストであり、前記ネットワークインタフェースカードは、第２のプロセッサと、第２のメモリと、少なくとも２つのネットワークポートとを含み、第１のネットワークポートは、ネットワークインタフェースカード仮想化能力をサポートし、前記第１のネットワークポートは、少なくとも１つのPF及び複数のVFに対応しており、前記第１のメモリ及び前記第２のメモリは、命令を記憶し、前記第１のプロセッサは、第１の仮想マシンの機能を実現するために、前記第１のメモリ内の第１の命令を実行し、前記第１の仮想マシンは、前記第１のネットワークポートの少なくとも１つのVFに接続され、前記第１のプロセッサは、仮想ブリッジの機能を実現するために、前記第１のメモリ内の第２の命令を実行し、前記第１のプロセッサは、仮想ネットワーク機能モジュールの機能を実現するために、前記第１のメモリ内の第３の命令を実行し、前記第２のプロセッサは、スイッチング機器の機能を実現するために、前記第２のメモリ内の命令を実行するように構成される、ホストであって、
前記第１のプロセッサは、前記第１のメモリ内の前記第１の命令を実行し、以下のステップ、すなわち、送出対象のデータパケットの宛先MACアドレスを決定するステップであり、前記送出対象のデータパケットの前記宛先MACアドレスは、前記仮想ブリッジのアップリンクポートのMACアドレスであるステップ、及び前記第１の仮想マシンに接続された前記VFを使用することにより、前記データパケットを第２の仮想マシンに送出するステップであり、前記データパケットで搬送される宛先IPアドレスは、前記第２の仮想マシンのIPアドレスであり、前記データパケットで搬送される前記宛先MACアドレスは、前記仮想ブリッジの前記アップリンクポートの前記MACアドレスであるステップを実行するように構成され、
前記第２のプロセッサは、前記第２のメモリ内の前記命令を実行し、以下のステップ、すなわち、前記データパケットを受信し、前記仮想ブリッジの前記アップリンクポートを使用することにより、前記データパケットの前記宛先MACアドレスに従って前記データパケットを前記仮想ブリッジに送出するステップを実行するように構成され、
前記第１のプロセッサは、前記第１のメモリ内の前記第２の命令を実行し、以下のステップ、すなわち、前記データパケットを受信し、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンのMACアドレスに変更するステップを実行するように更に構成され、
前記第１のプロセッサは、前記第１のメモリ内の前記第３の命令を実行し、以下のステップ、すなわち、変更されたデータパケットに対してネットワーク機能処理を実行し、前記処理されたデータパケットを送出するステップであり、前記処理されたデータパケットの宛先MACアドレスは、前記第２の仮想マシンの前記MACアドレスであるステップを実行するように更に構成される、ホスト。
【請求項２３】
前記第１のネットワークポートの前記複数のVFは、異なる仮想ローカルエリアネットワークVLAN識別子を有し、
前記第１のプロセッサは、前記第１のメモリ内の前記第１の命令を実行し、以下のステップ、すなわち、前記第１の仮想マシンに接続された前記VFを使用することにより、ARP要求パケットを送出するステップであり、前記ARP要求パケットは、前記ARP要求パケットを送出する前記VFのVLAN識別子を搬送するステップを実行するように更に構成され、
前記第２のプロセッサは、前記第２のメモリ内の前記命令を実行し、以下のステップ、すなわち、前記ARP要求パケットをブロードキャストし、前記アップリンクポートを使用することにより、前記ARP要求パケットを前記仮想ブリッジに送出するステップを実行するように構成され、
前記第１のプロセッサは、前記第１のメモリ内の前記第２の命令を実行し、以下のステップ、すなわち、前記ARP要求パケットをSDNコントローラに転送し、前記SDNコントローラにより返信されたフローエントリを受信するステップであり、前記フローエントリは、ARP取得設定を含み、前記ARP取得設定は、前記仮想ブリッジに対して前記ARP要求パケットに基づいてARP応答パケットを構築するように命令するために使用され、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップ、及び前記ARP応答パケットを前記第１の仮想マシンに返信するステップであり、前記ARP応答パケットは、前記送出対象のデータパケットの前記宛先MACアドレスとして使用される前記仮想ブリッジの前記アップリンクポートの前記MACアドレスを搬送するステップを実行するように更に構成される、請求項２２に記載のホスト。
【請求項２４】
前記フローエントリは、MACアドレス設定を更に含み、前記MACアドレス設定は、前記仮想ブリッジが前記第１の仮想マシンにより前記第２の仮想マシンに送出された前記データパケットを受信したときに、前記データパケットの前記宛先MACアドレスを前記第２の仮想マシンの前記MACアドレスに変更するように、前記仮想ブリッジに対して命令するために使用される、請求項２３に記載のホスト。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
可能な設計では、第１の仮想マシンは、ARPプロセスを使用することにより、送出対象のデータパケットの宛先MACアドレスを取得する。具体的には、
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
可能な設計では、ホスト及びSDNコントローラは、汎用又は専用サーバにより実現される。サーバは、プロセッサと、メモリと、システムバスと、入出力インタフェースとを含む。プロセッサは、システム内のホストの対応する機能をサポートするように構成される。入出力インタフェースは、クラウドコンピューティングシステム内の他のコンポーネントと通信するように構成される。プロセッサは、メモリに記憶された命令を実行する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
図１Ａに示すように、図１Ａは、本発明の実施例によるホスト上の仮想化された構造の概略図である。ホストは、物理サーバである。物理サーバの下部レイヤは、ハードウェアレイヤである。ハードウェアレイヤは、中央処理装置（CPU,  Central  Processing  Unit）、メモリ、ハードディスク及びネットワークインタフェースカードのようなハードウェアリソースを主に含む。サーバ仮想化は、仮想化ソフトウェア（例えば、VMWare  ESX又はCitrix  XEN）を使用することにより、物理サーバ上に複数の仮想マシン（Virtual  Machine,  VM）の仮想化された実行環境を実現する。仮想化された環境を実現するためにサーバ上にインストールされたソフトウェアレイヤは、仮想マシンモニタ（Virtual  Machine  Monitor,  VMM）と呼ばれる。ハードウェアレイヤ上で実行するVMMは、ハードウェアレイヤにおけるハードウェアリソースをスケジューリングし、割り当て、管理する役目をする。複数の仮想マシンVMがVMM上で実行する。VMMは、複数の仮想マシンが互いに隔離した方式で実行することを確保するように、仮想化されたCPU、メモリ、ストレージ、IOデバイス（ネットワークインタフェースカード等）及びイーサーネットスイッチのようなハードウェア環境を各仮想マシンに提供する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
仮想化された実行環境では、VMMは、仮想マシン毎に仮想ネットワークインタフェースカード（Virtual  Network  Interface  Card,  vNIC）を作成し、仮想スイッチvSwitchは、仮想マシンの間及び仮想マシンと外部ネットワークとの間の通信の能力を提供する。各仮想マシンの仮想ネットワークインタフェースカードは、vSwitchの論理ポートに対応している。ホストの物理ネットワークインタフェースカードは、vSwitchを外部物理スイッチに接続するポートに対応している。仮想マシンにより送出又は受信されるデータパケットがVMMを通過するときに、VMM上の仮想ネットワーク機能モジュールは、VMMを通過するデータパケットに対してネットワーク機能処理を実行する。仮想ネットワーク機能モジュールは、ソフトウェアモジュールであり、必要に応じてアップデートできる。したがって、VMM上の仮想ネットワーク機能モジュールは、ユーザに対して豊富なネットワーク機能を提供できる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
本発明のこの実施例では、VM1（第１の仮想マシン）がデータパケットをVM2（第２の仮想マシン）に送出する例が、データパケット処理プロセスを説明するための例として使用される。ネットワークインタフェースカード内のスイッチング機器は、処理のためにVM1からのデータパケットをVMM上の仮想ネットワーク機能モジュールに送出する必要がある。データパケットを送出する前に、第１の仮想マシンは、送出対象のデータパケットの宛先媒体アクセス制御MACアドレスがVMM上の仮想ブリッジのアップリンクポートのMACアドレスであると決定する。第１の仮想マシンは、第１の仮想マシンに接続されたVFを使用することにより、データパケットを第２の仮想マシンに送出する。データパケットで搬送される宛先IPアドレスは、第２の仮想マシンのIPアドレスであり、データパケットで搬送される宛先MACアドレスは、仮想ブリッジのアップリンクポートのMACアドレスである。第１のネットワークポートのスイッチング機器は、VFを使用することにより、第１の仮想マシンにより送出されたデータパケットを受信し、仮想ブリッジのアップリンクポートを使用することにより、データパケットを仮想ブリッジに送出するために、データパケットの宛先MACアドレスに従ってデータパケットに対してレイヤ2転送を実行する。仮想ブリッジは、データパケットを受信し、データパケットの宛先MACアドレスを第２の仮想マシンのMACアドレスに変更し、変更されたデータパケットを仮想ネットワーク機能モジュールに送出する。データパケットの宛先MACアドレスが変更され、これにより、変更されたMACアドレスがデータパケットの以降の送信プロセスにおいて使用されてもよい。これは、データパケットが第２の仮想マシンに送出できることを確保する。変更されたデータパケットを受信した後に、仮想ネットワーク機能モジュールは、ユーザに対して豊富なネットワーク機能サービスを提供するために、変更されたデータパケットに対してネットワーク機能処理を実行し、次に、第２の仮想マシンのMACアドレスに従って処理されたデータパケットを第２の仮想マシンに送出する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
ステップ402：ホスト1のネットワークインタフェースカードの第１のスイッチング機器は、データパケットを受信し、アップリンクポートを使用することにより、データパケットの宛先MACアドレスに従ってデータパケットを第１の仮想ブリッジに送出する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
ステップ408：第２の仮想ブリッジは、VM2のMACアドレスに従ってレイヤ2転送を実行し、第２のスイッチング機器を使用することにより、データパケットをVM2に接続されたVFに送出し、これにより、データパケットをVM2に送出する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
通信バス502は、前述のコンポーネントの間で情報を転送するためのパスを含んでもよい。通信インタフェース504は、他のデバイス、又はイーサーネット、無線アクセスネットワーク（RAN）若しくは無線ローカルエリアネットワーク（Wireless  Local  Area  Network,  WLAN）のような通信ネットワークと通信するために、トランシーバのような装置を使用する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
具体的な実現では、実施例において、コンピュータデバイス500は、複数のプロセッサ、例えば、図５のプロセッサ501及びプロセッサ508を含んでもよい。プロセッサのそれぞれは、シングルコア（single-core  CPU）プロセッサでもよく、或いはマルチコア（multi-core  CPU）プロセッサでもよい。ここでのプロセッサは、データ（例えば、コンピュータプログラム命令）を処理するように構成された１つ以上のデバイス、回路及び／又は処理コアでもよい。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
第２の仮想マシン及び第１の仮想マシンが異なるホスト上で実行するときに、第１の仮想マシンが位置するホストの仮想ネットワーク機能モジュールと、第２の仮想マシンが位置するホストの仮想ネットワーク機能モジュールとの間にトンネルが確立される。処理されたデータパケットは、第２のネットワークポートから、第２の仮想マシンが位置するホストの仮想ネットワーク機能モジュールに送信される。データパケットに対してネットワーク機能処理が完了した後に、第２の仮想マシンが位置するホストの仮想ネットワーク機能モジュールは、第２の仮想マシンが位置するホストの仮想ブリッジを使用することにより、データパケットを第２の仮想マシンに送出する。
【国際調査報告】
2019503599.tif 000010
2019503599.tif 000011
2019503599.tif 000012
2019503599.tif 000013