(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-12
(45)【発行日】2025-06-20
(54)【発明の名称】仮想ネットワークにおいてベアメタル・サーバを構成するリンク層メソッド
(51)【国際特許分類】
H04L 41/40 20220101AFI20250613BHJP
【FI】
H04L41/40
(21)【出願番号】P 2022502257
(86)(22)【出願日】2020-07-15
(86)【国際出願番号】 IB2020056658
(87)【国際公開番号】W WO2021009693
(87)【国際公開日】2021-01-21
【審査請求日】2022-12-23
(32)【優先日】2019-07-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】バラバシュ、キャサリン
(72)【発明者】
【氏名】レシオ、レナート
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2014-023142(JP,A)
【文献】米国特許第10103902(US,B1)
【文献】米国特許出願公開第2012/0042095(US,A1)
【文献】国際公開第2015/133327(WO,A1)
【文献】国際公開第2014/128948(WO,A1)
【文献】米国特許出願公開第2013/0311637(US,A1)
【文献】米国特許出願公開第2015/0163137(US,A1)
【文献】米国特許出願公開第2014/0068750(US,A1)
【文献】米国特許出願公開第2016/0212027(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/40
(57)【特許請求の範囲】
【請求項1】
仮想ネットワーク上で物理サーバと他のネットワーク・ノードとの間のパケット転送をサポートすべく前記物理サーバのための仮想ポートを構成する方法であって、
拡張されたリンク層データ・プロトコル(LLDP)の少なくとも1つの構成プロトコル・データ・ユニット(PDU)を、ネットワークに接続された物理サーバのネットワーク・インタフェース・カード(NIC)に送信することであって、前記少なくとも1つの構成PDUが、仮想ネットワークにおいて前記物理サーバをマップする仮想ネットワーク・ポートのための少なくとも1つの仮想ネットワーク設定を定義する少なくとも1つの拡張Type Length Value(TLV)を備える、前記送信することのために前記ネットワークに接続された物理ネットワーク・ノードのうちの1つまたは複数に備えられる少なくとも1つのプロセッサを使用することを含み、
前記NICが、前記物理サーバの実行環境から完全に分離された独立した処理リソースとメモリ・リソースとを備え、前記NICが、前記少なくとも1つの仮想ネットワーク設定を使用して少なくとも1つの仮想ネットワーク仮想化プロトコルにより発信パケットおよび着信パケットを処理することによって、前記物理サーバと、前記仮想ネットワークの複数のノードのうちの少なくとも1つとの間でパケットの交換をサポートすべく、前記独立した処理リソースとメモリ・リソースとを使用して、前記仮想ネットワーク・ポートを実行するように構成される、方法。
【請求項2】
前記仮想ネットワークが、仮想プライベート・クラウド(VPC)の少なくとも一部である、請求項1に記載の方法。
【請求項3】
前記物理サーバが、VPCの一部として展開されたベアメタル・サーバである、請求項1に記載の方法。
【請求項4】
前記少なくとも1つの仮想ネットワーク仮想化プロトコルが、少なくとも1つの仮想ネットワーク・カプセル化プロトコルを備え、前記仮想ネットワーク・ポートが、前記少なくとも1つの仮想ネットワーク設定を使用して前記少なくとも1つの仮想ネットワーク・カプセル化プロトコルにより発信パケットおよび着信パケットをカプセル化すること、およびカプセル化解除することによって前記パケットの交換をサポートする、請求項1に記載の方法。
【請求項5】
前記少なくとも1つの仮想ネットワーク・カプセル化プロトコルが、Virtual Extensible Local Area Network(VXLAN)、Network Virtualization using Generic Routing Encapsulation(NVGRE)、Generic Network Virtualization Encapsulation(GENEVE)、およびStateless Transport Tunneling(STT)から成るグループのメンバである、請求項4に記載の方法。
【請求項6】
前記少なくとも1つの構成PDUが、前記LLDPの拡張されたData Center Bridging Exchange(DCBX)拡張によって定義され、前記拡張されたDCBXが、前記少なくとも1つの拡張TLVをサポートすべく拡張される、請求項1に記載の方法。
【請求項7】
前記少なくとも1つの仮想ネットワーク設定が、前記仮想ネットワークの仮想アドレスの範囲において前記物理サーバをマップすべく前記NICにおいて展開された前記仮想ネットワーク・ポートに割り当てられた仮想ネットワーク・アドレス、前記仮想ネットワークの仮想ネットワーク識別子(VNID)、VPC識別子(VPC ID)、前記物理サーバに関するセキュリティ・グループ関連付け、および前記物理サーバに関するマルチキャスト・グループ関連付けから成るグループのメンバである、請求項1に記載の方法。
【請求項8】
前記仮想ネットワーク・アドレスが、前記仮想ネットワークのIPアドレスの前記範囲において前記NICにおいて展開される前記仮想ネットワーク・ポートに割り当てられたインターネット・プロトコル(IP)アドレスを定義する、請求項7に記載の方法。
【請求項9】
前記仮想ネットワーク・アドレスが、前記仮想ネットワーク・ポートに割り当てられた媒体アクセス制御(MAC)アドレスを定義することをさらに含み、前記仮想ネットワーク・ポートが、カプセル化およびカプセル化解除のために前記IPアドレスおよび前記MACアドレスを適用する、請求項
8に記載の方法。
【請求項10】
前記物理サーバの前記NICと前記仮想ネットワークの前記少なくとも1つのノードとの間で交換される前記パケットのそれぞれが、ユニキャスト・パケット、マルチキャスト・パケット、およびブロードキャスト・パケットから成るグループのメンバである、請求項1に記載の方法。
【請求項11】
仮想ネットワーク上で物理サーバと他のネットワーク・ノードとの間のパケット転送をサポートすべく前記物理サーバのための仮想ポートを構成するためのシステムであって、
拡張されたリンク層データ・プロトコル(LLDP)の少なくとも1つの構成プロトコル・データ・ユニット(PDU)を、ネットワークに接続された物理サーバのネットワーク・インタフェース・カード(NIC)に送信するコード命令であって、前記少なくとも1つの構成PDUが、仮想ネットワークにおいて前記物理サーバをマップする仮想ネットワーク・ポートのための少なくとも1つの仮想ネットワーク設定を定義する少なくとも1つの拡張Type Length Value(TLV)を備える、前記送信するコード命令を備えるコードを実行する少なくとも1つのプロセッサを備え、
前記NICが、前記物理サーバの実行環境から完全に分離された独立した処理リソースとメモリ・リソースとを備え、前記NICが、前記少なくとも1つの仮想ネットワーク設定を使用して少なくとも1つの仮想ネットワーク仮想化プロトコルにより発信パケットおよび着信パケットを処理することによって、前記物理サーバと、前記仮想ネットワークの複数のノードのうちの少なくとも1つとの間でパケットの交換をサポートすべく、前記独立した処理リソースとメモリ・リソースとを使用して、前記仮想ネットワーク・ポートを実行するように構成される、システム。
【請求項12】
前記仮想ネットワークが、仮想プライベート・クラウド(VPC)の少なくとも一部である、請求項11に記載のシステム。
【請求項13】
前記物理サーバが、VPCの一部として展開されたベアメタル・サーバである、請求項11に記載のシステム。
【請求項14】
前記物理サーバの前記NICと前記仮想ネットワークの前記少なくとも1つのノードとの間で交換される前記パケットのそれぞれが、ユニキャスト・パケット、マルチキャスト・パケット、およびブロードキャスト・パケットから成るグループのメンバである、請求項11に記載のシステム。
【請求項15】
仮想ネットワーク上で物理サーバと他のネットワーク・ノードとの間のパケット転送をサポートすべく前記物理サーバのための仮想ポートを構成するためのコンピュータ・プログラム製品であって、
非一過性のコンピュータ可読記憶媒体と、
拡張されたリンク層データ・プロトコル(LLDP)の少なくとも1つの構成プロトコル・データ・ユニット(PDU)を、ネットワークに接続された物理サーバのネットワーク・インタフェース・カード(NIC)に送信するための第1のプログラム命令であって、前記少なくとも1つの構成PDUが、仮想ネットワークにおいて前記物理サーバをマップする仮想ネットワーク・ポートのための少なくとも1つの仮想ネットワーク設定を定義する少なくとも1つの拡張Type Length Value(TLV)を備え、前記NICが、前記物理サーバの実行環境から完全に分離された独立した処理リソースとメモリ・リソースとを備え、前記NICが、前記少なくとも1つの仮想ネットワーク設定を使用して少なくとも1つの仮想ネットワーク仮想化プロトコルにより発信パケットおよび着信パケットを処理することによって、前記物理サーバと、前記仮想ネットワークの複数のノードのうちの少なくとも1つとの間でパケットの交換をサポートすべく、前記独立した処理リソースとメモリ・リソースとを使用して、前記仮想ネットワーク・ポートを実行するように構成される、前記第1のプログラム命令とを備え、
前記第1のプログラム命令が、前記非一過性のコンピュータ可読記憶媒体から少なくとも1つのプロセッサによって実行される、コンピュータ・プログラム製品。
【請求項16】
前記少なくとも1つの仮想ネットワーク仮想化プロトコルが、少なくとも1つの仮想ネットワーク・カプセル化プロトコルを備え、前記仮想ネットワーク・ポートが、前記少なくとも1つの仮想ネットワーク設定を使用して前記少なくとも1つの仮想ネットワーク・カプセル化プロトコルにより発信パケットおよび着信パケットをカプセル化すること、およびカプセル化解除することによって前記パケットの交換をサポートする、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記少なくとも1つの仮想ネットワーク・カプセル化プロトコルが、Virtual Extensible Local Area Network(VXLAN)、Network Virtualization using Generic Routing Encapsulation(NVGRE)、Generic Network Virtualization Encapsulation(GENEVE)、およびStateless Transport Tunneling(STT)から成るグループのメンバである、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
前記少なくとも1つの構成PDUが、前記LLDPの拡張されたData Center Bridging Exchange(DCBX)拡張によって定義され、前記拡張されたDCBXが、前記少なくとも1つの拡張TLVをサポートすべく拡張される、請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記少なくとも1つの仮想ネットワーク設定が、前記仮想ネットワークの仮想アドレスの範囲において前記物理サーバをマップすべく前記NICにおいて展開された前記仮想ネットワーク・ポートに割り当てられた仮想ネットワーク・アドレス、前記仮想ネットワークの仮想ネットワーク識別子(VNID)、VPC識別子(VPC ID)、前記物理サーバに関するセキュリティ・グループ関連付け、および前記物理サーバに関するマルチキャスト・グループ関連付けから成るグループのメンバである、請求項15に記載のコンピュータ・プログラム製品。
【請求項20】
前記物理サーバの前記NICと前記仮想ネットワークの前記少なくとも1つのノードとの間で交換される前記パケットのそれぞれが、ユニキャスト・パケット、マルチキャスト・パケット、およびブロードキャスト・パケットから成るグループのメンバである、請求項15に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、その一部の実施形態において、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートを構成することに関し、より具体的には、ただし、排他的にではなく、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートの構成をサポートすべくネットワーク・リンク層検出プロトコル(LLDP)を拡張することに関する。
【背景技術】
【0002】
例えば、データ・センタにおける、クラウド・サービスにおける、またはこれらに類似したものにおける、あるいはその組合せにおけるネットワークのスケールの絶え間ない増大が、ネットワークに対する完全なソフトウェア制御を容易化して、それにより、単純かつ高度にスケーラブルなネットワークルーティング構造を可能にすべく、1つまたは複数のネットワークにわたる抽象化層を提供する仮想ネットワーキングにより大きく依拠することにつながる。実際、ネットワーク、作業負荷、およびアプリケーションを仮想化し、その後、これらをネットワーク・インフラストラクチャにわたって移動する能力が、最初のクラウド・アーキテクチャを生み出すことになった。
【0003】
仮想ネットワーキングを適用して、物理サーバから完全に切り離された論理ネットワークは、論理空間にわたって作業負荷を調整すべく迅速に、かつ容易に構築されることが可能である。このようにして、仮想ネットワークは、物理ネットワークの境界を超えて拡張することが可能である。仮想ネットワーキングは、ネットワークのソフトウェア・ベースの管理によって容易化される柔軟性、隔離、および自動化の点でさらに有益である。
【0004】
仮想ネットワーキングは、コンピューティング環境、例えば、1つまたは複数のクライアントにサービスを提供すべくVPCプロバイダによって運用される仮想プライベート・クラウド(VPC)において仮想化された複数の構成要素の間のデータ通信を根本的に容易化する。そのような仮想化された構成要素(ノード)は、仮想マシン(VM)、コンテナ、ユニカーネル、またはこれらに類するもの、あるいはその組合せを含んでよい。
【0005】
しかしながら、仮想ネットワークが、仮想化されたノードのためのネットワーク抽象化を提供することに主として向けられる一方で、一部の展開において、1つまたは複数の物理サーバもまた、仮想ネットワークに接続することによってVPCに含められてよい。そのような物理サーバ、具体的には、VPCの一環として展開されるクライアントによって所有されるベアメタル・サーバは、クライアントによって所有される物理サーバのプライバシ、分離(隔離)、およびセキュリティを確実にするためにクライアントの完全な制御下で実行されるように構成される。
【発明の概要】
【0006】
本発明の第1の態様によれば、仮想ネットワーク上で物理サーバと他のネットワーク・ノードとの間のパケット転送をサポートすべく物理サーバのための仮想ポートを構成する方法であって、拡張されたリンク層データ・プロトコル(LLDP)の1つまたは複数の構成プロトコル・データ・ユニット(PDU)を、ネットワークに接続された物理サーバのネットワーク・インタフェース・カード(NIC)に送信するために1つまたは複数のプロセッサを使用することを含み、構成PDUのうちの1つまたは複数が、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートのための1つまたは複数の仮想ネットワーク設定を定義する1つまたは複数の拡張Type Length Value(TLV)を備える、方法が提供される。NICは、仮想ネットワーク設定のうちの1つまたは複数を使用して1つまたは複数の仮想ネットワーク仮想化プロトコルにより発信パケットおよび着信パケットを処理することによって、物理サーバと仮想ネットワークの複数のノードのうちの1つまたは複数との間のパケットの交換をサポートすべく仮想ネットワーク・ポートを展開するように構成される。
【0007】
本発明の第2の態様によれば、コードを実行する1つまたは複数のプロセッサを備える、仮想ネットワーク上で物理サーバと他のネットワーク・ノードとの間のパケット転送をサポートすべく物理サーバのための仮想ポートを構成するためのシステムが、提供される。コードは、拡張されたリンク層データ・プロトコル(LLDP)の1つまたは複数の構成プロトコル・データ・ユニット(PDU)を、ネットワークに接続された物理サーバのネットワーク・インタフェース・カード(NIC)に送信するコード命令を備える。構成PDUのうちの1つまたは複数は、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートのための1つまたは複数の仮想ネットワーク設定を定義する1つまたは複数の拡張TLVを備える。NICは、仮想ネットワーク設定のうちの1つまたは複数を使用して1つまたは複数の仮想ネットワーク仮想化プロトコルにより発信パケットおよび着信パケットを処理することによって、物理サーバと仮想ネットワークの複数のノードのうちの1つまたは複数との間のパケットの交換をサポートすべく仮想ネットワーク・ポートを展開するように構成される。
【0008】
本発明の第3の態様によれば、非一過性のコンピュータ可読記憶媒体と、拡張されたLLDPの1つまたは複数の構成PDUを、ネットワークに接続された物理サーバのNICに送信するための第1のプログラム命令とを備える、仮想ネットワーク上で物理サーバと他のネットワーク・ノードとの間のパケット転送をサポートすべく物理サーバのための仮想ポートを構成するためのコンピュータ・プログラム製品が、提供される。構成PDUのうちの1つまたは複数は、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートのための1つまたは複数の仮想ネットワーク設定を定義する1つまたは複数の拡張TLVを備える。NICは、仮想ネットワーク設定のうちの1つまたは複数を使用して1つまたは複数の仮想ネットワーク仮想化プロトコルにより発信パケットおよび着信パケットを処理することによって、物理サーバと仮想ネットワークの複数のノードのうちの1つまたは複数との間のパケットの交換をサポートすべく仮想ネットワーク・ポートを展開するように構成される。第1のプログラム命令は、非一過性のコンピュータ可読記憶媒体から1つまたは複数のプロセッサによって実行される。
【0009】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、仮想ネットワークは、仮想プライベート・クラウド(VPC)の少なくとも一部である。
【0010】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、物理サーバは、VPCの一部として展開されたベアメタル・サーバである。
【0011】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、仮想ネットワーク仮想化プロトコルは、1つまたは複数の仮想ネットワーク・カプセル化プロトコルを備える。仮想ネットワーク・ポートは、仮想ネットワーク設定のうちの1つまたは複数を使用して仮想ネットワーク・カプセル化プロトコルのうちの1つまたは複数により発信パケットおよび着信パケットをカプセル化すること、およびカプセル化解除することによってパケットの交換をサポートする。
【0012】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、仮想ネットワーク仮想化プロトコルは、Virtual Extensible Local Area Network(VXLAN)、Network Virtualization using Generic Routing Encapsulation(NVGRE)、Generic Network Virtualization Encapsulation(GENEVE)、またはStateless Transport Tunneling(STT)、あるいはその組合せから成るグループの1つまたは複数のメンバを備える。
【0013】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、構成PDUのうちの1つまたは複数は、LLDPの拡張されたData Center Bridging Exchange(DCBX)によって定義される。拡張されたDCBXは、拡張TLVのうちの1つまたは複数をサポートすべく拡張される。
【0014】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、仮想ネットワーク設定は、物理サーバのネットワーク・ポートを仮想ネットワークの仮想アドレスの範囲においてマップすべく展開された仮想ネットワーク・ポートに割り当てられた仮想ネットワーク・アドレス、仮想ネットワークの仮想ネットワーク識別子(VNID)、VPC識別子(VPC ID)、物理サーバのためのセキュリティ・グループ関連付け、および物理サーバのためのマルチキャスト・グループ関連付けから成るグループの1つまたは複数のメンバを備える。
【0015】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、仮想ネットワーク・アドレスは、仮想ネットワークのIPアドレスの範囲においてNICにおいて展開された仮想ネットワーク・ポートに割り当てられたインターネット・プロトコル(IP)アドレスを定義する。
【0016】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのオプションの実施形態において、仮想ネットワーク・アドレスは、仮想ネットワーク・ポートに割り当てられた媒体アクセス制御(MAC)アドレスを定義し、仮想ネットワーク・ポートは、カプセル化およびカプセル化解除のためにIPアドレスおよびMACアドレスを適用する。
【0017】
第1の態様、第2の態様、または第3の態様、あるいはその組合せのさらなる実施形態において、物理サーバのNICと、仮想ネットワークのノードのうちの1つまたは複数との間で交換されるパケットのそれぞれは、ユニキャスト・パケット、マルチキャスト・パケット、およびブロードキャスト・パケットから成るグループのメンバである。
【0018】
本開示の他のシステム、方法、特徴、および利点が、添付の図面、および後段の詳細な説明を検討すると、当業者には明白である、または明白となる。すべてのそのようなさらなるシステム、方法、特徴、および利点が、本説明の範囲内に含められること、本開示の範囲内にあること、および添付の特許請求の範囲によって保護されることが意図される。
【0019】
別段、定義されない限り、本明細書において使用されるすべての技術用語または科学用語、あるいはその両方は、本発明が属する分野の当業者によって一般に理解されるのと同一の意味を有する。本明細書において説明される方法および材料と類似した、または均等の方法および材料が、本発明の実施形態の実施または試験において使用されることが可能であるものの、例示的な方法または材料、あるいはその両方について、後段で説明される。矛盾が生じる場合、定義を含む本特許明細書が支配する。さらに、材料、方法、および実施例は、例示的であるに過ぎず、必ずしも限定的であることは意図されていない。
【0020】
本発明の実施形態の方法またはシステム、あるいはその両方の実施は、選択されたタスクを手動で、自動で、またはその両方の組合せで実行すること、または完了することを含むことが可能である。さらに、本発明の方法またはシステム、あるいはその両方の実施形態の実際の装備および設備により、いくつかの選択されたタスクは、オペレーティング・システムを使用してハードウェアによって、ソフトウェアによって、またはファームウェアによって、あるいはその組合せによって実施されることが可能である。
【0021】
例えば、本発明の実施形態による選択されたタスクを実行するためのハードウェアは、チップまたは回路として実施されることが可能である。ソフトウェアとして、本発明の実施形態による選択されたタスクは、任意の適切なオペレーティング・システムを使用してコンピュータによって実行される複数のソフトウェア命令として実施されることが可能である。本発明の例示的な実施形態において、本明細書において説明される方法またはシステム、あるいはその両方の例示的な実施形態による1つまたは複数のタスクは、複数の命令を実行するためのコンピューティング・プラットフォームなどのデータ・プロセッサによって実行される。オプションとして、データ・プロセッサは、命令またはデータ、あるいはその両方を記憶するための揮発性メモリ、または命令またはデータ、あるいはその両方を記憶するための、例えば、磁気ハードディスクもしくは取外し可能な媒体、またはその両方である、不揮発性メモリ、あるいはその両方を含む。オプションとして、ネットワーク接続も提供される。ディスプレイ、またはキーボードもしくはマウスなどのユーザ入力デバイス、あるいはその両方も、オプションとして提供される。
【0022】
本発明の一部の実施形態が、添付の図面を参照して、単に例として、本明細書において説明される。次に、特に図面を詳細に参照して、示される詳細が、例示であり、本発明の実施形態の例示的な説明のためであることが強調される。これに関して、図面と一緒に理解される説明は、本発明の実施形態がどのように実施されてよいかを当業者に明白にする。
【図面の簡単な説明】
【0023】
【
図1】本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに仮想ネットワーク設定を転送する例示的なプロセスを示すフローチャートである。
【
図2】本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに仮想ネットワーク設定を転送するための例示的なシステムを示す概略図である。
【
図3】本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに仮想ネットワーク設定を提供するための例示的なシーケンスを示す図である。
【
図4A】本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに提供される仮想ネットワーク設定をキューに入れること、送信すること、および受信することを行うべく展開される例示的な状態マシンを示す概略図である。
【
図4B】本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに提供される仮想ネットワーク設定をキューに入れること、送信すること、および受信することを行うべく展開される例示的な状態マシンを示す概略図である。
【発明を実施するための形態】
【0024】
本発明は、その一部の実施形態において、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートを構成することに関し、より具体的には、ただし、排他的にではなく、仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートの構成をサポートすべくネットワークLLDPプロトコルを拡張することに関する。
【0025】
本発明の一部の実施形態によれば、仮想ネットワーク上で物理サーバと仮想ネットワークの複数のネットワーク・ノードのうちの1つまたは複数との間のデータ・パケットの交換をサポートするために、仮想ネットワークにおいて物理サーバをマップすべく展開される仮想ネットワーク・ポートを構成するための方法、システム、およびコンピュータ・プログラム製品が、提供される。仮想ネットワーク・ポートの構成は、仮想ネットワーク・ポートに割り当てられた仮想ネットワーク設定の配信をサポートすべく拡張された1つまたは複数のリンク層構成プロトコルを使用して行われる。そのようなリンク層構成プロトコルは、例えば、リンク層検出プロトコル(LLDP)、LLDPプロトコルの拡張であるData Center Bridging Capabilities Exchange Protocol(DCBX)、またはこれらに類するもの、あるいはその組合せを含んでよい。
【0026】
仮想ネットワーク、例えば、ソフトウェア定義ネットワーク(SDN)は、例えば、仮想マシン、仮想ルータ、仮想ルータ・インタフェース、仮想エンドポイントを介してマップされた物理ホスト、仮想エンドポイントを介してマップされた物理ルータ、コンテナ、ユニカーネル、1つまたは複数の仮想リソースまたはハードウェア・リソース、あるいはその両方をマップする仮想インタフェース、またはこれらに類するもの、あるいはその組合せを含んでよい複数のネットワーク・ノードを接続すべく物理ネットワークにわたる論理ネットワーク抽象化を提供してよい。仮想ネットワークは、1つまたは複数のクライアントにサービスを提供すべく仮想プライベート・クラウド(VPC)プロバイダによって運用されるVPCの少なくとも一部を構成してよい。
【0027】
仮想ネットワークのネットワーク・ノードは、仮想ネットワークにわたった仮想ドメインを構築するため、および使用するために複数の仮想ネットワーク仮想化プロトコル、または仮想ネットワーク・トンネリング・プロトコル、あるいはその両方の1つまたは複数を適用する。例えば、ネットワーク・ノードは、ネットワーク・ノードの間でデータ・パケットを交換すべく1つまたは複数の仮想ネットワーク・カプセル化プロトコル、例えば、Virtual Extensible LAN(VXLAN)、Network Virtualization using Generic Routing Encapsulation(NVGRE)、Generic Network Virtualization Encapsulation(GENEVE)、Stateless Transport Tunneling(STT)、またはこれらに類するもの、あるいはその組合せを使用してよい。
【0028】
物理サーバ、具体的には、VPCの一部として展開されてよいクライアントによって所有されるベアメタル・サーバは、クライアントによって所有される物理サーバのプライバシ、分離(隔離)、およびセキュリティを確実にするために、通常、VPCプロバイダ・ソフトウェア構成要素を実行してはならない。VPCプロバイダ・ソフトウェア構成要素は、物理サーバによって実行されてはならないので、特に、仮想ネットワーク接続を実施するために、物理サーバは、そのため、仮想ネットワーク仮想化プロトコルを使用してVPCによって定義される仮想ネットワーク上でネットワーク・ノードと直接に通信することができない。
【0029】
したがって、仮想ネットワーク・ポートは、仮想ネットワークにおいて物理サーバをマップすること、および物理サーバから仮想ネットワーク・ノードへのデータ・パケット(例えば、ユニキャスト・パケット、マルチキャスト・パケット、またはブロードキャスト・パケット、あるいはその組合せ)の送信、または物理サーバにおける仮想ネットワーク・ノードからのパケットの受信、あるいはその両方をサポートすることを行うべく展開されてよい。この目的で、仮想ネットワーク・ポートは、仮想ネットワーク・ノードによって使用される仮想ネットワーク・カプセル化プロトコルにより物理サーバから送信される発信パケット(エグレス・トラフィック)をカプセル化してよい。イングレス・パス上で、仮想ネットワーク・ポートは、物理サーバを宛先とする仮想ネットワーク・ノードのうちの1つまたは複数から受信された着信パケットをカプセル化解除してよい。
【0030】
しかし、クライアントによって所有される物理サーバのプライバシ、分離、およびセキュリティが、VPCプロバイダ・ソフトウェア構成要素を実行することによって危険に晒されてはならないので、仮想ネットワーク・ポートは、物理サーバ自体の上で展開されてはならず、具体的には、クライアントにサービスを提供する物理サーバの実行環境内で展開されてはならない。
【0031】
クライアントの実行環境のプライバシを維持しながら、仮想ネットワークに対する物理サーバの接続を可能にするため、仮想ネットワーク・ポートは、仮想ネットワークが展開されるネットワークに物理サーバを接続する1つまたは複数のネットワーク回路において展開されてよい。具体的には、仮想ネットワーク・ポートは、ネットワーク・インタフェース、例えば、物理サーバをスイッチに接続する物理サーバのネットワーク・インタフェース・コントローラ(NIC)において展開されてよい。特に、物理サーバのネットワーク・インタフェースは、仮想ネットワーク・ポートを実現するための十分な処理リソースと、メモリ・リソースとを備える強化されたネットワーク・インタフェースであってよい。
【0032】
仮想ネットワーク・ノードによって使用される仮想ネットワーク仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコルあるいはその両方により物理サーバと仮想ネットワーク・ノードとの間で交換されるパケットを処理するために、仮想ネットワーク・ポートは、仮想ネットワークに特有であり、かつ仮想ネットワーク・ポートを一意に識別する1つまたは複数の仮想ネットワーク設定を適用しなければならない。これらのネットワーク設定は、例えば、仮想ネットワーク識別子(VNID)、VPC識別子(VPC ID)、仮想ネットワークのために定義されたIPアドレスの範囲において仮想ネットワーク・ポートに割り当てられたインターネット・プロトコル(IP)アドレス、仮想ネットワークにおいて一意である仮想ネットワーク・ポートに割り当てられた媒体アクセス制御(MAC)、仮想ネットワークにおける物理サーバのセキュリティ・グループ(SG)関連付け、またはこれらに類するもの、あるいはその組合せを含んでよい。
【0033】
物理サーバを仮想ネットワークに接続すべく展開される仮想ネットワーク・ポートは、仮想ネットワークを構成すること、制御すること、管理すること、または監視すること、あるいはその組合せを行うように展開され、かつ実行される1つまたは複数の仮想ネットワーク・コントローラ、例えば、SDNコントローラ、またはこれらに類するもの、あるいはその組合せによって本来的に制御されるわけではない。このことは、本明細書において説明されるとおり、VPCプロバイダが、物理サーバ上にソフトウェア構成要素を展開することを、そのようなソフトウェア構成要素が、クライアントのプライバシ、セキュリティ、および隔離を意図的に、または意図せずに、あるいはその組合せで侵害することがあるので、してはならないためである。したがって、仮想ネットワーク・コントローラは、仮想ネットワーク・ポートに仮想ネットワーク設定を送信する必要がある。
【0034】
さらに、VPCにおける物理サーバの一部の展開において、仮想ネットワーク・コントローラは、簡易ネットワーク管理プロトコル(SNMP)、Network Configuration Protocol(NETCONF)、およびこれらに類するもの、あるいはその組合せなどの高レベル・ネットワーク管理プロトコルを使用して物理サーバのネットワーク・インタフェースを管理することができないことがある。高いスケーラビリティを(多数の仮想ネットワーク・ポートをサポートすべく)サポートするため、複雑度を低減するため、またはレガシ・ネットワーキング設備をサポートするため、あるいはその組合せを行うために、仮想ネットワーク・コントローラは、1つまたは複数のリンク層構成プロトコル、例えば、LLDP、DCBX、またはこれらに類するもの、あるいはその組合せを使用して仮想ネットワーク・ポートを実施する仮想ネットワーク設定を、強化されたネットワーク・インタフェースに送信してよい。そのようなリンク層構成プロトコルは、すべてではないとしても、ほとんどのネットワーク・インフラストラクチャにおいて一般的に使用され、それ故、物理サーバの強化されたネットワーク・インタフェースを含む既存のネットワーキング設備のほとんどによってサポートされる。
【0035】
特に、リンク層構成プロトコルは、仮想ネットワーク・ポートに対する仮想ネットワーク設定の配信をサポートするように拡張されてよい。例えば、1つまたは複数のType Length Value(TLV)要素が、物理サーバに対する、具体的には、物理サーバの強化されたネットワーク・インタフェースに対する仮想ネットワーク・コントローラからの仮想ネットワーク設定の配信を可能にすべくリンク層構成プロトコルに追加されてよい。
【0036】
仮想ネットワーク・コントローラは、仮想ネットワークにおいて物理サーバをマップするために仮想ネットワーク・ポートに割り当てられた仮想ネットワーク設定をエンコードすること、または定義すること、あるいはその両方を行う拡張TLVのうちの1つまたは複数を送信してよい。拡張TLVをサポートするように構成された強化されたネットワーク・インタフェースは、拡張TLVから仮想ネットワーク設定を抽出してよく、仮想ネットワーク・ポートを展開すべく仮想ネットワーク設定を適用してよい。
【0037】
適切に展開された後、仮想ネットワーク・ポートは、仮想ネットワーク・ポートに割り当てられた仮想ネットワーク設定を使用して仮想ネットワークにおいて用いられる仮想ネットワーク仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコル、あるいはその両方により発信パケットおよび着信パケットを処理してよい。例えば、仮想ネットワーク・ポートは、仮想ネットワーク・ポートに割り当てられた仮想ネットワーク設定を使用して仮想ネットワーク・カプセル化プロトコルにより発信パケットをカプセル化すること、および着信パケットをカプセル化解除することをそれぞれ行ってよい。
【0038】
仮想ネットワークにおいて物理サーバをマップすべく物理サーバの強化されたネットワーク・インタフェースにおいて仮想ネットワーク・ポートを構成すること、および展開することは、仮想ネットワークに物理サーバを接続するための現在、存在する方法およびシステムと比較して、大きな利点をもたらすことがある。
【0039】
物理サーバ、特に、クライアントによって所有されるベアメタル・サーバを仮想ネットワークに接続すること、例えば、クライアントの完全な制御下にあるベアメタル・サーバを、クライアントにサービスを提供すべくVPCプロバイダによって運用されるVPCに接続することは、とても望ましく、かつ多くの事例において、複数のアプリケーションのために不可欠であることがある。
【0040】
物理サーバを仮想ネットワークに接続するための既存の方法のいくつかは、物理サーバ上に、仮想ネットワークのプロバイダ、すなわち、VPCプロバイダによって所有され、かつ制御される仮想ネットワーク構成要素(例えば、仮想スイッチ)を装備するために仮想化層を展開すること、およびクライアントによって所有される物理サーバの代わりに、クライアントに単一の仮想サーバを開示することを含んでよい。このソリューションは、簡易であり、かつ物理サーバを、そのため、他の任意の仮想ノードと同様に見なすVPCにおいて適用される仮想ネットワーク・アーキテクチャととてもよく整合性がとれている。しかし、このアプローチは、そのため、物理サーバの実行環境を完全に制御していないクライアントに提供されるクライアントによって所有される物理サーバ・サービスを大きく危険に晒すことがある。対照的に、完全に別個の実行環境を維持する物理サーバの強化されたネットワーク・インタフェースにおいて仮想ネットワーク・ポートを展開することは、そのため、クライアント(単一のテナント)の完全な制御下にある物理サーバの実行環境に影響を及ぼすことも、影響を与えることも、またはそれを危険に晒すことも、あるいはその組合せをもたらすこともない。
【0041】
他の既存の方法は、スマートNICが、クライアントには不可視である制御インタフェースを介して仮想ネットワークのプロバイダ、すなわち、VPCプロバイダによって完全に制御されるスマートNIC独自の完全な実行環境(プロセッサ、メモリ・リソース、制御ネットワークに対する接続)を有する、物理サーバの強化されたネットワーク・インタフェース(スマートNIC)において仮想ネットワーク・ポートを展開することを含んでよい。また、このソリューションは、VPCにおいて適用される仮想ネットワーク・アーキテクチャととてもよく整合性がとれていることもある。しかし、このアプローチは、大きな限界をもたらすこともある。第1に、スイッチを構成すること、または管理すること、あるいはその両方は、仮想ネットワーク・ドメインではなく、物理ネットワーク・ドメインにある必要があり、そのため、仮想ネットワーク・アーキテクチャを壊すことがある。さらに、スイッチにおける仮想ネットワーク・ポートの展開実施は、各スイッチ・ベンダに特有であることがあり、そのため、大きなスケーラビリティ限界およびベンダ・ロックイン限界をもたらすことがある。さらに、スマートNICを介した(遠隔)制御をサポートするため、スマートNICは、複雑度が大きいことがあり、それ故、開発または製造、あるいはその両方の点で費用が高くつくことがある。他方、本発明により物理サーバの強化されたネットワーク・インタフェース上に展開される仮想ネットワーク・ポートは、物理サーバの強化されたネットワーク・インタフェースに対する仮想ネットワーク設定の配信をサポートすべく拡張された標準の、一般的に使用されるネットワーク・リンク層構成プロトコル(例えば、LLDP、DCBX)を使用して構成される。これらのリンク層構成プロトコルは、本来的に拡張可能であり、したがって、拡張構成、および、オプションとして、拡張応答オブジェクトで拡張する労力が些細なものとなる。標準のネットワーキング設備、例えば、物理サーバの強化されたネットワーク・インタフェースが、これらのリンク層構成プロトコルを本来的にサポートするので、特別な能力も、特徴も、または機能も、あるいはその組合せも、強化されたネットワーク・インタフェースにおいて実施される必要がなく、そのため、それを大幅に簡易にし、費用を安くする。
【0042】
強化されたネットワーク・インタフェースに仮想ネットワーク設定を配信するためにリンク層構成プロトコルを用いることは、物理サーバが、例えば、SNMP、NETCONF、またはこれらに類するもの、あるいはその組合せなどの1つまたは複数のより高レベルのネットワーク管理プロトコルを使用して遠隔で管理されることが可能でない複数の一般的な、普及している仮想ネットワークまたはVPC展開、あるいはその両方においてさらに利益が大きいことがある。ネットワーク管理プロトコルを使用して物理サーバにアクセスすることは、不可能であることがある一方で、物理サーバ、特に、物理サーバの強化されたネットワーク・インタフェースは、低レベルのリンク層構成プロトコル、例えば、LLDPおよびDCBXを使用して自然にアクセス可能である。これらの低レベルのリンク層構成プロトコルは、それなしにはネットワークが適切に展開されないことがあるネットワーク構成、ネットワーク制御、またはネットワーク管理、あるいはその組合せの基礎的で、不可欠な部分を構成する。したがって、強化されたネットワーク・インタフェースは、これらのリンク層構成プロトコルのうちの1つまたは複数のプロトコルの構成PDUをサポートすること、およびそのような構成PDUに応答することをしなければならない。
【0043】
他の既存の方法は、物理サーバをネットワークに接続するスイッチにおいて仮想ネットワーク・ポートを展開することを含んでよい。このソリューションは、現在、存在するスイッチが、通常、仮想ネットワーク・ポートをサポートすることができるので、適用するのがとても簡易であることがある。また、このソリューションは、クライアント(単一のテナント)に、すなわち、単一のテナントをホストする物理サーバに完全にトランスペアレントでもあり、そのため、クライアントの完全なプライバシ、分離、およびセキュリティを確実にする。しかし、このアプローチは、大きな限界をもたらすことがある。第1に、スイッチが、仮想ネットワーク・ドメインにおいてではなく、物理ネットワーク・ドメインにおいて構成されること、または管理されること、あるいはその両方が行われることを必要とし、そのため、仮想ネットワーク・アーキテクチャを壊す。さらに、スイッチにおける仮想ネットワーク・ポートの展開実施は、各スイッチ・ベンダに特有であることがあり、それにより、大きなスケーラビリティ限界およびベンダ・ロックイン限界をもたらすことがある。このことは、物理サーバ側における強化されたネットワーク・インタフェース上の仮想ネットワーク・ポート展開と対照的である。したがって、仮想ネットワーク・ポートが、物理サーバ側で展開され、それにより、独立であり、スイッチにかかわりがなく、それにより、仮想ネットワーク・ポートを展開するために使用され得る、実質的に、任意のベンダからの任意のスイッチの使用が可能になるので、スケーラビリティが大きく高められ、ベンダ・ロックインが回避される。
【0044】
本発明の少なくとも1つの実施形態を詳細に説明する前に、本発明は、後段の説明に記載される、または図面または実施例、あるいはその両方において例示される、あるいはその組合せが行われる構成要素または方法、あるいはその両方の構築の詳細および構成に対する本発明の適用に必ずしも限定されないことを理解されたい。本発明は、他の実施形態が可能であり、あるいは様々な様態で実施されること、または実行されることが可能である。
【0045】
当業者には認識されるとおり、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として実施されてよい。したがって、本発明の態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコード、その他を含む)、または本明細書においてすべて「回路」、「モジュール」、もしくは「システム」として総体的に参照されることがあるソフトウェア態様とハードウェア態様を組み合わせる実施形態の形態をとってよい。さらに、本発明の態様は、コンピュータ可読プログラム・コードがその上に実現されている1つまたは複数のコンピュータ可読媒体において実現されたコンピュータ・プログラム製品の形態をとってよい。
【0046】
1つまたは複数のコンピュータ可読媒体の任意の組合せが、利用されてよい。コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持すること、および記憶することができる有形デバイスであることが可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、例えば、電子システム、磁気システム、光システム、電磁システム、赤外線システム、もしくは半導体システム、電子装置、磁気装置、光装置、電磁装置、赤外線装置、もしくは半導体装置、または電子デバイス、磁気デバイス、光デバイス、電磁デバイス、赤外線デバイス、もしくは半導体デバイス、あるいは以上の任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、以下、すなわち、1つまたは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはFlashメモリ)、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、または以上の任意の適切な組合せを含む。本明細書の脈絡において、コンピュータ可読記憶媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって、またはそれらに関連して使用されるようにプログラムを包含すること、または記憶することができる任意の有形媒体であってよい。
【0047】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、または搬送波の一部として、コンピュータ可読プログラム・コードがそこに実現されている伝播させられるデータ信号を含んでよい。そのような伝播させられる信号は、電磁形態、光形態、またはその両方の任意の適切な組合せを含むが、これらには限定されない様々な形態のうちのいずれをとってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、命令実行装置、または命令実行デバイスによって、またはそれらに関連して使用されるようにプログラムを通信すること、伝播させること、またはトランスポートすることができる任意のコンピュータ可読媒体であってよい。
【0048】
コンピュータ可読媒体上に実現されたコンピュータ可読プログラム命令を備えるコンピュータ・プログラム・コードは、無線、有線、光ファイバ・ケーブル、RF、その他、または以上の任意の適切な組合せを含むが、これらには限定されない任意の適切な媒体を使用して送信されてよい。
【0049】
本発明の態様のための動作を実行するためのプログラム・コードは、Java(R)、Smalltalk、C++、またはこれらに類するものなどのオブジェクト指向プログラム言語、および「C」プログラミング言語または類似したプログラミング言語などの従来のプログラミング言語を含め、1つまたは複数のプログラミング言語の任意の組合せで書かれてよい。
【0050】
プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、かつ部分的に遠隔コンピュータ上で、または完全に遠隔コンピュータ上もしくは遠隔サーバ上で実行されてよい。完全に遠隔コンピュータ上もしくは遠隔サーバ上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、あるいは接続は、外部コンピュータに対して行われてよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)。プログラム・コードは、コンピュータ可読記憶媒体からそれぞれのコンピューティング・デバイスもしくは処理デバイス、またはその両方に、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはその組合せを経由して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされることが可能である。
【0051】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して本明細書において説明される。フローチャート図またはブロック図、あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図、あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることが可能であることが理解されよう。
【0052】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施例のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定される論理機能を実施するための1つまたは複数の実行可能命令を備える命令のモジュール、セグメント、または部分を表すことがある。一部の代替の実施例において、ブロックに記載される機能は、図に記載される順序を外れて生じてよい。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されてよく、またはブロックは、ときとして、関与する機能に依存して、逆の順序で実行されてよい。また、ブロック図またはフローチャート図、あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または動作を遂行する、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施されることが可能であることにも留意されたい。
【0053】
次に
図1を参照すると、
図1は、本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに仮想ネットワーク設定を転送する例示的なプロセスを示すフローチャートを提示する。
【0054】
例示的なプロセス110、120、および130が、仮想ネットワーク、例えば、物理ネットワークにわたる論理ネットワーク抽象化を提供するSDNにおいて物理サーバをマップすべく展開された仮想ネットワーク・ポート104に1つまたは複数の仮想ネットワーク設定を転送すべく実行されてよい。仮想ネットワーク・ポート104は、例えば、仮想ネットワークのネットワーク・ノードによって適用される1つまたは複数の仮想ネットワーク・カプセル化プロトコル、例えば、VXLAN、NVGRE、GENEVE、STT、またはこれらに類するもの、あるいはその組合せにより発信パケットおよび着信パケットをカプセル化すること、およびカプセル化解除することを行うことによって、物理サーバと、仮想ネットワークに接続された1つまたは複数のネットワーク・ノードとの間でパケット転送をサポートするように展開される。
【0055】
仮想ネットワークは、互いの間でデータ・パケットを交換すべく仮想ネットワーク仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコル、あるいはその両方のうちの1つまたは複数を適用する複数のネットワーク・ノードを備えるVPC(複数の仮想ネットワークにまたがって広がってよい)の少なくとも一部を構成してよい。物理サーバ、例えば、単一テナントのベアメタル・サーバが、VPCの一部として展開されてよい。しかし、物理サーバ、具体的には、ベアメタル・サーバは、仮想化層をまったく有さないことがあり、そのため、仮想ネットワーク仮想化プロトコルを用いる仮想ネットワーク・ノードと通信すべく仮想ネットワークに直接に接続することができない。
【0056】
プロセス110は、仮想ネットワーク・ポート104のために割り当てられた仮想ネットワーク設定、例えば、VNID、VPC ID、IPアドレス、MACアドレス、物理サーバのセキュリティ・グループ(SG)関連付け、またはこれらに類するもの、あるいはその組合せを物理サーバに転送すべく、例えば、仮想ネットワーク・コントローラ102によって実行されてよい。仮想ネットワーク・コントローラ102は、通常、物理サーバに仮想ネットワーク設定を直接に転送することをするのではなく、ネットワークにおいて展開された1つまたは複数のリンク層エージェントと通信する。仮想ネットワーク・コントローラ102は、1つまたは複数のより高レベルのプロトコル、例えば、ネットワーク管理プロトコル(例えば、SNMP、NETCONF、その他)を使用してリンク層エージェントに仮想ネットワーク設定を転送してよい。
【0057】
プロセス120は、例えば、スイッチ、具体的には、物理サーバをネットワークに接続するエッジ・スイッチにおける物理ネットワーク・ノードのうちの1つまたは複数において展開されたリンク層エージェントのうちの1つまたは複数によって実行されてよい。リンク層エージェントは、仮想ネットワーク設定の配信をサポートすべく拡張された1つまたは複数のネットワーク・リンク層構成プロトコル、例えば、LLDP、またはそれに類するもの、あるいはその組合せをサポートするように構成されてよい。特に、LLDPプロトコルは、仮想ネットワーク設定の配信のためにLLDPプロトコルを拡張すべく追加された1つまたは複数の拡張TLVを含むべく拡張される。したがって、リンク層エージェントは、仮想ネットワーク・コントローラ102から受信された仮想ネットワーク設定を備える1つまたは複数のLLDP構成PDUを作成してよく、物理サーバにLLDP構成PDUを送信してよい。
【0058】
プロセス130は、物理サーバの強化されたネットワーク・インタフェース上で実行されること、実施されること、または実現されること、あるいはその組合せが行われる仮想ネットワーク・ポート104によって実行されてよい。仮想ネットワーク・ポート104は、仮想ネットワーク設定を定義するためにLLDPプロトコルに付加された拡張TLVの受信、デコード、または処理、あるいはその組合せをサポートすべく構成される。したがって、仮想ネットワーク・ポート104は、ネットワーク・コントローラ102から1つまたは複数の拡張TLVを受信してよく、受信された拡張TLVから抽出された仮想ネットワーク設定をさらに適用してよい。
【0059】
仮想ネットワーク設定を受信した後、仮想ネットワーク・ポート104は、受信された仮想ネットワーク設定を使用して1つまたは複数の仮想ネットワーク仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコル、あるいはその両方により、物理サーバと、仮想ネットワークのネットワーク・ノードのうちの1つまたは複数との間でパケットを交換してよい。特に、仮想ネットワーク・ポート104は、物理サーバから仮想ネットワーク・ノードに送信されるパケットをカプセル化してよく、物理サーバに向けられる仮想ネットワーク・ノードから受信されたパケットをカプセル化解除してよい。
【0060】
また、本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに仮想ネットワーク設定を転送するための例示的なシステムの概略図である
図2も参照される。
【0061】
例示的なネットワーク化されたシステム200は、スイッチ206を経由してネットワーク210、例えば、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはこれらに類するもの、あるいはその組合せに接続された物理サーバ202を含んでよい。物理サーバ202は、1つまたは複数のネットワークに対する接続をサポートするネットワーク・インタフェース220、例えば、NICまたはそれに類するもの、あるいはその組合せを使用してスイッチ206に接続してよい。ネットワーク・インタフェース220は、1つまたは複数のプロセッサと、プログラム・ストアまたはデータ・ストアのためのメモリ・リソースとを備える強化されたネットワーク・インタフェース220、例えば、スマートNICであってよい。
【0062】
仮想ネットワーク212が、物理ネットワーク210にわたる論理ネットワーク抽象化を提供する。特に、ネットワーク210は、1つまたは複数のVPCをホストするデータ・センタのインフラストラクチャの一部であってよい。物理ネットワーク210にわたる論理ネットワーク抽象化を提供する仮想ネットワーク212、例えば、SDNは、複数のネットワーク・ノード204を備えるVPCの少なくとも一部を構成してよい。ネットワーク・ノード204、例えば、仮想マシン、仮想ルータ、仮想ルータ・インタフェース、仮想エンドポイントを介してマップされた物理ホスト、仮想エンドポイントを介してマップされた物理ルータ、コンテナ、ユニカーネル、1つもしくは複数の仮想リソースもしくはハードウェア・リソース、もしくはその組合せをマップする仮想インタフェース、またはこれらに類するもの、あるいはその組合せは、ネットワーク210、例えば、サーバ、スイッチ、ルータ、ネットワーク設備、またはこれらに類するもの、あるいはその組合せに接続された複数の物理ノードのうちの1つまたは複数によってホストされる(実行される)。
【0063】
1つまたは複数のプロセッサと、プログラム・ストアまたはデータ・ストア、あるいはその両方のためのメモリ・リソースとを備えるホスティング物理ネットワーク・ノードのうちの1つまたは複数が、1つまたは複数のソフトウェア・モジュール、例えば、プロセス、スクリプト、アプリケーション、エージェント、ユーティリティ、ツール、オペレーティング・システム(OS)、サービス、プラグイン、アドオン、またはこれらに類するもの、あるいはその組合せを実行してよい。ソフトウェア・モジュールのそれぞれは、それぞれのプログラム・ストアから物理ネットワーク・ノードのプロセッサによって実行されてよい複数のプログラム命令を備える。特に、物理ネットワーク・ノードのうちの1つまたは複数が、仮想ネットワーク212を構成すること、制御すること、または監視すること、あるいはその組合せを行うべく仮想ネットワーク・コントローラ102を実行してよい。例えば、SDNの場合、SDNコントローラの1つまたは複数のインスタンスが、SDNを構成すること、制御すること、または監視すること、あるいはその組合せを行うべく物理ネットワーク・ノードのうちの1つまたは複数によって実行されてよい。オプションとして、ネットワーク・ノード204のうちの1つまたは複数、具体的には、仮想化されたネットワーク・ノード204が、SDNコントローラの1つまたは複数のインスタンスを実行してよい。
【0064】
物理サーバ202をネットワーク210に接続するスイッチ206は、スイッチ206が物理サーバ202との関係で仮想ネットワーク212のエッジに配置されるので、エッジ・スイッチと見なされてよい。スイッチ206は、1つまたは複数のハードウェア要素を含んでよく、リンク層エージェント106を実行すること、実施すること、または容易化すること、あるいはその組合せを行ってよい。スイッチ206は、1つまたは複数のハードウェア要素、例えば、回路、構成要素、集積回路(IC)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、デジタル・シグナル・プロセッサ(DSP)、ネットワーク・プロセッサ、またはこれらに類するもの、あるいはその組合せを含んでよい。スイッチ206は、オプションとして、スイッチ206のプログラム・ストアからスイッチ206のプロセッサによって実行されてよい複数のプログラム命令をそれぞれが備える1つまたは複数のソフトウェア・モジュールを実行するために1つまたは複数のプロセッサと、プログラム・ストアまたはデータ・ストア、あるいはその両方のためのメモリ・リソースとを備えてよい。したがって、スイッチ206上に展開されたリンク層エージェント106は、スイッチ206のソフトウェア・モジュール、ハードウェア要素、またはその組合せによって実現されること、実施されること、または実行されること、あるいはそれらのことが行われてよい。リンク層エージェント106は、仮想ネットワーク設定を備えるLLDP構成PDUを作成すること、およびネットワーク210を介してLLDP構成PDUを送信することを行うべく構成されてよい。
【0065】
強化されたネットワーク・インタフェース220は、仮想ネットワーク212を実施する仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコル、あるいはその両方のうちの1つまたは複数により物理サーバ202と、仮想ネットワーク212のネットワーク・ノード204との間で交換され、通常、ネットワーク・ノード204によって用いられるデータ・パケットを処理することによって仮想ネットワーク・ポート104を装備するための十分な処理リソース、メモリ・リソース、およびネットワーキング・リソースを含んでよい。強化されたネットワーク・インタフェース220は、プロセス130を実行するために1つまたは複数のハードウェア要素、例えば、回路、構成要素、IC、ASIC、FPGA、DSP、ネットワーク・プロセッサ、またはこれらに類するもの、あるいはその組合せを利用してよい。強化されたネットワーク・インタフェース220Aは、オプションとして、強化されたネットワーク・インタフェース220のプログラム・ストアから強化されたネットワーク・インタフェース220のプロセッサによって実行されてよい複数のプログラム命令をそれぞれが備える1つまたは複数のソフトウェア・モジュールを実行するために1つまたは複数のプロセッサと、プログラム・ストアまたはデータ・ストア、あるいはその両方のためのメモリ・リソースとを備えてよい。したがって、強化されたネットワーク・インタフェース220によって実行される仮想ネットワーク・ポート104は、ソフトウェア・モジュール、ハードウェア要素、またはその組合せによって実現されること、実施されること、または実行されること、あるいはその組合せが行われてよい。強化されたネットワーク・インタフェース220の実行環境は、物理サーバ202の実行環境から、2つの実行環境の間で完全な隔離が存在するように、完全に分離されることに留意されたい。したがって、クライアントの制御下にあってよい物理サーバ202の実行環境は、侵害されることも、危険に晒されることも、またはその組合せを受けることもない。
【0066】
112に示されるとおり、仮想ネットワーク・コントローラ102、例えば、SDNコントローラが、仮想ネットワーク212において物理サーバ202をマップすべく展開された仮想ネットワーク・ポート104のための1つまたは複数の仮想ネットワーク設定、例えば、物理サーバ202に関連付けられたVNID、VPC ID、IPアドレス、MACアドレス、1つまたは複数のSG(セキュリティ・グループ)設定、またはそれに類するもの、あるいはその組合せを計算する。
【0067】
仮想ネットワーク・コントローラ102は、仮想ネットワーク212の設定に準拠すべく仮想ネットワーク設定を計算してよい。例えば、仮想ネットワーク・コントローラ102によって仮想ネットワーク・ポート104に割り当てられるVNIDは、仮想ネットワーク212の識別子(ID)である。別の実施例において、仮想ネットワーク212は、VPCの一部であってよいので、仮想ネットワーク・コントローラ102によって仮想ネットワーク・ポート104に割り当てられるVPC IDは、VPCの識別子(ID)である。別の実施例において、仮想ネットワーク・コントローラ102によって仮想ネットワーク・ポート104に割り当てられるIPアドレスは、仮想ネットワーク212のIPアドレスの範囲に、すなわち、ネットワーク・ノード204に割り当てられたIPアドレスの範囲内にある。別の実施例において、仮想ネットワーク・コントローラ102によって仮想ネットワーク・ポート104に割り当てられるMACアドレスは、仮想ネットワーク212における一意のMACである、すなわち、すべてのネットワーク・ノード204のMACアドレスと異なる。
【0068】
114に示されるとおり、仮想ネットワーク・コントローラ102が、仮想ネットワーク・ポート104を展開するように構成された強化されたネットワーク・インタフェース220に、ネットワーク210を経由して仮想ネットワーク設定を送信する。具体的には、仮想ネットワーク・コントローラ102は、ネットワーク210に接続された物理ネットワーク・ノードのうちの1つまたは複数において展開された1つまたは複数のリンク層エージェント、例えば、スイッチ206を経由して物理サーバ202に仮想ネットワーク設定を送信してよい。
【0069】
仮想ネットワーク・コントローラ102は、1つまたは複数のネットワーク・プロトコル、例えば、SNMP、NETCONF、またはこれらに類するもの、あるいはその組合せなどのネットワーク管理プロトコルを、例えば、使用してLLDPエージェントのうちの1つまたは複数と通信してよい。そのようなネットワーク・プロトコルを使用して、仮想ネットワーク・コントローラ102は、LLDPエージェントに仮想ネットワーク設定を送信してよい。
【0070】
122において示されるとおり、ネットワーク・リンク層構成プロトコルのうちの1つまたは複数、例えば、仮想ネットワーク設定の配信をサポートすべく拡張されたLLDPプロトコルをサポートすべく構成されたリンク層エージェント106が、受信された仮想ネットワーク設定を、拡張されたLLDPプロトコルの1つまたは複数の構成PDUにおいて送信してよい。具体的には、リンク層エージェント106は、LLDPプロトコルの拡張であるDCBXプロトコルによって定義される1つまたは複数の構成PDUにおいて仮想ネットワーク設定を送信してよい。DCBXは、仮想ネットワーク設定を含むべく定義され、かつ構成PDUのうちの1つまたは複数において送信されてよい1つまたは複数の拡張TLVを含むべく拡張されてよい。
【0071】
仮想ネットワーク・ポート104を展開すべく構成された強化されたネットワーク・インタフェース220は、仮想ネットワーク・ポート104に関して割り当てられた仮想ネットワーク設定をエンコードする拡張TLVを受信すること、デコードすること、処理すること、および適用することを行うべくさらに構成される。
【0072】
仮想ネットワーク設定をエンコードする拡張構成メッセージの、仮想ネットワーク・コントローラ102からスイッチ206への送信、および強化されたネットワーク・インタフェース220へのさらなる送信は、実施の詳細に依存してよい。例えば、仮想ネットワーク・コントローラ102は、スイッチ206上に展開されたリンク層エージェント106に仮想ネットワーク設定を送信すべくネットワーク210の制御プレーンまたは管理プレーン、あるいはその両方を使用してよい。すると、拡張TLVの処理またはエンコード、あるいはその両方をサポートすべく構成されたリンク層エージェント106は、受信された仮想ネットワーク設定を、1つまたは複数のTLVにおいてエンコードしてよい。リンク層106のフロー制御エンジンを使用して、リンク層106は、拡張TLVを備える1つまたは複数の構成PDUを、強化されたネットワーク・インタフェース220に送信してよい。
【0073】
132に示されるとおり、強化されたネットワーク・インタフェース220、特に、仮想ネットワーク・ポート104が、仮想ネットワーク212において物理サーバ202をマップするために仮想ネットワーク・ポート104に割り当てられた仮想ネットワーク設定をエンコードする拡張TLVを包含する構成PDUを受信する。仮想ネットワーク・ポート104は、受信された構成PDUから拡張TLVを抽出してよく、受信された拡張TLVを、エンコードされた仮想ネットワーク設定を抽出すべくデコードしてよい。
【0074】
スイッチ206からの拡張TLVの送信、および強化されたネットワーク・インタフェース220における拡張TLVの受信は、リンク層、特に、LLDPプロトコル、およびLLDPプロトコルのDCBX拡張プロトコルを使用して行われるので、TLVは、PDU送信および肯定応答信号に関するリンク層フロー制御を適用してLLDPの1つまたは複数の構成PDUにおいて送信されてよい。
【0075】
したがって、リンク層エージェント106が、仮想ネットワーク・ポート104に関して割り当てられた仮想ネットワーク設定を備える拡張TLVを記憶するためにスイッチ206の1つまたは複数のメモリ構造、例えば、バッファを割り振ること、および管理することをしてよい。スイッチ206のデータ処理エンジンおよびフロー制御エンジンを使用して、リンク層エージェント106は、バッファから取り出された第1の拡張TLVの少なくとも一部を備えるLLDPプロトコルまたはDCBXプロトコルの第1の構成PDUを送信してよい。次に、リンク層エージェント106は、第1の構成PDUの受信に応答して強化されたネットワーク・インタフェース220によって送信される肯定応答信号を待ってよい。肯定応答信号が、スイッチ206のフロー制御エンジンによって受信され、識別された後、リンク層エージェント106は、バッファから取り出された第1の拡張TLVの別の部分、または第2の拡張TLVの少なくとも一部を備えるLLDPプロトコルまたはDCBXプロトコルの第2の構成PDUを送信してよい。このプロセスは、バッファに記憶されたすべての拡張TLVを強化されたネットワーク・インタフェース220に送信するまで続いてよい。送信されることに成功した各拡張TLVは、バッファから除去されてよい。しかし、強化されたネットワーク・インタフェース220によって適切に受信されることに失敗した構成PDUに含まれる拡張TLV、または拡張TLVの部分、あるいはその組合せ(すなわち、それぞれの肯定応答信号がスイッチ206において受信されない)は、リンク層エージェント106によって強化されたネットワーク・インタフェース220に再送されてよい。
【0076】
仮想ネットワーク・ポート104を実行する強化されたネットワーク・インタフェース220は、スイッチ206から受信される拡張TLVを、強化されたネットワーク・インタフェース220によって割り振られ、管理される1つまたは複数のメモリ構造、例えば、バッファに記憶するために類似した機構を適用してよい。強化されたネットワーク・インタフェース220のデータ処理エンジンおよびフロー制御エンジンを使用して、仮想ネットワーク・ポート104は、拡張TLVを備えるLLDPプロトコルまたはDCBXプロトコルの構成PDUを受信してよく、各構成PDUが受信されると、それぞれの肯定応答信号で応答してよい。
【0077】
134に示されるとおり、仮想ネットワーク・ポート104が、物理サーバ202とネットワーク・ノード204との間のデータ・パケット転送をサポートすべく仮想ネットワーク212において物理サーバ202をマップするために仮想ネットワーク・コントローラ102によって割り当てられた仮想ネットワーク設定を適用してよい。例えば、仮想ネットワーク・ポート104は、1つまたは複数のデータ・プレーン・マッピング・レコード、例えば、送信されるパケットまたは受信されるパケット、あるいはその両方に関して送信元アドレスまたは宛先アドレス、あるいはその両方を解決すべく強化されたネットワーク・インタフェース220によって使用されるルーティング・テーブル、ルーティング・マップ、メモリ、データベース、またはこれらに類するもの、あるいはその組合せにおいて仮想ネットワーク設定を更新してよい。
【0078】
136において示されるとおり、仮想ネットワーク設定を適用した後、仮想ネットワーク・ポート104は、仮想ネットワーク212において用いられる仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコル、あるいはその両方のうちの1つまたは複数によりパケットを処理することによって、仮想ネットワーク212上で物理サーバ202と、ネットワーク・ノード204のうちの1つまたは複数との間でパケットを交換してよい。この処理は、例えば、カプセル化およびカプセル化解除、パケット・フィルタリング、暗黙のパケット・ルーティング、ARP応答、およびその他を含んでよい。例えば、仮想ネットワーク・ポート104が、仮想ネットワーク設定の1つまたは複数を使用して仮想ネットワーク・カプセル化プロトコルのうちの1つまたは複数により、発信パケットをカプセル化すること、および着信パケットをカプセル化解除することをそれぞれ行ってよい。このため、仮想ネットワーク・ポート104は、仮想ネットワーク212において使用される仮想ネットワーク・カプセル化プロトコル、例えば、VXLAN、NVGRE、GENEVE、STT、またはこれらに類するもの、あるいはその組合せに準拠する1つまたは複数のカプセル化パケットにおいて物理サーバ202からネットワーク・ノード204のうちの1つまたは複数に送信される1つまたは複数のデータ・パケット、例えば、ユニキャスト・パケット、マルチキャスト・パケット、またはブロードキャスト・パケット、あるいはその組合せをカプセル化してよい。相補的に、仮想ネットワーク・ポート104は、ネットワーク・ノード204のうちの1つまたは複数から受信される1つまたは複数のカプセル化パケット、例えば、ユニキャスト・パケット、マルチキャスト・パケット、またはブロードキャスト・パケット、あるいはその組合せをカプセル化解除してよく、抽出されたパケットを物理サーバ202に転送してよい。
【0079】
例えば、仮想ネットワーク・ポート104は、仮想ネットワーク212において使用される仮想ネットワーク・カプセル化プロトコル、例えば、VXLANに準拠するヘッダを有する1つまたは複数のカプセル化パケットにおいて物理サーバ202によって送信されるパケットをカプセル化してよい。ヘッダは、仮想ネットワーク212のVNIDを自然に含んでよい。ヘッダは、送信元IPアドレス(すなわち、仮想ネットワーク・ポート104に割り当てられたIPアドレス)と、パケットが送信される宛先ネットワーク・ノード204のIPアドレスとをさらに含んでよい。仮想ネットワーク212が、VPCの少なくとも一部である場合、仮想ネットワーク・ポート104は、カプセル化パケットのヘッダにVPCのVPC IDを含んでよい。オプションとして、仮想ネットワーク・ポート104は、送信元MACアドレス(すなわち、仮想ネットワーク・ポート104に割り当てられたMACアドレス)と、宛先ネットワーク・ノードのMACアドレスとを含む。別の実施例において、仮想ネットワーク・ポート104は、通常、VPCのセキュリティ制御である、仮想ネットワーク212において適用されるセキュリティ制御に準拠するために、仮想化パケットのヘッダに物理サーバ202のセキュリティ・グループ関連付けを含めてよい。
【0080】
次に、本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに仮想ネットワーク設定を提供するための例示的なシーケンスである
図3が参照される。例示的なシーケンス300は、システム200に示されるようなネットワーク210などのネットワークにわたる抽象化層を提供する仮想ネットワーク212などの仮想ネットワークにおいて物理サーバ202をマップすべく物理サーバ202などの物理サーバの強化されたネットワーク・インタフェース220などの強化されたネットワーク・インタフェースにおいて展開される仮想ネットワーク・ポート104などの仮想ネットワーク・ポートを構成するためにプロセス110、120、および130によるスイッチ206などの(エッジ)スイッチから送信される仮想ネットワーク設定のパスを示す。
【0081】
仮想ネットワーク・コントローラ102などの仮想ネットワーク・コントローラが、プロセス110のステップ112において説明されるとおり、物理サーバ202をマップする仮想ネットワーク・ポート104に割り当てられた仮想ネットワーク設定のうちの1つまたは複数を計算して(302)よい。仮想ネットワーク設定は、例えば、仮想ネットワーク212のVNID、仮想ネットワーク・ポート104に割り当てられたMACアドレス、仮想ネットワーク・ポート104のIPアドレス、および仮想ネットワーク212において物理サーバ202をセキュリティ・グループに関連付けるためのSG設定を含んでよい。
【0082】
ネットワーク管理プロトコル(例えば、SNMP、NETCONF)のうちの1つまたは複数による仮想ネットワーク212の制御プレーンを使用する仮想ネットワーク・コントローラ102が、プロセス110のステップ114において説明されるとおり、スイッチ206上に展開されたリンク層エージェント106に仮想ネットワーク設定を送信してよい。特に、仮想ネットワーク・コントローラ102は、プロセス120のステップ122において説明されるとおり、拡張されたリンク層構成プロトコル、例えば、LLDP、特に、LLDPプロトコルに対するDCBX拡張プロトコルによって定義される1つまたは複数のTLVを作成してよい。
【0083】
リンク層エージェント106は、仮想ネットワーク設定を備える受信された拡張TLVを、スイッチ206において割り振られた1つまたは複数のメモリ構造304、例えば、バッファに記憶してよい。スイッチ206のデータ処理エンジンおよびフロー制御エンジンを使用して、リンク層106は、バッファ304に記憶された拡張TLVを備えるLLDPの、具体的には、DCBXの1つまたは複数の構成PDU306を、強化されたネットワーク・インタフェース220に送信してよい。
【0084】
仮想ネットワーク・ポート104は、強化されたネットワーク・インタフェース220のデータ処理エンジンおよびフロー制御エンジンを使用して、構成PDUを受信してよく、構成PDUから拡張TLVを抽出してよい。仮想ネットワーク・ポート104は、抽出された拡張TLVを、強化されたネットワーク・インタフェース220側で割り振られ、管理される1つまたは複数のメモリ構造、例えば、バッファに記憶してよい。仮想ネットワーク・ポート104は、強化されたネットワーク・インタフェース220のフロー制御エンジンを使用して、各構成PDUの受信にそれぞれの肯定応答信号310でさらに応答してよい。
【0085】
仮想ネットワーク・ポート104に割り当てられた仮想ネットワーク設定を包含する拡張TLV312の受信が完了すると、仮想ネットワーク・ポート104は、拡張TLVから仮想ネットワーク設定314を抽出してよく、送信されるパケットまたは受信されるパケット、あるいはその両方に関する送信元アドレスまたは宛先アドレス、あるいはその両方を解決すべく、仮想ネットワーク設定314を、強化されたネットワーク・インタフェース220によって使用される1つまたは複数のデータ・プレーン制御モジュールに適用してよい。例えば、仮想ネットワーク・ポート104は、強化されたネットワーク・インタフェース220におけるデータ・プレーン・マッピング・レコード、例えば、ルーティング・テーブル、ルーティング・マップ、メモリ、データベース、またはこれらに類するもの、あるいはその組合せのうちの1つまたは複数において仮想ネットワーク設定を更新して(316)よい。
【0086】
仮想ネットワーク・ポート104が、受信された仮想ネットワーク設定により強化されたネットワーク・インタフェース220において適切に展開され、構成された後、仮想ネットワーク・ポート104は、プロセス130のステップ136において説明されるとおり、物理サーバ202と、仮想ネットワーク212のネットワーク・ノード204のうちの1つまたは複数との間で転送されるデータ・パケットを処理すること(320)を開始してよい。例えば、エグレス・パスにおいて、仮想ネットワーク・ポート104は、物理サーバ202から発信される1つまたは複数のデータ・パケット(例えば、ユニキャスト・パケット、マルチキャスト・パケット、またはブロードキャスト・パケット、あるいはその組合せ)をカプセル化してよい。仮想ネットワーク・ポート104は、仮想ネットワーク・ポート104に割り当てられた仮想ネットワーク設定を使用して仮想ネットワーク212において使用される仮想ネットワーク・カプセル化プロトコル、例えば、VXLANにより、発信パケットを1つまたは複数のカプセル化パケットにカプセル化してよい。最終的に、仮想ネットワーク・ポート104は、カプセル化パケットを、仮想ネットワーク212を介して送信してよい。イングレス・パスにおいて、仮想ネットワーク・ポート104は、仮想ネットワーク212を経由してネットワーク・ノード204のうちの1つまたは複数から1つまたは複数の着信パケット(例えば、ユニキャスト・パケット、マルチキャスト・パケット、またはブロードキャスト・パケット、あるいはその組合せ)を受信してよい。仮想ネットワーク・ポート104は、着信パケットを処理すべく、例えば、仮想ネットワーク212において使用される仮想ネットワーク・カプセル化プロトコル、例えば、VXLANによりカプセル化されてよい着信パケットをカプセル化解除すべく仮想ネットワーク設定を使用してよい。次に、仮想ネットワーク・ポート104は、カプセル化パケットから抽出されたデータ・パケットを、物理サーバ202によって実行される1つまたは複数のソフトウェア・モジュールに転送してよい。
【0087】
次に、本発明の一部の実施形態による、物理サーバと、仮想ネットワークに接続されたノードとの間のパケット転送をサポートすべく仮想ネットワークにおいて物理サーバをマップする仮想ネットワーク・ポートに提供される仮想ネットワーク設定をキューに入れること、送信すること、および受信することを行うべく展開される例示的な状態マシンの概略図を提示する
図4Aおよび
図4Bが参照される。
図4Aおよび
図4Bに提示される実施形態のうちのいくつかは、VXLAN仮想ネットワーク・カプセル化プロトコルに向けられることに留意されたい。しかし、VXLANカプセル化プロトコルの実施は、例示的であるので、このことは、限定するものと解釈されるべきではなく、仮想ネットワーク仮想化プロトコルまたは仮想ネットワーク・トンネリング・プロトコル、あるいはその両方、例えば、NVGRE、GENEVE、STT、またはこれらに類するもの、あるいはその組合せなどのカプセル化プロトコルのうちの他のいずれにも同様に適用してよい。
【0088】
例示的なキューイング状態マシン402が、ネットワーク210などのネットワークにわたる抽象化層を提供する仮想ネットワーク212などの仮想ネットワークの仮想ネットワーク・コントローラ102などの仮想ネットワーク・コントローラから受信されたTLVのうちの1つまたは複数をキューにおいて並べるためにスイッチ206などのスイッチにおいて展開されるリンク層エージェント106などのリンク層エージェントによって適用されてよい。LLDP/DCBXプロトコルのTLV、特に、仮想ネットワーク設定の転送をサポートすべくLLDP/DCBXプロトコルに追加される拡張TLVは、仮想ネットワーク212において物理サーバ202をマップするために物理サーバ202などの物理サーバの強化されたネットワーク・インタフェース220などの強化されたネットワーク・インタフェースにおいて展開される仮想ネットワーク・ポート104などの仮想ネットワーク・ポートに割り当てられた1つまたは複数の仮想ネットワーク設定を含んでよい。例えば、仮想ネットワーク212が、VXLANカプセル化プロトコルを使用するものと想定すると、拡張TLVは、物理サーバ202と、仮想ネットワーク212のネットワーク・ノード204などの1つまたは複数のネットワーク・ノードとの間で交換されるデータ・パケットのカプセル化およびカプセル化解除のために仮想ネットワーク・ポート104に割り当てられたVXLAN設定を含んでよい。見られるとおり、キューイング状態マシン402は、複数の拡張TLVの受信をサポートし、受信される各TLVをプッシュしてキューに入れてよい。
【0089】
例示的な送信状態マシン404が、拡張されたLLDPプロトコル、具体的には、拡張されたDCBXプロトコルにより、拡張TLVを包含する構成PDUの送信を制御すべくスイッチ206に展開されたリンク層エージェント106によって適用されてよい。送信状態マシン404は、拡張TLVを処理してよく、仮想ネットワーク設定を包含する拡張TLVを含めるべく1つまたは複数の構成PDU、例えば、LLDP/DCBX PDUを作成してよい。前述の実施例を続けると、仮想ネットワーク212がVXLANカプセル化プロトコルを用いるものと想定すると、送信状態マシン404は、VXLAN設定を包含するTLVを備える1つまたは複数のLLDP/DCBX PDUを作成すること、および構築することをしてよい。次に、送信状態マシン404は、LLDP/DCBX PDUのそれぞれを送信してよく、強化されたネットワーク・インタフェース220によるそれぞれのLLDP/DCBX PDUの受信を示す肯定応答信号を待ってよい。送信状態マシン404は、肯定応答信号が受信されない1つまたは複数のLLDP/DCBX PDUを再送してよい。再試行の数は、事前定義されてよい。
【0090】
例示的な受信状態マシン406が、拡張TLVを包含する構成PDU、例えば、LLDP/DCBX PDUの受信を制御すべく強化されたネットワーク・インタフェース220に展開された仮想ネットワーク・ポート104によって適用されてよい。受信状態マシン406は、スイッチ206において展開されたリンク層エージェント106からLLDP/DCBX PDUを受信してよく、オプションとして、受信されたPDUの完全性を確実にすべく受信されたPDUを検証してよい。前述した実施例を続けると、仮想ネットワーク212がVXLANカプセル化プロトコルを用いるものと想定すると、受信状態マシン406によって受信され、検証されるLLDP/DCBX PDUは、VXLAN設定を包含する拡張TLVのうちの1つまたは複数を含んでよい。次に、受信状態マシン406は、受信された各LLDP/DCBX PDUに関して肯定応答信号を送信してよい。受信状態マシン406は、再送された各LLDP/DCBX PDUに関して肯定応答信号をさらに再送してよい。受信状態マシン406は、LLDP/DCBX PDUから拡張TLVを抽出してよく、抽出された拡張TLVを、拡張TLV、特に、拡張TLVに包含される仮想ネットワーク設定、例えば、1つまたは複数の上位レベル・プロトコル(Upper Level Protocol(ULP))に対するVXLAN設定を転送するのに使用されてよいキューに記憶してよい。
【0091】
そのようなULPは、仮想ネットワーク212において物理サーバ202をマップすべく受信された仮想ネットワーク設定を適用すること、または使用すること、あるいはその両方を行ってよく、物理サーバ202とネットワーク・ノード204との間のパケット転送を可能にする仮想ネットワーク・ポート104によって利用されてよい。例えば、仮想ネットワーク212が、VXLANカプセル化プロトコルを使用し、かつ受信された仮想ネットワーク設定がVXLAN設定であるものと想定すると、仮想ネットワーク・ポート104は、物理サーバ202からの発信パケットをカプセル化すること、または物理サーバ202に対する着信パケットをカプセル化解除することを行うべく受信されたVXLAN設定を適用すること、または使用すること、あるいはその両方を行ってよい。別の実施例において、仮想ネットワーク設定は、仮想ネットワーク212において1つまたは複数のセキュリティ・ポリシを施行するのに要求される1つまたは複数のセキュリティ・グループ・パラメータを含んでよい。仮想ネットワーク・ポート104は、仮想ネットワーク212において適用されるセキュリティ・ポリシを順守し、それに従うべく受信されたセキュリティ・グループ・パラメータを適用すること、または使用すること、あるいはその両方を行ってよい。別の実施例において、仮想ネットワーク設定は、仮想ネットワーク212におけるコンピューティング・ノード204の1つまたは複数のマルチキャスト・グループを形成すべく1つまたは複数のマルチキャスト・グルーピング・パラメータを含んでよい。仮想ネットワーク・ポート104は、これらのマルチキャスト・グループの1つまたは複数に参加すること、またはこのマルチキャスト・グループのうちの1つまたは複数とのデータ交換をサポートすること、あるいはその両方を行うべく受信されたマルチキャスト・グルーピング・パラメータを適用すること、または使用すること、あるいはその両方を行ってよい。別の実施例において、仮想ネットワーク設定は、仮想ネットワーク212の機能を訂正するために要求される1つまたは複数のさらなるパラメータを含んでよい。1つまたは複数のネットワーク訂正アルゴリズムを実行する仮想ネットワーク・ポート104が、ネットワーク機能訂正をサポートすべく受信されたさらなるパラメータを適用すること、または使用すること、あるいはその両方を行ってよい。
【0092】
本出願から成熟する特許の存続期間中、多くの関係のあるシステム、方法、およびコンピュータ・プログラムが、開発されることが予期され、仮想化プロトコル、トンネリング・プロトコル、カプセル化プロトコル、およびリンク層構成プロトコルという術語の範囲は、すべてのそのような新たな技術をアプリオリに含むべく意図される。
【0093】
本明細書において使用される「約」という術語は、±10%を指す。
【0094】
「備える」、「備えた」、「含む」、「含んだ」、「有する」、およびその活用形は、「含むが、限定されない」を意味する。
【0095】
「から成る」という術語は、「含み、限定される」を意味する。
【0096】
本明細書において使用される単数形、「或る」および「その」は、脈絡が明らかにそうでないことを規定するのでない限り、複数の参照対象を含む。例えば、「合成物」または「少なくとも1つの合成物」という術語は、複数の合成物を、その混合を含めて、含むことがある。
【0097】
本出願全体にわたって、本発明の様々な実施形態は、範囲フォーマットで提示されることがある。範囲フォーマットにおける説明は、便宜および簡単のために過ぎず、本発明の範囲に対する柔軟性のない限定として解釈されるべきではないことを理解されたい。したがって、範囲の説明は、可能なすべての部分範囲、およびその範囲内の個々の数値を具体的に開示したものと見なされるべきである。例えば、1から6までなどの範囲の説明は、1から3まで、1から4まで、1から5まで、2から4まで、2から6まで、3から6まで、その他、および、その範囲内の個々の数、例えば、1、2、3、4、5、および6などの部分範囲を具体的に開示したものと見なされるべきである。このことは、範囲の幅にかかわらず適用する。
【0098】
本明細書において数の範囲が示されるときはいつでも、示される範囲内の記載される任意の数(分数または整数の)を含むことが意図される。第1の示される数と第2の示される数の「間の範囲にある/範囲」という句と、第1の示される数「から」第2の示される数「まで範囲にある/範囲」という句は、本明細書において互換的に使用され、第1の示される数および第2の示される数、ならびにその間のすべての分数および整数の数を含むことが意図される。
【0099】
明瞭のため、別々の実施形態の脈絡において説明される本発明のいくつかの特徴は、単一の実施形態において組合せで提供されてもよいことが認識されよう。逆に、簡単のため、単一の実施形態の脈絡において説明される本発明の様々な特徴は、本発明の他の任意の説明される実施形態において別々に、または任意の適切な部分的組合せにおいて、適宜に提供されてもよい。様々な実施形態の脈絡において説明されるいくつかの特徴は、実施形態がそれらの要素なしには動作不能であるのでない限りは、それらの実施形態の不可欠の特徴であると見なされるべきではない。
【0100】
本明細書において説明される実施形態は、その具体的な実施形態に関連して説明されてきたものの、多くの代替形態、変更形態、および変形形態が当業者には明らかとなることが明白である。したがって、添付のクレームの趣旨および広い範囲に含まれるすべてのそのような代替形態、変更形態、および変形形態が包含されることが意図される。
【0101】
本明細書において言及されるすべての刊行物、特許、および特許出願は、個々の各刊行物、特許、および特許出願が、参照によって具体的に、かつ個々に本明細書に組み込まれるべく示されているのと同程度に、参照によりその全体が本明細書に組み込まれている。さらに、本出願におけるいずれの参照物の引用または識別も、そのような参照物が、本明細書において説明される実施形態の先行技術として利用可能であるという認定として解釈されるべきではない。セクション見出しが使用される限りにおいて、それらは、必ずしも限定的であると解釈されるべきではない。さらに、本出願のいずれの優先権書類も、参照によりその全体が本明細書に組み込まれている。