JP6053032B2 - COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM - Google Patents
COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM Download PDFInfo
- Publication number
- JP6053032B2 JP6053032B2 JP2013256483A JP2013256483A JP6053032B2 JP 6053032 B2 JP6053032 B2 JP 6053032B2 JP 2013256483 A JP2013256483 A JP 2013256483A JP 2013256483 A JP2013256483 A JP 2013256483A JP 6053032 B2 JP6053032 B2 JP 6053032B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- address
- load balancer
- destination
- communication
- 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
Links
Images
Description
本発明は、通信制御装置、通信制御方法及び通信制御プログラムに関する。 The present invention relates to a communication control device, a communication control method, and a communication control program.
従来、商用クラウド環境を提供する事業者が仮想ロードバランサ(例えば、LBaaS :Load Balancer as a Service)サービスを提供する際、顧客(ユーザ)が各自で構築するクラウド環境上のシステムに仮想ロードバランサを導入する技術が知られている。仮想ロードバランサは、例えば、ユーザがWebサービスの提供等を目的として商用クラウド環境上に複数の仮想マシンを構築している場合において、当該仮想マシンに対する負荷が均一となるような負荷分散を行う。ユーザは、仮想ロードバランサに対して負荷分散対象となる仮想マシンのグループや負荷分散アルゴリズムを設定可能である。 Conventionally, when a provider providing a commercial cloud environment provides a virtual load balancer (for example, LBaAS: Load Balancer as a Service) service, a customer (user) installs a virtual load balancer in a system on the cloud environment that the customer (user) constructs. The technology to introduce is known. For example, when a user constructs a plurality of virtual machines on a commercial cloud environment for the purpose of providing a web service or the like, the virtual load balancer performs load distribution so that the load on the virtual machine is uniform. The user can set a group of virtual machines to be load balanced and a load balancing algorithm for the virtual load balancer.
ここで、あるネットワーク構成に対して仮想ロードバランサを導入する場合の方式として、Two-Arm方式とOne-Arm方式が存在する。Two-Arm方式は、負荷分散対象となる通信が着信するネットワークと負荷分散先となるリアルサーバが存在するネットワークのセグメントが分離されており、それぞれのネットワークに対してロードバランサがインタフェースを持つ。一方、One-Arm方式ではロードバランサは1つのインタフェースしか持たず、負荷分散対象となる通信が着信するネットワークとリアルサーバが存在するネットワークは同一である。 Here, as a method for introducing a virtual load balancer to a certain network configuration, there are a two-arm method and a one-arm method. In the Two-Arm method, a network segment in which a communication to be a load distribution target arrives and a network in which a real server as a load distribution destination exists are separated, and a load balancer has an interface for each network. On the other hand, in the One-Arm system, the load balancer has only one interface, and the network where the communication to be load-balanced is received and the network where the real server exists are the same.
仮想ロードバランサは、仮想環境上のシステムにおいてロードバランサの機能をソフトウェアで実現するものである。仮想ロードバランサを用いることで、ユーザはクラウドサービスなどでロードバランサを含む任意の仮想的なシステムをオンデマンドで構築することができる。 The virtual load balancer implements the load balancer function in software in a system on a virtual environment. By using a virtual load balancer, a user can construct an arbitrary virtual system including a load balancer on-demand with a cloud service or the like.
一般的に、すでに構築済みの仮想環境上のシステムに対してTwo-Arm方式で仮想ロードバランサを追加する場合には、新しい仮想ネットワークの作成や、仮想ロードバランサで仮想ルータを置き換える等のネットワーク構成変更を行う。そのため、ユーザにとって一時的にネットワークが切り離されて通信が遮断されてしまう等のリスクが発生する。これはユーザがスモールスタートから徐々に仮想環境の規模を拡大していく際に仮想ロードバランサを導入する、といったユースケースで障害となる。 In general, when adding a virtual load balancer using the two-arm method to a system on a virtual environment that has already been constructed, a network configuration such as creating a new virtual network or replacing a virtual router with a virtual load balancer Make a change. Therefore, there is a risk for the user that the network is temporarily disconnected and communication is blocked. This becomes an obstacle in use cases where a virtual load balancer is introduced when the user gradually expands the scale of the virtual environment from the small start.
One-Arm方式であれば既存のネットワークに新たに仮想ロードバランサを接続するだけで負荷分散が実現可能であるが、通信が適切に行えない場合がある。つまり、既にあるネットワーク構成に仮想ロードバランサを追加する場合には、仮想マシン(リアルサーバ)のデフォルトGWは通常同じネットワークに属する仮想ルータに設定されている。そのため、仮想ロードバランサから仮想マシンに振り分けられた通信は、復路において仮想ロードバランサではなくデフォルトGWの仮想ルータを経由して接続要求元のクライアントに到達しようとする。 With the One-Arm method, load distribution can be achieved simply by connecting a new virtual load balancer to an existing network, but communication may not be performed properly. That is, when a virtual load balancer is added to an existing network configuration, the default GW of the virtual machine (real server) is usually set to a virtual router belonging to the same network. Therefore, the communication distributed from the virtual load balancer to the virtual machine tries to reach the connection request source client via the default GW virtual router instead of the virtual load balancer in the return path.
ところが、クライアントは受信パケットの送信元IPアドレスが仮想ロードバランサのものではないことから、自分の通信ではないと判断して当該パケットを破棄してしまうため、通信が適切に行えない。一方で、仮想ロードバランサをデフォルトGWとした場合は外部向けの全ての通信が仮想ロードバランサを介してしまうため、無駄なトラフィックが大量に発生してしまう。 However, since the transmission source IP address of the received packet is not that of the virtual load balancer, the client determines that it is not its own communication and discards the packet, so communication cannot be performed properly. On the other hand, when the virtual load balancer is used as the default GW, all external communication passes through the virtual load balancer, so a lot of useless traffic occurs.
そこで、仮想ロードバランサで通信をSNAT(Source Network Address Translation)することでOne-Arm方式においてもロードバランスが実現可能である。パケットの送信元IPアドレスがSNATによって仮想ロードバランサのIPアドレスに書き換えられるため、負荷分散先の仮想マシンは通信に対する応答を仮想ロードバランサに向けて送信するようになる。仮想ロードバランサは再度SNATし、送信元IPアドレスを自身のIPアドレスに書き換えてクライアントに送信することで通信が確立される。 Therefore, load balancing can be realized even in the One-Arm system by performing communication SNAT (Source Network Address Translation) with a virtual load balancer. Since the packet source IP address is rewritten by the SNAT to the virtual load balancer IP address, the load balancing destination virtual machine transmits a response to the communication to the virtual load balancer. The virtual load balancer performs SNAT again, and the communication is established by rewriting the source IP address to its own IP address and transmitting it to the client.
また、ロードバランサの主な転送方式に、NAT方式とDSR方式が存在する。NAT方式は通信をNATし、通信の往路ではパケットの宛先IPアドレスをロードバランサのIPアドレスから負荷分散先の仮想マシンのIPアドレスに変換し、復路では送信元IPアドレスを仮想マシンのアドレスからロードバランサのアドレスに変換してクライアントに送り返す。なお、このようにNAT方式では、通信の往路と復路ともにロードバランサを経由することが前提となる。 There are a NAT method and a DSR method as main transfer methods of the load balancer. The NAT method NATs the communication, converts the destination IP address of the packet from the IP address of the load balancer to the IP address of the virtual machine that is the load distribution destination on the outgoing path of the communication, and loads the source IP address from the virtual machine address on the return path It is converted to a balancer address and sent back to the client. As described above, in the NAT system, it is assumed that both the outbound and inbound communication passes through the load balancer.
一方、DSR方式は、クライアントからロードバランサを経由して各仮想マシンに負荷分散された通信の復路が、仮想マシンからロードバランサを介さずに直接クライアントに戻る方式である。ロードバランサはNATするのではなく、宛先MACアドレスのみを振り分け先の仮想マシンのアドレスに変換して転送する。復路のNATを行わないため、NAT方式と比較して大幅にロードバランサの負荷が少なくなる。 On the other hand, the DSR method is a method in which a return path of communication load-distributed to each virtual machine from a client via a load balancer returns directly to the client without going through the load balancer. The load balancer does not perform NAT, but converts only the destination MAC address into the address of the destination virtual machine and transfers it. Since the return path NAT is not performed, the load of the load balancer is significantly reduced as compared with the NAT system.
仮想ロードバランサは、ハードウェアのアプライアンス製品として提供されている市中のロードバランサと比較すると一般的に処理性能が低いため、負荷が少なく高い処理性能が期待できるDSR(Direct Server Return)方式で導入するユースケースが考えられる。 The virtual load balancer is generally installed with a direct server return (DSR) method that can reduce the load and expect high processing performance because the processing performance is generally lower than the load balancers in the city that are provided as hardware appliance products. Use cases that can be considered.
しかしながら、従来技術では、One-Arm方式およびDSR方式を利用するための負担が大きく、また、サービス提供の支障となる場合があるという課題があった。つまり、上記のOne-Arm方式において仮想ロードバランサでSNATする技術では、仮想ロードバランサでSNATすることで、ユーザの仮想マシンにサービス利用者であるクライアントのIPアドレスが通知されなくなってしまう。このため、クライアントのIPアドレスを何らかの形で利用するようなサービス(例えば、掲示板の書き込み規制など)を提供することができなくなる場合があり、サービス提供の支障となる場合があった。 However, the prior art has a problem that the burden for using the One-Arm method and the DSR method is large, and it may hinder service provision. In other words, in the technique of performing the SNAT with the virtual load balancer in the One-Arm method, the IP address of the client as the service user is not notified to the user's virtual machine by performing the SNAT with the virtual load balancer. For this reason, it may not be possible to provide a service that uses the client's IP address in any way (for example, restrictions on writing on a bulletin board), which may hinder service provision.
なお、仮想ロードバランサにて通信ログを取得するという方法も考えられるが、事業者側の負担が増大してしまう。つまり、ログをユーザの保管ポリシーに合わせて保管し、ユーザが自由にアクセスして閲覧可能な状態に保つためには、事業者が大きな設備投資と管理責任を負担する必要が生じてしまい、事業者側の負担が増大してしまう。 In addition, although the method of acquiring a communication log with a virtual load balancer is also considered, the burden on a provider side will increase. In other words, in order to store the log according to the user's storage policy and keep it in a state where the user can freely access and view it, the operator needs to bear a large capital investment and management responsibility. The burden on the person side will increase.
また、仮想ロードバランサをDSR方式で導入するためには、ユーザが作成する仮想マシンに対する個別の設定を行う。具体的には、仮想マシンのループバックデバイスに仮想ロードバランサのIPアドレスを設定し、かつ当該IPアドレス宛のARPに仮想マシンが応答しないように設定する。しかし、このようにユーザの仮想マシンに対して個別設定を行う場合、ユーザは各自の責任において適切な設定を行う必要があり、事業者はユーザがDSR方式で仮想ロードバランサを導入できるよう支援するために多大な手間がかかる。 In order to introduce a virtual load balancer using the DSR method, individual settings are made for a virtual machine created by a user. Specifically, the virtual load balancer IP address is set in the loopback device of the virtual machine, and the virtual machine is set not to respond to the ARP addressed to the IP address. However, when individual settings are made for the user's virtual machine in this way, the user needs to make appropriate settings at his / her own responsibility, and the operator supports the user to introduce a virtual load balancer using the DSR method. This takes a lot of time and effort.
そこで、この発明は、One-Arm方式およびDSR方式を利用するため負担を軽減し、適切にサービスを提供することを目的とする。 Accordingly, an object of the present invention is to provide a service appropriately by reducing the burden because the One-Arm method and the DSR method are used.
上述した課題を解決し、目的を達成するため、開示の通信制御装置は、クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定部と、前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定部と、を備えることを特徴とする。 In order to solve the above-described problems and achieve the object, the disclosed communication control apparatus is connected to a load balancer that transfers the forward data transmitted from the client terminal to any one of a plurality of virtual machines. For a communication device forming a virtual network, if the destination IP address of the outbound data is the IP address of the load balancer and the destination MAC address is not the MAC address of the load balancer, the destination IP When the outbound route setting unit that sets the outbound route rule that rewrites the address to the IP address of the virtual machine and the destination of outbound data transmitted from the client terminal is a load balancer, return data to the communication device The return route rule to rewrite the source IP address of the IP address to the IP address of the load balancer Characterized in that it comprises a return setting unit for constant, the.
また、開示の通信制御方法は、通信制御装置で実行される通信制御方法であって、クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定工程と、前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定工程と、を含んだことを特徴とする。 The disclosed communication control method is a communication control method executed by a communication control device, and includes a load balancer that transfers outbound data transmitted from a client terminal to one of a plurality of virtual machines. For a communication device forming a connected virtual network, when the destination IP address of the outbound data is the IP address of the load balancer and the destination MAC address is not the MAC address of the load balancer, An outbound route setting step for setting an outbound route rule for rewriting the destination IP address to the IP address of the virtual machine, and when the outbound destination of outbound data transmitted from the client terminal is a load balancer, , Rewrite the source IP address of the return route data to the IP address of the load balancer Characterized in that it includes a return path setting step of setting a road rules, the.
また、開示の通信制御プログラムは、クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定ステップと、前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定ステップと、をコンピュータに実行させることを特徴とする。 Further, the disclosed communication control program provides communication devices that form a virtual network to which a load balancer that transfers outbound data transmitted from a client terminal to any one of a plurality of virtual machines is connected. When the destination IP address of the forward path data is the IP address of the load balancer and the destination MAC address is not the MAC address of the load balancer, the forward path for rewriting the destination IP address with the IP address of the virtual machine A forward setting step for setting a rule, and if the destination of the forward data transmitted from the client terminal is a load balancer, the IP address of the load balancer is set as the IP address of the load balancer for the communication device Return path setting step to set the return path rule to be rewritten to And characterized by causing a computer to execute the.
本願に開示する通信制御装置、通信制御方法及び通信制御プログラムは、One-Arm方式およびDSR方式を利用するための負担を軽減し、適切にサービスを提供することが可能である。 The communication control device, the communication control method, and the communication control program disclosed in the present application can reduce the burden for using the One-Arm method and the DSR method, and can provide services appropriately.
以下に図面を参照して、この発明に係る通信制御装置、通信制御方法及び通信制御プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。 Embodiments of a communication control device, a communication control method, and a communication control program according to the present invention will be described below in detail with reference to the drawings. In addition, this invention is not limited by this embodiment.
[第一の実施形態]
以下の実施形態では、第一の実施形態に係る通信システムの構成、仮想NWコントローラの構成、通信システムによる通信処理の流れ及び仮想NWコントローラによる通信制御処理の流れを順に説明し、最後に第一の実施形態による効果を説明する。
[First embodiment]
In the following embodiments, the configuration of the communication system according to the first embodiment, the configuration of the virtual NW controller, the flow of communication processing by the communication system, and the flow of communication control processing by the virtual NW controller will be described in order, and finally the first Effects of the embodiment will be described.
[システムの構成]
まず、第一の実施形態に係る通信システム100の構成の一例を説明する。図1は、第一の実施形態に係る通信システムの構成の一例を示す図である。図1に示すように、通信システム100は、仮想NW(NetWork:ネットワーク)コントローラ10と、仮想ルータ20と、複数の仮想マシン30A〜30Cと、クライアント40と、仮想LB(Load Balancer)70とを有する。なお、ここでは、仮想マシン30B、30Cおよび仮想LB70は、後から追加されたものとして、図1では点線で示している。
[System configuration]
First, an example of the configuration of the
また、第一の実施形態に係る通信システム100において、仮想ルータ20とクライアント40とは、外部NW50を介して接続され、仮想NWコントローラ10と、仮想ルータ20と、複数の仮想マシン30A〜30Cと、仮想LB70とは、仮想NW60を介して接続されている。なお、複数の仮想マシン30A〜30Cについて、特に区別することなく説明する場合には、「仮想マシン30」と記載する。また、図1に例示した各装置の設置数は、あくまで一例であり、これに限定されるものではない。
In the
仮想NWコントローラ10は、通信機器や仮想マシンを管理する通信制御装置である。この仮想NWコントローラ10は、物理装置で実現されてもよく、仮想マシンで実現されてもよい。なお、仮想NWコントローラ10についての具体的な構成や処理については、後に詳述する。
The
仮想ルータ20は、ユーザが任意に作成している仮想ルータである。仮想ルータ20は、外部NW50からの着信をNATし、クライアント40と仮想LB70や仮想マシン30A〜30Cとの通信を確立する。また、仮想ルータ20は、配下の仮想NW60や仮想マシン30A〜30Cのデフォルトゲートウェイである。また、ここでユーザとは、クライアント40に対してサービスを提供するため、サーバとなる仮想マシン30A〜30Cをはじめとした通信システム100を構築しているユーザである。なお、ユーザは、通信システム100を構築するためにクラウドサービスを利用しているものとする。また、この仮想ルータ20は、物理装置で実現されてもよく、仮想マシンで実現されてもよい。
The
仮想マシン30A〜30Cは、ユーザによって任意に作成された仮想マシンであって、外部NW50に接続されたクライアント40に対するWebサービス等を提供するサーバとして機能する。なお、仮想LB70が追加された場合には、これらの仮想マシン30A〜30Cが負荷分散先のサーバ(リアルサーバ)となる。
The virtual machines 30 </ b> A to 30 </ b> C are virtual machines arbitrarily created by the user and function as a server that provides a web service or the like for the
また、クライアント40は、ユーザが提供するサービスの利用者が所有する端末である。図1では、クライアント40について、1台のみを図示しているが、不特定多数存在するものとする。また、外部NW50は、クライアント40が存在するネットワークであって、例えば、インターネットなどの仮想環境外部のネットワークである。
The
仮想NW60は、ソフトウェアによって仮想的に構築されているネットワークであり、ユーザによって任意に作成されたネットワークである。なお、仮想NW60については、例えばOpen Flowが用いられて実現されているものとし、動的にNW構成を制御することで、仮想マシンや仮想ルータにとって、仮想NW60が1台のスイッチのように振る舞うものとする。
The
仮想LB70は、仮想マシン30A〜30Cがリアルサーバとして設定されており、ソフトウェアによって様々な負荷分散アルゴリズムに基づいた負荷分散を行う。また、仮想LB70は、One-Arm方式なので、インタフェース(IPアドレス)が一つである。仮想LB70は、このIPアドレスおよび指定した待受ポートに着信した通信をリアルサーバに負荷分散する。また、第一の実施形態に係る通信システム100では、DSR方式を採用しており、リアルサーバからクライアントへの戻りの通信(復路)である場合には、仮想LB70を経由せずに、仮想ルータ20を経由して直接要求元のクライアント40にデータが送信される。
In the
また、第一の実施形態に係る通信システム100では、ユーザが当初、仮想マシン30Aのみでサービスを提供していたが、サービス利用者の増加によって仮想マシン30Aの負荷が高まり、処理速度の低下などでサービスに支障が出たものとする。そこで、新たに同じサービスを提供する仮想マシン30B、30Cおよび仮想LB70を導入し、3台の仮想マシン30A〜30Cにクライアント40からのリクエストを負荷分散することで解決しようとしている状況であるものとして、以下説明する。
In the
[仮想NWコントローラの構成]
次に、図2を用いて、図1に示した仮想NWコントローラ10の構成を説明する。図2は、第一の実施形態に係る仮想NWコントローラの構成を示すブロック図である。図2に示すように、仮想NWコントローラ10は、通信処理部11、制御部12および記憶部13を有する。
[Configuration of virtual NW controller]
Next, the configuration of the
通信処理部11は、接続される仮想NW60との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、仮想NW60から仮想LB70宛てのパケットを受信する。
The communication processing unit 11 controls communication regarding various information exchanged with the connected
記憶部13は、図2に示すように、仮想LB情報記憶部13aを有する。記憶部13は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
As shown in FIG. 2, the
仮想LB情報記憶部13aは、仮想LB70のIPアドレスおよび待受ポートを記憶する。ここで、図3の例を用いて、仮想LB情報記憶部13aに記憶される情報の一例を説明する。図3は、第一の実施形態に係る仮想LB情報記憶部に記憶される情報の一例を示す図である。
The virtual LB
図3に示すように、仮想LB情報記憶部13aは、仮想LB70を識別するための名称である「仮想LB名」と、仮想LB70自身のIPアドレスである「IPアドレス」と、仮想LB70の待受ポートである「待受ポート」とを対応付けて記憶する。具体的な例を挙げて説明すると、例えば、仮想LB情報記憶部13aは、仮想LB名「仮想LB1」、IPアドレス「10.0.0.101」と、待受ポート「80」とが対応付けて記憶されている。
As illustrated in FIG. 3, the virtual LB
図2に戻って、制御部12は、受信部12a、往路設定部12bおよび復路設定部12cを有する。ここで、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。
Returning to FIG. 2, the
受信部12aは、仮想NW60に仮想LB70が新たに接続されると、該仮想LB70のIPアドレスおよび待受ポート番号を受信し、該IPアドレスおよび待受ポート番号を仮想LB情報記憶部13aに格納する。また、受信部12aは、仮想NW60を形成する通信機器から仮想LB70が送信先であるデータを受信する。
When a
ここで、図4を用いて、通信システム100において仮想LBを追加する際の処理例について説明する。図4は、第一の実施形態に係る通信システムにおいて仮想LBを追加する処理について説明する図である。
Here, a processing example when adding a virtual LB in the
図4に示すように、通信システム100において、ユーザが作成した仮想LB70が新たに追加され、仮想NW60に接続される。ここで通信システム100は、One-Arm方式であるため、既存のシステム構成を崩す(例えば、仮想ルータ20と仮想NW60の接続を切断して仮想LB70に付け替えを行う等)ことなく追加が可能である。
As shown in FIG. 4, in the
また、図4に示すように、仮想マシン30Aには、IPアドレス「10.0.0.1」が設定され、仮想マシン30Bには、IPアドレス「10.0.0.2」が設定され、仮想マシン30Cには、IPアドレス「10.0.0.3」が設定され、仮想LB70には、IPアドレス「10.0.0.101」が設定され、仮想ルータ20には、IPアドレス「10.0.0.254」が設定されているものとする。
As shown in FIG. 4, an IP address “10.0.0.1” is set for the
また、仮想ルータ20には、仮想マシン30Aに対応する外部NW50側IPアドレス「x.x.x.x」と、仮想LB70のIPアドレス「10.0.0.101」に関してNATルールが設定されている。具体的には、仮想ルータ20には、NATルールとして、IPアドレス「x.x.x.x」宛てに着信した通信は宛先を「10.0.0.101」宛てにDNATを行い、仮想LB70から外部への通信は送信元IPアドレスを「x.x.x.x」にSNATを行うルールが設定されている。
In the
なお、通信システム100では、全ての仮想マシン30A〜30Cのデフォルトゲートウェイは、仮想ルータ(10.0.0.254)に設定されているものとする。また、仮想NW60は、1つのスイッチとして振る舞うが、パケットの宛先が当該仮想NW60内に存在しない場合、または、宛先がどこに存在するか不明の場合は、仮想ルータ20にパケットを転送するように設定されているものとする。
In the
続いて、図5を用いて、仮想LB70が追加された後において、仮想NWコントローラ10へ仮想LB70の情報を登録する処理について説明する。図5は、第一の実施形態に係る通信システムにおいて仮想NWコントローラへ仮想LBの情報を登録する処理について説明する図である。通信システム100では、ユーザの操作により仮想LB70を追加する設定が行われると、上位装置(図示省略)から自動的に仮想NWコントローラ10に通知される。
Next, a process of registering information on the
図5に例示するように、仮想NWコントローラ10は、仮想LB70の宛先IP「10.0.0.101」と宛先ポート「80」とを受信する。仮想NWコントローラ10は、仮想LB70の宛先IP「10.0.0.101」と宛先ポート「80」とを、前述した仮想LB情報記憶部13aにおける「IPアドレス」と「待受ポート」として登録することで、宛先IP「10.0.0.101」、宛先ポート「80」の通信は仮想LB70に対する通信であることを判別できるようになる。
As illustrated in FIG. 5, the
図2に戻って、往路設定部12bは、クライアント40から送信された往路データを複数の仮想マシン30A〜30Cのうちのいずれかの仮想マシン30に転送する仮想LB70が接続される仮想NW60を形成する通信機器に対して、往路データの送信先IPアドレスが仮想LB70のIPアドレスであって、かつ、送信先MACアドレスが仮想LB70のMACアドレスでない場合には、送信先IPアドレスを仮想マシン30のIPアドレスに書き換える往路ルールを設定する。
Returning to FIG. 2, the outbound route setting unit 12b forms a
また、往路設定部12bは、仮想NW60の通信機器に対して、送信先IPアドレスが仮想LB70のIPアドレスであるパケットを受信した場合には、仮想LB70にパケットを転送するとともに、該パケットを自仮想NWコントローラ10に対して転送する転送ルールをさらに設定する。具体的には、往路設定部12bは、仮想LB情報記憶部13aに記憶されたIPアドレスおよび待受ポートを用いて、転送ルールを設定する。
Further, when the outbound route setting unit 12b receives a packet whose destination IP address is the IP address of the
ここで、図6を用いて、仮想NW60に新たなルール(転送ルール)を追加する場合の例について説明する。図6は、第一の実施形態に係る通信システムにおいて仮想NWへルールを追加する処理について説明する図である。図6に示すように、仮想NWコントローラ10は、図5の説明において登録された仮想LB70の情報を元に、仮想NW60を制御して、転送ルール(Open Flowではフローテーブルという)を追加する。
Here, an example in which a new rule (transfer rule) is added to the
具体的には、仮想NWコントローラ10は、転送ルールとして、「未知の送信元IPアドレスから仮想LB70宛てのパケットを受信した場合には、パケットを仮想LB70に転送しつつ、仮想NWコントローラ10にも同じパケットを送信すること」というルールを仮想NW60に追加する。
Specifically, the
例えば、図6の例では、転送ルールとして、「宛先IP:10.0.0.101 宛先ポート:80の仮想LBに対する通信は、仮想LBにルーティングするだけでなく、コントローラにもパケットを転送すること」というルールを仮想NW60に追加する。
For example, in the example of FIG. 6, as a transfer rule, a rule that “communication to the virtual LB of the destination IP: 10.0.0.101 destination port: 80 not only routes to the virtual LB but also transfers the packet to the controller”. Is added to the
次に、図7を用いて、仮想NW60へ往路NAT用ルール(往路ルール)を追加する処理について説明する。図7は、第一の実施形態に係る通信システムにおいて仮想NWへ往路NAT用ルールを追加する処理について説明する図である。図7に示すように、仮想NWコントローラ10は、登録された仮想LB70の情報を元に、仮想NW60を制御して、往路ルール(Open Flowではフローテーブル)を追加する。
Next, processing for adding a forward NAT rule (outward rule) to the
仮想NWコントローラ10は、往路ルールとして、「宛先IPが仮想LB70のIPであるが、宛先MACアドレスが仮想LBでないパケットは、仮想LB70からDSR方式でリアルサーバに転送されているパケットと見なし、宛先IPアドレスを宛先MACに対応するものであって、仮想LBのIPアドレスからいずれかの仮想マシン30のIPアドレスに書き換える」というルールを仮想NW60に追加する。
The
例えば、図7の例では、往路ルールとして、「宛先IP:10.0.0.101 宛先MAC:仮想マシン30Aの通信は、宛先IPを10.0.0.1に書き換えて仮想マシン30Aに転送する」というルールを仮想NW60に追加する。また、「宛先IP:10.0.0.101 宛先MAC:仮想マシン30Bの通信は、宛先IPを10.0.0.2に書き換えて仮想マシン30Bに転送する。」というルールを仮想NW60に追加する。また、「宛先IP:10.0.0.101 宛先MAC:仮想マシン30Cの通信は、宛先IPを10.0.0.3に書き換えて仮想マシン30Cに転送する」というルールを仮想NW60に追加する。
For example, in the example of FIG. 7, as a forward route rule, a rule “destination IP: 10.0.0.101 destination MAC: communication of the
上記のように転送ルールおよび往路ルールが追加された場合の通信処理の流れについて図8および図9を用いて説明する。図8は、第一の実施形態に係る通信システムにおいてクライアントから仮想ルータに送信されるパケットに関する通信処理について説明する図である。図9は、第一の実施形態に係る通信システムにおいて仮想ルータを経由して仮想NWに到達したパケットの通信処理について説明する図である。 A flow of communication processing when the transfer rule and the forward route rule are added as described above will be described with reference to FIGS. 8 and 9. FIG. 8 is a diagram illustrating communication processing regarding a packet transmitted from a client to a virtual router in the communication system according to the first embodiment. FIG. 9 is a diagram for explaining communication processing of a packet that has reached the virtual NW via the virtual router in the communication system according to the first embodiment.
図8に示すように、クライアント40からの要求パケットが外部NW50を介して仮想ルータ20の外部IPアドレス「x.x.x.x」に着信する(図8の(1)参照)。ここで、着信したパケットのヘッダには、図8に例示するように、宛先IPとして「x.x.x.x」と、宛先ポートとして「80」と、宛先MACとして仮想ルータのMACアドレスと、送信元IPアドレスとして「a.a.a.a」と、送信元ポートとして「5000」と、送信元MACとしてクライアントのMACアドレスとが含まれる。
As shown in FIG. 8, the request packet from the
そして、仮想ルータ20は、着信したパケットをDNAT(Destination Network Address Translation)し、宛先IPアドレスを仮想LBのIPアドレスに変更する。例えば、仮想ルータ20は、パケットヘッダにおける宛先IPを「10.0.0.101」に変更し、宛先MACを「仮想LB」のMACアドレスに変更し、送信元MACを「仮想ルータ」のMACアドレスに変更する。
Then, the
続いて、図9に示すように、クライアント40からの通信は仮想ルータ20を経由し、仮想NW60に到達する。そして、仮想NW60は、上記した転送ルールに基づき、パケットを仮想LB70に転送するとともに、仮想NWコントローラ10に転送する。そして、仮想NWコントローラ10が受け取ったパケットのヘッダ情報の宛先IPおよび宛先ポートが、仮想LB情報記憶部13aに記憶されているIPアドレスおよび待受ポートと一致する場合には、後述する図10を用いて詳述するが、復路ルールを仮想NW60に対して追加する。
Subsequently, as shown in FIG. 9, communication from the
復路設定部12cは、クライアント40から送信された往路データの送信先が仮想LB70である場合には、仮想NW60の通信機器に対して、復路データの送信元IPアドレスを仮想LB70のIPアドレスに書き換える復路ルールを設定する。具体的には、復路設定部12cは、受信部12aによって往路データの送信先が仮想LB70である往路データが受信された場合には、仮想NW60の通信機器に対して、復路データの送信元IPアドレスを仮想LB70のIPアドレスに書き換える復路ルールを設定する。
The return
ここで、図10を用いて、通信システムにおいて仮想NWへ復路NAT用ルール(復路ルール)を追加する処理について説明する。図10は、第一の実施形態に係る通信システムにおいて仮想NWへ復路NAT用ルールを追加する処理について説明する図である。なお、図10では、往路のパケットを仮想NW60が受信した場合に、復路NAT用ルール(復路ルール)を設定する処理について説明する。図10に示すように、仮想NWコントローラ10は、パケットを受信すると、例えば、受信したパケットのヘッダ情報の宛先IPおよび宛先ポートが、仮想LB情報記憶部13aに記憶されているIPアドレスおよび待受ポートと一致するか判別する。そして、仮想NWコントローラ10は、一致する場合には、つまり、仮想LB宛のパケットであった場合には、復路ルールを仮想NW60に追加する。
Here, a process of adding a return NAT rule (return route rule) to the virtual NW in the communication system will be described with reference to FIG. FIG. 10 is a diagram illustrating processing for adding a return NAT rule to the virtual NW in the communication system according to the first embodiment. In FIG. 10, processing for setting a return NAT rule (return route rule) when the
仮想NWコントローラ10は、復路ルールとして、「クライアント宛の戻りの通信は、送信元IPアドレスを仮想LB70のIPに書き換えること」という復路ルールを仮想NW60に追加する。つまり、書き換えなければ仮想ルータ20で送信元IPアドレスがいずれかの仮想マシンのIPのままx.x.x.xにNATされず、別のNATルールによってクライアント40が要求を送信したIPとは異なるIPにNATされてしまい、クライアント40側に到達した時点で破棄されてしまう。このため、クライアント宛の戻りの通信は、送信元IPアドレスを仮想LB70のIPに書き換える復路ルールを仮想NW60に追加することで、クライアント側で破棄されることを防止し、適切に通信を行えるようにすることが可能である。
The
例えば、図10の例では、仮想NWコントローラ10は、復路ルールとして、「宛先IP:a.a.a.a 宛先ポート:5000 送信元ポート:80の通信は、仮想LBで負荷分散された通信の復路パケットであると見なし、送信元IPアドレスを10.0.0.101に書き換えること」という復路ルールを仮想NW60に追加する。
For example, in the example of FIG. 10, the
次に、図11を用いて、仮想NWコントローラ10が受け取ったパケットのヘッダ情報から、仮想NWコントローラ10に対する不要なパケット転送を抑止するために、仮想NWへ既知クライアントIP用ルールを追加する処理について説明する。図11は、第一の実施形態に係る通信システムにおいて仮想NWへ既知クライアントIP用ルールを追加する処理について説明する図である。
Next, with reference to FIG. 11, processing for adding a known client IP rule to the virtual NW in order to suppress unnecessary packet transfer to the
図11に示すように、仮想NWコントローラ10は、復路ルールの追加が完了した後、仮想NW60に対して、「戻りパケット用ルール追加が完了した、既知クライアント(送信元IPアドレス)からの通信に関しては、仮想LB宛の通信であってもコントローラへ転送しないこと」という既知クライアントIP用ルールを追加する。つまり、図6に例示したように、仮想LB70宛てのパケットを転送する転送ルールを追加する処理を行ったが、仮想LB70宛てのパケットを受信すれば必要な設定が仮想NW60にされているので、2回目以降のパケット転送は不要である。このため、仮想NWコントローラ10は、復路ルール追加が完了した後、既知クライアントからの通信に関しては、仮想LB宛の通信であってもコントローラへ転送しないという既知クライアントIP用ルールを仮想NW60に追加する。
As shown in FIG. 11, the
次に、前述した往路ルールおよび復路ルールが仮想NW60に追加された後の通信システム100において、クライアント40から仮想マシン30Aへ送信されるパケットの通信処理について、図12および図13を用いて説明する。図12は、第一の実施形態に係る通信システムにおいて仮想LBから仮想NWへ送信されるパケットに関する通信処理について説明する図である。図13は、第一の実施形態に係る通信システムにおいて仮想NWから仮想マシンへ送信されるパケットに関する通信処理について説明する図である。
Next, communication processing of packets transmitted from the
図12に示すように、仮想LB70は、外部NW50および仮想ルータ20を経由して受信したクライアント40のパケットを80番ポートから受信する。そして、仮想LB70は、80番ポートに着信したパケットを、負荷分散アルゴリズムに基づいて、リアルサーバ(仮想マシン30A)に転送する。ここでは、負荷分散先として、仮想マシン30Aに振り分けるよう選択したこととする。
As illustrated in FIG. 12, the
また、DSR方式なので、パケットの宛先IPは、仮想LB70のIPアドレスのままNATされずにリアルサーバに転送される。つまり、仮想LB70では、NATを行わないことで、通信負荷を低く抑えることができる。ただし、宛先MACがリアルサーバのMACアドレスに変更される。例えば、図12の例では、仮想ルータ20から仮想LB70に送信されたパケットのヘッダに含まれる宛先MACが「仮想LB」から「仮想マシン30A」に変更され、送信元MACについても「仮想ルータ」から「仮想LB」に変更される。
Further, because of the DSR method, the destination IP address of the packet is transferred to the real server without being NATed with the IP address of the
次に、図13に示すように、仮想LB70から転送されたパケットが仮想NW60を介して仮想マシン30Aに到達する。ここで、仮想NW60をパケットが経由する際、仮想NW60は、前述の図7の説明において設定された往路ルールに基づき、パケットの宛先IPを宛先MACに対応する仮想マシン30AのIPにDNATしたうえで当該仮想マシン30Aに転送する。つまり、仮想マシン30AにDSR方式向けの設定をしていないため、宛先IPが仮想マシン30Aのものと異なっているとパケットが破棄されてしまうためである。このため、第一の実施形態に係る通信システム100では、例えば、DSR方式向けの設定として、仮想マシン30のループバックデバイスに仮想LB70のIPアドレスを設定し、かつ当該IPアドレス宛のARPに仮想マシン30が応答しないようにする等の設定を仮想マシン30に対して個別に行わなくてもよい。
Next, as illustrated in FIG. 13, the packet transferred from the
例えば、図13の例では、往路ルールとして「宛先IP:10.0.0.101 宛先MAC:仮想マシン30Aの通信は、仮想LB70で負荷分散された往路パケットであると見なし、宛先IPを宛先MACに対応するリアルサーバ(仮想マシン30A)のアドレス10.0.0.1に書き換えて仮想マシン30Aに転送」するというルールに従って、パケットのヘッダに含まれる宛先IPを「10.0.0.101」を「10.0.0.1」に変更する。
For example, in the example of FIG. 13, the destination rule is “destination IP: 10.0.0.101 destination MAC: the communication of the
次に、前述した往路ルールおよび復路ルールが仮想NW60に追加された後の通信システム100において、仮想マシン30Aからクライアント40へ送信されるパケットの通信処理について、図14〜図16を用いて説明する。図14は、第一の実施形態に係る通信システムにおいて仮想マシンから仮想NWへ送信されるパケットに関する通信処理について説明する図である。図15は、第一の実施形態に係る通信システムにおいて仮想NWから仮想ルータへ送信されるパケットに関する通信処理について説明する図である。図16は、第一の実施形態に係る通信システムにおいて仮想ルータからクライアントへ送信されるパケットに関する通信処理について説明する図である。
Next, communication processing of packets transmitted from the
図14に示すように、リアルサーバである仮想マシン30Aは、仮想LB70からのパケットを受信し、それに対する応答として、図14の(5)に例示するヘッダを持つパケットを送信する。なお、これは送信元のIPとポートに向けて応答を返そうとする、一般的な動作であり、デフォルトゲートウェイは仮想ルータなので、宛先MACは仮想ルータのものとなっている。
As illustrated in FIG. 14, the virtual machine 30 </ b> A that is a real server receives a packet from the
次に、図15に示すように、仮想マシン30Aからのパケットが仮想NW60を経由し、仮想ルータ20に到達する際の処理について説明する。ここで、仮想NW60を経由する際、仮想NW60は、前述の図10の説明において設定された復路ルールに基づき、送信元IPアドレスを仮想マシン30AのIPから仮想LB70のIPに書き換えて転送する。これは、送信元IPアドレスが仮想LB70のIPでなければ仮想ルータ20で正しくNATされず、クライアント40側に到達した時点でパケットが破棄されてしまうため、送信元IPアドレスを仮想マシン30AのIPから仮想LB70のIPに書き換えてパケットが破棄されないようにしている。
Next, processing when a packet from the
例えば、図15の例では、送信元IPアドレスを仮想マシン30Aに対応する「10.0.0.1」から仮想LB70に対応する「10.0.0.101」に変更する。これにより、仮想ルータ20では、「10.0.0.101」から「x.x.x.x」に正しくNATされ、クライアント40側に到達した時点でパケットが破棄されることがなく、適切に通信を行うことが可能である。
For example, in the example of FIG. 15, the transmission source IP address is changed from “10.0.0.1” corresponding to the
つまり、例えば、送信元IPアドレスが仮想マシン30Aのアドレスのままでは、図10に例示するように仮想マシン30Aに対応する外部NW側IPである「y.y.y.y」にNATされ、クライアント40が送信元IPアドレス「x.x.x.x」と違うIPから受信することとなり、破棄されるからである。これに対して、第一の実施形態に係る通信システム100では、送信元IPアドレスを仮想マシン30Aに対応する「10.0.0.1」から仮想LB70に対応する「10.0.0.101」に変更することで、送信元IPアドレスを「10.0.0.101」から「x.x.x.x」に正しくNATしているので、パケットが破棄されることはなく、適切に通信を行うことができる。
That is, for example, if the source IP address remains the address of the
次に、図16に示すように、仮想ルータ20は、仮想マシン30Aからクライアント40に宛てた復路のパケットを受信すると、図15を用いて前述したように、パケットの送信元IPアドレスが仮想LB70のIPに書き換えられているため、仮想ルータ20は自身のNATテーブルに従って送信元IPアドレスを仮想マシン30Aに対応する外部NW側IPであるx.x.x.xにSNATしてクライアント40に転送する。図16に例示するように、仮想ルータ20は、送信元IPアドレスが「10.0.0.101」から「x.x.x.x」に、SNATしてクライアント40に転送する。
Next, as illustrated in FIG. 16, when the
このように、第一の実施形態に係る通信システム100では、仮想NW60による動的な経路制御を併用することで、One-Arm方式を採用した仮想LB70を導入可能とする。また、通信システム100による方式では、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、仮想LB70をOne-Arm方式で利用するための個別設定が不要であり、さらにクライアントのIPアドレスをリアルサーバに通知可能とする。このように第一の実施形態に係る通信システム100では、One-Arm方式を利用するための設定にかかる負担を軽減することが可能である。
As described above, in the
また、通信システム100では、仮想NW60による動的な経路制御を併用し、DSR方式を採用した仮想LB70を導入可能とする。通信システム100の方式では、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、DSR方式を利用するための個別設定が不要であり、DSR方式を利用するための設定にかかる負担を軽減することが可能である。
Further, in the
仮想NWコントローラ10は、仮想NW60に対して「宛先IPが仮想ロードバランサのIPだが、宛先MACが仮想ロードバランサでないパケットは、仮想ロードバランサからDSR方式で仮想マシン宛に転送されているパケットと見なし、宛先IPアドレスを宛先MACに対応する仮想マシンのIPアドレスに書き換える」という往路ルール(Open Flowにおけるフローテーブルに相当)を追加する。これにより、仮想マシンに特別な設定をせずとも、仮想マシンが仮想ロードバランサから転送(負荷分散)されてきたパケットを自分宛のものとして正常に処理することが可能となる。
The
また、仮想NWコントローラ10は、仮想LB70宛のパケットを検知したとき、仮想NW60に対して復路ルールを追加し、負荷分散先の仮想マシンからクライアントへ戻るパケット(通信の復路)が正しく仮想ルータでNATされ、クライアント40が正常に受け取れるようにする。具体的には、「宛先IP、宛先ポートが仮想LB宛パケット(往路における仮想LB宛パケット)の送信元IPアドレス、送信元ポートに一致しており、送信元ポートが仮想LBの待ち受けポートに一致している通信は、仮想LB70で負荷分散された通信の復路パケットであると見なし、送信元IPアドレスを仮想ロードバランサのIPアドレスに書き換える」という復路ルールを仮想ネットワークに追加する。なお、この復路ルールが無い場合、仮想ルータ20で復路パケットの送信元IPアドレスをクライアント40からの往路パケットの宛先IPアドレス(つまり、仮想ルータのNATルールで仮想ロードバランサの内部IPと対応付けられているIPアドレス)に変換することができず、別のNATルールによってクライアントが要求を送信したIPとは異なるIPにNATされてしまい、復路パケットがクライアント40側に到達した時点で破棄されてしまうという問題が起こる。
When the
[仮想NWコントローラ10による処理]
次に、図17および図18を用いて、第一の実施形態に係る仮想NWコントローラ10による処理を説明する。図17は、第一の実施形態に係る仮想NWコントローラにおける往路設定処理の流れを説明するためのフローチャートである。図18は、第一の実施形態に係る仮想NWコントローラにおける復路設定処理の流れを説明するためのフローチャートである。
[Processing by Virtual NW Controller 10]
Next, processing performed by the
まず、図17を用いて、仮想NWコントローラ10における往路設定処理の流れを説明する。図17に示すように、仮想NWコントローラ10は、仮想LB70の情報を受信したか否かを判定する(ステップ101)。例えば、仮想NWコントローラ10は、仮想LB70の情報として、仮想NW60に新たに接続された仮想LB70のIPアドレスおよび待受ポート番号を受信したか否かを判定する。この結果、仮想NWコントローラ10は、仮想LB70の情報を受信すると(ステップ101肯定)、「未知の送信元IPアドレスから仮想LB70宛のパケットを受信した場合、パケットを仮想LB70に転送しつつ、自コントローラにも同じパケットを送信する」というルール(転送ルール)を仮想NW60に追加する(ステップ102)。
First, the flow of the forward path setting process in the
そして、仮想NWコントローラ10は、宛先IPが仮想LB70のIPであるが、宛先MACが仮想LB70でないパケットは、仮想LB70からDSR方式でリアルサーバ(仮想マシン30)に転送されているパケットと見なし、宛先IPアドレスを宛先MACに対応するもの(仮想LB70のIPアドレスからいずれかの仮想マシンのIPアドレス)に書き換えるというルール(往路ルール)を仮想NW60に追加する(ステップ103)。
The
次に、図18を用いて、仮想NWコントローラ10における復路設定処理の流れを説明する。図18に示すように、仮想NWコントローラ10は、仮想NW60から往路のパケットを受信すると(ステップ201肯定)、受信した往路のパケットが仮想LB70宛てのパケットであるか否かを判定する(ステップ202)。具体的には、仮想NWコントローラ10は、受信した往路のパケットのヘッダに含まれる宛先IPおよび宛先ポートが仮想LB情報記憶部13aに記憶されたIPアドレスおよび待受ポートと一致するか否かを判定する。
Next, the flow of the return path setting process in the
この結果、仮想NWコントローラ10は、受信した往路のパケットが仮想LB70宛てのパケットであると判定した場合には(ステップ202肯定)、「クライアント宛ての戻り通信は、送信元IPアドレスを仮想LB70のIPに書き換える」というルール(復路ルール)を仮想NW60に追加する(ステップ203)。また、仮想NWコントローラ10は、受信したパケットが仮想LB70宛てのパケットでないと判定した場合には(ステップ202否定)、そのまま処理を終了する。
As a result, when the
[第一の実施形態の効果]
上述してきたように、第一の実施形態に係る通信システム100の仮想NWコントローラ10は、クライアント40から送信された往路データを複数の仮想マシン30A〜30Cのうちのいずれかの仮想マシン30に転送する仮想LB70が接続される仮想NW60を形成する通信機器に対して、往路データの送信先IPアドレスが仮想LB70のIPアドレスであって、かつ、送信先MACアドレスが仮想LB70のMACアドレスでない場合には、送信先IPアドレスを仮想マシン30のIPアドレスに書き換える往路ルールを設定する。そして、仮想NWコントローラ10は、クライアント40から送信された往路データの送信先が仮想LB70である場合には、通信機器に対して、復路データの送信元IPアドレスを仮想LB70のIPアドレスに書き換える復路ルールを設定する。このため、One-Arm方式およびDSR方式を利用するため負担を軽減し、適切にサービスを提供することが可能である。
[Effect of the first embodiment]
As described above, the
つまり、上述したように、第一の実施形態に係る通信システム100では、仮想NW60による動的な経路制御を併用することで、One-Arm方式を採用した仮想LB70を導入可能とする。例えば、図19に例示するように、ユーザが、サービスを提供中の仮想マシンの負荷が大きくなってきたので、仮想ロードバランサを導入して負荷分散したい場合に、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、仮想LB70をOne-Arm方式で利用するための個別設定が不要である。このため、第一の実施形態に係る通信システム100では、One-Arm方式を利用するための設定にかかる負担を軽減することが可能である。
That is, as described above, in the
また、通信システム100では、仮想NW60による動的な経路制御を併用し、DSR方式を採用した仮想LB70を導入可能とする。通信システム100の方式では、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、DSR方式を利用するための個別設定が不要であり、DSR方式を利用するための設定にかかる負担を軽減することが可能である。このように、既存の仮想環境の構成を変更せずに、処理性能の高いDSR方式で仮想ロードバランサを追加可能となる。
Further, in the
つまり、仮想LB70でSNATをしない場合、あるいはユーザが作成した負荷分散先の仮想マシン30に個別の設定をしない場合であっても、仮想ロードバランサをOne-Arm方式で導入することが可能となるため、既存のネットワーク構成への影響を抑えつつ簡単に導入することが可能である。また、ユーザの仮想マシン30に個別の設定をすることなくDSR方式のロードバランスを実現することができるため、仮想LB70の負荷を低く抑え、高速な負荷分散が可能となる。従って、ユーザは既存の仮想環境上システムに対して簡単に仮想LB70を導入することが可能というOne-Arm方式のメリットを享受でき、事業者はDSR方式によるユーザエクスペリエンスの向上とデータセンタ内の計算資源やネットワーク資源の消費抑制というメリットが得られる。
In other words, even when the
このように、ユーザが仮想環境上に構築したシステムに、One-Arm方式かつDSR方式を採用した仮想LB70を導入する際にSNATや仮想マシンに対する特別な設定が必要であったが、仮想NW60による動的な経路制御を利用することでSNATと仮想マシンへの設定をすることなく導入が可能となった。これによって、既存の仮想環境上システムに対する影響を最小限に抑えつつ、低い負荷で高速な負荷分散が可能な仮想ロードバランサが実現されるため、ユーザエクスペリエンス向上や、クラウド事業者の計算資源、ネットワーク資源の効率的な利用が可能となる。
As described above, when the
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、往路設定部12bと復路設定部12cとを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[System configuration, etc.]
Each component of each illustrated device is functionally conceptual and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the outbound path setting unit 12b and the inbound
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 In addition, among the processes described in the present embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.
[プログラム]
また、上記実施形態において説明した仮想NWコントローラ10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る仮想NWコントローラ10が実行する処理をコンピュータが実行可能な言語で記述した通信制御プログラムを作成することもできる。この場合、コンピュータが通信制御プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる通信制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され通信制御プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図2に示した仮想NWコントローラ10と同様の機能を実現する通信制御プログラムを実行するコンピュータの一例を説明する。
[program]
In addition, it is possible to create a program in which the processing executed by the
図20は、通信制御プログラムを実行するコンピュータ1000を示す図である。図20に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
FIG. 20 is a diagram illustrating a
メモリ1010は、図20に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図20に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図20に例示するように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図20に例示するように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図20に例示するように、例えばディスプレイ1130に接続される。
The
ここで、図20に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の通信制御プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。
Here, as illustrated in FIG. 20, the hard disk drive 1090 stores, for example, an
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
In addition, various data described in the above embodiment is stored as program data in, for example, the
なお、通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the
10 仮想NWコントローラ
11 通信処理部
12 制御部
12a 受信部
12b 往路設定部
12c 復路設定部
13 記憶部
13a 仮想LB情報記憶部
20 仮想ルータ
30A〜30C 仮想マシン
40 クライアント
50 外部NW
60 仮想NW
70 仮想LB
100 通信システム
DESCRIPTION OF
60 virtual network
70 virtual LB
100 communication system
Claims (5)
前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定部と、
を備えることを特徴とする通信制御装置。 For a communication device forming a virtual network to which a load balancer that transfers outbound data transmitted from a client terminal to any one of a plurality of virtual machines is connected, the destination IP address of the outbound data is A forward path setting unit for setting a forward path rule for rewriting the destination IP address to the IP address of the virtual machine when the IP address of the load balancer and the destination MAC address is not the MAC address of the load balancer;
When the destination of the forward path data transmitted from the client terminal is a load balancer, a return path setting for setting a return path rule for rewriting the source IP address of the return path data to the IP address of the load balancer for the communication device And
A communication control apparatus comprising:
前記通信機器から前記ロードバランサが送信先であるデータを受信する受信部をさらに備え、
前記復路設定部は、前記受信部によって前記データが受信された場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定することを特徴とする請求項1に記載の通信制御装置。 The forward path setting unit, when receiving data whose destination IP address is the IP address of the load balancer for the communication device, transfers the data to the load balancer and controls the data for self-communication Set further transfer rules to transfer to the device,
A receiving unit that receives data from the communication device that is the destination of the load balancer;
The return path setting unit sets a return path rule for rewriting the transmission source IP address of the return path data to the IP address of the load balancer for the communication device when the data is received by the receiving unit. The communication control device according to claim 1.
前記往路設定部は、前記記憶部に記憶されたIPアドレスを用いて、前記転送ルールを設定することを特徴とする請求項2に記載の通信制御装置。 The receiving unit further receives an IP address of the load balancer when a load balancer is newly connected to the virtual network, stores the IP address in a storage unit,
The communication control apparatus according to claim 2, wherein the forward path setting unit sets the transfer rule using an IP address stored in the storage unit.
クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定工程と、
前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定工程と、
を含んだことを特徴とする通信制御方法。 A communication control method executed by a communication control device,
For a communication device forming a virtual network to which a load balancer that transfers outbound data transmitted from a client terminal to any one of a plurality of virtual machines is connected, the destination IP address of the outbound data is A forward path setting step of setting a forward path rule for rewriting the destination IP address to the IP address of the virtual machine when the IP address of the load balancer and the destination MAC address is not the MAC address of the load balancer;
When the destination of the forward path data transmitted from the client terminal is a load balancer, a return path setting for setting a return path rule for rewriting the source IP address of the return path data to the IP address of the load balancer for the communication device Process,
The communication control method characterized by including.
前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定ステップと、
をコンピュータに実行させるための通信制御プログラム。 For a communication device forming a virtual network to which a load balancer that transfers outbound data transmitted from a client terminal to any one of a plurality of virtual machines is connected, the destination IP address of the outbound data is A forward path setting step for setting a forward path rule for rewriting the destination IP address to the IP address of the virtual machine when the IP address of the load balancer and the destination MAC address is not the MAC address of the load balancer;
When the destination of the forward path data transmitted from the client terminal is a load balancer, a return path setting for setting a return path rule for rewriting the source IP address of the return path data to the IP address of the load balancer for the communication device Steps,
Communication control program for causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013256483A JP6053032B2 (en) | 2013-12-11 | 2013-12-11 | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013256483A JP6053032B2 (en) | 2013-12-11 | 2013-12-11 | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015115781A JP2015115781A (en) | 2015-06-22 |
JP6053032B2 true JP6053032B2 (en) | 2016-12-27 |
Family
ID=53529208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013256483A Active JP6053032B2 (en) | 2013-12-11 | 2013-12-11 | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6053032B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6505171B2 (en) | 2016-08-25 | 2019-04-24 | エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation | Method and system for handling DSR load balancing utilizing a loopback interface in a virtual network environment |
JP6505172B2 (en) | 2016-08-25 | 2019-04-24 | エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation | Method and system for handling load balancing utilizing virtual switches in a virtual network environment |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5660049B2 (en) * | 2009-12-17 | 2015-01-28 | 日本電気株式会社 | Load distribution system, load distribution method, apparatus and program constituting load distribution system |
JP5645139B2 (en) * | 2010-01-05 | 2014-12-24 | 日本電気株式会社 | Network system, controller, and network control method |
JP5648926B2 (en) * | 2010-02-01 | 2015-01-07 | 日本電気株式会社 | Network system, controller, and network control method |
-
2013
- 2013-12-11 JP JP2013256483A patent/JP6053032B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015115781A (en) | 2015-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11381507B2 (en) | Virtual network device and related method | |
CA3106407C (en) | Multi-cloud connectivity using srv6 and bgp | |
CN109937401B (en) | Live migration of load-balancing virtual machines via traffic bypass | |
US10225137B2 (en) | Service node selection by an inline service switch | |
US9509615B2 (en) | Managing link aggregation traffic in a virtual environment | |
US10120729B2 (en) | Virtual machine load balancing | |
JP6538986B2 (en) | Virtual machine packet control | |
KR101371993B1 (en) | Method and apparatus for transparent cloud computing with a virtualized network infrastructure | |
US8923296B2 (en) | System and methods for managing network packet forwarding with a controller | |
CN110417924B (en) | Message processing method in distributed equipment and distributed equipment | |
US10375193B2 (en) | Source IP address transparency systems and methods | |
US20180139101A1 (en) | Flow sate transfer for live migration of virtual machine | |
US20130268646A1 (en) | Techniques for providing scalable application delivery controller services | |
CN105577723B (en) | Virtualize the method and apparatus that load balancing is realized in network | |
WO2012127886A1 (en) | Network system, and policy route configuration method | |
KR20180108708A (en) | Message Generation Method and Load Balancer Based on Server Clusters | |
US9350666B2 (en) | Managing link aggregation traffic in a virtual environment | |
US9578126B1 (en) | System and method for automatically discovering wide area network optimized routes and devices | |
US9686178B2 (en) | Configuring link aggregation groups to perform load balancing in a virtual environment | |
US10009282B2 (en) | Self-protecting computer network router with queue resource manager | |
WO2019184653A1 (en) | Link configuration method and controller | |
US10181031B2 (en) | Control device, control system, control method, and control program | |
JP6693925B2 (en) | Server, communication control system, and communication control method | |
US20220166715A1 (en) | Communication system and communication method | |
US11595304B2 (en) | Communication device, communication control system, communication control method, and communication control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20151001 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20151005 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161109 |
|
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: 20161122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6053032 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |