JP2019068297A - 通信装置、通信制御システム、および、通信制御方法 - Google Patents

通信装置、通信制御システム、および、通信制御方法 Download PDF

Info

Publication number
JP2019068297A
JP2019068297A JP2017192773A JP2017192773A JP2019068297A JP 2019068297 A JP2019068297 A JP 2019068297A JP 2017192773 A JP2017192773 A JP 2017192773A JP 2017192773 A JP2017192773 A JP 2017192773A JP 2019068297 A JP2019068297 A JP 2019068297A
Authority
JP
Japan
Prior art keywords
packet
mac address
session
switch
load balancer
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
JP2017192773A
Other languages
English (en)
Other versions
JP6693925B2 (ja
Inventor
宗之 川谷
Muneyuki Kawatani
宗之 川谷
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 JP2017192773A priority Critical patent/JP6693925B2/ja
Publication of JP2019068297A publication Critical patent/JP2019068297A/ja
Application granted granted Critical
Publication of JP6693925B2 publication Critical patent/JP6693925B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】L3(レイヤ3)終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減する。【解決手段】第2の通信装置は、L2スイッチ40経由でいずれかの第1の通信装置から、上りパケットを受信する。このとき第2の通信装置は、受信した上りパケットに設定された送信元MACアドレスを、セッションテーブルにおける当該上りパケットのセッションのセッション情報に記録しておく。その後、第2の通信装置が、当該上りパケットに対する下りパケットを送信する場合、セッションテーブルにおける当該上りパケットのセッションのセッション情報に示される送信元MACアドレスを、当該下りパケットの宛先MACアドレスに設定し、L2スイッチ40経由で送信する。これにより、下りパケットは上りパケットが経由したのと同じ第1の通信装置に到達する。【選択図】図1A

Description

本発明は、通信装置、通信制御システム、および、通信制御方法に関する。
例えば、ロードバランサやファイアウォール等のL3(レイヤ3)終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置を追加する(スケールアウトする)方法がある。ここで、例えば、ロードバランサのスケールアウトを行いう場合、各ロードバランサ間での負荷分散を行うため、DNSラウンドロビンを用いる方法がある。DNSラウンドロビンを用いる場合、同じドメインに対し、各ロードバランサに異なるVIPを設定する。また、ロードバランサごとに、当該ロードバランサが負荷分散処理を行うサーバ群を割り当てておく。
そして、例えば、DNSラウンドロビンによりパケットの転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは自身のロードバランサに割り当てられたいずれかのサーバへパケットを転送する。
ここで、ロードバランサは、例えば、VIPを物理サーバのIPアドレスにNATしたり、DH(ディフィー・ヘルマン)鍵交換方式のSSL/TSLを終端させたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット(上りパケット)も当該サーバからの応答パケット(下りパケット)も同じロードバランサを経由する必要がある。ここで、DNSラウンドロビンを用いる方法の場合、上記のようにロードバランサごとにサーバ群を割り当てることで、上りパケットと下りパケットとで同じロードバランサを経由させることができる。
Maglev、[平成29年9月7日検索]、インターネット<URL:https://research.google.com/pubs/pub44824.html>
しかし、ロードバランサのスケールアウトに上記のDNSラウンドロビンを用いる場合、追加されたロードバランサに対するサーバ群の新規割り当てや各ロードバランサに割り当てるサーバ群の収容替えを要するため、設定作業に手間やコストがかかるという問題がある。そこで、本発明は、前記した問題を解決し、例えば、ロードバランサ等、L3終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することを課題とする。
前記した課題を解決するため、本発明は、L2(レイヤ2)スイッチにより接続され、L3(レイヤ3)終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置であって、前記L2スイッチ経由でいずれかの第1の通信装置から、送信元MACアドレスにパケットの送信元の第1の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、前記受信したパケットに設定された送信元MACアドレスを、セッションテーブルにおける前記受信したパケットのセッションのセッション情報に記録する記録部と、前記受信したパケットに対する返信パケットを送信する場合、前記セッションテーブルにおける前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するパケット送信部と、を備えることを特徴とする。
本発明によれば、L3終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することができる。
図1Aは、通信制御システム(システム)の基本的な構成例を示す図である。 図1Bは、システムの概要を説明するための図である。 図2は、システムの概要を説明するための図である。 図3は、サーバの構成例を示す図である。 図4は、サーバの処理手順の例を示す図である。 図5は、システムの処理手順の具体例を説明する図である。 図6は、ロードバランサのスケールアップおよびDNSラウンドロビンによるロードバランサのスケールアウトの一例を示す図である。 図7は、通信制御プログラムを実行するコンピュータを示す図である。
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、本実施形態に限定されない。
まず、本実施形態のシステムの基本的な構成例を、図1Aを用いて説明する。システムは、例えば、スケールアウトの対象となる通信装置(第1の通信装置)と、この第1の通信装置経由でパケットの送受信を行う通信装置(第2の通信装置)とを備える。この第1の通信装置は、例えば、L3(レイヤ3)スイッチ20経由でクライアント10と接続される。また、第1の通信装置は、例えば、L2(レイヤ2)スイッチ40経由で第2の通信装置と接続される。
なお、以下では、スケールアウトの対象となる通信装置(第1の通信装置)は、ロードバランサ30であり、第1の通信装置経由でパケットの送受信を行う通信装置(第2の通信装置)はサーバ50である場合について説明する。また、この第1の通信装置および第2の通信装置は、L3終端を行う通信装置であれば、ロードバランサ30やサーバ50に限定されない。例えば、第1の通信装置および第2の通信装置は、Carrier Grade NATやVPN装置、Web Application Firewall等であってもよい。
[概要]
まず、図1Bおよび図2を用いて、本実施形態のシステムの概要を説明する。システムは、例えば、クライアント10と、L3スイッチ20と、1以上のロードバランサ30と、L2スイッチ40と、1以上のサーバ50(サーバ群)とを備える。ここでは、L3スイッチ20とL2スイッチ40との間には3台のロードバランサ30(ロードバランサ30A,30B,30C)が設置される場合を例に説明する。なお、以下の説明において、クライアント10からサーバ50へのパケットを上りパケットと称し、サーバ50からクライアント10へのパケットを下りパケットと称する。
クライアント10は、サーバ50との通信を行う装置である。L3スイッチ20は、受信パケットのルーティングを行う。例えば、L3スイッチ20は、クライアント10から受信したパケットを、自身に接続されるいずれかのロードバランサ30へ転送する。このL3スイッチ20は、例えば、per-flow ECMPにより、クライアント10からの受信パケットの転送先のロードバランサ30を決定する(図2参照)。
ロードバランサ30は、サーバ群へのパケットの負荷分散処理を行う。このロードバランサには、例えば、それぞれ同じVIPが設定され、L3モードで動作する。また、ロードバランサ30は、例えば、自身のロードバランサ30に設定されたVIPをサーバ50のIPアドレスにNATしたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。なお、各ロードバランサ30には同じVIPが設定される。また、各ロードバランサ30は、L2スイッチ40経由でサーバ群に接続される。
各ロードバランサ30は、上りパケットをL2スイッチ40経由でサーバ50へ転送する際、当該上りパケットの送信元MAC(Media Access Control)アドレスに当該ロードバランサ30のMACアドレスを設定し、転送する。また、ロードバランサ30が、L2スイッチ40経由でサーバ50からの下りパケットを受け取った際には、当該下りパケットをL3スイッチ20経由で宛先のクライアント10等へ送信する。
L2スイッチ40は、各ロードバランサ30とサーバ群とを接続する。このL2スイッチ40は、各ロードバランサ30からの上りパケットをサーバ50へ転送し、サーバ50からの下りパケットを宛先MACアドレスに対応するロードバランサ30へ転送する。
サーバ50は、例えば、クライアント10からの受信パケットに基づき種々の処理を行った後、当該受信パケットの返信パケットを、当該クライアント10へ送信する。ここで、サーバ50は、返信パケットを送信する際、当該受信パケットが経由したロードバランサ30を経由させる。具体的には、サーバ50は、受信パケットがどのロードバランサ30経由であるかを判定するため、受信パケットのL2ヘッダの送信元MACアドレスを用いる。例えば、サーバ50は、受信パケットのL2ヘッダに設定された送信元MACアドレスを、セッションテーブル531の当該受信パケットのセッションに関するセッション情報に記録しておく(図5参照)。
一例を挙げると、サーバ50における受信パケット(到着パケット)のIPヘッダのSrc IPアドレス(送信元IPアドレス)にはクライアント10のIPアドレスが設定され、Dst IPアドレス(宛先IPアドレス)にはサーバ50の物理IPアドレスが設定される。また、サーバ50における受信パケット(到着パケット)のL2ヘッダのSrc MACアドレス(送信元MACアドレス)には、ロードバランサ30(例えば、ロードバランサ30A)のMACアドレスが設定され、Dst MACアドレス(宛先MACアドレス)にはサーバ50のMACアドレスが設定される。
よって、サーバ50は、受信パケットのL2ヘッダに設定された送信元MACアドレスにより、当該受信パケットが経由したロードバランサ30AのMACアドレスが分かるので、当該MACアドレスを当該受信パケットのセッションのセッション情報に記録しておく。そして、サーバ50は、受信パケットに対する返信パケットを送信する際、当該受信パケットのセッションのセッション情報に示される送信元MACアドレスを、返信パケットの宛先MACアドレスに設定し、L2スイッチ40経由で送信する。
つまり、図2に示すように、サーバ50は、受信パケット(上りパケット)のL2ヘッダの送信元MACアドレスを用いて、上りパケットが経由したロードバランサ30を判定し、当該上りパケットに対する下りパケット(返信パケット)を上りパケットと同じロードバランサ30(例えば、ロードバランサ30A)へ送信する。
これにより、システムにおいてロードバランサ30のスケールアウトが行われた場合でも、クライアント10からサーバ50への上りパケットと、当該サーバ50から当該クライアント10への下りパケットとで同じロードバランサ30を経由させることができる。例えば、システムにおいて、ロードバランサ30のスケールアウトによりロードバランサ30Aが追加された場合でも、ロードバランサ30Aを経由した上りパケットに対する下りパケットを、ロードバランサ30Aを経由させることができる。
また、スケールアウトで追加されたロードバランサ30を含む各ロードバランサ30に同じVIPを設定しておき、L3スイッチ20は、例えば、図2に示すように、per-flow ECMPにより、各ロードバランサ30の中から、上りパケットの転送先のロードバランサ30を決定する。これにより、同じTCP(Transmission Control Protocol)コネクションの上りパケットを同じロードバランサ30に転送しつつ、上りパケットの負荷をできるだけ各ロードバランサ30に分散させることができる。
これにより、システムは、ロードバランサ30のスケールアウトを行う際に、上りパケットの負荷分散と、下りパケットと上りパケットとで同じロードバランサ30を経由させることを実現することができる。
ここで、システムのロードバランサ30のスケールアウトを行う際、DNSサーバの設定変更や、追加されたロードバランサ30に対するサーバ群の新規割り当てや各ロードバランサ30に割り当てるサーバ群の収容替えは不要である。したがって、ロードバランサ30のスケールアウトのための設定作業の手間やコストを低減することができる。
[構成]
次に、図3を用いて、サーバ50の構成例を説明する。サーバ50は、通信部51と、入出力部52と、記憶部53と、制御部54とを備える。
通信部51は、外部装置との通信インタフェースを司る。この通信部51は、例えば、L2スイッチ40経由で上りパケットを受信したり、制御部54から出力された下りパケットをL2スイッチ40経由で送信したりする。入出力部52は、当該サーバ50への各種情報の入出力を司る。入出力部52は、例えば、当該サーバ50への設定情報等の入力を受け付ける。
記憶部53は、制御部54が動作する際に参照する各種情報を記憶する。記憶部53は、例えば、セッションテーブル531を記憶する領域を備える。このセッションテーブル531は、当該サーバ50の受信パケットのセッションのセッション情報を示したテーブルである。
セッション情報は、例えば、図5のセッションテーブル531に示すように、受信パケットのセッションの識別情報(例えば、「#1」)と、当該セッションの受信パケットの送信元IPアドレス(例えば、「IP‐C‐1」)、送信元ポート番号(例えば、「xxxx」)、プロトコル番号(例えば、「6(tcp)」)、送信元MACアドレス(例えば、「MC‐LB‐1」)等の情報を含む。なお、図5に示すセッション情報において、送信元MACアドレスは、返却用MACアドレスとして記録されている。このセッション情報は、制御部54により書き込まれる。また、このセッション情報は、制御部54が当該上りパケットに対する下りパケットを送信する際に参照される。
制御部54は、サーバ50全体の制御を司る。この制御部54は、例えば、通信制御部541と、アプリケーション部545とを備える。
通信制御部541は、パケットの送受信および受信パケットのセッション情報の記録を行う。この通信制御部541は、パケット受信部542と、記録部543と、パケット送信部544とを備える。
パケット受信部542は、通信部51経由で、当該サーバ50宛のパケット(上りパケット)を受信する。なお、この上りパケットの送信元MACアドレスには、当該上りパケットを転送したロードバランサ30のMACアドレスが設定される。
記録部543は、パケット受信部542が受信した上りパケットに設定された送信元MACアドレス(つまり、上りパケットが経由したロードバランサ30のMACアドレス)を、当該上りパケットのセッションのセッション情報に記録する。例えば、記録部543は、受信した上りパケットのIPヘッダおよびL2ヘッダから、当該受信パケットの送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレスを読み出し、セッションテーブル531に、当該受信パケットのセッション情報として記録する。
パケット送信部544は、上りパケットに対する下りパケット(返信パケット)を通信部51経由で送信する。例えば、パケット送信部544は、下りパケットの宛先MACアドレスに、セッションテーブル531に示される下りパケットと同じセッションのセッション情報(図5参照)に記載される送信元MACアドレス(返却用MACアドレス)を設定する。そして、パケット送信部544は、上記の宛先MACアドレスを設定した下りパケットを、通信部51経由で送信する。なお、上記の下りパケットに対する宛先MACアドレスの設定は、例えば、netfilterと呼ばれるLinux(登録商標) Kernelが持つAPIや、libnetfilter_queueと呼ばれる類似のライブラリ等を用いる。
アプリケーション部545は、受信パケットに対し種々の処理を行う。例えば、パケット受信部542で受信した上りパケットに対し種々の処理を行い、その処理結果をパケット送信部544へ出力する。
[処理手順]
次に、図4を用いて、サーバ50の処理手順の例を説明する。サーバ50のパケット受信部542がクライアント10からのパケットを受信すると(S1)、記録部543は、受信パケットのIPヘッダおよびL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレスを読みとり、セッションテーブル531のセッション情報に記録する(S2)。
S2の後、パケット送信部544が、S1で受信したパケットの返信パケットを送信する際には、セッションテーブル531から、S1で受信したパケットと同じセッションのセッション情報を読み出し、当該セッション情報における送信元MACアドレス(返却用MACアドレス)を宛先MACアドレスとしたパケットを、クライアント10へ送信する(S3)。
なお、S3で送信されたパケットは、例えば、図2に示すL2スイッチ40を経由で、宛先MACアドレスに設定されたロードバランサ30(例えば、ロードバランサ30A)に到達し、その後、L3スイッチ20経由でクライアント10に到達する。つまり、サーバ50は、システムの上りパケットに対する下りパケットを、上りパケットが経由したロードバランサ30に戻すことができる。
また、S3において、パケット送信部544が、セッションテーブル531から,S1で受信したパケットと同じセッションのセッション情報を特定するには、セッション情報における送信元IPアドレス、送信元ポート番号、プロトコル番号を用いればよい。つまり、送信元IPアドレス、送信元ポート番号、プロトコル番号があれば、1つのクライアント10の1つのTCPセッションを特定することができる。したがって、パケット送信部544は、S1で受信したパケットと同じセッションのセッション情報を特定するには、セッションテーブル531から、アプリケーション部545等から出力された返信パケットの宛先IPアドレス、宛先ポート番号およびプロトコル番号の組み合わせと同じ送信元IPアドレス、送信元ポート番号およびプロトコル番号のセッション情報を特定すればよい。
[処理手順の具体例]
次に、図5を用いて、システムの処理手順の具体例を説明する。システムには、N台のクライアント10が設置され、クライアント10それぞれのIPアドレスはIP‐C‐1〜N、MACアドレスはMC‐C‐1〜Nであるものとする。
また、L3スイッチ20のIPアドレスはIP−L3、MACアドレスはMC‐L3であるものとする。さらに、L3スイッチ20とL2スイッチ40との間には、ロードバランサ30A,30B,30Cが設置される。
ロードバランサ30AのIPアドレスはIP−LB‐1、MACアドレスはMC‐LB‐1であり、ロードバランサ30BのIPアドレスはIP−LB‐2、MACアドレスはMC‐LB‐2であり、ロードバランサ30CのIPアドレスはIP−LB‐3、MACアドレスはMC‐LB‐3であるものとする。なお、ロードバランサ30A,30B,30CそれぞれのVIPはVPであるものとする。
また、サーバ50は3台設置され、サーバ50それぞれのIPアドレスはIP−SV‐1〜3、MACアドレスはMC‐SV‐1〜3であるものとする。それぞれのサーバ50は、L2スイッチ40経由でロードバランサ30A,30B,30Cに接続される。
なお、図5における「TO MAC」は、宛先MACアドレスを示し、「TO IP」は宛先IPアドレスを示し、「TO Port」は宛先ポート番号を示す。また、図5における「FM MAC」は、送信元MACアドレスを示し、「FM IP」は送信元IPアドレスを示し、「FM Port」は送信元ポート番号を示す。
このようなシステムにおいて、L3スイッチ20がIPアドレス「IP−C‐1」のクライアント10から、VIP「VP」宛のパケット(上りパケット)を受信した場合を考える。この場合、まず、L3スイッチ20は、per-flow ECMPにより、当該パケットの転送先のロードバランサ30を決定する。これにより、上りパケットの処理負荷を各ロードバランサ30に分散させることができる。
ここで、例えば、L3スイッチ20が、当該パケットの転送先をロードバランサ30Aに決定した場合、L3スイッチ20は、符号501に示すヘッダ情報を当該パケットに設定してロードバランサ30Aに転送する。その後、ロードバランサ30Aは、転送されたパケットに符号502に示すヘッダ情報を設定してL2スイッチ40へ送信する。つまり、ロードバランサ30Aは、L3スイッチ20から転送されたパケットの宛先MACアドレスを「MC‐SV‐1」に変換し、宛先IPアドレスを「IP‐SV‐1」に変換し、送信元MACアドレスを「MC‐LB‐1」に変換して、L2スイッチ40へ送信する。
そして、サーバ50がL2スイッチ40経由で当該パケット(上りパケット)を受信すると、当該上りパケットのIPヘッダおよびL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、返却用MACアドレス(上りパケットの経由したロードバランサ30のMACアドレス)を学習する。つまり、サーバ50は、受信パケットのIPヘッダおよびL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレス(返却用MACアドレス、受信パケットの経由したロードバランサ30のMACアドレス)を読み出し、これらの情報を受信パケットのセッションのセッション情報として、セッションテーブル531に記録する。
その後、サーバ50がアプリケーション部545からの要求に応じて、上記の上りパケットに対する下りパケットを送信する際、サーバ50はセッションテーブル531から下りパケットと同じセッションのセッション情報を探す。例えば、サーバ50が、宛先IPアドレス「IP‐C‐1」、送信先ポート番号「xxxx」、プロトコル番号「6(tcp)」の下りパケットを送信する場合、セッションテーブル531から、送信元IPアドレス「IP‐C‐1」、送信元ポート番号「xxxx」、プロトコル番号「6(tcp)」のセッション情報を探す。
そして、サーバ50は、符号503に示すヘッダ情報を下りパケットに設定してL2スイッチ40経由で送信する。つまり、サーバ50は下りパケットの宛先MACアドレスに、セッション情報に記載の返却用MACアドレス(例えば、上りパケットの経由したロードバランサ30AのMACアドレス「MC‐LB‐1」)を設定してL2スイッチ40経由で送信する。
これにより、サーバ50から送信された下りパケットは、上りパケットの経由したロードバランサ30(例えば、ロードバランサ30A)に到達し、当該ロードバランサ30から、当該下りパケットの宛先のクライアント10(例えば、IPアドレス「IP‐C‐1」のクライアント10)に到達する。
このようにすることで、システムは、上りパケットの負荷を各ロードバランサ30に分散させることができ、また、下りパケットについて、上りパケットと同じロードバランサ30を経由させることができる。これにより、システムは、ロードバランサ30のスケールアウトを実現することができる。また、ロードバランサ30のスケールアウトを行う際、サーバ50にゲートウェイの設定変更等の設定作業を行う必要がないので、ロードバランサ30のスケールアウトを行うための設定作業の手間やコストを低減することができる。
[効果]
次に、上記のシステムの効果を、既存技術であるロードバランサのスケールアップおよびDNSラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。
ロードバランサのスケールアップは、例えば、図6(a)に示すように、既存のロードバランサ30Dをより性能の高いロードバランサ30Eにリプレースする、あるいは、既存のロードバランサ30Dに対しモジュールを追加することにより行われる。
また、DNSラウンドロビンによるロードバランサのスケールアウトは、図6(b)に示すように、同一ドメインに対する解決先VIP(例えば、VIP3)を増やし、DNSラウンドロビンによる負荷分散を行う。例えば、ロードバランサ30F(VIP1)、ロードバランサ30G(VIP2)に対し、ロードバランサ30Hを追加した場合、このロードバランサ30HにVIP3を設定する。また、ロードバランサ30Hを追加した場合、ロードバランサ30F,30G,30H間で、各ロードバランサ30の配下のサーバ群のグルーピングを再度行う。
(1)設定作業および設定コストについて
上記のロードバランサ30Dのスケールアップを行う場合、サーバ群のゲートウェイの設定変更が必要であり、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加するロードバランサ30Hに割り当てるサーバ群の設定と、DNSサーバの設定変更が必要である。しかし、本実施形態のシステムの場合、上記の設定変更等は不要である。
(2)サーバ分割損について
上記のロードバランサ30Dのスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、30F,30G,30Hに対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、本実施形態のシステムの場合、上記のサーバ分割損は発生しない。
(3)切り戻しについて
上記のロードバランサ30Dのスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、切り戻しを行う際には、DNSサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、DNSサーバのキャッシュのTTL(Time To Live)があるため、作業結果の反映にも時間がかかる。一方、本実施形態のシステムの場合、切り戻しを行う際には、L3スイッチ20のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。
以上説明したとおり、本実施形態のシステムによれば、ロードバランサ30のスケールアウト時の設定作業および設定コストを低減することができる。また、ロードバランサ30の配下のサーバ群の分割損も発生せず、また切り戻しを行う際の設定作業および設定コストも低減することができる。
[その他の実施形態]
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント‐ファイアウォール‐ロードバランサ‐サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施形態で述べた技術を適用してもよい。つまり、図1Aに示したシステム構成図における、第1の通信装置をファイアウォール、第2の通信装置をロードバランサとしてもよい。
この場合、第2の通信装置であるロードバランサは、ファイアウォール経由で受信したパケット(受信パケット)のL2ヘッダに設定された送信元MACアドレスにより、当該受信パケットの送信元MACアドレス(つまり、当該受信パケットが経由したファイアウォールのMACアドレス)を得る。そして、ロードバランサは、当該受信パケットの送信元MACアドレスを当該受信パケットのセッションのセッション情報に記録しておく。そして、ロードバランサは、当該受信パケットに対する返信パケットをファイアウォール側へ送信する際、当該受信パケットのセッションのセッション情報に示される送信元MACアドレスを、返信パケットの宛先MACアドレスに設定し、L2スイッチ40経由で送信する。これにより、返信パケット(下りパケット)は、当該受信パケット(上りパケット)が経由したファイアウォールと同じファイアウォールに到達する。つまり、システムにおいてファイアウォールのスケールアウトが行われた場合でも、上りパケットと下りパケットとで同じファイアウォールを経由させることができる。
[プログラム]
また、上記の各実施形態で述べたサーバ50、ロードバランサの機能を実現するプログラムを所望の情報処理装置(コンピュータ)にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置をサーバ50、ロードバランサとして機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等がその範疇に含まれる。また、サーバ50、ロードバランサの機能を、クラウドサーバに実装してもよい。
図7を用いて、上記のプログラム(通信制御プログラム)を実行するコンピュータの一例を説明する。図7に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
ここで、図7に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記の実施形態で説明した各種データや情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、上記の通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU(Central Processing Unit)1020によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 クライアント
20 L3スイッチ
30(30A,30B,30C) ロードバランサ
40 L2スイッチ
50 サーバ
51 通信部
52 入出力部
53 記憶部
54 制御部
531 セッションテーブル
541 通信制御部
542 パケット受信部
543 記録部
544 パケット送信部
545 アプリケーション部

Claims (4)

  1. L2(レイヤ2)スイッチにより接続され、L3(レイヤ3)終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置であって、
    前記L2スイッチ経由でいずれかの第1の通信装置から、送信元MACアドレスにパケットの送信元の第1の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、
    前記受信したパケットに設定された送信元MACアドレスを、セッションテーブルにおける前記受信したパケットのセッションのセッション情報に記録する記録部と、
    前記受信したパケットに対する返信パケットを送信する場合、前記セッションテーブルにおける前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するパケット送信部と、
    を備えることを特徴とする通信装置。
  2. 1以上の第1の通信装置のうちいずれかの第1の通信装置へパケットの転送を行うL3(レイヤ3)スイッチと、L3終端を行う前記1以上の第1の通信装置と、L2(レイヤ2)スイッチにより接続されたいずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置とを備える通信制御システムであって、
    前記第1の通信装置それぞれは、
    受信したパケットを転送する際、送信元MACアドレスに、自身の第1の通信装置のMACアドレスを設定して転送する通信部を備え、
    前記第2の通信装置それぞれは、
    前記L2スイッチ経由で前記第1の通信装置からパケットを受信するパケット受信部と、
    前記受信したパケットに設定された送信元MACアドレスを、前記パケットのセッションのセッション情報に記録する記録部と、
    前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するパケット送信部と、
    を備えることを特徴とする通信制御システム。
  3. 前記第1の通信装置それぞれには、同じヴァーチャルIPアドレスが設定され、
    前記L3スイッチは、
    per-flow ECMPにより、受信パケットの転送先の前記第1の通信装置を決定する転送制御部を備えることを特徴とする請求項2に記載の通信制御システム。
  4. L2(レイヤ2)スイッチにより接続され、L3(レイヤ3)終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置が、
    前記L2スイッチ経由でいずれかの第1の通信装置から、送信元MACアドレスにパケットの送信元の第1の通信装置のMACアドレスが設定されたパケットを受信するステップと、
    前記受信したパケットに設定された送信元MACアドレスを、セッションテーブルにおける前記受信したパケットのセッションのセッション情報に記録するステップと、
    前記受信したパケットに対する返信パケットを送信する場合、前記セッションテーブルにおける前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するステップと、
    を含んだことを特徴とする通信制御方法。
JP2017192773A 2017-10-02 2017-10-02 サーバ、通信制御システム、および、通信制御方法 Active JP6693925B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017192773A JP6693925B2 (ja) 2017-10-02 2017-10-02 サーバ、通信制御システム、および、通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017192773A JP6693925B2 (ja) 2017-10-02 2017-10-02 サーバ、通信制御システム、および、通信制御方法

Publications (2)

Publication Number Publication Date
JP2019068297A true JP2019068297A (ja) 2019-04-25
JP6693925B2 JP6693925B2 (ja) 2020-05-13

Family

ID=66339920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017192773A Active JP6693925B2 (ja) 2017-10-02 2017-10-02 サーバ、通信制御システム、および、通信制御方法

Country Status (1)

Country Link
JP (1) JP6693925B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166362A1 (ja) * 2019-02-13 2020-08-20 日本電信電話株式会社 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法
JPWO2021024377A1 (ja) * 2019-08-06 2021-02-11
WO2022003882A1 (ja) * 2020-07-01 2022-01-06 日本電信電話株式会社 L2スイッチ、通信制御方法、および、通信制御プログラム
WO2022003883A1 (ja) * 2020-07-01 2022-01-06 日本電信電話株式会社 L2スイッチ、通信制御方法、および、通信制御プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003174473A (ja) * 2001-12-06 2003-06-20 Fujitsu Ltd サーバ負荷分散システム
JP2007312434A (ja) * 2001-07-10 2007-11-29 Fujitsu Ltd 移動機通信システムおよび通信方法
US20100036903A1 (en) * 2008-08-11 2010-02-11 Microsoft Corporation Distributed load balancer
JP2014048900A (ja) * 2012-08-31 2014-03-17 Hitachi Ltd 計算機システム及びパケット転送方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007312434A (ja) * 2001-07-10 2007-11-29 Fujitsu Ltd 移動機通信システムおよび通信方法
JP2003174473A (ja) * 2001-12-06 2003-06-20 Fujitsu Ltd サーバ負荷分散システム
US20100036903A1 (en) * 2008-08-11 2010-02-11 Microsoft Corporation Distributed load balancer
JP2014048900A (ja) * 2012-08-31 2014-03-17 Hitachi Ltd 計算機システム及びパケット転送方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166362A1 (ja) * 2019-02-13 2020-08-20 日本電信電話株式会社 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法
JPWO2021024377A1 (ja) * 2019-08-06 2021-02-11
WO2021024377A1 (ja) * 2019-08-06 2021-02-11 日本電信電話株式会社 L2スイッチ、通信制御方法、および、通信制御プログラム
US11936490B2 (en) 2019-08-06 2024-03-19 Nippon Telegraph And Telephone Corporation L2 switch, communication method, and communication program
WO2022003882A1 (ja) * 2020-07-01 2022-01-06 日本電信電話株式会社 L2スイッチ、通信制御方法、および、通信制御プログラム
WO2022003883A1 (ja) * 2020-07-01 2022-01-06 日本電信電話株式会社 L2スイッチ、通信制御方法、および、通信制御プログラム
JP7464122B2 (ja) 2020-07-01 2024-04-09 日本電信電話株式会社 L2スイッチ、通信制御方法、および、通信制御プログラム

Also Published As

Publication number Publication date
JP6693925B2 (ja) 2020-05-13

Similar Documents

Publication Publication Date Title
JP6693925B2 (ja) サーバ、通信制御システム、および、通信制御方法
US9544364B2 (en) Forwarding policies on a virtual service network
EP3225014B1 (en) Source ip address transparency systems and methods
CN101964799B (zh) 点到网隧道方式下地址冲突的解决方法
EP2381647A1 (en) Session migration over content-centric networks
CN104618243B (zh) 路由方法、装置及系统、网关调度方法及装置
WO2013097484A1 (zh) 虚拟机集群的负载均衡方法、服务器及系统
US9118721B1 (en) Socket-based internet protocol for wireless networks
CN1812398B (zh) 一种基于dhcp中继实现dhcp服务器负载分担的方法
WO2021008591A1 (zh) 数据传输方法、装置及系统
KR20110036573A (ko) 서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법
Xie et al. Supporting seamless virtual machine migration via named data networking in cloud data center
JP2010541380A (ja) 移動体通信網の制御プレーンに関するロード・バランシングを実施する方法および装置
CN104811383B (zh) 一种报文转发方法和设备
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
Kogias et al. Bypassing the load balancer without regrets
US20200112510A1 (en) Redirecting data packets between overlay network and underlay network
CN101808107A (zh) 一种存储设备与用户二层互通的方法、装置及系统
CN1863202B (zh) 提高负载均衡设备和服务器处理性能的方法
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
WO2018192241A1 (zh) 实现网间互通的服务器部署结构及方法
WO2023186109A1 (zh) 节点访问方法以及数据传输系统
US20220269411A1 (en) Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks
US20180367452A1 (en) Information centric networking over multi-access network interfaces
CN114157632A (zh) 网络隔离方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191220

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: 20200414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200416

R150 Certificate of patent or registration of utility model

Ref document number: 6693925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150