JP6505172B2 - 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム - Google Patents

仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム Download PDF

Info

Publication number
JP6505172B2
JP6505172B2 JP2017160060A JP2017160060A JP6505172B2 JP 6505172 B2 JP6505172 B2 JP 6505172B2 JP 2017160060 A JP2017160060 A JP 2017160060A JP 2017160060 A JP2017160060 A JP 2017160060A JP 6505172 B2 JP6505172 B2 JP 6505172B2
Authority
JP
Japan
Prior art keywords
virtual
virtual machine
request packet
node
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017160060A
Other languages
English (en)
Other versions
JP2018033136A (ja
Inventor
ソンウ パク
ソンウ パク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NHN Corp
Original Assignee
NHN Entertainment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020160108373A external-priority patent/KR101936166B1/ko
Priority claimed from KR1020160108376A external-priority patent/KR101936169B1/ko
Application filed by NHN Entertainment Corp filed Critical NHN Entertainment Corp
Publication of JP2018033136A publication Critical patent/JP2018033136A/ja
Application granted granted Critical
Publication of JP6505172B2 publication Critical patent/JP6505172B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Description

以下の説明は、仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム、並びにコンピュータで実現されるノードと結合してロードバランシング処理方法をコンピュータに実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムに関する。
L4ロードバランサ(load balancer)とは、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)などのレイヤ4プロトコルに対し、多数のバックエンドサーバ(Backend Server)への連結やセッションなどを分けて分配することによってバックエンドサーバへの負荷を分散させるネットワーク装備である。例えば、特許文献1は、クライアント−サーバ連結方法、ロードバランサ動作方法、およびパケット送信方法について説明している。
より具体的な例として、図1は、従来技術における、L4ロードバランサの動作を説明するための図である。図1は、NAT(Network Address Translation)110、ルータ(Router)120、L4ロードバランサ(L4 Load Balancer)130、バックエンドサーバ1(Backend Server 1)140、バックエンドサーバ2(Backend Server 2)150、およびバックエンドサーバ3(Backend Server 3)160を示している。NAT110とは、限定された1つの公認IPを多数の内部私設IPに変換して公認IPを節約し、外部侵入からの保安性を高めるための通信網のアドレス変換器であり、ルータ120とは、ネットワーク構成方式や使用するプロトコルに関係なくネットワークを接続し、ある通信網から他の通信網に通信することができるようにサポートする装置である。このとき、L4ロードバランサ130は、NAT110とルータ120を通じて伝達されるクライアントからのHTTPリクエストのようなトラフィックをバックエンドサーバ140、150、160に分配する役割を行う。一般的に、このようなL4ロードバランサ130は、ハードウェア装備にロードバランシングのためのソフトウェアモジュールが結合した形態で提供される。
一方、図2は、従来技術における、NAT動作を共に実行するL4ロードバランサの動作を説明するための図である。図2は、ルータ210、NATを含むL4ロードバランサ220、バックエンドサーバ1(Backend Server 1)230、バックエンドサーバ2(Backend Server 2)240、およびバックエンドサーバ3(Backend Server 3)250を示している。
図1および図2を比較すると、図1では、NAT110を基準に共用ネットワーク(public network)と専用ネットワーク(private network)とが区分され、図2では、NATを含むL4ロードバランサ220を基準に共用ネットワークと専用ネットワークとが区分される。このとき、図1のケースと図2のケースは共に、バックエンドサーバ140、150、160、230、240、250がクライアントのIPアドレスを知らない。さらに、バックエンドサーバ140、150、160、230、240、250の応答は、L4ロードバランサ130やNATを含むL4ロードバランサ220を経て再びクライアントに伝達されるため、遅延速度(latency)が増加するようになる。
一方、このような遅延速度を減らすためにバックエンドサーバからの応答がロードバランサを経ないようにするための技術が存在する。図3は、従来技術における、L4 DSR(Direct Server Return)ロードバランサの動作を説明するための図である。図3は、ルータ310、L4 DSRロードバランサ320、バックエンドサーバ1(Backend Server 1)330、バックエンドサーバ2(Backend Server 2)340、およびバックエンドサーバ3(Backend Server 3)350を示しており、バックエンドサーバ330、340、350それぞれに設定されるループバック(loop back)インタフェース331、341、351を示している。このとき、バックエンドサーバ330、340、350それぞれからの応答は、L4 DSRロードバランサ320を経ず、VIP(Virtual IP)を利用してルータに直接伝達することができる。言い換えれば、バックエンドサーバ330、340、350それぞれは、ロードバランサのためのVIPを直接管理することができ、ループバックインタフェース331、341、351を利用してL4 DSRロードバランサ320を経ずに応答をルータ310に直接伝達することができるため、遅延速度において利点を有する。しかし、図3に示すように、バックエンドサーバ330、340、350にループバックインタフェース331、341、351が設定されなければならないという問題がある。さらに、クライアントのIPアドレスを知るためにすべての装備が共用ネットワークに存在しなければならないため、公認IPアドレスが多く割り当てられなければならず、スケールアウト(scale out)に不利であるという問題を抱えている。
公認IPアドレスに関する問題を解決するためにNATを利用する場合には、バックエンドサーバでクライアントのIPアドレスを知ることができなくなるという問題が再び浮上する。
一方、顧客のための専用ラック(Rack)として独立したクラウド環境構成が可能なVPC(Virtual Private Cloud)技術が存在する。このようなVPCのためのサービスを提供するサービス提供者は、顧客に専用クラウドの構成のためのサービスを提供することができる。このようなVPC環境におけるロードバランシングのための技術は、上述した図1〜3を参照しながら説明した、一般的なネットワーク状況におけるロードバランシングとは差がある。例えば、上述したロードバランサとバックエンドサーバが仮想化されて提供されなければならない。さらに、サービス提供者が遅延速度の利点を得るためにL4 DSRロードバランサを提供しようとするとき、顧客が構成するバックエンド仮想マシンサーバそれぞれにループバックインタフェースを設定するように要求および/または強制するには困難を来たすという問題がある。
韓国公開特許第10−2002−0069489号公報
VPC(Virtual Private Cloud)環境において、ハイパーバイザ(hypervisor)によって顧客が構成するバックエンド仮想マシンサーバ(Backend Virtual Machine Server)に対するロードバランシングを、トンネリングを利用して処理する新たなロードバランサを提供する。
VPC環境でバックエンド仮想マシンサーバに必要なループバック(loop back)インタフェースをハイパーバイザの仮想スイッチ(virtual switch)で実現および提供することにより、顧客がループバックインタフェースを直接設定する必要がない上に、VPC環境でもバックエンド仮想マシンサーバの応答を、ロードバランサを経ずにルータに直ぐに伝達することができる、ロードバランシング方法およびシステムを提供する。
上述した新たなロードバランサと仮想スイッチを利用してVPC環境でL4 DSRロードバランシングを処理することによって遅延速度(latency)を減らすことができる、ロードバランシング方法およびシステムを提供する。
ロードバランシングのための前記仮想スイッチを利用してバックエンド仮想マシンサーバで送受信されるパケットをDPI(Deep Packet Inspection)のための機能が含まれたモニタリング仮想マシンでミラーリング(mirroring)することにより、モニタリング仮想マシンで希望するバックエンド仮想マシンに対して送受信されるすべてのパケットを収集および分析することができる、パケット分析方法およびシステムを提供する。
仮想ネットワーク上でロードバランシングノードがロードバランシングを処理する方法であって、ルータを通じてクライアントからの要求パケットを受信する段階、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ(load balancer)によって選択する段階、前記仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ(overlay)して仮想ネットワーキングのためのパケットを生成する段階、および前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階を含む、ロードバランシング処理方法を提供する。
一側面によると、前記ハイパーバイザノードは、前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうで前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達することを特徴とする。
他の側面によると、前記送信された仮想ネットワーキングのためのパケットは、TOR(Top Of Rack)スイッチに伝達され、前記TORスイッチが含む仮想スイッチのうちで前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達することを特徴とする。
また他の側面によると、前記ロードバランサは、L4 DSR(Direct Server Return)ロードバランサを含み、前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記L4 DSRロードバランサを経ずに前記ルータに直接伝達することを特徴とする。
また他の側面によると、前記要求パケットは、前記クライアントのIPアドレスを含み、前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのIPアドレスが前記選択されたバックエンド仮想マシンサーバに伝達されることを特徴とする。
また他の側面によると、前記仮想ネットワーキングのためのパケットを生成する段階は、前記要求パケットにVxLAN(Virtual extensible LAN)、VLAN(Virtual LAN)、GRE(Generic Route Encapsulation)、および802.11brのうちの1つの仮想ネットワーキングプロトコルを適用したトンネリング(tunneling)によって前記仮想ネットワーキングのためのパケットを生成することを特徴とする。
また他の側面によると、前記要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ2およびレイヤ3のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含むことを特徴とする。
仮想ネットワーク上でハイパーバイザノードがロードバランシングを処理する方法であって、ロードバランサを含むロードバランシングノードから実際のネットワークを介して仮想ネットワーキングのためのパケットを受信する段階(前記仮想ネットワーキングのためのパケットは、前記ロードバランシングノードがルータを通じて伝達を受けたクライアントからの要求パケットに、前記仮想ネットワークを介して前記要求パケットを送信するために要求される情報を前記ロードバランシングノードが含む仮想スイッチを利用してオーバーレイして生成される)、前記ハイパーバイザノードが含む仮想スイッチのうちで前記ロードバランサによって選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記仮想ネットワーキングのためのパケットから前記要求パケットを抽出する段階、および前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する段階を含む、ロードバランシング処理方法を提供する。
上述したロードバランシング処理方法をコンピュータに実行させるためのプログラムが記録されている、コンピュータで読み取り可能な記録媒体が提供される。また、上述したロードバランシング処理方法をコンピュータに実行させるためのプログラムが提供される。
コンピュータを、ロードバランシング処理方法を実行するロードバランシングノードとして機能させるためのコンピュータプログラムであって、前記ロードバランシング処理方法は、ルータを通じてクライアントからの要求パケットを受信する段階、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ(load balancer)によって選択する段階、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ(overlay)して仮想ネットワーキングのためのパケットを生成する段階、および前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階を含む、コンピュータプログラムを提供する。
ロードバランシング処理方法を実行するためにコンピュータで実現されるロードバランシングノードであって、コンピュータで読み取り可能な命令を格納するメモリ、および前記メモリに格納された命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、ルータを通じてクライアントからの要求パケットを受信するように前記ロードバランシングノードを制御し、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ(load balancer)によって選択し、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ(overlay)して仮想ネットワーキングのためのパケットを生成し、前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信するように前記ロードバランシングノードを制御する、コンピュータで実現されるロードバランシングノードを提供する。
VPC(Virtual Private Cloud)環境においてハイパーバイザ(hypervisor)により、顧客が構成するバックエンド仮想マシンサーバ(Backend Virtual Machine Server)に対するロードバランシングをトンネリングによって処理することができる。
VPC環境においてバックエンド仮想マシンサーバに必要なループバック(loop back)インタフェースをハイパーバイザの仮想スイッチ(virtual switch)によって実現および提供することにより、顧客がループバックインタフェースを直接設定する必要がない上に、VPC環境でもバックエンド仮想マシンサーバの応答を、ロードバランサを経ずにルータに直ぐに伝達することができる。
上述した新たなロードバランサと仮想スイッチを利用してVPC環境でのL4 DSRロードバランシングを処理することにより、遅延速度(latency)を減らすことができる。
ロードバランシングのための前記仮想スイッチを利用してバックエンド仮想マシンサーバで送受信されるパケットをDPI(Deep Packet Inspection)のための機能が含まれたモニタリング仮想マシンでミラーリング(mirroring)することにより、モニタリング仮想マシンで希望するバックエンド仮想マシンに対して送受信されるすべてのパケットを収集および分析することができる。
従来技術における、L4ロードバランサの動作を説明するための図である。 従来技術における、NAT動作を共に実行するL4ロードバランサの動作を説明するための図である。 従来技術における、L4 DSRロードバランサの動作を説明するための図である。 本発明の一実施形態における、仮想ネットワーク上でのL4ロードバランシングのための動作の例を説明するための図である。 本発明の一実施形態における、トンネリング動作の例を説明するための図である。 本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのL4 DSRロードバランシングのための動作の例を説明するための図である。 本発明の一実施形態における、TORスイッチを利用した仮想ネットワーク上でのL4 DSRロードバランシングのための動作の例を説明するための図である。 本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードの内部構成を説明するためのブロック図である。 本発明の一実施形態における、仮想ネットワーク環境でロードバランシングノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。 本発明の一実施形態における、ロードバランシングノードが実行することのできる方法の例を示したフローチャートである。 本発明の一実施形態における、仮想ネットワーク環境でハイパーバイザノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。 本発明の一実施形態における、ハイパーバイザノードが実行することのできる方法の例を示したフローチャートである。 本発明の一実施形態における、仮想ネットワーク環境で仮想スイッチを含むハイパーバイザノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。 本発明の一実施形態における、仮想スイッチを含むハイパーバイザノードが実行することのできる方法の例を示したフローチャートである。 本発明の一実施形態における、仮想ネットワーク環境でTORスイッチノードを実現するための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。 本発明の一実施形態における、TORスイッチノードが実行することのできる方法の例を示したフローチャートである。 本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのパケットモニタリングのための動作の例を示した図である。 本発明の一実施形態における、仮想ネットワーク環境でモニタリング仮想マシンを実現する物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。 本発明の一実施形態における、モニタリング仮想マシンを実現するノードが実行することのできる方法の例を示したフローチャートである。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態は、仮想ネットワーク環境(一例として、VPC(Virtual Private Cloud)環境)でロードバランシングを処理するためのロードバランシング方法およびシステムに関する。ここで、仮想ネットワーク環境では、仮想リソースを提供する実際のノード間の実際のネットワークと、仮想リソース間の仮想ネットワークとをすべて考慮しなければならない。
図4は、本発明の一実施形態における、仮想ネットワーク上でのL4ロードバランシングのための動作の例を説明するための図である。図4は、ルータ410、ロードバランシングノード(LB node)420、およびハイパーバイザ(Hypervisor)430、440を示している。ここで、ロードバランシングノード420は、L4 DSR(Direct Server Return)ロードバランサ(L4 DSR Load Balancer)421を含んでおり、ハイパーバイザ430、440は、バックエンド仮想マシンサーバ1(Backend VM(Virtual Machine)Server 1)431、バックエンド仮想マシンサーバ2(Backend VM(Virtual Machine)Server 2)432、およびバックエンド仮想マシンサーバ3(Backend VM(Virtual Machine)Server 3)441を含んでいる。図4では、2つのハイパーバイザ430、440と3つのバックエンド仮想マシンサーバ431、432、441を示しているが、その数が図4のように限定されることはなく、顧客の要求および/または仮想ネットワークサービスのための環境に応じて多様な数で構成可能であることは、当業者にとって自明であろう。
ここで、L4 DSRロードバランサ421とバックエンド仮想マシンサーバ431、432、441は、仮想リソースであってよく、仮想ネットワークのサービス提供者は、顧客が望む条件にしたがってこのような仮想リソースを顧客に提供してよい。ここで、L4 DSRロードバランシングのためには、一例として、バックエンド仮想マシンサーバ1(431)がL4 DSRロードバランサ421から伝達されたクライアントの要求による応答を、L4 DSRロードバランサ421を経ずにルータ410に直ぐに(直接的に)伝達する必要がある。このようなL4 DSRロードバランシングの処理のためには、上述したように、バックエンド仮想マシンサーバ1(431)にループバック(loop back)インタフェースのような機能が設定されなければならなかった。しかし、バックエンド仮想マシンサーバ1(431)は、顧客が自身の必要に応じて機能を設定および活用する仮想マシンであり、サービス提供者が顧客にループバックインタフェースの設定を要求および/または強要することは困難である。したがって、本発明の実施形態では、ハイパーバイザ430、440に含まれる仮想スイッチ(Virtual Switch:VS)がループバックインタフェースの動作の代わりに処理できるように実現することにより、顧客がループバックインタフェースのための別途の設定をしなくても、L4 DSRロードバランシングのためのサービス提供が受けられるように処理することができる。
図5は、本発明の一実施形態における、仮想スイッチを利用したトンネリング動作の例を説明するための図である。上述したように、ロードバランシングノード420が含むL4 DSRロードバランサ421とハイパーバイザ430が含むバックエンド仮想マシンサーバ1(431)は、仮想ネットワーク510を介して連結してよいが、ロードバランシングノード420とハイパーバイザ430は、実際のネットワーク上で物理的にそれぞれ構成される別のノードであってよい。したがって、クライアントからの要求によるパケットは、実際のネットワークを介してロードバランシングノード420までは伝達されるが、ロードバランシングノード420からハイパーバイザ430までは仮想ネットワークを介して伝達されてよい。このために、本発明の実施形態では、仮想化ネットワークレイヤとして仮想スイッチ520、530が用いられてよい。例えば、L4 DSRロードバランサ421は、クライアントの要求による要求パケットを処理するためにバックエンド仮想マシンサーバ1(431)を選択したとする。このとき、バックエンド仮想マシンサーバ1(431)に要求パケットを伝達するために、仮想スイッチ520は、要求パケットに仮想ネットワーキングのための情報(一例として、仮想ネットワーキングのためのヘッダ情報)をオーバーレイして仮想ネットワーキングのためのパケットを生成してよい。言い換えれば、要求パケットは、仮想ネットワーキングのためのパケットにカプセル化(encapsulation)される。このために、ロードバランシングノード420は、イーサネット(Ethernet)(登録商標)などのネットワークプロトコルのためのレイヤ2、IP、IPv6などのネットワークプロトコルのためのレイヤ3、さらにTCP、UDPなどのネットワークプロトコルのためのレイヤ4をすべて処理するように実現されてよい。より具体的な例として、仮想スイッチ520は、オーバーレイのための方式として、VxLAN(Virtual extensible LAN)、VLAN(Virtual LAN)、GRE(Generic Route Encapsulation)、802.11brなどのような仮想ネットワーキング技術(プロトコル)を適用してよい。
これとは逆に、ハイパーバイザ430が含む仮想スイッチ530は、仮想ネットワーキングのためのパケットから要求パケットを抽出し、L4 DSRロードバランサ421によって選択されたバックエンド仮想マシンサーバ1(431)に伝達してよい。この場合、実際のネットワークを介して送信された要求パケットには発信者(クライアント)のIPアドレスが含まれており、したがって、バックエンド仮想マシンサーバ1(430)は、クライアントに関する情報を得ることができるようになる。
一方、仮想スイッチ530は、上述したループバックインタフェースの動作を代わりに処理するように実現されてよい。例えば、上述した要求によるバックエンド仮想マシンサーバ1(431)の応答は、仮想スイッチ530を利用し、ロードバランシングノード420ではない、図4を参照しながら説明したルータ410に直接伝達されてよい。
図6は、本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのL4 DSRロードバランシングのための動作の例を説明するための図である。図6は、図4を参照しながら説明したルータ410、ロードバランシングノード420、ハイパーバイザ430、440、L4 DSRロードバランサ421、バックエンド仮想マシンサーバ1(431)、バックエンド仮想マシンサーバ2(432)、およびバックエンド仮想マシンサーバ3(441)を示している。また、図6は、追加で、バックエンド仮想マシンサーバ431、432、441それぞれのためのループバックモジュール610、620、630をさらに示している。ここで、ループバックモジュール610、620、630は、ハイパーバイザ430、440がバックエンド仮想マシンサーバ431、432、441のために含む仮想スイッチにそれぞれ実現されてよい。例えば、図5を参照しながら説明したように、バックエンド仮想マシンサーバ1(431)のためのループバックモジュール610は、仮想スイッチ530に実現されてよい。例えば、ルータ410を通じてロードバランシングノード420に伝達された要求パケットが、L4 DSRロードバランサ421とロードバランシングノード420が含む仮想スイッチを経てバックエンド仮想マシンサーバ1(431)に伝達されたとする。このとき、要求パケットは、上述したように、トンネリングによってロードバランシングノード420からバックエンド仮想マシンサーバ1(431)に伝達されてよい。要求パケットを受信したバックエンド仮想マシンサーバ1(431)の応答パケットは、ループバックモジュール610を通じてロードバランシングノード420が含むL4 DSRロードバランサ421を経ずにルータ410に直ぐに伝達されてよい。上述したように、バックエンド仮想マシンサーバ1(431)は、クライアントのIPアドレスが分かるため、ループバックモジュール610は、クライアントのIPアドレスを利用し、ロードバランシングノード420を経ずにルータ410に応答パケットを直接伝達してよい。したがって、応答パケットがトンネリングによって再びロードバランシングノード420を経る過程を省略することができるため、遅延速度(latency)を減らすことができる。
一方、ハイパーバイザ430、440で仮想スイッチを設定することができない場合も存在する。このような場合には、TOR(Top Of Rack)スイッチが仮想スイッチの役割をしてよく、このようなTORスイッチでループバックインタフェースのための動作を実行してよい。
図7は、本発明の一実施形態における、TORスイッチを利用した仮想ネットワーク上でのL4 DSRロードバランシングのための動作の例を説明するための図である。図7は、図4を参照しながら説明したルータ410、ロードバランシングノード420、ハイパーバイザ430、440、L4 DSRロードバランサ421、バックエンド仮想マシンサーバ1(431)、バックエンド仮想マシンサーバ2(432)、およびバックエンド仮想マシンサーバ3(441)を示している。また、図7は、TORスイッチ(TOR Switch)710をさらに示している。本実施形態では、ハイパーバイザ430、440に仮想スイッチを構成することができない場合に、仮想ネットワークで使用されるTORスイッチ710にバックエンド仮想マシンサーバ431、432、441のためのループバックモジュール711、712、713を構成した例を示している。図5を参照しながら説明したように、ロードバランシングノード420が伝達するクライアントからの要求パケットは、トンネリングによってバックエンド仮想マシンサーバ431、432、441に伝達される。例えば、ロードバランシングノード420は、L4 DSRロードバランサ421と仮想スイッチ(一例として、図5の仮想スイッチ520)を利用し、クライアントからの要求パケットをトンネリングによってTORスイッチ710に構成されたループバックモジュール711を経てバックエンド仮想マシンサーバ1(431)に伝達してよい。このとき、TORスイッチ710が含む仮想スイッチは、トンネリングによって生成された仮想ネットワーキングのためのパケットを要求パケットに再変換してもよい。当該再変換された要求パケットは、ハイパーバイザ(430)に伝達され、選択されたバックエンド仮想マシンサーバ(431)に伝達されてもよい。また、ループバックモジュール711は、バックエンド仮想マシンサーバ1(431)からの応答パケットをトンネリングによって再びロードバランシングノード420に伝達せずに、ルータ410に直接伝達することにより、遅延速度(latency)を減らすことができる。
このように、本発明の実施形態では、仮想ネットワーク環境でのロードバランシングノードとバックエンド仮想マシンサーバ間のパケットの伝達を、仮想スイッチを利用したトンネリングによって処理することができる。また、仮想スイッチによってループバックインタフェースのための処理を提供することにより、顧客がバックエンド仮想マシンサーバそれぞれにループバックインタフェースを設定しなくてもDSRロードバランシングを可能にし、遅延速度を減らすことができる。さらに、発信者のIPソースアドレスがバックエンド仮想マシンサーバに伝達されるため、バックエンド仮想マシンサーバでクライアントに関する情報が得られるようになる。
図8は、本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードの内部構成を説明するためのブロック図である。図8では、1つのノード810に対する実施形態について説明するが、仮想ネットワーク環境を構成するための物理的なノードは、図8のノード810と同一または類似の内部構成を有してよい。
ノード810は、メモリ811、プロセッサ812、通信モジュール813、そして入力/出力インタフェース814を含んでよい。メモリ811は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永久大容量記憶装置(permanent mass storage device)を含んでよい。ここで、ROMと永久大容量記憶装置は、メモリ811とは分離する別の永久格納装置として含まれてもよい。また、メモリ811には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、ロードバランシングノード420にL4 DSRロードバランサ421および仮想スイッチ520を実現するためのプログラムやソフトウェアモジュールのコード)が格納されてよい。このようなソフトウェア構成要素は、メモリ811とは別のコンピュータで読み取り可能な記録媒体からロードされてよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD−ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール813を通じてメモリ811にロードされてもよい。
プロセッサ812は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ811または通信モジュール813によって、プロセッサ812に提供されてよい。例えば、プロセッサ812は、メモリ811のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。より具体的な例として、ノード810を利用してVPC(Virtual Private Cloud)サービスを提供するサービス提供者は、顧客のロードバランシングサービス提供の要請にしたがい、L4 DSRロードバランサおよび仮想スイッチを実現するための命令を、通信モジュール813を通じてノード810に入力してよい。このとき、ノード810のプロセッサ812は、入力された命令とメモリ811に格納されたコンピュータプログラムの命令にしたがってL4 DSRロードバランサおよび仮想スイッチを実現し、指定された顧客のバックエンド仮想マシンサーバにロードバランシングサービスを提供してよい。
通信モジュール813は、実際のネットワークを介して他の物理的なノードと互いに通信するための機能を提供してよい。一例として、ノード810のプロセッサ812がメモリ811のような記録装置に格納されたプログラムコードにしたがって生成したパケット(一例として、バックエンド仮想マシンサーバに伝達するためのパケット)が、通信モジュール813の制御にしたがって実際のネットワークを介して他の物理的なノードに伝達されてよい。これとは逆に、他の物理的なノードからのパケットが通信モジュール813を通じて受信され、ノード810のプロセッサ812やメモリ811に伝達されてもよい。
入力/出力インタフェース814は、入力/出力装置815とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、ディスプレイのような装置を含んでよい。また、他の実施形態として、ノード810は、図8の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、ノード810は、物理的な各種ボタンやタッチパネルを利用したボタン、または入力/出力ポートなどの多様な構成要素がノード810にさらに含まれるように実現されてもよいことを理解できるであろう。
以下で説明される図9および図10は、ロードバランスノードがロードバランシングを処理する実施形態について説明する。
図9は、本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図10は、本発明の一実施形態における、ノードが実行することのできる方法の例を示したフローチャートである。
本実施形態に係るノード810は、上述したロードバランシングノードに対応してよく、L4 DSRロードバランサおよび仮想スイッチを構成するための物理的な装置であってよい。このようなノード810に含まれるプロセッサ812は、構成要素として、ロードバランシング処理要請受信部910、ロードバランサおよび仮想スイッチ実現部920、要求パケット受信部930、バックエンド仮想マシンサーバ選択部940、仮想ネットワーキングパケット生成部950、および仮想ネットワーキングパケット送信部960を含んでよい。
このようなプロセッサ812およびプロセッサ812の構成要素は、図10の方法が含む段階1010〜1060を実行してよい。このとき、プロセッサ812およびプロセッサ812の構成要素は、メモリ811が含むオペレーティングシステムのコードおよび/または少なくとも1つのプログラムのコードによる命令(instruction)を実行するように実現されてよい。ここで、プロセッサ812の構成要素は、ノード810に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ812によって実行される、プロセッサ812の互いに異なる機能(different functions)として実現することができる。このとき、プロセッサ812は、ノード810の制御と関連する命令がロードされたメモリ811から必要な制御命令を読み取り、読み取った制御命令にしたがって後述する段階1010〜1060を実行するようにノード810を制御してよい。
段階1010で、ロードバランシング処理要請受信部910は、仮想ネットワークのためのサービスの顧客端末からロードバランシングの処理のための要請を受信するようにノード810を制御してよい。例えば、仮想ネットワークのためのサービス提供者は、実際のネットワークを介して顧客端末からの多様な要求に応じて仮想リソースを顧客に提供してよい。このとき、ロードバランシング要請受信部910は、顧客のロードバランシングの処理のための要請を受信してよい。実施形態によっては、仮想ネットワークの物理的な装置を制御する制御装置が、顧客端末からロードバランシングの処理のための要請を受信してもよい。この場合、ロードバランシング処理要請受信部910は、制御装置から顧客要請の伝達を受けてよい。
段階1020で、ロードバランサおよび仮想スイッチ実現部920は、受信した要請にしたがい、該当の顧客のためのロードバランサと仮想スイッチを生成してよい。このようなロードバランサと仮想スイッチは、仮想モジュールの形態で生成されてよい。VPCのような仮想ネットワークで仮想リソースをどのように生成して提供するかについては、既存の技術を利用することで当業者が容易に理解できるであろう。
段階1030で、要求パケット受信部930は、ルータを通じてクライアントから要求パケットを受信するようにノード810を制御してよい。仮想ネットワークのためのサービスを提供するサービス提供者の観点の顧客は、クライアントにサービスを提供してよく、このために多数のバックエンド仮想マシンサーバを構築してよい。このとき、段階1010で説明したロードバランシングの処理のための要請とは、クライアントの要請パケットに対するロードバランシングの処理を、顧客が要求することを意味してよい。この場合、クライアントからの要求パケットは、バックエンド仮想マシンサーバに伝達される前に共用ネットワークのルータを経てノード810に送信されてよく、要求パケット受信部930は、送信された要求パケットを受信するようにノード810を制御してよい。
段階1040で、バックエンド仮想マシンサーバ選択部940は、受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ(load balancer)によって選択してよい。言い換えれば、バックエンド仮想マシンサーバ選択部940は、ロードバランサを通じて要求パケットが複数のバックエンド仮想マシンサーバに分散処理されるようにしてよい。このようなロードバランサは、段階1020で生成されたソフトウェアモジュールであってよい。
段階1050で、仮想ネットワーキングパケット生成部950は、受信した要求パケットを、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに送信するための情報を、ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ(overlay)して仮想ネットワーキングのためのパケットを生成してよい。要求パケットは、実際のネットワークを介して送信されたパケットであり、仮想ネットワークを介した送信のためには、仮想ネットワーキングプロトコルのためのヘッダなどが要求される。仮想ネットワーキングパケット生成部950は、このような仮想ネットワーキングプロトコルのためのヘッダのような情報を受信した要求パケットにオーバーレイすることにより、仮想ネットワーキングのためのパケットを生成してよい。例えば、仮想ネットワーキングパケット生成部950は、段階1050で、要求パケットにVxLAN(Virtual extensible LAN)、VLAN(Virtual LAN)、GRE(Generic Route Encapsulation)、および802.11brのうちの1つの仮想ネットワーキングプロトコルを適用するトンネリング(tunneling)により、仮想ネットワーキングのためのパケットを生成してよい。このために、ノード810は、ネットワークモデルのレイヤ2、3、4を処理できるように実現されてよく、要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ2およびレイヤ3のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含んでよい。
段階1060で、仮想ネットワーキングパケット送信部960は、生成された仮想ネットワーキングのためのパケットをハイパーバイザノードに送信するようにノード810を制御してよい。ここで、ハイパーバイザノードは、前記選択されたバックエンド仮想マシンサーバを含んでよく、送信された仮想ネットワーキングのためのパケットを、仮想ネットワークを介して受信し、ハイパーバイザノードが含む仮想スイッチのうちで選択されたバックエンド仮想マシンサーバのための仮想スイッチによって要求パケットを抽出し、抽出された要求パケットを、ロードバランサを通じて選択されたバックエンド仮想マシンサーバに伝達するように実現されてよい。また、上述したように、ハイパーバイザノードが仮想スイッチを構成することができない場合も存在する。この場合、送信された仮想ネットワーキングのためのパケットは、TOR(Top Of Rack)スイッチに伝達され、TORスイッチが含む仮想スイッチのうちで前記選択されたバックエンド仮想マシンサーバのための仮想スイッチによって要求パケットに再変換されてハイパーバイザノードに伝達されてよい。このとき、ハイパーバイザノードは、再変換された要求パケットを選択されたバックエンド仮想マシンサーバに伝達するように実現されてよい。
実施形態によって、ロードバランサは、L4 DSR(Direct Server Return)ロードバランサを含んでよい。このために、選択されたバックエンド仮想マシンサーバは、伝達された要求パケットに対する応答パケットを、前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用してL4 DSRロードバランサを経ずにルータに直接送信するように実現されてよい。
上述したように、要求パケットは、クライアントのIPアドレスを含んでいるため、要求パケットがカプセル化されている仮想ネットワーキングのためのパケットにより、クライアントのIPアドレスが前記選択されたバックエンド仮想マシンサーバに伝達されてよい。
以下で説明される図11および図12は、ノード810から送信された仮想ネットワーキングのためのパケットを受信するハイパーバイザノードがロードバランシングを処理する実施形態について説明する。
図11は、本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードのプロセッサが含むことのできる構成要素の他の例を示したブロック図であり、図12は、本発明の一実施形態における、ノードが実行することのできる方法の他の例を示したフローチャートである。
本実施形態に係るノード810は、上述したハイパーバイザノードに対応してよく、少なくとも1つのバックエンド仮想マシンサーバとバックエンド仮想マシンサーバそれぞれに対応する仮想スイッチを構成するための物理的な装置であってよい。このようなノード810に含まれるプロセッサ812は、構成要素として、サーバおよび仮想スイッチ実現部1110、パケット受信部1120、要求パケット抽出部1130、要求パケット伝達部1140、要請処理部1150、および応答パケット伝達部1160を含んでよい。
このようなプロセッサ812およびプロセッサ812の構成要素は、図12の方法が含む段階1210〜1260を実行してよい。このとき、プロセッサ812およびプロセッサ812の構成要素は、メモリ811が含むオペレーティングシステムのコードおよび/または少なくとも1つのプログラムのコードによる命令(instruction)を実行するように実現されてよい。ここで、プロセッサ812の構成要素は、ノード810に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ812によって実行される、プロセッサ812の互いに異なる機能(different functions)として実現することができる。このとき、プロセッサ812は、ノード810の制御と関連する命令がロードされたメモリ811から必要な制御命令を読み取り、読み取った制御命令にしたがって後述される段階1210〜1260を実行するようにノード810を制御してよい。
段階1210で、サーバおよび仮想スイッチ実現部1110は、顧客の要請にしたがい、少なくとも1つのバックエンド仮想マシンサーバとバックエンド仮想マシンサーバに対応する仮想スイッチを生成してよい。バックエンド仮想マシンサーバと仮想スイッチはそれぞれ、ソフトウェアモジュールとして生成されてよい。
段階1220で、パケット受信部1120は、ロードバランサを含むロードバランシングノードから実際のネットワークを介して仮想ネットワーキングのためのパケットを受信するようにノード810を制御してよい。ここで、上述したように、仮想ネットワーキングのためのパケットは、ロードバランシングノードがルータを通じて伝達されたクライアントからの要求パケットに、要求パケットを、仮想ネットワークを介して送信するために要求される情報をロードバランシングノードが含む仮想スイッチによってオーバーレイして生成されてよい。
段階1230で、要求パケット抽出部1130は、ハイパーバイザノードが含む仮想スイッチのうちでロードバランサによって選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用し、仮想ネットワーキングのためのパケットで要求パケットを抽出してよい。仮想ネットワーキングのためのパケットは、要求パケットをカプセル化しているため、要求パケット抽出部1130は、仮想ネットワーキングのためのパケットから仮想ネットワーキングのためにオーバーレイされた情報を取り除いて要求パケットを取得してよい。
段階1240で、要求パケット伝達部1140は、抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達してよい。上述したように、バックエンド仮想マシンサーバは、ソフトウェアモジュールの形態を有するため、実質的なデータ送信は発生しなくてよい。
段階1250で、要請処理部1150は、クライアントからの要求パケットによる要請を処理し、要求パケットに対する応答パケットを生成してよい。例えば、要請処理部1150は、ソフトウェアモジュールの形態を有する前記選択されたバックエンド仮想マシンサーバの制御にしたがって要求パケットを処理してよく、応答パケットを生成してよい。
段階1260で、応答パケット伝達部1160は、前記選択されたバックエンド仮想マシンサーバの制御にしたがって伝達された要求パケットに対する応答パケットを、前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用してL4 DSRロードバランサを経ずにルータに直接送信するようにノード810を制御してよい。このように、応答パケットがL4 DSRロードバランサを経ないため、遅延速度で利得を得ることができる。
実施形態によっては、ハイパーバイザノードが仮想スイッチを構成することができない場合も存在する。この場合には、ハイパーバイザノードは、上述したように、TOR(Top Of Rack)スイッチに構成された仮想スイッチを利用して仮想ネットワーキングのためのパケットから応答パケットを得てもよい。このために、ハイパーバイザノードは、段階1210でバックエンド仮想マシンサーバのみを生成してよく、段階1220でTORスイッチから要求パケットを得てよい。段階1230は省略されてもよく、段階1240および段階1250を経た後、段階1260で応答パケットをTORスイッチに構成された仮想スイッチを利用してL4 DSRロードバランサを経ずにルータに直接送信するようにノード810を制御してもよい。
図13は、本発明の一実施形態における、仮想ネットワーク環境で仮想スイッチを含むハイパーバイザノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図14は、本発明の一実施形態における、仮想スイッチを含むハイパーバイザノードが実行することのできる方法の例を示したフローチャートである。
本実施形態に係るノード810は、上述したハイパーバイザノードに対応してよく、少なくとも1つのバックエンド仮想マシンサーバとバックエンド仮想マシンサーバそれぞれに対応する仮想スイッチを構成するための物理的な装置であってよい。このようなノード810に含まれるプロセッサ812は、構成要素として、サーバおよび仮想スイッチ実現部1310、パケット受信部1320、応答パケット生成部1330、および応答パケット送信部1340を含んでよい。
このようなプロセッサ812およびプロセッサ812の構成要素は、図14の方法が含む段階1410〜1440を実行してよい。このとき、プロセッサ812およびプロセッサ812の構成要素は、メモリ811が含むオペレーティングシステムのコードおよび/または少なくとも1つのプログラムのコードによる命令(instruction)を実行するように実現されてよい。ここで、プロセッサ812の構成要素は、ノード810に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ812によって実行される、プロセッサ812の互いに異なる機能(different functions)として実現することができる。このとき、プロセッサ812は、ノード810の制御と関連する命令がロードされたメモリ811から必要な制御命令を読み取り、読み取った制御命令にしたがって以後で説明される段階1410〜1440を実行するようにノード810を制御してよい。
段階1410で、サーバおよび仮想スイッチ実現部1310は、少なくとも1つのバックエンド仮想マシンサーバおよび前記少なくとも1つのバックエンド仮想マシンサーバに対応してDSR(Direct Server Return)処理機能を含む仮想スイッチを生成してよい。例えば、サーバおよび仮想スイッチ実現部1310は、顧客の要請にしたがい、ハイパーバイザノードは顧客が望む仮想リソースの形態でバックエンド仮想マシンサーバを生成して提供してよく、顧客は生成されたバックエンド仮想マシンサーバを通じてクライアントにサービスを提供してよい。また、サーバおよび仮想スイッチ実現部1310は、生成されたバックエンド仮想マシンサーバそれぞれに対応する仮想スイッチを生成してよい。このとき、仮想スイッチは、DSR処理機能を含んでよい。このようなDSR処理機能は、以下で説明するように、クライアントからの要求パケットに含まれたIPアドレスを利用して要求パケットに対する応答パケットを実際のネットワーク上のルータに直接送信するための機能を含んでよい。
段階1420で、パケット受信部1320は、L4 DSRロードバランサを含むロードバランシングノードがルータを通じて受信したクライアントからの要求パケットを、ロードバランシングノードから仮想ネットワークを介して受信してよい。上述したように、要求パケットは、VxLAN(Virtual extensible LAN)、VLAN(Virtual LAN)、GRE(Generic Route Encapsulation)、および802.11brのうちの1つの仮想ネットワーキングプロトコルを適用したトンネリング(tunneling)により、仮想ネットワークを介して要求パケットを送信するための情報が前記要求パケットにオーバーレイされて伝達されてよい。このとき、要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ2およびレイヤ3のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含んでよい。
段階1430で、応答パケット生成部1330は、生成された少なくとも1つのバックエンド仮想マシンサーバのうちでL4 DSRロードバランサによって選択されたバックエンド仮想マシンサーバを通じて要求パケットを処理して、応答パケットを生成してよい。例えば、応答パケット生成部1330は、前記生成された仮想スイッチを利用して前記情報がオーバーレイされた要求パケットから要求パケットを抽出し、前記選択されたバックエンド仮想マシンサーバに伝達してよい。また、応答パケット生成部1330は、前記選択されたバックエンド仮想マシンサーバを通じて要求パケットを処理して応答パケットを生成してよい。
段階1440で、応答パケット送信部1340は、生成された仮想スイッチが含むDSR処理機能にしたがって生成された応答パケットを、要求パケットが含むクライアントのIPアドレスに基づいて実際のネットワーク上のルータに送信してよい。例えば、応答パケット送信部1340は、生成された応答パケットを、仮想ネットワークを介してL4 DSRロードバランサを経ずにDSR処理機能によって実際のネットワーク上のルータに直接送信してよい。言い換えれば、要求パケットは、ロードバランシングノードから仮想ネットワークを介して伝達されるが、要求パケットに対する応答パケットは、実際のネットワークを介してルータに送信されてよい。
図15は、本発明の一実施形態における、仮想ネットワーク環境でTORスイッチノードを実現するための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図16は、本発明の一実施形態における、TORスイッチノードが実行することのできる方法の例を示したフローチャートである。
本実施形態に係るノード810は、上述したTORスイッチに対応する物理的な装置であってよい。このようなノード810に含まれるプロセッサ812は、構成要素として、仮想スイッチ実現部1510、パケット受信部1520、要求パケット送信部1530、応答パケット受信部1540、および応答パケット送信部1550を含んでよい。
このようなプロセッサ812およびプロセッサ812の構成要素は、図16の方法が含む段階1610〜1650を実行してよい。このとき、プロセッサ812およびプロセッサ812の構成要素は、メモリ811が含むオペレーティングシステムのコードおよび/または少なくとも1つのプログラムのコードによる命令(instruction)を実行するように実現されてよい。ここで、プロセッサ812の構成要素は、ノード810に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ812によって実行される、プロセッサ812の互いに異なる機能(different functions)として実現することができる。このとき、プロセッサ812は、ノード810の制御と関連する命令がロードされたメモリ811から必要な制御命令を読み取り、読み取った制御命令にしたがって以後で説明される段階1610〜1660を実行するようにノード810を制御してよい。
段階1610で、仮想スイッチ実現部1510は、複数のバックエンド仮想マシンサーバそれぞれに対応し、DSR(Direct Server Return)処理機能を含む仮想スイッチを生成してよい。このとき、複数のバックエンド仮想マシンサーバは、少なくとも1つのハイパーバイザノードに構成されてよい。仮想スイッチ実現部1510は、上述した少なくとも1つのハイパーバイザノードに構成された複数のバックエンド仮想マシンサーバを確認し、確認されたバックエンド仮想マシンサーバそれぞれのための仮想スイッチを生成してよい。
段階1620で、パケット受信部1520は、L4 DSRロードバランサを含むロードバランシングノードがルータを通じて受信したクライアントからの要求パケットを、ロードバランシングノードから仮想ネットワークを介して受信するようにノード810を制御してよい。上述したように、要求パケットは、VxLAN(Virtual extensible LAN)、VLAN(Virtual LAN)、GRE(Generic Route Encapsulation)、および802.11brのうちの1つの仮想ネットワーキングプロトコルを適用したトンネリング(tunneling)により、仮想ネットワークを介して要求パケットを送信するための情報が前記要求パケットにオーバーレイされて伝達されてよい。ここで、要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ2およびレイヤ3のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含んでよい。
段階1630で、要求パケット送信部1530は、L4 DSRロードバランサによって選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに要求パケットを送信するようにノード810を制御してよい。例えば、要求パケット送信部1530は、生成された仮想スイッチを利用して前記情報がオーバーレイされた要求パケットから前記要求パケットを抽出し、前記選択されたバックエンド仮想マシンサーバに伝達することによって要求パケットをハイパーバイザノードに送信してよい。
段階1640で、応答パケット受信部1540は、選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードから要求パケットに対する応答パケットを受信するようにノード810を制御してよい。ここで、要求パケットは、前記選択されたバックエンド仮想マシンサーバによって処理されてよく、前記選択されたバックエンド仮想マシンサーバを通じて前記応答パケットが生成されてよい。
段階1650で、応答パケット送信部1550は、生成された仮想スイッチが含むDSR処理機能にしたがって受信された応答パケットを、要求パケットが含むクライアントのIPアドレスに基づいて実際のネットワーク上のルータに送信するようにノード810を制御してよい。例えば、応答パケット送信部1550は、生成された応答パケットを、仮想ネットワークを介してL4 DSRロードバランサを経ずにDSR処理機能にしたがって実際のネットワーク上のルータに直接送信してよい。言い換えれば、要求パケットは、ロードバランシングノードから仮想ネットワークを介して伝達されたが、要求パケットに対する応答パケットは実際のネットワークを介してルータに送信されてよい。
図17は、本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのパケットモニタリングのための動作の例を示した図である。図17は、図6を参照しながら説明したルータ410、ロードバランシングノード420、ハイパーバイザ430、440、L 4DSRロードバランサ421、バックエンド仮想マシンサーバ1(431)、バックエンド仮想マシンサーバ2(432)、バックエンド仮想マシンサーバ3(441)、およびバックエンド仮想マシンサーバ431、432、441それぞれのためのループバックモジュール610、620、630をさらに示している。また、図17は、モニタリング仮想マシン(Monitoring VM)1710をさらに示している。
ここで、ループバックモジュール610、620、630は、上述したように、バックエンド仮想マシンサーバ431、432、441それぞれに対して送受信されるパケットをすべて処理する。本実施形態において、ループバックモジュール610、620、630は、このように送受信されるパケットをすべてコピーしてモニタリング仮想マシン1710に伝達してよい。実施形態によっては、特定のバックエンド仮想マシンサーバに対して送受信されるパケットだけをコピーしてモニタリング仮想マシン1710に伝達することも可能である。
この場合、モニタリング仮想マシン1710は、DPI(Deep Packet Inspection)のための機能を含んでよい。DPIとは、パケットの出発地と目的地情報だけではなく、パケットの内容までも検査する技術であって、アプリケーションレベル(レイヤ7)のデータを基盤としてパケットを識別および分類して特定のデータを分析する技術であり、これを通じてワームやハッキングなどの攻撃の可否を識別および分析してよい。言い換えれば、本実施形態では、L4 DSRロードバランシングのために利用される仮想スイッチを利用して必要なバックエンド仮想マシンサーバに対して送受信されるすべてのパケットをモニタリング仮想マシン1710によってミラーリング(mirroring)することにより、モニタリング仮想マシン1710がDPIのための機能を利用してパケットを分析することが可能となる。図17では、モニタリング仮想マシン1710がハイパーバイザ430に含まれる例について説明しているが、モニタリング仮想マシン1710は、希望するバックエンド仮想マシンサーバに対応する仮想スイッチからパケットの提供を受けることのできる、いずれの位置でも実現可能である。例えば、モニタリング仮想マシン1710は、別のハイパーバイザノードに実現されてもよい。
図18は、本発明の一実施形態における、仮想ネットワーク環境でモニタリング仮想マシンを実現する物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図19は、本発明の一実施形態における、モニタリング仮想マシンを実現するノードが実行することのできる方法の例を示したフローチャートである。
本実施形態に係るノード810は、上述したモニタリング仮想マシンを実現するためのノードに対応する物理的な装置であってよい。このようなノード810に含まれるプロセッサ812は、構成要素として、モニタリング仮想マシン生成部1810、ミラーリング部1820、およびパケット分析部1830を含んでよい。
このようなプロセッサ812およびプロセッサ812の構成要素は、図19の方法が含む段階1910〜1930を実行してよい。このとき、プロセッサ812およびプロセッサ812の構成要素は、メモリ811が含むオペレーティングシステムのコードおよび/または少なくとも1つのプログラムのコードによる命令(instruction)を実行するように実現されてよい。ここで、プロセッサ812の構成要素は、ノード810に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ812によって実行される、プロセッサ812の互いに異なる機能(different functions)として実現することができる。このとき、プロセッサ812は、ノード810の制御と関連する命令がロードされたメモリ811から必要な制御命令を読み取り、読み取った制御命令にしたがって以下で説明される段階1910〜1930を実行するようにノード810を制御してよい。
段階1910で、モニタリング仮想マシン生成部1810は、DPI(Deep Packet Inspection)のための機能が含まれたモニタリング仮想マシンを生成してよい。DPIは、パケットの出発地と目的地情報だけではなく、パケットの内容までも検査する技術として周知であり、このような周知の技術を仮想マシンに適用することは、当業者であれば容易に理解できるであろう。
段階1920で、ミラーリング部1820は、少なくとも1つのバックエンド仮想マシンサーバに対して送受信されるパケットを、少なくとも1つのバックエンド仮想マシンサーバに対応する仮想スイッチによってミラーリング(mirroring)してよい。ここで、仮想スイッチは、ロードバランシングのためのロードバランシングノードから仮想ネットワークを介して送信される仮想パケットから、実際のパケットを分離して対応するバックエンド仮想マシンサーバに伝達し、バックエンド仮想マシンサーバからの実際のパケットに対する応答パケットを実際のネットワーク上のルータに送信してよい。さらに詳しく説明すると、仮想スイッチは、応答パケットを、仮想ネットワークを介してロードバランシングノードが含むL4 DSR(Direct Server Return)ロードバランサを経ず、仮想スイッチに設定されたループバック(loop back)インタフェースにしたがって実際のネットワーク上のルータに直接送信してよい。
段階1930で、パケット分析部1830は、DPIのための機能を利用して少なくとも1つのバックエンド仮想マシンサーバに対してミラーリングされたパケットを分析してよい。本実施形態は、仮想ネットワーク環境でバックエンド仮想マシンサーバに送受信されるパケットをどれほど簡単に取得できるかに関するものである。上述したように、バックエンド仮想マシンサーバは、顧客によって構成されるものであるため、パケットのミラーリング機能を追加するように要求および/または強制することは困難である。また、DSR方式においてロードバランシングノードは、バックエンド仮想マシンサーバに送信されるパケットだけを扱い、ルータは実際のネットワーク(共用ネットワーク)上の装置であるため、仮想ネットワークのためのサービス提供者が任意に機能を変更することはできない。本実施形態では、サービス提供者側で直接管理することのできる仮想スイッチを利用してバックエンド仮想マシンサーバに対して送受信されるパケットをモニタリング仮想サーバにミラーリングすることにより、仮想ネットワーク環境で希望するバックエンド仮想マシンサーバに対して送受信されるパケットを容易に取得することができる。DPIを利用して、取得したパケットを分析することは、既存の周知技術によって処理されることを当業者であれば容易に理解できるであろう。
仮想ネットワークを介したパケットの伝達のためのオーバーレイおよびトンネリングなどや、L4 DSRロードバランシングのためのループバックインタフェースが設定された仮想スイッチ、さらにはTORスイッチを利用した仮想スイッチについては、上述したとおりであるため、繰り返しの説明は省略する。
このように本発明の実施形態によると、VPC(Virtual Private Cloud)環境でハイパーバイザ(hypervisor)を通じて顧客が構成するバックエンド仮想マシンサーバ(Backend Virtual Machine Server)に対するロードバランシングをトンネリングによって処理することができる。また、VPC環境でバックエンド仮想マシンサーバに必要なループバック(loopback)インタフェースをハイパーバイザの仮想スイッチ(virtual switch)によって実現および提供することにより、顧客がループバックインタフェースを直接設定する必要がない上に、VPC環境でもバックエンド仮想マシンサーバの応答を、ロードバランサを経ずにルータに直接伝達することができる。また、上述した新たなロードバランサと仮想スイッチを利用してVPC環境でのL4 DSRロードバランシングを処理することにより、遅延速度(latency)を減らすことができる。さらに、ロードバランシングのための前記仮想スイッチを利用し、バックエンド仮想マシンサーバで送受信されるパケットをDPI(Deep Packet Inspection)のための機能が含まれたモニタリング仮想マシンによってミラーリング(mirroring)することにより、モニタリング仮想マシンで希望するバックエンド仮想マシンに対して送受信されるすべてのパケットを収集および分析することができる。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、所望の動作を実行するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に永久的または一時的に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてもよいし、コンピュータで読み取り可能な媒体にプログラム命令の形態で記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェアの当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等な範囲に含まれるものであれば、添付される特許請求の範囲に属する。
410:ルータ
420:ロードバランシングノード
421:L4 DSRロードバランサ
430、440:ハイパーバイザ
431:バックエンド仮想マシンサーバ1
432:バックエンド仮想マシンサーバ2
441:バックエンド仮想マシンサーバ3

Claims (21)

  1. 仮想ネットワーク上でロードバランシングノードがロードバランシングを処理する方法であって、
    ルータを通じてクライアントからの要求パケットを受信する段階、
    前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサによって選択する段階、
    前記仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイして仮想ネットワーキングのためのパケットを生成する段階、および
    前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階
    を含み、
    前記ハイパーバイザノードは、さらにモニタリング仮想マシンを含み、
    前記ハイパーバイザノードが含む仮想スイッチは、前記選択されたバックエンド仮想マシンサーバに、抽出した前記要求パケットを伝達するとともに、該要求パケットをコピーして前記モニタリング仮想マシンに伝達する、ロードバランシング処理方法。
  2. 前記ハイパーバイザノードは、
    前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、
    前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項1に記載のロードバランシング処理方法。
  3. 前記送信された仮想ネットワーキングのためのパケットは、TORスイッチに伝達され、前記TORスイッチが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、
    前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項1または2に記載のロードバランシング処理方法。
  4. 前記ロードバランサは、L4 DSRロードバランサを含み、
    前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記L4 DSRロードバランサを経ずに前記ルータに直接伝達する、請求項1乃至3のいずれか一項に記載のロードバランシング処理方法。
  5. 前記要求パケットは、前記クライアントのIPアドレスを含み、
    前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのIPアドレスが前記選択されたバックエンド仮想マシンサーバに伝達される、請求項1乃至4のいずれか一項に記載のロードバランシング処理方法。
  6. 前記仮想ネットワーキングのためのパケットを生成する段階は、
    前記要求パケットにVxLAN、VLAN、GRE、および802.11brのうちの1つの仮想ネットワーキングプロトコルを適用したトンネリングによって前記仮想ネットワーキングのためのパケットを生成する、請求項1乃至5のいずれか一項に記載のロードバランシング処理方法。
  7. 前記要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ2およびレイヤ3のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含む、請求項1乃至6のいずれか一項に記載のロードバランシング処理方法。
  8. 仮想ネットワーク上でハイパーバイザノードがロードバランシングを処理する方法であって、
    ロードバランサを含むロードバランシングノードから実際のネットワークを介して仮想ネットワーキングのためのパケットを受信する段階(前記仮想ネットワーキングのためのパケットは、前記ロードバランシングノードがルータを通じて伝達を受けたクライアントからの要求パケットに、前記仮想ネットワークを介して前記要求パケットを送信するために要求される情報を前記ロードバランシングノードが含む仮想スイッチを利用してオーバーレイして生成される)、
    前記ハイパーバイザノードが含む仮想スイッチのうち前記ロードバランサによって選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記仮想ネットワーキングのためのパケットから前記要求パケットを抽出する段階、および
    前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する段階
    を含み、
    前記ハイパーバイザノードは、さらにモニタリング仮想マシンを含み、
    前記ハイパーバイザノードが含む仮想スイッチは、前記選択されたバックエンド仮想マシンサーバに、抽出した前記要求パケットを伝達するとともに、該要求パケットをコピーして前記モニタリング仮想マシンに伝達する、ロードバランシング処理方法。
  9. 前記ロードバランサは、L4 DSRロードバランサを含み、
    前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記L4 DSRロードバランサを経ずに前記ルータに直接伝達する、請求項8に記載のロードバランシング処理方法。
  10. 請求項1〜9のいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されている、コンピュータで読み取り可能な記録媒体。
  11. 請求項1〜9のいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
  12. コンピュータを、ロードバランシング処理方法を実行するロードバランシングノードとして機能させるためのコンピュータプログラムであって、
    前記ロードバランシング処理方法は、
    ルータを通じてクライアントからの要求パケットを受信する段階、
    前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサによって選択する段階、
    仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイして仮想ネットワーキングのためのパケットを生成する段階、および
    前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階
    を含み、
    前記ハイパーバイザノードは、さらにモニタリング仮想マシンを含み、
    前記ハイパーバイザノードが含む仮想スイッチは、前記選択されたバックエンド仮想マシンサーバに、抽出した前記要求パケットを伝達するとともに、該要求パケットをコピーして前記モニタリング仮想マシンに伝達する、コンピュータプログラム。
  13. 前記ハイパーバイザノードは、
    前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、
    前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達す
    る、請求項12に記載のコンピュータプログラム。
  14. 前記送信された仮想ネットワーキングのためのパケットは、TORスイッチに伝達され、前記TORスイッチが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、
    前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項12または13に記載のコンピュータプログラム。
  15. 前記ロードバランサは、L4 DSRロードバランサを含み、
    前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記L4 DSRロードバランサを経ずに前記ルータに直接伝達する、請求項12乃至14のいずれか一項に記載のコンピュータプログラム。
  16. 前記要求パケットは、前記クライアントのIPアドレスを含み、
    前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのIPアドレスが前記選択されたバックエンド仮想マシンサーバに伝達される、請求項12乃至15のいずれか一項に記載のコンピュータプログラム。
  17. ロードバランシング処理方法を実行するためにコンピュータで実現されるロードバランシングノードであって、
    コンピュータで読み取り可能な命令を格納するメモリ、および
    前記メモリに格納された命令を実行するように実現される少なくとも1つのプロセッサ
    を含み、
    前記少なくとも1つのプロセッサは、
    ルータを通じてクライアントからの要求パケットを受信するように前記ロードバランシングノードを制御し、
    前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサによって選択し、
    仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイして仮想ネットワーキングのためのパケットを生成し、
    前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信するように前記ロードバランシングノードを制御する、プロセッサであり、
    前記ハイパーバイザノードは、さらにモニタリング仮想マシンを含み、
    前記ハイパーバイザノードが含む仮想スイッチは、前記選択されたバックエンド仮想マシンサーバに、抽出した前記要求パケットを伝達するとともに、該要求パケットをコピーして前記モニタリング仮想マシンに伝達する、コンピュータで実現されるロードバランシングノード。
  18. 前記ハイパーバイザノードは、
    前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、
    前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項17に記載のコンピュータで実現されるロードバランシングノード。
  19. 前記送信された仮想ネットワーキングのためのパケットは、TORスイッチに伝達され、前記TORスイッチが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、
    前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項17または18に記載のコンピュータで実現されるロードバランシングノード。
  20. 前記ロードバランサは、L4 DSRロードバランサを含み、
    前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記L4 DSRロードバランサを経ずに前記ルータに直接伝達する、請求項17乃至19のいずれか一項に記載のコンピュータで実現されるロードバランシングノード。
  21. 前記要求パケットは、前記クライアントのIPアドレスを含み、
    前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのIPアドレスが前記選択されたバックエンド仮想マシンサーバに伝達される、請求項17乃至20のいずれか一項に記載のコンピュータで実現されるロードバランシングノード。
JP2017160060A 2016-08-25 2017-08-23 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム Active JP6505172B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020160108373A KR101936166B1 (ko) 2016-08-25 2016-08-25 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템
KR1020160108376A KR101936169B1 (ko) 2016-08-25 2016-08-25 가상 네트워크 환경에서 패킷을 분석하는 방법 및 시스템
KR10-2016-0108376 2016-08-25
KR10-2016-0108373 2016-08-25

Publications (2)

Publication Number Publication Date
JP2018033136A JP2018033136A (ja) 2018-03-01
JP6505172B2 true JP6505172B2 (ja) 2019-04-24

Family

ID=61244002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017160060A Active JP6505172B2 (ja) 2016-08-25 2017-08-23 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム

Country Status (2)

Country Link
US (2) US10601906B2 (ja)
JP (1) JP6505172B2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
JP6505172B2 (ja) * 2016-08-25 2019-04-24 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US11102032B2 (en) 2017-10-02 2021-08-24 Vmware, Inc. Routing data message flow through multiple public clouds
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US11115480B2 (en) * 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
US11089111B2 (en) * 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11057459B2 (en) * 2018-06-06 2021-07-06 Vmware, Inc. Datapath-driven fully distributed east-west application load balancer
US11336508B2 (en) * 2018-07-01 2022-05-17 Mellanox Technologies, Ltd. Transparent failover in a network interface controller
US11522808B2 (en) 2018-10-20 2022-12-06 Netapp, Inc. Shared storage model for high availability within cloud environments
US11070475B2 (en) * 2018-12-13 2021-07-20 Google Llc Transparent migration of virtual network functions
WO2020202169A1 (en) * 2019-04-04 2020-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Service handling in software defined networking based container orchestration systems
US11201915B1 (en) * 2019-06-28 2021-12-14 Amazon Technologies, Inc. Providing virtual server identity to nodes in a multitenant serverless execution service
US11018995B2 (en) 2019-08-27 2021-05-25 Vmware, Inc. Alleviating congestion in a virtual network deployed over public clouds for an entity
US11611507B2 (en) 2019-10-28 2023-03-21 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11438789B2 (en) 2020-01-24 2022-09-06 Vmware, Inc. Computing and using different path quality metrics for different service classes
CN113709016B (zh) * 2020-05-20 2023-04-07 阿里巴巴集团控股有限公司 通信系统以及通信方法、装置、设备和存储介质
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11363124B2 (en) 2020-07-30 2022-06-14 Vmware, Inc. Zero copy socket splicing
US11444865B2 (en) 2020-11-17 2022-09-13 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11601356B2 (en) 2020-12-29 2023-03-07 Vmware, Inc. Emulating packet flows to assess network links for SD-WAN
CN116783874A (zh) 2021-01-18 2023-09-19 Vm维尔股份有限公司 网络感知的负载平衡
US11509571B1 (en) 2021-05-03 2022-11-22 Vmware, Inc. Cost-based routing mesh for facilitating routing through an SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
CN114422575B (zh) * 2022-03-30 2022-07-08 北京奥星贝斯科技有限公司 处理网络请求的方法和装置
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
CN115604272B (zh) * 2022-11-30 2023-03-14 苏州浪潮智能科技有限公司 负载均衡方法、装置、系统及系统创建方法及设备和介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120743A1 (en) 2001-02-26 2002-08-29 Lior Shabtay Splicing persistent connections
US7962647B2 (en) * 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8213313B1 (en) 2009-04-15 2012-07-03 Tellabs Operations, Inc. Methods and apparatus for shared layer 3 application card in multi-service router
US8416692B2 (en) * 2009-05-28 2013-04-09 Microsoft Corporation Load balancing across layer-2 domains
US8266204B2 (en) 2010-03-15 2012-09-11 Microsoft Corporation Direct addressability and direct server return
US8676980B2 (en) * 2011-03-22 2014-03-18 Cisco Technology, Inc. Distributed load balancer in a virtual machine environment
US8761187B2 (en) * 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
US8812727B1 (en) * 2011-06-23 2014-08-19 Amazon Technologies, Inc. System and method for distributed load balancing with distributed direct server return
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US9184981B2 (en) 2012-03-09 2015-11-10 Futurewei Technologies, Inc. System and apparatus for distributed mobility management based network layer virtual machine mobility protocol
US8942237B2 (en) 2012-06-20 2015-01-27 International Business Machines Corporation Hypervisor independent network virtualization
US8806025B2 (en) 2012-06-25 2014-08-12 Advanced Micro Devices, Inc. Systems and methods for input/output virtualization
US9736211B2 (en) 2012-08-27 2017-08-15 Vmware, Inc. Method and system for enabling multi-core processing of VXLAN traffic
CN103780502A (zh) 2012-10-17 2014-05-07 阿里巴巴集团控股有限公司 一种负载均衡下的数据交互系统、方法及装置
US9197549B2 (en) 2013-01-23 2015-11-24 Cisco Technology, Inc. Server load balancer traffic steering
WO2014136864A1 (ja) * 2013-03-07 2014-09-12 日本電気株式会社 パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
US9781041B2 (en) 2013-07-24 2017-10-03 Dell Products Lp Systems and methods for native network interface controller (NIC) teaming load balancing
JP6156737B2 (ja) 2013-08-19 2017-07-05 APRESIA Systems株式会社 ネットワーク中継システムおよびスイッチ装置
US9565105B2 (en) 2013-09-04 2017-02-07 Cisco Technology, Inc. Implementation of virtual extensible local area network (VXLAN) in top-of-rack switches in a network environment
TWI514250B (zh) 2013-11-18 2015-12-21 Synology Inc 用來管理一儲存系統之方法與裝置以及計算機程式產品
JP6053032B2 (ja) * 2013-12-11 2016-12-27 日本電信電話株式会社 通信制御装置、通信制御方法及び通信制御プログラム
JP2015122680A (ja) 2013-12-25 2015-07-02 株式会社日立製作所 論理ネットワークの構築方法、および、ネットワークシステム
US20150189009A1 (en) * 2013-12-30 2015-07-02 Alcatel-Lucent Canada Inc. Distributed multi-level stateless load balancing
US9515931B2 (en) * 2014-05-30 2016-12-06 International Business Machines Corporation Virtual network data control with network interface card
US10516608B2 (en) * 2014-09-11 2019-12-24 Oath Inc. Systems and methods for directly responding to distributed network traffic
US9912637B2 (en) 2014-09-30 2018-03-06 A 10 Networks, Incorporated Use of packet header extension for layer-3 direct server return
KR101504330B1 (ko) 2014-11-10 2015-03-19 주식회사 씨에이에스 개인정보 모니터링 시스템 및 그 방법
JP2016100739A (ja) * 2014-11-21 2016-05-30 株式会社日立製作所 ネットワークシステム、ネットワークシステムの管理方法及びゲートウェイ装置
US9762457B2 (en) 2014-11-25 2017-09-12 At&T Intellectual Property I, L.P. Deep packet inspection virtual function
US9813323B2 (en) 2015-02-10 2017-11-07 Big Switch Networks, Inc. Systems and methods for controlling switches to capture and monitor network traffic
JP6505172B2 (ja) * 2016-08-25 2019-04-24 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
JP6505171B2 (ja) * 2016-08-25 2019-04-24 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム

Also Published As

Publication number Publication date
US20180063233A1 (en) 2018-03-01
JP2018033136A (ja) 2018-03-01
US10601906B2 (en) 2020-03-24
US11330044B2 (en) 2022-05-10
US20200186598A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
JP6505172B2 (ja) 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
JP6505171B2 (ja) 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム
US10812378B2 (en) System and method for improved service chaining
US10862732B2 (en) Enhanced network virtualization using metadata in encapsulation header
US10944811B2 (en) Hybrid cloud network monitoring system for tenant use
US11329914B2 (en) User customization and automation of operations on a software-defined network
US20200366741A1 (en) Bypassing a load balancer in a return path of network traffic
US10212071B2 (en) Bypassing a load balancer in a return path of network traffic
US20180063077A1 (en) Source network address translation detection and dynamic tunnel creation
JP5951139B2 (ja) 仮想オーバーレイ・ネットワーク・トラフィックへのサービス提供
US9811365B2 (en) Migration of applications between an enterprise-based network and a multi-tenant network
US9871720B1 (en) Using packet duplication with encapsulation in a packet-switched network to increase reliability
US20130054817A1 (en) Disaggregated server load balancing
KR101936166B1 (ko) 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템
KR101941925B1 (ko) 가상 네트워크 환경에서 루프백 인터페이스를 이용하여 dsr 로드 밸런싱을 처리하는 방법 및 시스템
US10892912B2 (en) Optimization of network data transfers over a wide area network
KR101936169B1 (ko) 가상 네트워크 환경에서 패킷을 분석하는 방법 및 시스템
JP2024503599A (ja) 高度に利用可能なフローのための通信チャネル状態情報の同期
JP2024507142A (ja) サービスプロバイダプライベートネットワークを顧客プライベートネットワークに接続するためのクラウドインフラストラクチャリソース
US9853885B1 (en) Using packet duplication in a packet-switched network to increase reliability

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181126

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190326

R150 Certificate of patent or registration of utility model

Ref document number: 6505172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250