JP2015115781A - 通信制御装置、通信制御方法及び通信制御プログラム - Google Patents

通信制御装置、通信制御方法及び通信制御プログラム Download PDF

Info

Publication number
JP2015115781A
JP2015115781A JP2013256483A JP2013256483A JP2015115781A JP 2015115781 A JP2015115781 A JP 2015115781A JP 2013256483 A JP2013256483 A JP 2013256483A JP 2013256483 A JP2013256483 A JP 2013256483A JP 2015115781 A JP2015115781 A JP 2015115781A
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.)
Granted
Application number
JP2013256483A
Other languages
English (en)
Other versions
JP6053032B2 (ja
Inventor
拓磨 渡邊
Takuma Watanabe
拓磨 渡邊
浩二 飯田
Koji Iida
浩二 飯田
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013256483A priority Critical patent/JP6053032B2/ja
Publication of JP2015115781A publication Critical patent/JP2015115781A/ja
Application granted granted Critical
Publication of JP6053032B2 publication Critical patent/JP6053032B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】One-Arm方式およびDSR方式を利用するための負担を軽減し、適切にサービスを提供することを課題とする。
【解決手段】仮想NWコントローラ10は、クライアント40から送信された往路データを複数の仮想マシン30A〜30Cのうちのいずれかの仮想マシン30に転送する仮想LB70が接続される仮想NW60を形成する通信機器に対して、往路データの送信先IPアドレスが仮想LB70のIPアドレスであって、かつ、送信先MACアドレスが仮想LB70のMACアドレスでない場合には、送信先IPアドレスを仮想マシン30のIPアドレスに書き換える往路ルールを設定する。そして、仮想NWコントローラ10は、クライアント40から送信された往路データの送信先が仮想LB70である場合には、通信機器に対して、復路データの送信元IPアドレスを仮想LB70のIPアドレスに書き換える復路ルールを設定する。
【選択図】 図1

Description

本発明は、通信制御装置、通信制御方法及び通信制御プログラムに関する。
従来、商用クラウド環境を提供する事業者が仮想ロードバランサ(例えば、LBaaS :Load Balancer as a Service)サービスを提供する際、顧客(ユーザ)が各自で構築するクラウド環境上のシステムに仮想ロードバランサを導入する技術が知られている。仮想ロードバランサは、例えば、ユーザがWebサービスの提供等を目的として商用クラウド環境上に複数の仮想マシンを構築している場合において、当該仮想マシンに対する負荷が均一となるような負荷分散を行う。ユーザは、仮想ロードバランサに対して負荷分散対象となる仮想マシンのグループや負荷分散アルゴリズムを設定可能である。
ここで、あるネットワーク構成に対して仮想ロードバランサを導入する場合の方式として、Two-Arm方式とOne-Arm方式が存在する。Two-Arm方式は、負荷分散対象となる通信が着信するネットワークと負荷分散先となるリアルサーバが存在するネットワークのセグメントが分離されており、それぞれのネットワークに対してロードバランサがインタフェースを持つ。一方、One-Arm方式ではロードバランサは1つのインタフェースしか持たず、負荷分散対象となる通信が着信するネットワークとリアルサーバが存在するネットワークは同一である。
仮想ロードバランサは、仮想環境上のシステムにおいてロードバランサの機能をソフトウェアで実現するものである。仮想ロードバランサを用いることで、ユーザはクラウドサービスなどでロードバランサを含む任意の仮想的なシステムをオンデマンドで構築することができる。
一般的に、すでに構築済みの仮想環境上のシステムに対してTwo-Arm方式で仮想ロードバランサを追加する場合には、新しい仮想ネットワークの作成や、仮想ロードバランサで仮想ルータを置き換える等のネットワーク構成変更を行う。そのため、ユーザにとって一時的にネットワークが切り離されて通信が遮断されてしまう等のリスクが発生する。これはユーザがスモールスタートから徐々に仮想環境の規模を拡大していく際に仮想ロードバランサを導入する、といったユースケースで障害となる。
One-Arm方式であれば既存のネットワークに新たに仮想ロードバランサを接続するだけで負荷分散が実現可能であるが、通信が適切に行えない場合がある。つまり、既にあるネットワーク構成に仮想ロードバランサを追加する場合には、仮想マシン(リアルサーバ)のデフォルトGWは通常同じネットワークに属する仮想ルータに設定されている。そのため、仮想ロードバランサから仮想マシンに振り分けられた通信は、復路において仮想ロードバランサではなくデフォルトGWの仮想ルータを経由して接続要求元のクライアントに到達しようとする。
ところが、クライアントは受信パケットの送信元IPアドレスが仮想ロードバランサのものではないことから、自分の通信ではないと判断して当該パケットを破棄してしまうため、通信が適切に行えない。一方で、仮想ロードバランサをデフォルトGWとした場合は外部向けの全ての通信が仮想ロードバランサを介してしまうため、無駄なトラフィックが大量に発生してしまう。
そこで、仮想ロードバランサで通信をSNAT(Source Network Address Translation)することでOne-Arm方式においてもロードバランスが実現可能である。パケットの送信元IPアドレスがSNATによって仮想ロードバランサのIPアドレスに書き換えられるため、負荷分散先の仮想マシンは通信に対する応答を仮想ロードバランサに向けて送信するようになる。仮想ロードバランサは再度SNATし、送信元IPアドレスを自身のIPアドレスに書き換えてクライアントに送信することで通信が確立される。
また、ロードバランサの主な転送方式に、NAT方式とDSR方式が存在する。NAT方式は通信をNATし、通信の往路ではパケットの宛先IPアドレスをロードバランサのIPアドレスから負荷分散先の仮想マシンのIPアドレスに変換し、復路では送信元IPアドレスを仮想マシンのアドレスからロードバランサのアドレスに変換してクライアントに送り返す。なお、このようにNAT方式では、通信の往路と復路ともにロードバランサを経由することが前提となる。
一方、DSR方式は、クライアントからロードバランサを経由して各仮想マシンに負荷分散された通信の復路が、仮想マシンからロードバランサを介さずに直接クライアントに戻る方式である。ロードバランサはNATするのではなく、宛先MACアドレスのみを振り分け先の仮想マシンのアドレスに変換して転送する。復路のNATを行わないため、NAT方式と比較して大幅にロードバランサの負荷が少なくなる。
仮想ロードバランサは、ハードウェアのアプライアンス製品として提供されている市中のロードバランサと比較すると一般的に処理性能が低いため、負荷が少なく高い処理性能が期待できるDSR(Direct Server Return)方式で導入するユースケースが考えられる。
NETWORKGEEKSTUFF、"Basic Load-Balancer Scenarios Explained"、[online]、[平成25年11月29日検索]、インターネット<http://networkgeekstuff.com/networking/basic-load-balancer-scenarios-explained/> Security Akademeia、"ロードバランサの配置の種類"、[online]、[平成25年11月29日検索]、インターネット<http://akademeia.info/index.php?%A5%ED%A1%BC%A5%C9%A5%D0%A5%E9%A5%F3%A5%B5#oc261ef8>
しかしながら、従来技術では、One-Arm方式およびDSR方式を利用するための負担が大きく、また、サービス提供の支障となる場合があるという課題があった。つまり、上記のOne-Arm方式において仮想ロードバランサでSNATする技術では、仮想ロードバランサでSNATすることで、ユーザの仮想マシンにサービス利用者であるクライアントのIPアドレスが通知されなくなってしまう。このため、クライアントのIPアドレスを何らかの形で利用するようなサービス(例えば、掲示板の書き込み規制など)を提供することができなくなる場合があり、サービス提供の支障となる場合があった。
なお、仮想ロードバランサにて通信ログを取得するという方法も考えられるが、事業者側の負担が増大してしまう。つまり、ログをユーザの保管ポリシーに合わせて保管し、ユーザが自由にアクセスして閲覧可能な状態に保つためには、事業者が大きな設備投資と管理責任を負担する必要が生じてしまい、事業者側の負担が増大してしまう。
また、仮想ロードバランサをDSR方式で導入するためには、ユーザが作成する仮想マシンに対する個別の設定を行う。具体的には、仮想マシンのループバックデバイスに仮想ロードバランサのIPアドレスを設定し、かつ当該IPアドレス宛のARPに仮想マシンが応答しないように設定する。しかし、このようにユーザの仮想マシンに対して個別設定を行う場合、ユーザは各自の責任において適切な設定を行う必要があり、事業者はユーザがDSR方式で仮想ロードバランサを導入できるよう支援するために多大な手間がかかる。
そこで、この発明は、One-Arm方式およびDSR方式を利用するため負担を軽減し、適切にサービスを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の通信制御装置は、クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定部と、前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定部と、を備えることを特徴とする。
また、開示の通信制御方法は、通信制御装置で実行される通信制御方法であって、クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定工程と、前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定工程と、を含んだことを特徴とする。
また、開示の通信制御プログラムは、クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定ステップと、前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定ステップと、をコンピュータに実行させることを特徴とする。
本願に開示する通信制御装置、通信制御方法及び通信制御プログラムは、One-Arm方式およびDSR方式を利用するための負担を軽減し、適切にサービスを提供することが可能である。
図1は、第一の実施形態に係る通信システムの構成の一例を示す図である。 図2は、第一の実施形態に係る仮想NWコントローラの構成を示すブロック図である。 図3は、第一の実施形態に係る仮想LB情報記憶部に記憶される情報の一例を示す図である。 図4は、第一の実施形態に係る通信システムにおいて仮想LBを追加する処理について説明する図である。 図5は、第一の実施形態に係る通信システムにおいて仮想NWコントローラへ仮想LBの情報を登録する処理について説明する図である。 図6は、第一の実施形態に係る通信システムにおいて仮想NWへルールを追加する処理について説明する図である。 図7は、第一の実施形態に係る通信システムにおいて仮想NWへ往路NAT用ルールを追加する処理について説明する図である。 図8は、第一の実施形態に係る通信システムにおいてクライアントから仮想ルータに送信されるパケットに関する通信処理について説明する図である。 図9は、第一の実施形態に係る通信システムにおいて仮想ルータを経由して仮想NWに到達したパケットの通信処理について説明する図である。 図10は、第一の実施形態に係る通信システムにおいて仮想NWへ復路NAT用ルールを追加する処理について説明する図である。 図11は、第一の実施形態に係る通信システムにおいて仮想NWへ既知クライアントIP用ルールを追加する処理について説明する図である。 図12は、第一の実施形態に係る通信システムにおいて仮想LBから仮想NWへ送信されるパケットに関する通信処理について説明する図である。 図13は、第一の実施形態に係る通信システムにおいて仮想NWから仮想マシンへ送信されるパケットに関する通信処理について説明する図である。 図14は、第一の実施形態に係る通信システムにおいて仮想マシンから仮想NWへ送信されるパケットに関する通信処理について説明する図である。 図15は、第一の実施形態に係る通信システムにおいて仮想NWから仮想ルータへ送信されるパケットに関する通信処理について説明する図である。 図16は、第一の実施形態に係る通信システムにおいて仮想ルータからクライアントへ送信されるパケットに関する通信処理につて説明する図である。 図17は、第一の実施形態に係る仮想NWコントローラにおける往路設定処理の流れを説明するためのフローチャートである。 図18は、第一の実施形態に係る仮想NWコントローラにおける復路設定処理の流れを説明するためのフローチャートである。 図19は、第一の実施形態に係る通信システムの概要を説明する図である。 図20は、通信制御プログラムを実行するコンピュータを示す図である。
以下に図面を参照して、この発明に係る通信制御装置、通信制御方法及び通信制御プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
[第一の実施形態]
以下の実施形態では、第一の実施形態に係る通信システムの構成、仮想NWコントローラの構成、通信システムによる通信処理の流れ及び仮想NWコントローラによる通信制御処理の流れを順に説明し、最後に第一の実施形態による効果を説明する。
[システムの構成]
まず、第一の実施形態に係る通信システム100の構成の一例を説明する。図1は、第一の実施形態に係る通信システムの構成の一例を示す図である。図1に示すように、通信システム100は、仮想NW(NetWork:ネットワーク)コントローラ10と、仮想ルータ20と、複数の仮想マシン30A〜30Cと、クライアント40と、仮想LB(Load Balancer)70とを有する。なお、ここでは、仮想マシン30B、30Cおよび仮想LB70は、後から追加されたものとして、図1では点線で示している。
また、第一の実施形態に係る通信システム100において、仮想ルータ20とクライアント40とは、外部NW50を介して接続され、仮想NWコントローラ10と、仮想ルータ20と、複数の仮想マシン30A〜30Cと、仮想LB70とは、仮想NW60を介して接続されている。なお、複数の仮想マシン30A〜30Cについて、特に区別することなく説明する場合には、「仮想マシン30」と記載する。また、図1に例示した各装置の設置数は、あくまで一例であり、これに限定されるものではない。
仮想NWコントローラ10は、通信機器や仮想マシンを管理する通信制御装置である。この仮想NWコントローラ10は、物理装置で実現されてもよく、仮想マシンで実現されてもよい。なお、仮想NWコントローラ10についての具体的な構成や処理については、後に詳述する。
仮想ルータ20は、ユーザが任意に作成している仮想ルータである。仮想ルータ20は、外部NW50からの着信をNATし、クライアント40と仮想LB70や仮想マシン30A〜30Cとの通信を確立する。また、仮想ルータ20は、配下の仮想NW60や仮想マシン30A〜30Cのデフォルトゲートウェイである。また、ここでユーザとは、クライアント40に対してサービスを提供するため、サーバとなる仮想マシン30A〜30Cをはじめとした通信システム100を構築しているユーザである。なお、ユーザは、通信システム100を構築するためにクラウドサービスを利用しているものとする。また、この仮想ルータ20は、物理装置で実現されてもよく、仮想マシンで実現されてもよい。
仮想マシン30A〜30Cは、ユーザによって任意に作成された仮想マシンであって、外部NW50に接続されたクライアント40に対するWebサービス等を提供するサーバとして機能する。なお、仮想LB70が追加された場合には、これらの仮想マシン30A〜30Cが負荷分散先のサーバ(リアルサーバ)となる。
また、クライアント40は、ユーザが提供するサービスの利用者が所有する端末である。図1では、クライアント40について、1台のみを図示しているが、不特定多数存在するものとする。また、外部NW50は、クライアント40が存在するネットワークであって、例えば、インターネットなどの仮想環境外部のネットワークである。
仮想NW60は、ソフトウェアによって仮想的に構築されているネットワークであり、ユーザによって任意に作成されたネットワークである。なお、仮想NW60については、例えばOpen Flowが用いられて実現されているものとし、動的にNW構成を制御することで、仮想マシンや仮想ルータにとって、仮想NW60が1台のスイッチのように振る舞うものとする。
仮想LB70は、仮想マシン30A〜30Cがリアルサーバとして設定されており、ソフトウェアによって様々な負荷分散アルゴリズムに基づいた負荷分散を行う。また、仮想LB70は、One-Arm方式なので、インタフェース(IPアドレス)が一つである。仮想LB70は、このIPアドレスおよび指定した待受ポートに着信した通信をリアルサーバに負荷分散する。また、第一の実施形態に係る通信システム100では、DSR方式を採用しており、リアルサーバからクライアントへの戻りの通信(復路)である場合には、仮想LB70を経由せずに、仮想ルータ20を経由して直接要求元のクライアント40にデータが送信される。
また、第一の実施形態に係る通信システム100では、ユーザが当初、仮想マシン30Aのみでサービスを提供していたが、サービス利用者の増加によって仮想マシン30Aの負荷が高まり、処理速度の低下などでサービスに支障が出たものとする。そこで、新たに同じサービスを提供する仮想マシン30B、30Cおよび仮想LB70を導入し、3台の仮想マシン30A〜30Cにクライアント40からのリクエストを負荷分散することで解決しようとしている状況であるものとして、以下説明する。
[仮想NWコントローラの構成]
次に、図2を用いて、図1に示した仮想NWコントローラ10の構成を説明する。図2は、第一の実施形態に係る仮想NWコントローラの構成を示すブロック図である。図2に示すように、仮想NWコントローラ10は、通信処理部11、制御部12および記憶部13を有する。
通信処理部11は、接続される仮想NW60との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、仮想NW60から仮想LB70宛てのパケットを受信する。
記憶部13は、図2に示すように、仮想LB情報記憶部13aを有する。記憶部13は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
仮想LB情報記憶部13aは、仮想LB70のIPアドレスおよび待受ポートを記憶する。ここで、図3の例を用いて、仮想LB情報記憶部13aに記憶される情報の一例を説明する。図3は、第一の実施形態に係る仮想LB情報記憶部に記憶される情報の一例を示す図である。
図3に示すように、仮想LB情報記憶部13aは、仮想LB70を識別するための名称である「仮想LB名」と、仮想LB70自身のIPアドレスである「IPアドレス」と、仮想LB70の待受ポートである「待受ポート」とを対応付けて記憶する。具体的な例を挙げて説明すると、例えば、仮想LB情報記憶部13aは、仮想LB名「仮想LB1」、IPアドレス「10.0.0.101」と、待受ポート「80」とが対応付けて記憶されている。
図2に戻って、制御部12は、受信部12a、往路設定部12bおよび復路設定部12cを有する。ここで、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。
受信部12aは、仮想NW60に仮想LB70が新たに接続されると、該仮想LB70のIPアドレスおよび待受ポート番号を受信し、該IPアドレスおよび待受ポート番号を仮想LB情報記憶部13aに格納する。また、受信部12aは、仮想NW60を形成する通信機器から仮想LB70が送信先であるデータを受信する。
ここで、図4を用いて、通信システム100において仮想LBを追加する際の処理例について説明する。図4は、第一の実施形態に係る通信システムにおいて仮想LBを追加する処理について説明する図である。
図4に示すように、通信システム100において、ユーザが作成した仮想LB70が新たに追加され、仮想NW60に接続される。ここで通信システム100は、One-Arm方式であるため、既存のシステム構成を崩す(例えば、仮想ルータ20と仮想NW60の接続を切断して仮想LB70に付け替えを行う等)ことなく追加が可能である。
また、図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」が設定されているものとする。
また、仮想ルータ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を行うルールが設定されている。
なお、通信システム100では、全ての仮想マシン30A〜30Cのデフォルトゲートウェイは、仮想ルータ(10.0.0.254)に設定されているものとする。また、仮想NW60は、1つのスイッチとして振る舞うが、パケットの宛先が当該仮想NW60内に存在しない場合、または、宛先がどこに存在するか不明の場合は、仮想ルータ20にパケットを転送するように設定されているものとする。
続いて、図5を用いて、仮想LB70が追加された後において、仮想NWコントローラ10へ仮想LB70の情報を登録する処理について説明する。図5は、第一の実施形態に係る通信システムにおいて仮想NWコントローラへ仮想LBの情報を登録する処理について説明する図である。通信システム100では、ユーザの操作により仮想LB70を追加する設定が行われると、上位装置(図示省略)から自動的に仮想NWコントローラ10に通知される。
図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に対する通信であることを判別できるようになる。
図2に戻って、往路設定部12bは、クライアント40から送信された往路データを複数の仮想マシン30A〜30Cのうちのいずれかの仮想マシン30に転送する仮想LB70が接続される仮想NW60を形成する通信機器に対して、往路データの送信先IPアドレスが仮想LB70のIPアドレスであって、かつ、送信先MACアドレスが仮想LB70のMACアドレスでない場合には、送信先IPアドレスを仮想マシン30のIPアドレスに書き換える往路ルールを設定する。
また、往路設定部12bは、仮想NW60の通信機器に対して、送信先IPアドレスが仮想LB70のIPアドレスであるパケットを受信した場合には、仮想LB70にパケットを転送するとともに、該パケットを自仮想NWコントローラ10に対して転送する転送ルールをさらに設定する。具体的には、往路設定部12bは、仮想LB情報記憶部13aに記憶されたIPアドレスおよび待受ポートを用いて、転送ルールを設定する。
ここで、図6を用いて、仮想NW60に新たなルール(転送ルール)を追加する場合の例について説明する。図6は、第一の実施形態に係る通信システムにおいて仮想NWへルールを追加する処理について説明する図である。図6に示すように、仮想NWコントローラ10は、図5の説明において登録された仮想LB70の情報を元に、仮想NW60を制御して、転送ルール(Open Flowではフローテーブルという)を追加する。
具体的には、仮想NWコントローラ10は、転送ルールとして、「未知の送信元IPアドレスから仮想LB70宛てのパケットを受信した場合には、パケットを仮想LB70に転送しつつ、仮想NWコントローラ10にも同じパケットを送信すること」というルールを仮想NW60に追加する。
例えば、図6の例では、転送ルールとして、「宛先IP:10.0.0.101 宛先ポート:80の仮想LBに対する通信は、仮想LBにルーティングするだけでなく、コントローラにもパケットを転送すること」というルールを仮想NW60に追加する。
次に、図7を用いて、仮想NW60へ往路NAT用ルール(往路ルール)を追加する処理について説明する。図7は、第一の実施形態に係る通信システムにおいて仮想NWへ往路NAT用ルールを追加する処理について説明する図である。図7に示すように、仮想NWコントローラ10は、登録された仮想LB70の情報を元に、仮想NW60を制御して、往路ルール(Open Flowではフローテーブル)を追加する。
仮想NWコントローラ10は、往路ルールとして、「宛先IPが仮想LB70のIPであるが、宛先MACアドレスが仮想LBでないパケットは、仮想LB70からDSR方式でリアルサーバに転送されているパケットと見なし、宛先IPアドレスを宛先MACに対応するものであって、仮想LBのIPアドレスからいずれかの仮想マシン30のIPアドレスに書き換える」というルールを仮想NW60に追加する。
例えば、図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に追加する。
上記のように転送ルールおよび往路ルールが追加された場合の通信処理の流れについて図8および図9を用いて説明する。図8は、第一の実施形態に係る通信システムにおいてクライアントから仮想ルータに送信されるパケットに関する通信処理について説明する図である。図9は、第一の実施形態に係る通信システムにおいて仮想ルータを経由して仮想NWに到達したパケットの通信処理について説明する図である。
図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アドレスとが含まれる。
そして、仮想ルータ20は、着信したパケットをDNAT(Destination Network Address Translation)し、宛先IPアドレスを仮想LBのIPアドレスに変更する。例えば、仮想ルータ20は、パケットヘッダにおける宛先IPを「10.0.0.101」に変更し、宛先MACを「仮想LB」のMACアドレスに変更し、送信元MACを「仮想ルータ」のMACアドレスに変更する。
続いて、図9に示すように、クライアント40からの通信は仮想ルータ20を経由し、仮想NW60に到達する。そして、仮想NW60は、上記した転送ルールに基づき、パケットを仮想LB70に転送するとともに、仮想NWコントローラ10に転送する。そして、仮想NWコントローラ10が受け取ったパケットのヘッダ情報の宛先IPおよび宛先ポートが、仮想LB情報記憶部13aに記憶されているIPアドレスおよび待受ポートと一致する場合には、後述する図10を用いて詳述するが、復路ルールを仮想NW60に対して追加する。
復路設定部12cは、クライアント40から送信された往路データの送信先が仮想LB70である場合には、仮想NW60の通信機器に対して、復路データの送信元IPアドレスを仮想LB70のIPアドレスに書き換える復路ルールを設定する。具体的には、復路設定部12cは、受信部12aによって往路データの送信先が仮想LB70である往路データが受信された場合には、仮想NW60の通信機器に対して、復路データの送信元IPアドレスを仮想LB70のIPアドレスに書き換える復路ルールを設定する。
ここで、図10を用いて、通信システムにおいて仮想NWへ復路NAT用ルール(復路ルール)を追加する処理について説明する。図10は、第一の実施形態に係る通信システムにおいて仮想NWへ復路NAT用ルールを追加する処理について説明する図である。なお、図10では、往路のパケットを仮想NW60が受信した場合に、復路NAT用ルール(復路ルール)を設定する処理について説明する。図10に示すように、仮想NWコントローラ10は、パケットを受信すると、例えば、受信したパケットのヘッダ情報の宛先IPおよび宛先ポートが、仮想LB情報記憶部13aに記憶されているIPアドレスおよび待受ポートと一致するか判別する。そして、仮想NWコントローラ10は、一致する場合には、つまり、仮想LB宛のパケットであった場合には、復路ルールを仮想NW60に追加する。
仮想NWコントローラ10は、復路ルールとして、「クライアント宛の戻りの通信は、送信元IPアドレスを仮想LB70のIPに書き換えること」という復路ルールを仮想NW60に追加する。つまり、書き換えなければ仮想ルータ20で送信元IPアドレスがいずれかの仮想マシンのIPのままx.x.x.xにNATされず、別のNATルールによってクライアント40が要求を送信したIPとは異なるIPにNATされてしまい、クライアント40側に到達した時点で破棄されてしまう。このため、クライアント宛の戻りの通信は、送信元IPアドレスを仮想LB70のIPに書き換える復路ルールを仮想NW60に追加することで、クライアント側で破棄されることを防止し、適切に通信を行えるようにすることが可能である。
例えば、図10の例では、仮想NWコントローラ10は、復路ルールとして、「宛先IP:a.a.a.a 宛先ポート:5000 送信元ポート:80の通信は、仮想LBで負荷分散された通信の復路パケットであると見なし、送信元IPアドレスを10.0.0.101に書き換えること」という復路ルールを仮想NW60に追加する。
次に、図11を用いて、仮想NWコントローラ10が受け取ったパケットのヘッダ情報から、仮想NWコントローラ10に対する不要なパケット転送を抑止するために、仮想NWへ既知クライアントIP用ルールを追加する処理について説明する。図11は、第一の実施形態に係る通信システムにおいて仮想NWへ既知クライアントIP用ルールを追加する処理について説明する図である。
図11に示すように、仮想NWコントローラ10は、復路ルールの追加が完了した後、仮想NW60に対して、「戻りパケット用ルール追加が完了した、既知クライアント(送信元IPアドレス)からの通信に関しては、仮想LB宛の通信であってもコントローラへ転送しないこと」という既知クライアントIP用ルールを追加する。つまり、図6に例示したように、仮想LB70宛てのパケットを転送する転送ルールを追加する処理を行ったが、仮想LB70宛てのパケットを受信すれば必要な設定が仮想NW60にされているので、2回目以降のパケット転送は不要である。このため、仮想NWコントローラ10は、復路ルール追加が完了した後、既知クライアントからの通信に関しては、仮想LB宛の通信であってもコントローラへ転送しないという既知クライアントIP用ルールを仮想NW60に追加する。
次に、前述した往路ルールおよび復路ルールが仮想NW60に追加された後の通信システム100において、クライアント40から仮想マシン30Aへ送信されるパケットの通信処理について、図12および図13を用いて説明する。図12は、第一の実施形態に係る通信システムにおいて仮想LBから仮想NWへ送信されるパケットに関する通信処理について説明する図である。図13は、第一の実施形態に係る通信システムにおいて仮想NWから仮想マシンへ送信されるパケットに関する通信処理について説明する図である。
図12に示すように、仮想LB70は、外部NW50および仮想ルータ20を経由して受信したクライアント40のパケットを80番ポートから受信する。そして、仮想LB70は、80番ポートに着信したパケットを、負荷分散アルゴリズムに基づいて、リアルサーバ(仮想マシン30A)に転送する。ここでは、負荷分散先として、仮想マシン30Aに振り分けるよう選択したこととする。
また、DSR方式なので、パケットの宛先IPは、仮想LB70のIPアドレスのままNATされずにリアルサーバに転送される。つまり、仮想LB70では、NATを行わないことで、通信負荷を低く抑えることができる。ただし、宛先MACがリアルサーバのMACアドレスに変更される。例えば、図12の例では、仮想ルータ20から仮想LB70に送信されたパケットのヘッダに含まれる宛先MACが「仮想LB」から「仮想マシン30A」に変更され、送信元MACについても「仮想ルータ」から「仮想LB」に変更される。
次に、図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に対して個別に行わなくてもよい。
例えば、図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」に変更する。
次に、前述した往路ルールおよび復路ルールが仮想NW60に追加された後の通信システム100において、仮想マシン30Aからクライアント40へ送信されるパケットの通信処理について、図14〜図16を用いて説明する。図14は、第一の実施形態に係る通信システムにおいて仮想マシンから仮想NWへ送信されるパケットに関する通信処理について説明する図である。図15は、第一の実施形態に係る通信システムにおいて仮想NWから仮想ルータへ送信されるパケットに関する通信処理について説明する図である。図16は、第一の実施形態に係る通信システムにおいて仮想ルータからクライアントへ送信されるパケットに関する通信処理について説明する図である。
図14に示すように、リアルサーバである仮想マシン30Aは、仮想LB70からのパケットを受信し、それに対する応答として、図14の(5)に例示するヘッダを持つパケットを送信する。なお、これは送信元のIPとポートに向けて応答を返そうとする、一般的な動作であり、デフォルトゲートウェイは仮想ルータなので、宛先MACは仮想ルータのものとなっている。
次に、図15に示すように、仮想マシン30Aからのパケットが仮想NW60を経由し、仮想ルータ20に到達する際の処理について説明する。ここで、仮想NW60を経由する際、仮想NW60は、前述の図10の説明において設定された復路ルールに基づき、送信元IPアドレスを仮想マシン30AのIPから仮想LB70のIPに書き換えて転送する。これは、送信元IPアドレスが仮想LB70のIPでなければ仮想ルータ20で正しくNATされず、クライアント40側に到達した時点でパケットが破棄されてしまうため、送信元IPアドレスを仮想マシン30AのIPから仮想LB70のIPに書き換えてパケットが破棄されないようにしている。
例えば、図15の例では、送信元IPアドレスを仮想マシン30Aに対応する「10.0.0.1」から仮想LB70に対応する「10.0.0.101」に変更する。これにより、仮想ルータ20では、「10.0.0.101」から「x.x.x.x」に正しくNATされ、クライアント40側に到達した時点でパケットが破棄されることがなく、適切に通信を行うことが可能である。
つまり、例えば、送信元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しているので、パケットが破棄されることはなく、適切に通信を行うことができる。
次に、図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に転送する。
このように、第一の実施形態に係る通信システム100では、仮想NW60による動的な経路制御を併用することで、One-Arm方式を採用した仮想LB70を導入可能とする。また、通信システム100による方式では、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、仮想LB70をOne-Arm方式で利用するための個別設定が不要であり、さらにクライアントのIPアドレスをリアルサーバに通知可能とする。このように第一の実施形態に係る通信システム100では、One-Arm方式を利用するための設定にかかる負担を軽減することが可能である。
また、通信システム100では、仮想NW60による動的な経路制御を併用し、DSR方式を採用した仮想LB70を導入可能とする。通信システム100の方式では、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、DSR方式を利用するための個別設定が不要であり、DSR方式を利用するための設定にかかる負担を軽減することが可能である。
仮想NWコントローラ10は、仮想NW60に対して「宛先IPが仮想ロードバランサのIPだが、宛先MACが仮想ロードバランサでないパケットは、仮想ロードバランサからDSR方式で仮想マシン宛に転送されているパケットと見なし、宛先IPアドレスを宛先MACに対応する仮想マシンのIPアドレスに書き換える」という往路ルール(Open Flowにおけるフローテーブルに相当)を追加する。これにより、仮想マシンに特別な設定をせずとも、仮想マシンが仮想ロードバランサから転送(負荷分散)されてきたパケットを自分宛のものとして正常に処理することが可能となる。
また、仮想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側に到達した時点で破棄されてしまうという問題が起こる。
[仮想NWコントローラ10による処理]
次に、図17および図18を用いて、第一の実施形態に係る仮想NWコントローラ10による処理を説明する。図17は、第一の実施形態に係る仮想NWコントローラにおける往路設定処理の流れを説明するためのフローチャートである。図18は、第一の実施形態に係る仮想NWコントローラにおける復路設定処理の流れを説明するためのフローチャートである。
まず、図17を用いて、仮想NWコントローラ10における往路設定処理の流れを説明する。図17に示すように、仮想NWコントローラ10は、仮想LB70の情報を受信したか否かを判定する(ステップ101)。例えば、仮想NWコントローラ10は、仮想LB70の情報として、仮想NW60に新たに接続された仮想LB70のIPアドレスおよび待受ポート番号を受信したか否かを判定する。この結果、仮想NWコントローラ10は、仮想LB70の情報を受信すると(ステップ101肯定)、「未知の送信元IPアドレスから仮想LB70宛のパケットを受信した場合、パケットを仮想LB70に転送しつつ、自コントローラにも同じパケットを送信する」というルール(転送ルール)を仮想NW60に追加する(ステップ102)。
そして、仮想NWコントローラ10は、宛先IPが仮想LB70のIPであるが、宛先MACが仮想LB70でないパケットは、仮想LB70からDSR方式でリアルサーバ(仮想マシン30)に転送されているパケットと見なし、宛先IPアドレスを宛先MACに対応するもの(仮想LB70のIPアドレスからいずれかの仮想マシンのIPアドレス)に書き換えるというルール(往路ルール)を仮想NW60に追加する(ステップ103)。
次に、図18を用いて、仮想NWコントローラ10における復路設定処理の流れを説明する。図18に示すように、仮想NWコントローラ10は、仮想NW60から往路のパケットを受信すると(ステップ201肯定)、受信した往路のパケットが仮想LB70宛てのパケットであるか否かを判定する(ステップ202)。具体的には、仮想NWコントローラ10は、受信した往路のパケットのヘッダに含まれる宛先IPおよび宛先ポートが仮想LB情報記憶部13aに記憶されたIPアドレスおよび待受ポートと一致するか否かを判定する。
この結果、仮想NWコントローラ10は、受信した往路のパケットが仮想LB70宛てのパケットであると判定した場合には(ステップ202肯定)、「クライアント宛ての戻り通信は、送信元IPアドレスを仮想LB70のIPに書き換える」というルール(復路ルール)を仮想NW60に追加する(ステップ203)。また、仮想NWコントローラ10は、受信したパケットが仮想LB70宛てのパケットでないと判定した場合には(ステップ202否定)、そのまま処理を終了する。
[第一の実施形態の効果]
上述してきたように、第一の実施形態に係る通信システム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方式を利用するため負担を軽減し、適切にサービスを提供することが可能である。
つまり、上述したように、第一の実施形態に係る通信システム100では、仮想NW60による動的な経路制御を併用することで、One-Arm方式を採用した仮想LB70を導入可能とする。例えば、図19に例示するように、ユーザが、サービスを提供中の仮想マシンの負荷が大きくなってきたので、仮想ロードバランサを導入して負荷分散したい場合に、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、仮想LB70をOne-Arm方式で利用するための個別設定が不要である。このため、第一の実施形態に係る通信システム100では、One-Arm方式を利用するための設定にかかる負担を軽減することが可能である。
また、通信システム100では、仮想NW60による動的な経路制御を併用し、DSR方式を採用した仮想LB70を導入可能とする。通信システム100の方式では、ユーザが任意に作成してリアルサーバとして利用する仮想マシン30に対して、DSR方式を利用するための個別設定が不要であり、DSR方式を利用するための設定にかかる負担を軽減することが可能である。このように、既存の仮想環境の構成を変更せずに、処理性能の高いDSR方式で仮想ロードバランサを追加可能となる。
つまり、仮想LB70でSNATをしない場合、あるいはユーザが作成した負荷分散先の仮想マシン30に個別の設定をしない場合であっても、仮想ロードバランサをOne-Arm方式で導入することが可能となるため、既存のネットワーク構成への影響を抑えつつ簡単に導入することが可能である。また、ユーザの仮想マシン30に個別の設定をすることなくDSR方式のロードバランスを実現することができるため、仮想LB70の負荷を低く抑え、高速な負荷分散が可能となる。従って、ユーザは既存の仮想環境上システムに対して簡単に仮想LB70を導入することが可能というOne-Arm方式のメリットを享受でき、事業者はDSR方式によるユーザエクスペリエンスの向上とデータセンタ内の計算資源やネットワーク資源の消費抑制というメリットが得られる。
このように、ユーザが仮想環境上に構築したシステムに、One-Arm方式かつDSR方式を採用した仮想LB70を導入する際にSNATや仮想マシンに対する特別な設定が必要であったが、仮想NW60による動的な経路制御を利用することでSNATと仮想マシンへの設定をすることなく導入が可能となった。これによって、既存の仮想環境上システムに対する影響を最小限に抑えつつ、低い負荷で高速な負荷分散が可能な仮想ロードバランサが実現されるため、ユーザエクスペリエンス向上や、クラウド事業者の計算資源、ネットワーク資源の効率的な利用が可能となる。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、往路設定部12bと復路設定部12cとを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
また、上記実施形態において説明した仮想NWコントローラ10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る仮想NWコントローラ10が実行する処理をコンピュータが実行可能な言語で記述した通信制御プログラムを作成することもできる。この場合、コンピュータが通信制御プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる通信制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され通信制御プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図2に示した仮想NWコントローラ10と同様の機能を実現する通信制御プログラムを実行するコンピュータの一例を説明する。
図20は、通信制御プログラムを実行するコンピュータ1000を示す図である。図20に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ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に接続される。
ここで、図20に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の通信制御プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
なお、通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 仮想NWコントローラ
11 通信処理部
12 制御部
12a 受信部
12b 往路設定部
12c 復路設定部
13 記憶部
13a 仮想LB情報記憶部
20 仮想ルータ
30A〜30C 仮想マシン
40 クライアント
50 外部NW
60 仮想NW
70 仮想LB
100 通信システム

Claims (5)

  1. クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定部と、
    前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定部と、
    を備えることを特徴とする通信制御装置。
  2. 前記往路設定部は、前記通信機器に対して、送信先IPアドレスがロードバランサのIPアドレスであるデータを受信した場合には、前記ロードバランサに前記データを転送するとともに、該データを自通信制御装置に対して転送する転送ルールをさらに設定し、
    前記通信機器から前記ロードバランサが送信先であるデータを受信する受信部をさらに備え、
    前記復路設定部は、前記受信部によって前記データが受信された場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定することを特徴とする請求項1に記載の通信制御装置。
  3. 前記受信部は、さらに、前記仮想ネットワークにロードバランサが新たに接続されると、該ロードバランサのIPアドレスを受信し、該IPアドレスを記憶部に格納し、
    前記往路設定部は、前記記憶部に記憶されたIPアドレスを用いて、前記転送ルールを設定することを特徴とする請求項2に記載の通信制御装置。
  4. 通信制御装置で実行される通信制御方法であって、
    クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定工程と、
    前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定工程と、
    を含んだことを特徴とする通信制御方法。
  5. クライアント端末から送信された往路データを複数の仮想マシンのうちのいずれかの仮想マシンに転送するロードバランサが接続される仮想ネットワークを形成する通信機器に対して、前記往路データの送信先IPアドレスがロードバランサのIPアドレスであって、かつ、送信先MACアドレスがロードバランサのMACアドレスでない場合には、前記送信先IPアドレスを前記仮想マシンのIPアドレスに書き換える往路ルールを設定する往路設定ステップと、
    前記クライアント端末から送信された往路データの送信先がロードバランサである場合には、前記通信機器に対して、復路データの送信元IPアドレスをロードバランサのIPアドレスに書き換える復路ルールを設定する復路設定ステップと、
    をコンピュータに実行させるための通信制御プログラム。
JP2013256483A 2013-12-11 2013-12-11 通信制御装置、通信制御方法及び通信制御プログラム Active JP6053032B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013256483A JP6053032B2 (ja) 2013-12-11 2013-12-11 通信制御装置、通信制御方法及び通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013256483A JP6053032B2 (ja) 2013-12-11 2013-12-11 通信制御装置、通信制御方法及び通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2015115781A true JP2015115781A (ja) 2015-06-22
JP6053032B2 JP6053032B2 (ja) 2016-12-27

Family

ID=53529208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013256483A Active JP6053032B2 (ja) 2013-12-11 2013-12-11 通信制御装置、通信制御方法及び通信制御プログラム

Country Status (1)

Country Link
JP (1) JP6053032B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018033135A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム
JP2018033136A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011074630A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
WO2011083668A1 (ja) * 2010-01-05 2011-07-14 日本電気株式会社 ネットワークシステム、コントローラ、ネットワーク制御方法
WO2011093288A1 (ja) * 2010-02-01 2011-08-04 日本電気株式会社 ネットワークシステム、コントローラ、ネットワーク制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011074630A1 (ja) * 2009-12-17 2011-06-23 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
WO2011083668A1 (ja) * 2010-01-05 2011-07-14 日本電気株式会社 ネットワークシステム、コントローラ、ネットワーク制御方法
WO2011093288A1 (ja) * 2010-02-01 2011-08-04 日本電気株式会社 ネットワークシステム、コントローラ、ネットワーク制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016043859; みやた ひろし: サーバ負荷分散入門 , 2012, pp.169-184, ソフトバンククリエイティブ株式会社 *
JPN6016043860; 山田 洋一 他: 'OpenFlow技術を用いたネットワーク機能動的配置制御方式' 電子情報通信学会技術研究報告 , 20130307, pp.41-46 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018033135A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム
JP2018033136A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
US10601906B2 (en) 2016-08-25 2020-03-24 Nhn Entertainment Corporation Method and system for processing load balancing using virtual switch in virtual network environment
US11075981B2 (en) 2016-08-25 2021-07-27 Nhn Entertainment Corporation Method and system for processing direct server return load balancing using loopback interface in virtual network environment
US11330044B2 (en) 2016-08-25 2022-05-10 Nhn Entertainment Corporation Method and system for processing load balancing using virtual switch in virtual network environment

Also Published As

Publication number Publication date
JP6053032B2 (ja) 2016-12-27

Similar Documents

Publication Publication Date Title
US11381507B2 (en) Virtual network device and related method
US10320895B2 (en) Live migration of load balanced virtual machines via traffic bypass
JP6538986B2 (ja) 仮想マシンパケット制御
US10120729B2 (en) Virtual machine load balancing
US9509615B2 (en) Managing link aggregation traffic in a virtual environment
US8923296B2 (en) System and methods for managing network packet forwarding with a controller
KR101371993B1 (ko) 가상화 네트워크 인프라구조를 갖는 투명 클라우드 컴퓨팅을 위한 방법 및 장치
JP2021530908A (ja) SRv6とBGPを使用するマルチクラウド接続
CN110417924B (zh) 分布式设备中的报文处理方法和分布式设备
US10375193B2 (en) Source IP address transparency systems and methods
US20130268646A1 (en) Techniques for providing scalable application delivery controller services
US20180139101A1 (en) Flow sate transfer for live migration of virtual machine
CN105577723B (zh) 虚拟化网络中实现负载分担的方法和装置
WO2018156421A1 (en) Load balancing in distributed computing systems
KR20180108708A (ko) 서버 클러스터에 기초한 메시지 생성 방법 및 부하 균형기
US9350666B2 (en) Managing link aggregation traffic in a virtual environment
US9686178B2 (en) Configuring link aggregation groups to perform load balancing in a virtual environment
US9578126B1 (en) System and method for automatically discovering wide area network optimized routes and devices
WO2019184653A1 (zh) 链路配置方法和控制器
US10181031B2 (en) Control device, control system, control method, and control program
JP2018515050A (ja) パケット転送
JPWO2015068255A1 (ja) ネットワークシステム、通信制御装置、及び通信方法
JP6693925B2 (ja) サーバ、通信制御システム、および、通信制御方法
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
JP6053032B2 (ja) 通信制御装置、通信制御方法及び通信制御プログラム

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