JP6693925B2 - Server, communication control system, and communication control method - Google Patents
Server, communication control system, and communication control method Download PDFInfo
- Publication number
- JP6693925B2 JP6693925B2 JP2017192773A JP2017192773A JP6693925B2 JP 6693925 B2 JP6693925 B2 JP 6693925B2 JP 2017192773 A JP2017192773 A JP 2017192773A JP 2017192773 A JP2017192773 A JP 2017192773A JP 6693925 B2 JP6693925 B2 JP 6693925B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- mac address
- session
- server
- switch
- 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
Landscapes
- Small-Scale Networks (AREA)
Description
本発明は、通信装置、通信制御システム、および、通信制御方法に関する。 The present invention relates to a communication device, a communication control system, and a communication control method.
例えば、ロードバランサやファイアウォール等のL3(レイヤ3)終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置を追加する(スケールアウトする)方法がある。ここで、例えば、ロードバランサのスケールアウトを行いう場合、各ロードバランサ間での負荷分散を行うため、DNSラウンドロビンを用いる方法がある。DNSラウンドロビンを用いる場合、同じドメインに対し、各ロードバランサに異なるVIPを設定する。また、ロードバランサごとに、当該ロードバランサが負荷分散処理を行うサーバ群を割り当てておく。 For example, there is a method of adding (scaling out) a communication device that terminates L3 (layer 3) such as a load balancer or a firewall as a countermeasure when the performance limit is exceeded. Here, for example, when performing scale-out of the load balancer, there is a method of using DNS round robin in order to perform load distribution among the load balancers. When using DNS round robin, set different VIPs for each load balancer for the same domain. In addition, a server group in which the load balancer performs load distribution processing is assigned to each load balancer.
そして、例えば、DNSラウンドロビンによりパケットの転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは自身のロードバランサに割り当てられたいずれかのサーバへパケットを転送する。 Then, for example, when the load balancer of the packet transfer destination is determined by the DNS round robin, the load balancer receiving the packet transfers the packet to any server assigned to its own load balancer.
ここで、ロードバランサは、例えば、VIPを物理サーバのIPアドレスにNATしたり、DH(ディフィー・ヘルマン)鍵交換方式のSSL/TSLを終端させたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット(上りパケット)も当該サーバからの応答パケット(下りパケット)も同じロードバランサを経由する必要がある。ここで、DNSラウンドロビンを用いる方法の場合、上記のようにロードバランサごとにサーバ群を割り当てることで、上りパケットと下りパケットとで同じロードバランサを経由させることができる。 Here, the load balancer NATs the VIP to the IP address of the physical server, terminates the SSL / TSL of the DH (Diffie-Hellman) key exchange method, or executes the L7 (layer 7) load balancing, for example. It is a stateful device. Therefore, both the packet to the server (upstream packet) and the response packet from the server (downstream packet) need to pass through the same load balancer. Here, in the case of the method using the DNS round robin, by assigning a server group for each load balancer as described above, it is possible to allow the same load balancer to pass through for upstream packets and downstream packets.
しかし、ロードバランサのスケールアウトに上記のDNSラウンドロビンを用いる場合、追加されたロードバランサに対するサーバ群の新規割り当てや各ロードバランサに割り当てるサーバ群の収容替えを要するため、設定作業に手間やコストがかかるという問題がある。そこで、本発明は、前記した問題を解決し、例えば、ロードバランサ等、L3終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することを課題とする。 However, when the above-mentioned DNS round robin is used for the scale-out of the load balancer, it is necessary to newly allocate the server group to the added load balancer or replace the accommodation of the server group to be allocated to each load balancer. There is a problem of this. Therefore, it is an object of the present invention to solve the above-mentioned problems and reduce the labor and cost of the setting work for scale-out of a communication device that performs L3 termination, such as a load balancer.
前記した課題を解決するため、本発明は、L2(レイヤ2)スイッチにより接続され、L3(レイヤ3)終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置であって、前記L2スイッチ経由でいずれかの第1の通信装置から、送信元MACアドレスにパケットの送信元の第1の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、前記受信したパケットに設定された送信元MACアドレスを、セッションテーブルにおける前記受信したパケットのセッションのセッション情報に記録する記録部と、前記受信したパケットに対する返信パケットを送信する場合、前記セッションテーブルにおける前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するパケット送信部と、を備えることを特徴とする。 In order to solve the above-mentioned problem, the present invention provides a second communication device which is connected by an L2 (layer 2) switch and which transmits / receives a packet via one of the first communication devices that terminates L3 (layer 3). A packet receiving unit that receives a packet in which the MAC address of the first communication device that is the transmission source of the packet is set in the transmission source MAC address from any one of the first communication devices via the L2 switch; A recording unit that records the source MAC address set in the received packet in the session information of the session of the received packet in the session table, and in the case of transmitting a reply packet to the received packet, in the session table, Set the source MAC address shown in the session information of the session of the received packet The set the destination MAC address of the reply packet, characterized in that it comprises the a packet transmission unit that transmits via the L2 switch.
本発明によれば、L3終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することができる。 ADVANTAGE OF THE INVENTION According to this invention, the effort and cost of the setting operation for the scale-out of the communication apparatus which performs L3 termination can be reduced.
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、本実施形態に限定されない。 Hereinafter, modes (embodiments) for carrying out the present invention will be described with reference to the drawings. The present invention is not limited to this embodiment.
まず、本実施形態のシステムの基本的な構成例を、図1Aを用いて説明する。システムは、例えば、スケールアウトの対象となる通信装置(第1の通信装置)と、この第1の通信装置経由でパケットの送受信を行う通信装置(第2の通信装置)とを備える。この第1の通信装置は、例えば、L3(レイヤ3)スイッチ20経由でクライアント10と接続される。また、第1の通信装置は、例えば、L2(レイヤ2)スイッチ40経由で第2の通信装置と接続される。
First, a basic configuration example of the system of this embodiment will be described with reference to FIG. 1A. The system includes, for example, a communication device (first communication device) that is a scale-out target and a communication device (second communication device) that transmits and receives packets via the first communication device. The first communication device is connected to the
なお、以下では、スケールアウトの対象となる通信装置(第1の通信装置)は、ロードバランサ30であり、第1の通信装置経由でパケットの送受信を行う通信装置(第2の通信装置)はサーバ50である場合について説明する。また、この第1の通信装置および第2の通信装置は、L3終端を行う通信装置であれば、ロードバランサ30やサーバ50に限定されない。例えば、第1の通信装置および第2の通信装置は、Carrier Grade NATやVPN装置、Web Application Firewall等であってもよい。
In the following, the communication device (first communication device) targeted for scale-out is the
[概要]
まず、図1Bおよび図2を用いて、本実施形態のシステムの概要を説明する。システムは、例えば、クライアント10と、L3スイッチ20と、1以上のロードバランサ30と、L2スイッチ40と、1以上のサーバ50(サーバ群)とを備える。ここでは、L3スイッチ20とL2スイッチ40との間には3台のロードバランサ30(ロードバランサ30A,30B,30C)が設置される場合を例に説明する。なお、以下の説明において、クライアント10からサーバ50へのパケットを上りパケットと称し、サーバ50からクライアント10へのパケットを下りパケットと称する。
[Overview]
First, an outline of the system according to the present embodiment will be described with reference to FIGS. 1B and 2. The system includes, for example, a
クライアント10は、サーバ50との通信を行う装置である。L3スイッチ20は、受信パケットのルーティングを行う。例えば、L3スイッチ20は、クライアント10から受信したパケットを、自身に接続されるいずれかのロードバランサ30へ転送する。このL3スイッチ20は、例えば、per-flow ECMPにより、クライアント10からの受信パケットの転送先のロードバランサ30を決定する(図2参照)。
The
ロードバランサ30は、サーバ群へのパケットの負荷分散処理を行う。このロードバランサには、例えば、それぞれ同じVIPが設定され、L3モードで動作する。また、ロードバランサ30は、例えば、自身のロードバランサ30に設定されたVIPをサーバ50のIPアドレスにNATしたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。なお、各ロードバランサ30には同じVIPが設定される。また、各ロードバランサ30は、L2スイッチ40経由でサーバ群に接続される。
The
各ロードバランサ30は、上りパケットをL2スイッチ40経由でサーバ50へ転送する際、当該上りパケットの送信元MAC(Media Access Control)アドレスに当該ロードバランサ30のMACアドレスを設定し、転送する。また、ロードバランサ30が、L2スイッチ40経由でサーバ50からの下りパケットを受け取った際には、当該下りパケットをL3スイッチ20経由で宛先のクライアント10等へ送信する。
When transferring the upstream packet to the
L2スイッチ40は、各ロードバランサ30とサーバ群とを接続する。このL2スイッチ40は、各ロードバランサ30からの上りパケットをサーバ50へ転送し、サーバ50からの下りパケットを宛先MACアドレスに対応するロードバランサ30へ転送する。
The
サーバ50は、例えば、クライアント10からの受信パケットに基づき種々の処理を行った後、当該受信パケットの返信パケットを、当該クライアント10へ送信する。ここで、サーバ50は、返信パケットを送信する際、当該受信パケットが経由したロードバランサ30を経由させる。具体的には、サーバ50は、受信パケットがどのロードバランサ30経由であるかを判定するため、受信パケットのL2ヘッダの送信元MACアドレスを用いる。例えば、サーバ50は、受信パケットのL2ヘッダに設定された送信元MACアドレスを、セッションテーブル531の当該受信パケットのセッションに関するセッション情報に記録しておく(図5参照)。
The
一例を挙げると、サーバ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アドレスが設定される。
As an example, the IP address of the
よって、サーバ50は、受信パケットのL2ヘッダに設定された送信元MACアドレスにより、当該受信パケットが経由したロードバランサ30AのMACアドレスが分かるので、当該MACアドレスを当該受信パケットのセッションのセッション情報に記録しておく。そして、サーバ50は、受信パケットに対する返信パケットを送信する際、当該受信パケットのセッションのセッション情報に示される送信元MACアドレスを、返信パケットの宛先MACアドレスに設定し、L2スイッチ40経由で送信する。
Therefore, the
つまり、図2に示すように、サーバ50は、受信パケット(上りパケット)のL2ヘッダの送信元MACアドレスを用いて、上りパケットが経由したロードバランサ30を判定し、当該上りパケットに対する下りパケット(返信パケット)を上りパケットと同じロードバランサ30(例えば、ロードバランサ30A)へ送信する。
That is, as shown in FIG. 2, the
これにより、システムにおいてロードバランサ30のスケールアウトが行われた場合でも、クライアント10からサーバ50への上りパケットと、当該サーバ50から当該クライアント10への下りパケットとで同じロードバランサ30を経由させることができる。例えば、システムにおいて、ロードバランサ30のスケールアウトによりロードバランサ30Aが追加された場合でも、ロードバランサ30Aを経由した上りパケットに対する下りパケットを、ロードバランサ30Aを経由させることができる。
As a result, even when the
また、スケールアウトで追加されたロードバランサ30を含む各ロードバランサ30に同じVIPを設定しておき、L3スイッチ20は、例えば、図2に示すように、per-flow ECMPにより、各ロードバランサ30の中から、上りパケットの転送先のロードバランサ30を決定する。これにより、同じTCP(Transmission Control Protocol)コネクションの上りパケットを同じロードバランサ30に転送しつつ、上りパケットの負荷をできるだけ各ロードバランサ30に分散させることができる。
Further, the same VIP is set in each
これにより、システムは、ロードバランサ30のスケールアウトを行う際に、上りパケットの負荷分散と、下りパケットと上りパケットとで同じロードバランサ30を経由させることを実現することができる。
As a result, the system can realize load distribution of upstream packets and allow downstream and upstream packets to pass through the
ここで、システムのロードバランサ30のスケールアウトを行う際、DNSサーバの設定変更や、追加されたロードバランサ30に対するサーバ群の新規割り当てや各ロードバランサ30に割り当てるサーバ群の収容替えは不要である。したがって、ロードバランサ30のスケールアウトのための設定作業の手間やコストを低減することができる。
Here, when the
[構成]
次に、図3を用いて、サーバ50の構成例を説明する。サーバ50は、通信部51と、入出力部52と、記憶部53と、制御部54とを備える。
[Constitution]
Next, a configuration example of the
通信部51は、外部装置との通信インタフェースを司る。この通信部51は、例えば、L2スイッチ40経由で上りパケットを受信したり、制御部54から出力された下りパケットをL2スイッチ40経由で送信したりする。入出力部52は、当該サーバ50への各種情報の入出力を司る。入出力部52は、例えば、当該サーバ50への設定情報等の入力を受け付ける。
The communication unit 51 controls a communication interface with an external device. The communication unit 51 receives, for example, an upstream packet via the
記憶部53は、制御部54が動作する際に参照する各種情報を記憶する。記憶部53は、例えば、セッションテーブル531を記憶する領域を備える。このセッションテーブル531は、当該サーバ50の受信パケットのセッションのセッション情報を示したテーブルである。
The storage unit 53 stores various information referred to when the control unit 54 operates. The storage unit 53 includes, for example, an area for storing the session table 531. The session table 531 is a table showing session information of the session of the packet received by the
セッション情報は、例えば、図5のセッションテーブル531に示すように、受信パケットのセッションの識別情報(例えば、「#1」)と、当該セッションの受信パケットの送信元IPアドレス(例えば、「IP‐C‐1」)、送信元ポート番号(例えば、「xxxx」)、プロトコル番号(例えば、「6(tcp)」)、送信元MACアドレス(例えば、「MC‐LB‐1」)等の情報を含む。なお、図5に示すセッション情報において、送信元MACアドレスは、返却用MACアドレスとして記録されている。このセッション情報は、制御部54により書き込まれる。また、このセッション情報は、制御部54が当該上りパケットに対する下りパケットを送信する際に参照される。 The session information is, for example, as shown in the session table 531 of FIG. 5, session identification information (for example, “# 1”) of the received packet and the transmission source IP address (for example, “IP- C-1 "), source port number (eg," xxxx "), protocol number (eg," 6 (tcp) "), source MAC address (eg," MC-LB-1 "), etc. Including. In the session information shown in FIG. 5, the source MAC address is recorded as the return MAC address. This session information is written by the control unit 54. Further, this session information is referred to when the control unit 54 transmits a downlink packet for the uplink packet.
制御部54は、サーバ50全体の制御を司る。この制御部54は、例えば、通信制御部541と、アプリケーション部545とを備える。
The control unit 54 controls the
通信制御部541は、パケットの送受信および受信パケットのセッション情報の記録を行う。この通信制御部541は、パケット受信部542と、記録部543と、パケット送信部544とを備える。
The
パケット受信部542は、通信部51経由で、当該サーバ50宛のパケット(上りパケット)を受信する。なお、この上りパケットの送信元MACアドレスには、当該上りパケットを転送したロードバランサ30のMACアドレスが設定される。
The packet receiving unit 542 receives a packet (uplink packet) addressed to the
記録部543は、パケット受信部542が受信した上りパケットに設定された送信元MACアドレス(つまり、上りパケットが経由したロードバランサ30のMACアドレス)を、当該上りパケットのセッションのセッション情報に記録する。例えば、記録部543は、受信した上りパケットのIPヘッダおよびL2ヘッダから、当該受信パケットの送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレスを読み出し、セッションテーブル531に、当該受信パケットのセッション情報として記録する。
The
パケット送信部544は、上りパケットに対する下りパケット(返信パケット)を通信部51経由で送信する。例えば、パケット送信部544は、下りパケットの宛先MACアドレスに、セッションテーブル531に示される下りパケットと同じセッションのセッション情報(図5参照)に記載される送信元MACアドレス(返却用MACアドレス)を設定する。そして、パケット送信部544は、上記の宛先MACアドレスを設定した下りパケットを、通信部51経由で送信する。なお、上記の下りパケットに対する宛先MACアドレスの設定は、例えば、netfilterと呼ばれるLinux(登録商標) Kernelが持つAPIや、libnetfilter_queueと呼ばれる類似のライブラリ等を用いる。
The
アプリケーション部545は、受信パケットに対し種々の処理を行う。例えば、パケット受信部542で受信した上りパケットに対し種々の処理を行い、その処理結果をパケット送信部544へ出力する。
The
[処理手順]
次に、図4を用いて、サーバ50の処理手順の例を説明する。サーバ50のパケット受信部542がクライアント10からのパケットを受信すると(S1)、記録部543は、受信パケットのIPヘッダおよびL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレスを読みとり、セッションテーブル531のセッション情報に記録する(S2)。
[Processing procedure]
Next, an example of the processing procedure of the
S2の後、パケット送信部544が、S1で受信したパケットの返信パケットを送信する際には、セッションテーブル531から、S1で受信したパケットと同じセッションのセッション情報を読み出し、当該セッション情報における送信元MACアドレス(返却用MACアドレス)を宛先MACアドレスとしたパケットを、クライアント10へ送信する(S3)。
After S2, when the
なお、S3で送信されたパケットは、例えば、図2に示すL2スイッチ40を経由で、宛先MACアドレスに設定されたロードバランサ30(例えば、ロードバランサ30A)に到達し、その後、L3スイッチ20経由でクライアント10に到達する。つまり、サーバ50は、システムの上りパケットに対する下りパケットを、上りパケットが経由したロードバランサ30に戻すことができる。
The packet transmitted in S3 reaches the load balancer 30 (for example, the
また、S3において、パケット送信部544が、セッションテーブル531から,S1で受信したパケットと同じセッションのセッション情報を特定するには、セッション情報における送信元IPアドレス、送信元ポート番号、プロトコル番号を用いればよい。つまり、送信元IPアドレス、送信元ポート番号、プロトコル番号があれば、1つのクライアント10の1つのTCPセッションを特定することができる。したがって、パケット送信部544は、S1で受信したパケットと同じセッションのセッション情報を特定するには、セッションテーブル531から、アプリケーション部545等から出力された返信パケットの宛先IPアドレス、宛先ポート番号およびプロトコル番号の組み合わせと同じ送信元IPアドレス、送信元ポート番号およびプロトコル番号のセッション情報を特定すればよい。
Further, in S3, the
[処理手順の具体例]
次に、図5を用いて、システムの処理手順の具体例を説明する。システムには、N台のクライアント10が設置され、クライアント10それぞれのIPアドレスはIP‐C‐1〜N、MACアドレスはMC‐C‐1〜Nであるものとする。
[Specific example of processing procedure]
Next, a specific example of the processing procedure of the system will be described with reference to FIG. It is assumed that
また、L3スイッチ20のIPアドレスはIP−L3、MACアドレスはMC‐L3であるものとする。さらに、L3スイッチ20とL2スイッチ40との間には、ロードバランサ30A,30B,30Cが設置される。
The IP address of the
ロードバランサ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であるものとする。
The IP address of the
また、サーバ50は3台設置され、サーバ50それぞれのIPアドレスはIP−SV‐1〜3、MACアドレスはMC‐SV‐1〜3であるものとする。それぞれのサーバ50は、L2スイッチ40経由でロードバランサ30A,30B,30Cに接続される。
Further, it is assumed that three
なお、図5における「TO MAC」は、宛先MACアドレスを示し、「TO IP」は宛先IPアドレスを示し、「TO Port」は宛先ポート番号を示す。また、図5における「FM MAC」は、送信元MACアドレスを示し、「FM IP」は送信元IPアドレスを示し、「FM Port」は送信元ポート番号を示す。 In FIG. 5, “TO MAC” indicates a destination MAC address, “TO IP” indicates a destination IP address, and “TO Port” indicates a destination port number. Further, “FM MAC” in FIG. 5 indicates a source MAC address, “FM IP” indicates a source IP address, and “FM Port” indicates a source port number.
このようなシステムにおいて、L3スイッチ20がIPアドレス「IP−C‐1」のクライアント10から、VIP「VP」宛のパケット(上りパケット)を受信した場合を考える。この場合、まず、L3スイッチ20は、per-flow ECMPにより、当該パケットの転送先のロードバランサ30を決定する。これにより、上りパケットの処理負荷を各ロードバランサ30に分散させることができる。
In such a system, consider a case where the
ここで、例えば、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へ送信する。
Here, for example, when the
そして、サーバ50がL2スイッチ40経由で当該パケット(上りパケット)を受信すると、当該上りパケットのIPヘッダおよびL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、返却用MACアドレス(上りパケットの経由したロードバランサ30のMACアドレス)を学習する。つまり、サーバ50は、受信パケットのIPヘッダおよびL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレス(返却用MACアドレス、受信パケットの経由したロードバランサ30のMACアドレス)を読み出し、これらの情報を受信パケットのセッションのセッション情報として、セッションテーブル531に記録する。
Then, when the
その後、サーバ50がアプリケーション部545からの要求に応じて、上記の上りパケットに対する下りパケットを送信する際、サーバ50はセッションテーブル531から下りパケットと同じセッションのセッション情報を探す。例えば、サーバ50が、宛先IPアドレス「IP‐C‐1」、送信先ポート番号「xxxx」、プロトコル番号「6(tcp)」の下りパケットを送信する場合、セッションテーブル531から、送信元IPアドレス「IP‐C‐1」、送信元ポート番号「xxxx」、プロトコル番号「6(tcp)」のセッション情報を探す。
After that, when the
そして、サーバ50は、符号503に示すヘッダ情報を下りパケットに設定してL2スイッチ40経由で送信する。つまり、サーバ50は下りパケットの宛先MACアドレスに、セッション情報に記載の返却用MACアドレス(例えば、上りパケットの経由したロードバランサ30AのMACアドレス「MC‐LB‐1」)を設定してL2スイッチ40経由で送信する。
Then, the
これにより、サーバ50から送信された下りパケットは、上りパケットの経由したロードバランサ30(例えば、ロードバランサ30A)に到達し、当該ロードバランサ30から、当該下りパケットの宛先のクライアント10(例えば、IPアドレス「IP‐C‐1」のクライアント10)に到達する。
As a result, the downlink packet transmitted from the
このようにすることで、システムは、上りパケットの負荷を各ロードバランサ30に分散させることができ、また、下りパケットについて、上りパケットと同じロードバランサ30を経由させることができる。これにより、システムは、ロードバランサ30のスケールアウトを実現することができる。また、ロードバランサ30のスケールアウトを行う際、サーバ50にゲートウェイの設定変更等の設定作業を行う必要がないので、ロードバランサ30のスケールアウトを行うための設定作業の手間やコストを低減することができる。
By doing so, the system can distribute the load of the upstream packet to each
[効果]
次に、上記のシステムの効果を、既存技術であるロードバランサのスケールアップおよびDNSラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。
[effect]
Next, the effect of the above system will be described in comparison with the existing technology of scale-up of a load balancer and scale-out of a load balancer by DNS round robin.
ロードバランサのスケールアップは、例えば、図6(a)に示すように、既存のロードバランサ30Dをより性能の高いロードバランサ30Eにリプレースする、あるいは、既存のロードバランサ30Dに対しモジュールを追加することにより行われる。 For scale-up of the load balancer, for example, as shown in FIG. 6A, the existing load balancer 30D is replaced with a load balancer 30E having higher performance, or a module is added to the existing load balancer 30D. Done by.
また、DNSラウンドロビンによるロードバランサのスケールアウトは、図6(b)に示すように、同一ドメインに対する解決先VIP(例えば、VIP3)を増やし、DNSラウンドロビンによる負荷分散を行う。例えば、ロードバランサ30F(VIP1)、ロードバランサ30G(VIP2)に対し、ロードバランサ30Hを追加した場合、このロードバランサ30HにVIP3を設定する。また、ロードバランサ30Hを追加した場合、ロードバランサ30F,30G,30H間で、各ロードバランサ30の配下のサーバ群のグルーピングを再度行う。
Also, in the scale-out of the load balancer by the DNS round robin, as shown in FIG. 6B, the number of resolution destination VIPs (for example, VIP3) for the same domain is increased and the load is balanced by the DNS round robin. For example, when the load balancer 30H is added to the
(1)設定作業および設定コストについて
上記のロードバランサ30Dのスケールアップを行う場合、サーバ群のゲートウェイの設定変更が必要であり、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加するロードバランサ30Hに割り当てるサーバ群の設定と、DNSサーバの設定変更が必要である。しかし、本実施形態のシステムの場合、上記の設定変更等は不要である。
(1) About setting work and setting cost When scaling up the above load balancer 30D, it is necessary to change the settings of the gateway of the server group, and when performing scale out of the
(2)サーバ分割損について
上記のロードバランサ30Dのスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、30F,30G,30Hに対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、本実施形態のシステムの場合、上記のサーバ分割損は発生しない。
(2) Server division loss When the above load balancer 30D is scaled up, so-called server division loss does not occur because re-division of the server group does not occur, but DNS round robin scales out the
(3)切り戻しについて
上記のロードバランサ30Dのスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、切り戻しを行う際には、DNSサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、DNSサーバのキャッシュのTTL(Time To Live)があるため、作業結果の反映にも時間がかかる。一方、本実施形態のシステムの場合、切り戻しを行う際には、L3スイッチ20のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。
(3) Switching back When performing scale-up of the load balancer 30D described above, it takes a long time to perform switching back. Further, when scale-out of the
以上説明したとおり、本実施形態のシステムによれば、ロードバランサ30のスケールアウト時の設定作業および設定コストを低減することができる。また、ロードバランサ30の配下のサーバ群の分割損も発生せず、また切り戻しを行う際の設定作業および設定コストも低減することができる。
As described above, according to the system of the present embodiment, it is possible to reduce the setting work and the setting cost when the
[その他の実施形態]
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント‐ファイアウォール‐ロードバランサ‐サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施形態で述べた技術を適用してもよい。つまり、図1Aに示したシステム構成図における、第1の通信装置をファイアウォール、第2の通信装置をロードバランサとしてもよい。
[Other Embodiments]
A typical client-server network configuration is a client-firewall-load balancer-server configuration. In such a configuration, the firewall may be scaled out. Since the firewall is also a stateful device, the technique described in the above embodiment may be applied to the load balancer when the firewall is scaled out in the above configuration. That is, in the system configuration diagram shown in FIG. 1A, the first communication device may be a firewall and the second communication device may be a load balancer.
この場合、第2の通信装置であるロードバランサは、ファイアウォール経由で受信したパケット(受信パケット)のL2ヘッダに設定された送信元MACアドレスにより、当該受信パケットの送信元MACアドレス(つまり、当該受信パケットが経由したファイアウォールのMACアドレス)を得る。そして、ロードバランサは、当該受信パケットの送信元MACアドレスを当該受信パケットのセッションのセッション情報に記録しておく。そして、ロードバランサは、当該受信パケットに対する返信パケットをファイアウォール側へ送信する際、当該受信パケットのセッションのセッション情報に示される送信元MACアドレスを、返信パケットの宛先MACアドレスに設定し、L2スイッチ40経由で送信する。これにより、返信パケット(下りパケット)は、当該受信パケット(上りパケット)が経由したファイアウォールと同じファイアウォールに到達する。つまり、システムにおいてファイアウォールのスケールアウトが行われた場合でも、上りパケットと下りパケットとで同じファイアウォールを経由させることができる。
In this case, the load balancer that is the second communication device uses the source MAC address set in the L2 header of the packet (reception packet) received via the firewall to determine the source MAC address of the reception packet (that is, the reception Get the MAC address of the firewall through which the packet passed. Then, the load balancer records the source MAC address of the received packet in the session information of the session of the received packet. Then, when transmitting the reply packet for the received packet to the firewall side, the load balancer sets the source MAC address indicated in the session information of the session of the received packet as the destination MAC address of the reply packet, and the
[プログラム]
また、上記の各実施形態で述べたサーバ50、ロードバランサの機能を実現するプログラムを所望の情報処理装置(コンピュータ)にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置をサーバ50、ロードバランサとして機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等がその範疇に含まれる。また、サーバ50、ロードバランサの機能を、クラウドサーバに実装してもよい。
[program]
Further, it can be implemented by installing a program that realizes the functions of the
図7を用いて、上記のプログラム(通信制御プログラム)を実行するコンピュータの一例を説明する。図7に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
An example of a computer that executes the above program (communication control program) will be described with reference to FIG. 7. As shown in FIG. 7, the
メモリ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が接続される。
The
ここで、図7に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記の実施形態で説明した各種データや情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
Here, as shown in FIG. 7, the hard disk drive 1090 stores, for example, an
そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
Then, the
なお、上記の通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU(Central Processing Unit)1020によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
The
10 クライアント
20 L3スイッチ
30(30A,30B,30C) ロードバランサ
40 L2スイッチ
50 サーバ
51 通信部
52 入出力部
53 記憶部
54 制御部
531 セッションテーブル
541 通信制御部
542 パケット受信部
543 記録部
544 パケット送信部
545 アプリケーション部
10
Claims (4)
前記L2スイッチ経由でいずれかの前記通信装置から、送信元MACアドレスにパケットの送信元の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、
前記受信したパケットに設定された送信元MACアドレスを、セッションテーブルにおける前記受信したパケットのセッションのセッション情報に記録する記録部と、
前記受信したパケットに対する返信パケットを送信する場合、前記セッションテーブルにおける前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するパケット送信部と、
を備えることを特徴とするサーバ。 L2 are connected by (layer 2) switches, a server for transmitting and receiving packets via any of the communication device that performs L3 (Layer 3) termination,
From any of the communications device via the L2 switch, a packet receiving unit which receives packets MAC address is set in the transmission source communication apparatus of a packet the transmission source MAC address,
A recording unit for recording the source MAC address set in the received packet in the session information of the session of the received packet in the session table;
When transmitting a reply packet to the received packet, the transmission source MAC address indicated in the session information of the session of the received packet in the session table is set to the destination MAC address of the reply packet, and is transmitted via the L2 switch. A packet transmitting unit for transmitting,
A server comprising:
前記通信装置それぞれは、
受信したパケットを転送する際、送信元MACアドレスに、自身の通信装置のMACアドレスを設定して転送する通信部を備え、
前記サーバそれぞれは、
前記L2スイッチ経由で前記通信装置からパケットを受信するパケット受信部と、
前記受信したパケットに設定された送信元MACアドレスを、前記パケットのセッションのセッション情報に記録する記録部と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するパケット送信部と、
を備えることを特徴とする通信制御システム。 1 or more L3 (Layer 3) for transferring packets to the one of communication devices of the communication device and the switch, and the one or more communication devices for performing L3 termination, is connected by L2 (Layer 2) switch and a communication control system and a server for transmitting and receiving packets over one of the communications device,
Each before Symbol communications equipment,
When transferring the received packet, the source MAC address, a communication unit for transferring and setting the MAC address of its own communication device,
Each of the servers
A packet receiving unit that receives a packet from the previous SL communications device via the L2 switch,
A recording unit for recording the source MAC address set in the received packet in session information of the session of the packet;
When transmitting a reply packet to the received packet, the source MAC address indicated in the session information of the session of the received packet is set to the destination MAC address of the reply packet, and the packet is transmitted via the L2 switch. Department,
A communication control system comprising:
前記L3スイッチは、
per-flow ECMPにより、受信パケットの転送先の前記通信装置を決定する転送制御部を備えることを特徴とする請求項2に記載の通信制御システム。 Each prior Symbol communications device, the same virtual IP address is set,
The L3 switch is
The per-flow ECMP, the communication control system according to claim 2, characterized in that it comprises a transfer control unit that determines a destination of the previous SL communications device of the received packet.
前記L2スイッチ経由でいずれかの前記通信装置から、送信元MACアドレスにパケットの送信元の通信装置のMACアドレスが設定されたパケットを受信するステップと、
前記受信したパケットに設定された送信元MACアドレスを、セッションテーブルにおける前記受信したパケットのセッションのセッション情報に記録するステップと、
前記受信したパケットに対する返信パケットを送信する場合、前記セッションテーブルにおける前記受信したパケットのセッションのセッション情報に示される送信元MACアドレスを、前記返信パケットの宛先MACアドレスに設定し、前記L2スイッチ経由で送信するステップと、
を含んだことを特徴とする通信制御方法。 L2 are connected by (layer 2) switch, server to transmit and receive packets via any of the communication device that performs L3 (Layer 3) termination,
From any of the communications device via the L2 switch receiving a packet which MAC address is set in the transmission source communication apparatus of a packet the transmission source MAC address,
Recording the source MAC address set in the received packet in session information of the session of the received packet in a session table;
When transmitting a reply packet to the received packet, the transmission source MAC address shown in the session information of the session of the received packet in the session table is set to the destination MAC address of the reply packet, and is transmitted via the L2 switch. The step of sending,
A communication control method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017192773A JP6693925B2 (en) | 2017-10-02 | 2017-10-02 | Server, communication control system, and communication control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017192773A JP6693925B2 (en) | 2017-10-02 | 2017-10-02 | Server, communication control system, and communication control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019068297A JP2019068297A (en) | 2019-04-25 |
JP6693925B2 true JP6693925B2 (en) | 2020-05-13 |
Family
ID=66339920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017192773A Active JP6693925B2 (en) | 2017-10-02 | 2017-10-02 | Server, communication control system, and communication control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6693925B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020136743A (en) * | 2019-02-13 | 2020-08-31 | 日本電信電話株式会社 | Communication controller, communication control program, communication control system, and communication control method |
JP7188602B2 (en) * | 2019-08-06 | 2022-12-13 | 日本電信電話株式会社 | L2 switch, communication control method, and communication control program |
WO2022003883A1 (en) * | 2020-07-01 | 2022-01-06 | 日本電信電話株式会社 | L2 switch, communication control method, and communication control program |
US20230353509A1 (en) * | 2020-07-01 | 2023-11-02 | Nippon Telegraph And Telephone Corporation | L2 switch, communication control method, and communication control program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009539A1 (en) * | 2001-07-10 | 2003-01-30 | Fujitsu Limited | Mobile machine communication system and communication method |
JP3898498B2 (en) * | 2001-12-06 | 2007-03-28 | 富士通株式会社 | Server load balancing system |
US20100036903A1 (en) * | 2008-08-11 | 2010-02-11 | Microsoft Corporation | Distributed load balancer |
JP5782641B2 (en) * | 2012-08-31 | 2015-09-24 | 株式会社日立製作所 | Computer system and packet transfer method |
-
2017
- 2017-10-02 JP JP2017192773A patent/JP6693925B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019068297A (en) | 2019-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11863448B2 (en) | Method and apparatus for traffic optimization in virtual private networks (VPNs) | |
JP6693925B2 (en) | Server, communication control system, and communication control method | |
US9544364B2 (en) | Forwarding policies on a virtual service network | |
JP6452181B2 (en) | Load balancing internet protocol security tunnel | |
EP3225014B1 (en) | Source ip address transparency systems and methods | |
JP4730746B2 (en) | Method, system, and computer program for bypassing a routing stack using a mobile internet protocol | |
US10412159B1 (en) | Direct load balancing using a multipath protocol | |
JP5444227B2 (en) | Method and apparatus for performing load balancing on a control plane of a mobile communication network | |
US20220045934A1 (en) | Method and apparatus of automatic route optimization in a private virtual network for client devices of a local network | |
JP2016521097A (en) | Method, system, and computer program for managing a firewall cluster in a network computing environment (regional firewall clustering in a network computing environment) | |
WO2013097484A1 (en) | Method, server and system for balancing loads of virtual machine cluster | |
US11349751B2 (en) | Method for prioritization of internet traffic by finding appropriate internet exit points | |
US10129209B2 (en) | Method and communication device for network address translation traversal | |
US11895009B2 (en) | Intelligently routing internet traffic | |
EP3113539A1 (en) | Load balancing user plane traffic in a telecommunication network | |
CN104811383B (en) | A kind of message forwarding method and equipment | |
Kogias et al. | Bypassing the load balancer without regrets | |
US11595304B2 (en) | Communication device, communication control system, communication control method, and communication control program | |
WO2016035644A1 (en) | Control device, control system, control method, and control program | |
JP6053032B2 (en) | COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM | |
WO2020166362A1 (en) | Communication control device, communication control program, communication control system, and communication control method | |
CN111049754B (en) | Data communication method, device, equipment and computer readable storage medium | |
US20240171504A1 (en) | Multi-path architecture for hardware offloading | |
WO2021111523A1 (en) | Control device, control method, and program | |
TWI565266B (en) | A server system that prevents network congestion, and a connection method |
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 | Written amendment |
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 |