JP2006277569A - Load distribution system, load distribution device, real server and load distribution method - Google Patents

Load distribution system, load distribution device, real server and load distribution method Download PDF

Info

Publication number
JP2006277569A
JP2006277569A JP2005098687A JP2005098687A JP2006277569A JP 2006277569 A JP2006277569 A JP 2006277569A JP 2005098687 A JP2005098687 A JP 2005098687A JP 2005098687 A JP2005098687 A JP 2005098687A JP 2006277569 A JP2006277569 A JP 2006277569A
Authority
JP
Japan
Prior art keywords
address
packet
registration
data
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
JP2005098687A
Other languages
Japanese (ja)
Other versions
JP4177346B2 (en
Inventor
Soji Kageyama
壮志 影山
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2005098687A priority Critical patent/JP4177346B2/en
Publication of JP2006277569A publication Critical patent/JP2006277569A/en
Application granted granted Critical
Publication of JP4177346B2 publication Critical patent/JP4177346B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent all communication data between a client and a server from concentrating in a load distribution device and to enable an IP address conversion to be unnecessary in the load distribution device. <P>SOLUTION: The load distribution device 16 has real servers 12-1 to 12-3 and a network address existing in the same segment, and receives communication data sent to a real server in which a first IP address common to the real servers 12-1 to 12-3 from the client 11 is a destination IP address, as a substitute. The load distribution device 16 selects the real server to transfer this communication data, and transfers the communication data to a physical address of the selected real server. The real servers 12-1 to 12-3 performs address solution for obtaining the physical address of the client 11 by a second IP address common to the servers 12-1 to 12-3. The real servers 12-1 to 12-3 transmit the communication data to the physical address with the first IP address as the transmitter IP address. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、クライアントからの要求を負荷分散装置で受けて当該要求を複数のサーバのいずれかに振り分けるのに好適な負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法に関する。   The present invention relates to a load distribution system, a load distribution apparatus, a real server, and a load distribution method suitable for receiving a request from a client by a load distribution apparatus and distributing the request to any of a plurality of servers.

クライアント・サーバシステムでは、サーバ(サーバ計算機)の負荷がボトルネックになることが多いため、サーバ数を増強し、負荷を分散する方法が取られる。このシステムでは、複数台存在するサーバのうち、ある特定のサーバが過負荷とならないように、クライアント(クライアント計算機)からの要求を振り分ける機能を提供する負荷分散装置が使用される(例えば、特許文献1参照)。   In a client / server system, the load of a server (server computer) often becomes a bottleneck, and therefore, a method of increasing the number of servers and distributing the load is employed. In this system, a load balancer that provides a function to distribute requests from clients (client computers) is used so that a specific server among a plurality of servers does not become overloaded (for example, Patent Documents). 1).

負荷分散装置を使用したクライアント・サーバシステムにおけるクライアントからサーバへの通信データの流れは次の通りとなる。まずクライアントは、負荷分散装置上の仮想サーバのアドレスに対し通信データを送信する。このため、負荷分散装置は、実際にクライアントに対しサービスを提供するサーバ(以下、実サーバと称する)に代わりクライアントからの通信データを受信する。負荷分散装置は、受信した通信データの宛先IP(Internet Protocol)アドレスを実サーバのアドレスに変換し、負荷分散のアルゴリズムに基づき実サーバに分散して配信する。   The flow of communication data from the client to the server in the client / server system using the load balancer is as follows. First, the client transmits communication data to the address of the virtual server on the load balancer. For this reason, the load balancer receives communication data from the client instead of a server that actually provides services to the client (hereinafter referred to as a real server). The load distribution apparatus converts the destination IP (Internet Protocol) address of the received communication data into the address of the real server, and distributes and distributes to the real server based on the load distribution algorithm.

一方、上記システムにおける実サーバからクライアントへの通信データの流れは次の通りとなる。実サーバは、デフォルトゲートウェイを負荷分散装置自身のアドレス(仮想サーバのアドレスとは別のアドレス)に設定することで、クライアントへ送信する通信データが負荷分散装置を通過するようにする。負荷分散装置は、実サーバから送られたクライアント宛てパケットに対し、送信元アドレスを仮想サーバのアドレスに変換して、クライアントに送信する。   On the other hand, the flow of communication data from the real server to the client in the system is as follows. The real server sets the default gateway to the address of the load balancer itself (an address different from the address of the virtual server) so that communication data to be transmitted to the client passes through the load balancer. The load balancer converts the transmission source address to the virtual server address for the packet addressed to the client sent from the real server, and transmits it to the client.

このように、クライアントに対し負荷分散装置上の仮想サーバのアドレスと通信しているように見せることで、負荷分散装置は、実サーバに対する要求を受信し、負荷分散を行う。
特開平9−218842号公報(請求項1及び2、段落0028及び0029)
In this way, the load distribution device receives a request for the real server and performs load distribution by making the client appear to be communicating with the address of the virtual server on the load distribution device.
JP-A-9-218842 (Claims 1 and 2, paragraphs 0028 and 0029)

上記した従来技術では、負荷分散装置に送受信の全パケットが集中する。このため、通信負荷が大きくなる可能性がある。また負荷分散装置は、送受信の全パケットに対しIPアドレス変換を行うため、処理の負荷が大きくなる可能性がある。   In the above-described prior art, all packets transmitted and received are concentrated on the load balancer. For this reason, communication load may become large. Moreover, since the load balancer performs IP address conversion for all packets sent and received, there is a possibility that the processing load will increase.

本発明は上記事情を考慮してなされたものでその目的は、クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのIPアドレス変換を不用にできる負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法を提供することにある。   The present invention has been made in view of the above circumstances, and its purpose is to prevent all communication data between the client and the server from being concentrated on the load balancer and to eliminate the need for IP address conversion on the load balancer. To provide a load distribution system, a load distribution device, a real server, and a load distribution method.

本発明の1つの観点によれば、複数のクライアントにサービスを提供する複数の実サーバであって、当該複数の実サーバに共通の第1のIPアドレスを持つ複数の実サーバと、上記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、上記複数のクライアントの各々からのサービス要求を上記複数の実サーバに割り振る負荷分散装置とを具備する負荷分散システムが提供される。上記負荷分散装置は、通信データを受信する受信手段であって、上記クライアントからの上記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを代理で受信する受信手段と、通信データを送信する第1の送信手段と、上記複数の実サーバの中から、上記受信手段によって代理で受信された通信データを転送すべき実サーバを選択する負荷分散処理手段と、上記受信手段によって代理で受信された通信データを上記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに上記第1の送信手段によって転送させる転送処理手段とを有する。上記複数の実サーバの各々は、上記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで上記クライアントの物理アドレスを取得するためのアドレス解決を行うアドレス解決プロトコル処理手段と、上記アドレス解決プロトコル処理手段による上記アドレス解決により決定された物理アドレスに対し上記第1のIPアドレスを送信元IPアドレスとする通信データを送信する第2の送信手段とを有する。   According to one aspect of the present invention, there are a plurality of real servers that provide services to a plurality of clients, the plurality of real servers having a first IP address common to the plurality of real servers, There is provided a load distribution system including a load distribution device in which a real server and a network address exist in the same segment, and a service request from each of the plurality of clients is allocated to the plurality of real servers. The load balancer is a receiving means for receiving communication data, the receiving means for receiving, by proxy, communication data addressed to a real server whose destination IP address is the first IP address from the client, and communication data A first transmission means for transmitting, a load distribution processing means for selecting a real server to which communication data received by the reception means as a proxy is selected from the plurality of real servers, and a proxy for the reception means. Transfer processing means for transferring the communication data received by the first transmission means to the physical address of the real server selected by the load distribution processing means. Each of the plurality of real servers includes address resolution protocol processing means for performing address resolution for acquiring the physical address of the client with a second IP address for transmitting an address resolution protocol request different from the first IP address. And second transmission means for transmitting communication data having the first IP address as the transmission source IP address with respect to the physical address determined by the address resolution by the address resolution protocol processing means.

このような構成においては、クライアントからの実サーバ宛ての通信データ(通信パケット)のみが負荷分散装置により複数の実サーバのうちのいずれかの実サーバに転送される。一方、実サーバが送信するクライアント宛ての通信データは負荷分散装置と関係なく、直接宛先のクライアントに送信される。このため、通信負荷を減らすことができる。また負荷分散装置では、クライアントからの実サーバ宛ての通信データを中継しながら、従来技術とは異なってIPアドレスの変換を必要としないため、アドレス変換の処理負荷が発生しないで済む。   In such a configuration, only communication data (communication packet) addressed to the real server from the client is transferred to any one of the plurality of real servers by the load balancer. On the other hand, the communication data addressed to the client transmitted by the real server is directly transmitted to the destination client regardless of the load balancer. For this reason, communication load can be reduced. In addition, the load balancer relays communication data addressed to the real server from the client and does not require IP address conversion unlike the prior art, so that no load processing load is required.

また実サーバは、上記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで上記クライアントの物理アドレスを取得するためのアドレス解決を行う。これにより、負荷分散装置の代理アドレス解決プロトコルによって、クライアントまたはルータでアドレス解決プロトコルテーブル(ARPテーブル)に生成される、第1のIPアドレスと負荷分散装置の物理アドレスとを含むエントリデータが、第1のIPアドレスと実サーバの物理アドレスとを含むエントリデータに書き換えられることが防止される。   The real server performs address resolution for acquiring the physical address of the client using a second IP address for address resolution protocol request transmission different from the first IP address. Thus, the entry data including the first IP address and the physical address of the load balancer generated in the address resolution protocol table (ARP table) by the client or the router by the proxy address resolution protocol of the load balancer is The entry data including the IP address of 1 and the physical address of the real server is prevented from being rewritten.

ここで、上記負荷分散装置に、上記クライアントからの第1のIPアドレスに対するアドレス解決プロトコル要求に対して上記負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返す代理アドレス解決プロトコル処理手段を追加し、上記負荷分散装置の上記受信手段が、上記代理アドレス解決プロトコル応答により上記クライアントに返された上記負荷分散装置の物理アドレス宛てに当該クライアントから上記第1のIPアドレスで通信データが送信された場合に、当該通信データを受信するようにすると良い。特に、上記サーバのアドレス解決プロトコル処理手段が、上記クライアントからの第1のIPアドレスに対するアドレス解決プロトコル要求に対して応答しないようにするならば、なお良い。   Here, a proxy address resolution protocol processing means for returning a proxy address resolution protocol response including a physical address of the load balancer in response to an address resolution protocol request for the first IP address from the client is added to the load balancer. Then, the receiving means of the load balancer sends communication data from the client to the physical address of the load balancer returned to the client by the proxy address resolution protocol response from the client with the first IP address. In this case, the communication data may be received. In particular, it is better if the address resolution protocol processing means of the server does not respond to an address resolution protocol request for the first IP address from the client.

このような構成においては、クライアントからの第1のIPアドレスに対するアドレス解決プロトコル要求に対して、負荷分散装置だけが、当該負荷分散装置の物理アドレスを通知することができる。これにより負荷分散装置は、クライアントからの第1のIPアドレスを用いた実サーバ宛ての通信データを代理で受信できる。   In such a configuration, only the load balancer can notify the physical address of the load balancer in response to an address resolution protocol request for the first IP address from the client. As a result, the load balancer can receive communication data addressed to the real server using the first IP address from the client as a proxy.

また、上記負荷分散装置に、サービス要求を割り振る対象となる上記複数の実サーバの物理アドレスと上記第1のIPアドレスとを含むエントリデータを格納する負荷分散装置側登録テーブルを追加し、上記負荷分散装置の負荷分散処理手段が、上記負荷分散装置側登録テーブルから、上記受信手段によって受信された通信データの宛先IPアドレスと一致するIPアドレスを含むエントリデータを抽出し、当該抽出されたエントリデータに含まれている物理アドレスの中から通信データを転送すべき実サーバの物理アドレスを選択する構成とするならば、複数のサーバに対して効率的に負荷分散が行える。   In addition, a load balancer side registration table for storing entry data including physical addresses of the plurality of real servers to which service requests are allocated and the first IP address is added to the load balancer. The load distribution processing means of the distribution apparatus extracts entry data including an IP address that matches the destination IP address of the communication data received by the reception means from the load distribution apparatus side registration table, and the extracted entry data If the physical address of the real server to which the communication data is to be transferred is selected from the physical addresses included in the server, the load can be distributed efficiently to a plurality of servers.

また、上記負荷分散装置の上記受信手段が、上記負荷分散装置のIPアドレスを宛先IPアドレスとする通信データをも受信する構成とする一方、上記負荷分散装置の上記転送処理手段に以下の各手段、即ち、上記受信手段によって通信データが受信された場合、当該通信データの宛先IPアドレスが上記負荷分散装置自身のIPアドレスと一致するか判定する手段と、上記負荷分散装置自身のIPアドレスと一致する場合、上記通信データをインターネットプロトコル層及び上位のプロトコル層に受け渡す手段と、上記負荷分散装置自身のIPアドレスと一致しない場合、上記通信データを上記負荷分散処理手段に渡して当該負荷分散処理手段により転送先の物理アドレスを選択させる手段と、上記通信データを転送すべき実サーバの物理アドレスが上記負荷分散処理手段によって選択できなかった場合、上記通信データを破棄する手段とを持たせると良い。
このような構成においては、負荷分散装置が自身のIPアドレスで通常の通信を行うこともできる。
The receiving means of the load balancer is configured to receive communication data whose destination IP address is the IP address of the load balancer, while the following means are included in the transfer processing means of the load balancer: That is, when communication data is received by the receiving means, the means for determining whether the destination IP address of the communication data matches the IP address of the load balancer itself, and the IP address of the load balancer itself If the communication data does not match the IP address of the load distribution device itself and the means for passing the communication data to the Internet protocol layer and the higher protocol layer, the communication data is passed to the load distribution processing means Means for selecting the physical address of the transfer destination by means, and physical of the real server to which the communication data is to be transferred If the dress is unable selected by the load distribution processing means, may be given a means for discarding said communication data.
In such a configuration, the load balancer can perform normal communication using its own IP address.

また、上記複数の実サーバの各々に、上記負荷分散装置の物理アドレスを含むエントリデータを格納するサーバ側登録テーブルと、TCP/IP通信におけるデータリンク層の処理を行うデータリンク層処理手段と、上記TCP/IP通信におけるIP層の処理を行うIP層処理手段とに加えて、上記データリンク層処理手段から上記IP層処理手段に送るべき通信データを当該IP層処理手段に代わり受信する第1の受信手段であって、受信された通信データがIPパケットの場合、上記サーバ側登録テーブルに登録されている物理アドレスを送信元アドレスとするパケットのみを上記IP層処理手段に送る第1の受信手段と、上記第2の送信手段を含み、上記IP層処理手段から上記データリンク層処理手段に送るべき通信データを上記データリンク層処理手段に代わり受信する第2の受信手段であって、受信された通信データがIPパケットの場合、当該IPパケットをそのまま上記データリンク層処理手段に送る第2の受信手段とを持たせると良い。ここでは更に、上記実サーバの上記アドレス解決プロトコル処理手段に以下の各手段、即ち、上記第1の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル応答パケットであって、上記ターゲットIPアドレスが上記第2のIPアドレスで、且つターゲット物理アドレスが上記実サーバの物理アドレスである場合に、上記ターゲットIPアドレスを上記第1のIPアドレスに変換する手段と、上記ターゲットIPアドレスが上記第1のIPアドレスに変換されたアドレス解決プロトコル応答パケットを上記IP層処理手段に送る手段と、上記ターゲットIPアドレスが上記第2のIPアドレスでないか、或いは上記ターゲット物理アドレスが上記実サーバの物理アドレスでない場合に、上記アドレス解決プロトコル応答パケットを破棄する手段と、上記第2の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル要求パケットであって、上記ターゲットIPアドレスが上記第1のIPアドレスで、且つターゲット物理アドレスが上記実サーバの物理アドレスである場合に、送信元IPアドレスを上記第2のIPアドレスに変換する手段と、上記ターゲットIPアドレスが上記第2のIPアドレスに変換されたアドレス解決プロトコル要求パケットを上記データリンク層処理手段に送る手段と、上記ターゲットIPアドレスが上記第1のIPアドレスでないか、或いは上記ターゲット物理アドレスが上記実サーバの物理アドレスでない場合に、上記アドレス解決プロトコル要求パケットを破棄する手段とを持たせると良い。   A server-side registration table that stores entry data including a physical address of the load balancer in each of the plurality of real servers; a data link layer processing unit that performs data link layer processing in TCP / IP communication; In addition to the IP layer processing means for performing the IP layer processing in the TCP / IP communication, the communication data to be sent from the data link layer processing means to the IP layer processing means is received instead of the IP layer processing means. First receiving means for transmitting only packets having a physical address registered in the server side registration table as a transmission source address to the IP layer processing means when the received communication data is an IP packet. And communication data to be sent from the IP layer processing means to the data link layer processing means. A second receiving means for receiving instead of the data link layer processing means, and when the received communication data is an IP packet, a second receiving means for sending the IP packet as it is to the data link layer processing means is provided. And good. Here, further, the following data is sent to the address resolution protocol processing means of the real server, that is, the communication data received by the first receiving means is an address resolution protocol response packet including a target IP address and a target physical address. And means for converting the target IP address to the first IP address when the target IP address is the second IP address and the target physical address is the physical address of the real server; Means for sending an address resolution protocol response packet in which the target IP address is converted to the first IP address to the IP layer processing means; and whether the target IP address is not the second IP address or the target physical address is Physical server physical address And if the communication data received by the second receiving means is an address resolution protocol request packet including a target IP address and a target physical address, and the target Means for converting the source IP address to the second IP address when the IP address is the first IP address and the target physical address is the physical address of the real server; Means for sending an address resolution protocol request packet converted to a second IP address to the data link layer processing means, and whether the target IP address is not the first IP address or the target physical address is the real server Not a physical address The case, may be given a means for discarding the Address Resolution Protocol request packet.

このような構成のサーバは、TCP/IP通信機能を標準的に有する通常のサーバに、特別のプログラムを実行させることにより簡単に実現でき、サーバ自体を専用装置とする必要がない。   The server having such a configuration can be easily realized by causing a normal server having a TCP / IP communication function as a standard to execute a special program, and the server itself does not need to be a dedicated device.

本発明によれば、クライアントからの実サーバ宛ての通信データをIPアドレスの変換を必要とすることなく負荷分散装置によって複数の実サーバのうちのいずれかの実サーバに転送でき、しかも実サーバが送信するクライアント宛ての通信データは負荷分散装置と関係なく、直接宛先のクライアントに送信できる。即ち本発明によれば、クライアント・サーバ間の全通信データが負荷分散装置に集中することを防ぎ、且つ負荷分散装置上でのIPアドレス変換を不用にできる。   According to the present invention, communication data addressed to a real server from a client can be transferred to any one of a plurality of real servers by a load balancer without requiring conversion of an IP address. Communication data addressed to the client to be transmitted can be transmitted directly to the destination client regardless of the load balancer. That is, according to the present invention, it is possible to prevent all communication data between the client and the server from being concentrated on the load balancer, and to make IP address conversion on the load balancer unnecessary.

以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る負荷分散システムの基本構成と動作原理を説明するための図である。図1において、クライアント11と当該クライアント11を含む複数のクライアントにサービスを提供する複数の実サーバ、例えば実サーバ12-1,12-2及び12-3とは、ネットワークアドレスが異なる2つのネットワーク13及び14を介して接続されている。クライアント11はネットワーク13に接続され、実サーバ12-1乃至12-3はネットワーク14に接続されている。図1では作図の都合上、1台のクライアント11がネットワーク13に接続されているが、一般には多数のクライアントがネットワーク13に接続されている。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram for explaining the basic configuration and operation principle of a load distribution system according to an embodiment of the present invention. In FIG. 1, a client 11 and a plurality of real servers that provide services to a plurality of clients including the client 11, for example, real servers 12-1, 12-2, and 12-3, are two networks 13 having different network addresses. And 14 are connected. The client 11 is connected to the network 13, and the real servers 12-1 to 12-3 are connected to the network 14. In FIG. 1, for convenience of drawing, one client 11 is connected to the network 13, but in general, many clients are connected to the network 13.

ネットワーク13及び14はルータ15により接続されている。ルータ15は、この異なるネットワークアドレスのネットワーク13及び14間を接続するためのルーティング機能を有する。なお、ネットワーク13及び14のネットワークアドレスが同一であるならばルータ15を必要としない。   The networks 13 and 14 are connected by a router 15. The router 15 has a routing function for connecting the networks 13 and 14 having different network addresses. Note that the router 15 is not required if the network addresses of the networks 13 and 14 are the same.

ネットワーク14には負荷分散装置16が接続されている。つまり負荷分散装置16は、ネットワークアドレスが同一のセグメント上に存在する。負荷分散装置16は、実サーバ12-1乃至12-3と異なるIPアドレス“192.168.10.10”を持つ。これに対して実サーバ12-1乃至12-3は、負荷分散装置16のIPアドレスとは異なるものの、全サーバに共通のIPアドレス“192.168.10.11”を持つ。   A load balancer 16 is connected to the network 14. That is, the load balancer 16 exists on the same segment with the same network address. The load balancer 16 has an IP address “192.168.10.10” different from that of the real servers 12-1 to 12-3. On the other hand, the real servers 12-1 to 12-3 have an IP address “192.168.10.11” common to all servers, although they are different from the IP address of the load balancer 16.

負荷分散装置16は、クライアント11から宛先IPアドレス“192.168.10.11”を用いた実サーバ宛ての通信データ(通信パケット)が送信されると(ステップS1)、当該実サーバ宛ての通信パケットを代理で受信する。負荷分散装置16は、代理で受信したパケットを、負荷分散のアルゴリズムに従い、実サーバ12-1乃至12-3のいずれかの実サーバに対して転送する(ステップS2)。   When the communication data (communication packet) addressed to the real server using the destination IP address “192.168.10.11” is transmitted from the client 11 (step S1), the load balancer 16 substitutes the communication packet addressed to the real server. Receive. The load balancer 16 forwards the packet received on behalf of one of the real servers 12-1 to 12-3 according to the load balancing algorithm (step S2).

負荷分散装置16による負荷分散対象となる実サーバ12-1乃至12-3は、それぞれ専用装置120-1乃至120-3を含む。実サーバ12-1乃至12-3の専用装置120-1乃至120-3は、当該実サーバの全てに共通のIPアドレス“192.168.10.11”を設定し、負荷分散装置16から転送されるパケットのみを処理する。専用装置120-1乃至120-3は更に、実サーバ12-1乃至12-3が送信するパケットを負荷分散装置16を中継させずに、直接送信する(ステップS3)。   The real servers 12-1 to 12-3 that are load distribution targets by the load distribution device 16 include dedicated devices 120-1 to 120-3, respectively. The dedicated devices 120-1 to 120-3 of the real servers 12-1 to 12-3 set a common IP address “192.168.10.11” for all the real servers, and only the packets transferred from the load balancer 16 Process. The dedicated devices 120-1 to 120-3 further directly transmit the packets transmitted by the real servers 12-1 to 12-3 without relaying the load balancer 16 (step S3).

図1の負荷分散システムでは、クライアント11が送信するパケットのみ負荷分散装置16を通過する。これに対して、実サーバ12-i(i=1,2,3)が送信するパケットは負荷分散装置16を通過しない。このため、従来の負荷分散装置の問題である負荷分散装置上の通信負荷を減らすことができる。   In the load distribution system of FIG. 1, only packets transmitted by the client 11 pass through the load distribution device 16. On the other hand, packets transmitted by the real server 12-i (i = 1, 2, 3) do not pass through the load balancer 16. For this reason, the communication load on the load balancer, which is a problem of the conventional load balancer, can be reduced.

また図1の負荷分散システムでは、クライアント11は実サーバ12-iのIPアドレス宛に直接送信する。このため、負荷分散装置16におけるIPアドレスの変換が発生しない。これにより、既存の負荷分散装置の問題であるIPアドレス変換による処理の負荷を発生しないようにすることができる。   In the load distribution system of FIG. 1, the client 11 directly transmits to the IP address of the real server 12-i. For this reason, IP address conversion in the load balancer 16 does not occur. Thereby, it is possible to prevent the processing load due to the IP address translation, which is a problem of the existing load distribution apparatus, from occurring.

次に、図1のシステムにおいて、クライアント11から負荷分散装置16を中継して実サーバ12-iに通信パケット(通信データ)を送信する方法について、図2(a)のデータ流れ図を参照して説明する。   Next, in the system of FIG. 1, a method for transmitting a communication packet (communication data) from the client 11 to the real server 12-i through the load balancer 16 will be described with reference to the data flow diagram of FIG. explain.

負荷分散装置16は、予め実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”と当該実サーバ12-1乃至12-3のMAC(Media Access Control)アドレス(つまり物理アドレス)との組み合せを知っているものとする。   The load balancer 16 has an IP address “192.168.10.11” common to the real servers 12-1 to 12-3 and a MAC (Media Access Control) address (that is, a physical address) of the real servers 12-1 to 12-3 in advance. Assume that you know the combination.

今、クライアント11から実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”に対するARP(Address Resolution Protocol;アドレス解決プロトコル)要求が送信されたものとする(ステップS11)。負荷分散装置16は、実サーバ宛てのパケット(IPアドレスが192.168.10.11のパケット)を代理で受信するため、実サーバのIPアドレスに対するARP要求に対し、代理ARPで応答する(ステップS12)。これにより負荷分散装置16は、クライアント11から実サーバ宛ての通信パケット(IPアドレスが192.168.10.11のパケット)が送信された場合(ステップS13)、当該実サーバ宛てのパケットを受信する。   Assume that an ARP (Address Resolution Protocol) request for a common IP address “192.168.10.11” is transmitted from the client 11 to the real servers 12-1 to 12-3 (step S11). Since the load balancer 16 receives a packet addressed to the real server (a packet having an IP address of 192.168.10.11) as a proxy, it responds to the ARP request for the IP address of the real server with the proxy ARP (step S12). As a result, when the communication packet addressed to the real server (packet with the IP address 192.168.10.11) is transmitted from the client 11 (step S13), the load balancer 16 receives the packet addressed to the real server.

負荷分散装置16は、受信した実サーバ宛てのパケット(例えばサービス要求のためのパケット)を、負荷分散のアルゴリズムに基づき、実サーバ12-1乃至12-3のうち負荷分散対象として決定された実サーバのMACアドレス宛てに転送する(ステップS14)。負荷分散のアルゴリズムに関しては、従来から種々知られており、且つ本発明に直接関係しないため説明を省略する。   The load balancer 16 receives a packet addressed to a real server (for example, a packet for a service request) based on a load balancing algorithm, and determines the actual load determined as a load distribution target among the real servers 12-1 to 12-3. Transfer to the MAC address of the server (step S14). Various algorithms for load distribution have been known in the past and are not directly related to the present invention, so that the description thereof is omitted.

実サーバ12-i上の専用装置120-iは、当該実サーバ12-iの通信を管理・制御する機能を持ち、予め負荷分散装置16のIPアドレス“192.168.10.10”と当該負荷分散装置16のMACアドレスを知っているものとする。   The dedicated device 120-i on the real server 12-i has a function of managing and controlling the communication of the real server 12-i, and the IP address “192.168.10.10” of the load balancer 16 and the load balancer 16 in advance. Assume that you know the MAC address.

実サーバ12-i上の専用装置120-iは、自身のIPアドレス“192.168.10.11”に対するARP要求と自身のアドレスのARP応答を破棄する機能を持つ。この機能により、実サーバ12-iはARP要求に応答しないため、クライアント11からの実サーバ宛てのパケットは、負荷分散装置16で受信される。また本実施形態では、全ての実サーバ12-i(i=1,2,3)が共通のIPアドレス“192.168.10.11”を設定するが、上記の破棄機能により、詳細を後述するように実サーバ間でIPアドレス競合が起こることを防ぐことができる。   The dedicated device 120-i on the real server 12-i has a function of discarding the ARP request for its own IP address “192.168.10.11” and the ARP response for its own address. With this function, since the real server 12-i does not respond to the ARP request, the packet addressed to the real server from the client 11 is received by the load balancer 16. In this embodiment, all the real servers 12-i (i = 1, 2, 3) set a common IP address “192.168.10.11”. It is possible to prevent IP address conflicts between servers.

実サーバ12-i上の専用装置120-iは、負荷分散装置16から転送された自身宛てのパケットを受信する。もし、受信パケットの送信元のMACアドレスが負荷分散装置16を示していれば、専用装置120-iは、実サーバ12-iのOSに受信パケットを渡す。これら対し、送信元のMACアドレスが負荷分散装置16以外の場合、専用装置120-iは受信パケットを破棄する。   The dedicated device 120-i on the real server 12-i receives the packet addressed to itself transferred from the load distribution device 16. If the source MAC address of the received packet indicates the load balancer 16, the dedicated device 120-i passes the received packet to the OS of the real server 12-i. On the other hand, when the source MAC address is other than the load balancer 16, the dedicated device 120-i discards the received packet.

次に負荷分散装置16を中継せずに、実サーバ12-i(例えば実サーバ12-1)からクライアント11に通信パケット(通信データ)を送信する方法について、図2(b)のデータ流れ図を参照して説明する。   Next, regarding a method for transmitting a communication packet (communication data) from the real server 12-i (for example, the real server 12-1) to the client 11 without relaying the load balancer 16, the data flow diagram of FIG. The description will be given with reference.

まず、実サーバ12-i上の専用装置120-iには、ARP要求送信用のIPアドレス“192.168.10.12”が予め設定されているものとする。実サーバ12-i上の専用装置120-iは、クライアント11に対し通信パケットを送信する場合、上記のIPアドレス“192.168.10.12”を使用してクライアント11に対するARP要求を送信する(ステップS21)。実サーバ12-i上の専用装置120-iは、このARP要求に対するクライアント11からのARP応答を受信する(ステップS22)、専用装置120-iは、ARP応答のデータに基づき、クライアント11宛ての通信パケットを、実サーバ12-1乃至12-3に共通の通信パケット送受信用のIPアドレス“192.168.10.11”を送信元IPアドレスとして送信する(ステップS23)。   First, it is assumed that the IP address “192.168.10.12” for ARP request transmission is set in advance in the dedicated device 120-i on the real server 12-i. When transmitting a communication packet to the client 11, the dedicated device 120-i on the real server 12-i transmits an ARP request to the client 11 using the IP address “192.168.10.12” (step S 21). . The dedicated device 120-i on the real server 12-i receives the ARP response from the client 11 in response to this ARP request (step S22). The dedicated device 120-i is addressed to the client 11 based on the ARP response data. The communication packet is transmitted using the IP address “192.168.10.11” for communication packet transmission / reception common to the real servers 12-1 to 12-3 as the transmission source IP address (step S23).

このように、実サーバ12-iが通信パケット送受信用のIPアドレスとARP要求用のIPアドレスとを切り替えて使用するのは、負荷分散装置16の代理ARPによりクライアント11のARPテーブル(ネットワーク13及びネットワーク14のネットワークアドレス、つまりセグメントが同一の場合)またはルータ15のARPテーブル(ネットワーク13及びネットワーク14のネットワークアドレス、つまりセグメントが異なる場合)に作成されたデータが、書き換えられないようにするためである。   As described above, the real server 12-i switches between the IP address for communication packet transmission / reception and the IP address for ARP request and uses them by the proxy ARP of the load balancer 16 (the network 13 and the ARP table). In order to prevent the data created in the network address of the network 14, that is, when the segments are the same) or the ARP table of the router 15 (when the network addresses of the network 13 and the network 14, that is, when the segments are different) from being rewritten is there.

もし、実サーバ12-iのIPアドレス“192.168.10.11”でARP要求が送信されるならば、図3に示すように、代理ARPより負荷分散装置16のMACアドレスで作成されたARPテーブル110のデータが、実サーバ12-iのMACアドレスに書き換わる。この場合、次に送信される実サーバ宛てのパケットは、このARPテーブル110のデータに基づき、実サーバ12-iのMACアドレスに送信されてしまう。本実施形態では、実サーバ宛てパケットは全て負荷分散装置16を中継させる必要があるため問題である。   If an ARP request is transmitted with the IP address “192.168.10.11” of the real server 12-i, as shown in FIG. 3, the ARP table 110 created by the proxy ARP with the MAC address of the load balancer 16 is stored. The data is rewritten to the MAC address of the real server 12-i. In this case, the next packet addressed to the real server is transmitted to the MAC address of the real server 12-i based on the data in the ARP table 110. In the present embodiment, all packets addressed to the real server need to be relayed by the load balancer 16, which is a problem.

そこで本実施形態では、上述のように、実サーバ12-i(上の専用装置120-i)は、ARP要求送信用のIPアドレス“192.168.10.12”を送信元IPアドレスとしてクライアント11に対してARP要求を送信する。この場合、クライアント11またはルータ15のARPテーブル110には、図4に示すようにARP要求送信用のIPアドレス“192.168.10.12”を含むエントリデータが追加登録される。このため、代理ARPにより負荷分散装置16のMACアドレスで作成されたデータは書き換えられない。この場合、次に送信される実サーバ宛てのパケットは、このARPテーブル110のデータに基づき、負荷分散装置16のMACアドレスに送信される。   Therefore, in the present embodiment, as described above, the real server 12-i (the dedicated device 120-i above) transmits to the client 11 the ARP request transmission IP address “192.168.10.12” as the transmission source IP address. Send an ARP request. In this case, entry data including the IP address “192.168.10.12” for transmitting the ARP request is additionally registered in the ARP table 110 of the client 11 or the router 15 as shown in FIG. For this reason, the data created with the MAC address of the load balancer 16 by the proxy ARP is not rewritten. In this case, the next packet addressed to the real server is transmitted to the MAC address of the load balancer 16 based on the data in the ARP table 110.

図1のシステムにおける上述の動作を整理して、図5のシーケンスチャートを参照して説明する。図5において、クライアント11は、実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”に対するARP要求を送信する(ステップS31)。   The above-described operation in the system of FIG. 1 will be organized and described with reference to the sequence chart of FIG. In FIG. 5, the client 11 transmits an ARP request for the common IP address “192.168.10.11” to the real servers 12-1 to 12-3 (step S31).

実サーバ12-i(上の専用装置120-i)は、負荷分散装置16を中継して通信を行うため、自身宛ての全てのARP要求に対し応答を停止する。代わりに負荷分散装置16が、クライアント11からのARP要求を受信すると代理ARP応答手段として機能し、当該ARP要求に対する応答を代理ARPによりクライアント11に返す(ステップS32)。これにより負荷分散装置16からクライアント11に対し、実サーバ12-iのMACアドレスではなくて、負荷分散装置16自身のMACアドレスが通知される。この結果、クライアント11またはルータ15のARPテーブル110には、実サーバ12-1乃至12-3に共通のIPアドレス“192.168.10.11”に対応付けて負荷分散装置16のMACアドレスが登録される。よって、クライアント11からの実サーバ宛ての通信データ(通信パケット)は負荷分散装置16のMACアドレスに送られることになり、負荷分散装置16が受信する(ステップS33)。   Since the real server 12-i (the dedicated device 120-i above) performs communication by relaying through the load balancer 16, it stops responding to all ARP requests addressed to itself. Instead, when the load balancer 16 receives an ARP request from the client 11, it functions as a proxy ARP response means, and returns a response to the ARP request to the client 11 by the proxy ARP (step S32). As a result, the load balancer 16 notifies the client 11 of the MAC address of the load balancer 16 itself, not the MAC address of the real server 12-i. As a result, the MAC address of the load balancer 16 is registered in the ARP table 110 of the client 11 or the router 15 in association with the IP address “192.168.10.11” common to the real servers 12-1 to 12-3. Therefore, the communication data (communication packet) addressed to the real server from the client 11 is sent to the MAC address of the load balancer 16 and is received by the load balancer 16 (step S33).

負荷分散装置16は、実サーバ宛ての通信データを受信すると、予め登録されている実サーバ12-1乃至12-3の各々のMACアドレスから負荷分散のアルゴリズムに基づき通信データを転送すべき実サーバ12-iを決定し、受信した通信データを当該決定された実サーバ12-iのMACアドレス宛てに転送する(ステップS34)。   When receiving the communication data addressed to the real server, the load balancer 16 transfers the communication data from the MAC addresses of the registered real servers 12-1 to 12-3 based on the load balancing algorithm. 12-i is determined, and the received communication data is transferred to the determined MAC address of the real server 12-i (step S34).

すると実サーバ12-i上の専用装置120-iは、クライアント11からの通信データ(通信パケット)を受信する。実サーバ12-iが通信データを送信する場合、送信元IPアドレスとして通信用のIPアドレス“192.168.10.11”が用いられる。実サーバ12-iが通信データをクライアント11に送信するためには、ARP要求により当該クライアント11のMACアドレスを取得する必要がある。しかし、このARP要求により、ステップS32で作成された、クライアント11またはルータ15のARPテーブル110上のデータ(IPアドレス“192.168.10.11”に対応付けられたMACアドレス)が書き換えられないようにしなければならない。そこで実サーバ12-i上の専用装置120-iは、通信用のIPアドレス“192.168.10.11に代えてARP送信用のIPアドレス“192.168.10.12”を使用して、クライアント11に対するARP要求を送信する(ステップS35)。するとクライアント11は、ARP要求に対するARP応答を実サーバ12-iに返す(ステップS36)。   Then, the dedicated device 120-i on the real server 12-i receives communication data (communication packet) from the client 11. When the real server 12-i transmits communication data, the communication IP address “192.168.10.11” is used as the source IP address. In order for the real server 12-i to transmit communication data to the client 11, it is necessary to acquire the MAC address of the client 11 by an ARP request. However, this ARP request does not prevent the data (the MAC address associated with the IP address “192.168.10.11”) created in step S32 on the ARP table 110 of the client 11 or the router 15 from being rewritten. Don't be. Therefore, the dedicated device 120-i on the real server 12-i transmits an ARP request to the client 11 using the ARP transmission IP address “192.168.10.12” instead of the communication IP address “192.168.10.11”. Then, the client 11 returns an ARP response to the ARP request to the real server 12-i (step S36).

実サーバ12-i上の専用装置120-iは、クライアント11からのARP応答(ステップS36)を基に、通信用のIPアドレス“192.168.10.11”を送信元IPアドレスとして使用して、当該クライアント宛ての通信データを送信する(ステップS37)。   The dedicated device 120-i on the real server 12-i uses the communication IP address “192.168.10.11” as the transmission source IP address based on the ARP response from the client 11 (step S36). The communication data addressed is transmitted (step S37).

クライアント11は、当該クライアント11またはルータ15のARPテーブル110にデータが作成された後、通信データ(通信パケット)を送信する場合、当該ARPテーブル110のデータに基づき実サーバ宛ての通信パケットを送信する(ステップS38)。この際、実サーバ12-iからのARP要求に応じて(ステップS35)、ARPテーブル110上のデータが書き換えられることはないため、クライアント11からの実サーバ宛ての通信パケットは負荷分散装置16で受信される。   When the client 11 transmits communication data (communication packet) after data is created in the ARP table 110 of the client 11 or the router 15, the client 11 transmits a communication packet addressed to the real server based on the data of the ARP table 110. (Step S38). At this time, the data on the ARP table 110 is not rewritten in response to the ARP request from the real server 12-i (step S35). Received.

負荷分散装置16は、負荷分散のアルゴリズムに基づき、実サーバ12-1乃至12-3の中から受信された通信パケットを転送すべき実サーバを決め、当該受信された通信パケットを、決定された実サーバの予め登録されているMACアドレスに転送する(ステップS39)。   The load distribution device 16 determines a real server to which the communication packet received from the real servers 12-1 to 12-3 is to be transferred based on the load distribution algorithm, and the received communication packet is determined. Transfer to the pre-registered MAC address of the real server (step S39).

次に負荷分散装置16上に、実サーバのIPアドレスとMACアドレスとの対を含むエントリデータ(アドレス情報)を保持するテーブルを自動で作成する方法について、図6のシーケンスチャートを参照して説明する。   Next, a method for automatically creating a table holding entry data (address information) including a pair of an IP address and a MAC address of a real server on the load balancer 16 will be described with reference to the sequence chart of FIG. To do.

実サーバ12-i上の専用装置120-iは、負荷分散装置16のMACアドレスを取得するため、ブロードキャストまたはマルチキャストでパケット転送要請(パケット転送要請パケット)を送信する(ステップS41)。このパケット転送要請は、IP層以上のパケットを使用し、少なくともパケット転送要請であると識別できるデータであればどんな形式で良く、ブロードキャストまたは、マルチキャストで送信される。1例として、パケット転送要請がICMP(Internet Control Message Protocol(インターネットコントロールメッセージプロトコル))のルータ請願(Router Solicitation)パケットでも構わない。   The dedicated device 120-i on the real server 12-i transmits a packet transfer request (packet transfer request packet) by broadcast or multicast in order to acquire the MAC address of the load balancer 16 (step S41). This packet transfer request may be in any format as long as it uses data of a packet higher than the IP layer and can be identified as at least a packet transfer request, and is transmitted by broadcast or multicast. As an example, the packet transfer request may be a router solicitation packet of ICMP (Internet Control Message Protocol).

負荷分散装置16は、パケット転送要請を受信した場合、受信したパケットのIPアドレス及びMACアドレスの送信元アドレスに対してパケット転送広告(パケット転送広告パケット)を送信する(ステップS42)。このパケット転送広告は、IP層以上のパケットを使用し、少なくともパケット転送広告であると識別できるデータであればどんな形式でも良く、パケット転送要請の送信元アドレスを使用して送信される。パケット転送広告の1例として、ICPMのルータ広告(Router Advertisement)パケットでも構わない。   When receiving the packet transfer request, the load balancer 16 transmits a packet transfer advertisement (packet transfer advertisement packet) to the source address of the IP address and MAC address of the received packet (step S42). This packet transfer advertisement may be in any format as long as it uses a packet of IP layer or higher and can be identified as at least a packet transfer advertisement, and is transmitted using the source address of the packet transfer request. As an example of the packet transfer advertisement, an ICPM router advertisement packet may be used.

実サーバ12-i上の専用装置120-iは、パケット転送広告を受信した場合、受信したパケットのIPアドレス及びMACアドレスの送信元アドレスに対して、パケット転送の登録要求(登録要求パケット)を送信する(ステップS43)。この登録要求は、IP層以上のパケットを使用する必要があると共に、有効期限の情報を含んでいる必要がある。ここで有効期限の値が0の登録要求(後述する登録解除要求)は、実サーバ12-i上の専用装置120-iが明示的にパケットの転送の停止を要請する場合に使用されるものとする。このような場合としては、実サーバ12-i上の専用装置120-iが当該実サーバ12-i上で障害を検知した場合が相当する。   When receiving the packet transfer advertisement, the dedicated device 120-i on the real server 12-i sends a packet transfer registration request (registration request packet) to the source address of the IP address and MAC address of the received packet. Transmit (step S43). This registration request needs to use a packet of an IP layer or higher and include information on an expiration date. Here, the registration request (deregistration request to be described later) with an expiration value of 0 is used when the dedicated device 120-i on the real server 12-i explicitly requests to stop packet transfer. And Such a case corresponds to a case where the dedicated device 120-i on the real server 12-i detects a failure on the real server 12-i.

負荷分散装置16は、実サーバ12-i上の専用装置120-iからの登録要求を受信した後、要求データが正当かどうかを判別する。負荷分散装置16は、要求データが正当な場合、登録成功として登録要求元の実サーバ12-iを負荷分散対象として新規登録、または登録の更新(既に登録済みの場合)を行う。その後、負荷分散装置16は登録要求のIPアドレス及びMACアドレスの送信元アドレスに対して、負荷分散のためのパケット転送の開始を示す登録応答(登録応答パケット)を送信する(ステップS44)。この登録応答は、IP層以上のパケットを使用する必要があると共に、登録成功または失敗を意味する情報を含んでいる必要がある。実サーバ12-i上の専用装置120-iは登録応答を受信すると、以後定期的に登録要求を負荷分散装置16に送信する。   After receiving the registration request from the dedicated device 120-i on the real server 12-i, the load distribution device 16 determines whether the request data is valid. If the request data is valid, the load balancer 16 newly registers or updates the registration (if already registered) with the registration request source real server 12-i as the load distribution target if the registration is successful. Thereafter, the load distribution device 16 transmits a registration response (registration response packet) indicating the start of packet transfer for load distribution to the IP address and MAC address of the registration request (step S44). This registration response needs to use a packet of the IP layer or higher, and needs to include information indicating registration success or failure. When the dedicated device 120-i on the real server 12-i receives the registration response, the dedicated device 120-i periodically transmits a registration request to the load balancer 16 thereafter.

図7は、パケット転送要請パケット71、パケット転送広告パケット72、登録要求パケット73及び登録応答パケット74の間のアドレスの流れを示す。図7中の矢印は、前のパケット中のアドレスをコピーすることにより次のパケットが生成されることを示す。   FIG. 7 shows an address flow among the packet transfer request packet 71, the packet transfer advertisement packet 72, the registration request packet 73, and the registration response packet 74. The arrows in FIG. 7 indicate that the next packet is generated by copying the address in the previous packet.

例えば、パケット転送広告パケット72のデータリンク層ヘッダの宛先MACアドレスには、パケット転送要請パケット71のデータリンク層ヘッダの送信元MACアドレス(実サーバ12-iのMACアドレス)が用いられる。同様に、パケット転送広告パケット72のIPヘッダの宛先IPアドレスには、パケット転送要請パケット71のIPヘッダの送信元IPアドレス(実サーバ12-iの通信パケット送受信用のIPアドレス)が用いられる。また、パケット転送広告パケット72の送信元MACアドレス及び送信元IPアドレスには、負荷分散装置16のMACアドレス及びIPアドレスが用いられる。   For example, as the destination MAC address of the data link layer header of the packet transfer advertisement packet 72, the transmission source MAC address of the data link layer header of the packet transfer request packet 71 (the MAC address of the real server 12-i) is used. Similarly, the source IP address of the IP header of the packet transfer request packet 71 (IP address for transmitting / receiving communication packets of the real server 12-i) is used as the destination IP address of the IP header of the packet transfer advertisement packet 72. Further, the MAC address and IP address of the load balancer 16 are used as the source MAC address and source IP address of the packet transfer advertisement packet 72.

また、登録要求パケット73のデータリンク層ヘッダの宛先MACアドレスには、パケット転送広告パケット72のデータリンク層ヘッダの送信元MACアドレス(負荷分散装置16のMACアドレス)が用いられる。同様に、登録要求パケット73のIPヘッダの宛先IPアドレスには、パケット転送広告パケット72のIPヘッダの送信元IPアドレス(負荷分散装置16のIPアドレス)が用いられる。また、登録要求パケット73の送信元MACアドレス及びIPアドレスには、実サーバ12-iのMACアドレス及びIPアドレスが用いられる。   The transmission source MAC address (the MAC address of the load balancer 16) of the data link layer header of the packet transfer advertisement packet 72 is used as the destination MAC address of the data link layer header of the registration request packet 73. Similarly, the source IP address of the IP header of the packet transfer advertisement packet 72 (the IP address of the load balancer 16) is used as the destination IP address of the IP header of the registration request packet 73. Further, the MAC address and IP address of the real server 12-i are used as the transmission source MAC address and IP address of the registration request packet 73.

また、登録応答パケット74のデータリンク層ヘッダの宛先MACアドレスには、登録要求パケット73のデータリンク層ヘッダの送信元MACアドレス(実サーバ12-iのMACアドレス)が用いられる。同様に、登録応答パケット74のIPヘッダの宛先IPアドレスには、登録要求パケット73のIPヘッダの送信元IPアドレス(実サーバ12-iのIPアドレス)が用いられる。また、登録応答パケット74の送信元MACアドレス及び送信元IPアドレスには、負荷分散装置16のMACアドレス及びIPアドレスが用いられる。   Further, as the destination MAC address of the data link layer header of the registration response packet 74, the transmission source MAC address (the MAC address of the real server 12-i) of the data link layer header of the registration request packet 73 is used. Similarly, the transmission source IP address of the IP header of the registration request packet 73 (the IP address of the real server 12-i) is used as the destination IP address of the IP header of the registration response packet 74. Further, the MAC address and IP address of the load balancer 16 are used as the source MAC address and source IP address of the registration response packet 74.

負荷分散装置16は、専用装置120-iから有効期限の値が0以外の登録要求パケットを受信した場合、IPアドレスとMACアドレスとの対を含むアドレス情報のテーブルにデータを追加登録する。このようにして登録された実サーバは、負荷分散装置16による負荷分散対象となり得るサーバの1台として扱われる。   When the load distribution device 16 receives a registration request packet having an expiration date other than 0 from the dedicated device 120-i, the load distribution device 16 additionally registers data in a table of address information including a pair of an IP address and a MAC address. The real server registered in this way is handled as one of servers that can be a load distribution target by the load distribution device 16.

負荷分散装置16は、登録要求パケット内の有効期限を超過すると、当該登録要求パケットで指定されるデータを上記アドレス情報のテーブルから削除して、負荷分散の対象から外す。   When the expiration date in the registration request packet is exceeded, the load distribution device 16 deletes the data specified by the registration request packet from the address information table and removes it from the load distribution target.

また負荷分散装置16は、有効期限の値が0の登録要求パケットを受信した場合には、当該登録要求パケットで指定されるデータを上記アドレス情報のテーブルから削除して、負荷分散の対象から外す。   Also, when receiving a registration request packet with an expiration value of 0, the load balancer 16 deletes the data specified by the registration request packet from the address information table and removes it from the load distribution target. .

実サーバ12-i上の専用装置120-iは、登録応答パケットを受信して登録成功であることが確認できた場合、負荷分散装置16を中継した通信を開始する。また実サーバ12-i上の専用装置120-iは、それ以降、登録の有効期限以内の間隔で定期的に登録要求を負荷分散装置16に送信することにより、登録を維持する。   When the dedicated device 120-i on the real server 12-i receives the registration response packet and confirms that the registration is successful, the dedicated device 120-i starts communication relaying the load distribution device 16. Thereafter, the dedicated device 120-i on the real server 12-i maintains registration by periodically transmitting a registration request to the load balancer 16 at intervals within the registration expiration date.

通常の通信では、アドレスによるARP要求/応答を使用してIPアドレスとMACアドレスの対を取得するのが一般的である。しかし本実施形態では、実サーバ12-iは通信パケット送受信用のIPアドレスによるARP要求/応答の送信は停止させられる。このため、最初から手動で登録しない限り、負荷分散装置16は実サーバ12-iのMACアドレスを知ることができない。また同様に、実サーバ12-iは負荷分散装置16のMACアドレスを知ることができない。ところが本実施形態では、図6及び図7に示す手順により、実サーバ12-iはARP要求/応答を使用しなくても、負荷分散装置16にMACアドレスとIPアドレスを知らせることができる。また実サーバ12-i自身も負荷分散装置16のMACアドレスとIPアドレスを取得することができる。   In normal communication, an ARP request / response by address is generally used to obtain an IP address and MAC address pair. However, in the present embodiment, the real server 12-i is stopped from transmitting the ARP request / response with the IP address for communication packet transmission / reception. For this reason, the load balancer 16 cannot know the MAC address of the real server 12-i unless it is manually registered from the beginning. Similarly, the real server 12-i cannot know the MAC address of the load balancer 16. However, in the present embodiment, the real server 12-i can inform the load balancer 16 of the MAC address and the IP address without using the ARP request / response by the procedure shown in FIGS. The real server 12-i itself can also acquire the MAC address and IP address of the load balancer 16.

図8は負荷分散装置16の構成を示すブロック図である。負荷分散装置16は、ネットワークIF(ネットワークインタフェース)161と、データリンク層処理部162と、IP層処理部163と、トランスポート層処理部164と、登録テーブルTBL1と、セッション管理テーブルTBL2とを含む。負荷分散装置16はまた、パケット転送広告処理部165と、登録処理部166と、代理ARP処理部167と、パケット転送処理部168と、負荷分散処理部169とを含む。   FIG. 8 is a block diagram showing the configuration of the load balancer 16. The load balancer 16 includes a network IF (network interface) 161, a data link layer processing unit 162, an IP layer processing unit 163, a transport layer processing unit 164, a registration table TBL1, and a session management table TBL2. . The load distribution device 16 also includes a packet transfer advertisement processing unit 165, a registration processing unit 166, a proxy ARP processing unit 167, a packet transfer processing unit 168, and a load distribution processing unit 169.

ネットワークIF161は、負荷分散装置16が接続されているネットワーク14とのインタフェースをなす。ネットワークIF161は、IF入力部161aと、IF出力部161bとを有する。データリンク層処理部162は、データリンク入力部162aと、データリンク出力部162bとを有する。IP層処理部163は、IP入力部163aと、IP出力部163bとを有する。   The network IF 161 serves as an interface with the network 14 to which the load balancer 16 is connected. The network IF 161 includes an IF input unit 161a and an IF output unit 161b. The data link layer processing unit 162 includes a data link input unit 162a and a data link output unit 162b. The IP layer processing unit 163 includes an IP input unit 163a and an IP output unit 163b.

次に、負荷分散装置16内の各部の動作を順次説明する。ネットワークIF161内のIF入力部161aは、ネットワーク14を介して入力された通信データ(通信パケット)を全てデータリンク層処理部162内のデータリンク入力部162aに送る。ネットワークIF161内のIF出力部161bは、データリンク層処理部162内のデータリンク出力部162bから出力された通信パケットをネットワーク14へ送信する。   Next, the operation of each unit in the load balancer 16 will be described sequentially. The IF input unit 161 a in the network IF 161 sends all communication data (communication packets) input via the network 14 to the data link input unit 162 a in the data link layer processing unit 162. The IF output unit 161 b in the network IF 161 transmits the communication packet output from the data link output unit 162 b in the data link layer processing unit 162 to the network 14.

ここで、負荷分散装置16内のデータリンク入力部162aの動作について、図9のフローチャート及び図10のデータフォーマットを参照して説明する。まず、IF入力部161aからデータリンク入力部162aに入力される通信パケット(データリンク層パケット)は、データフォーマット上、図10(a)に示すパケット101と図10(b)に示すパケット102とに大別される。パケット101は、データリンク層ヘッダと、IPヘッダと、IPペイロードとを含む。IPヘッダとIPペイロードとから構成されるデータをIPパケットと呼ぶ。一方、パケット102は、データリンク層ヘッダと、ARP要求/応答(ARP要求またはARP応答)のデータとを含むARPパケット(ARP要求/応答パケット)である。パケット101及び102のデータリンク層ヘッダは、いずれも宛先MACアドレス及び送信元MACアドレスを含む。   Here, the operation of the data link input unit 162a in the load balancer 16 will be described with reference to the flowchart of FIG. 9 and the data format of FIG. First, a communication packet (data link layer packet) input from the IF input unit 161a to the data link input unit 162a includes a packet 101 shown in FIG. 10A and a packet 102 shown in FIG. It is divided roughly into. The packet 101 includes a data link layer header, an IP header, and an IP payload. Data composed of an IP header and an IP payload is called an IP packet. On the other hand, the packet 102 is an ARP packet (ARP request / response packet) including a data link layer header and data of an ARP request / response (ARP request or ARP response). Both the data link layer headers of the packets 101 and 102 include a destination MAC address and a source MAC address.

データリンク入力部162aは、IF入力部161aによって入力された通信パケットを受信すると、当該パケット(入力パケット)が図10(b)に示すフォーマットのARPパケット102であるかを判別する(ステップS51)。もし、入力パケットがARPパケット102であるならば、データリンク入力部162aは、当該ARPパケット102からデータリンク層ヘッダを除いた部分(ARP要求/応答)を、図10(c)に示すARPパケット103として代理ARP処理部167に送る(ステップS52)。   When the data link input unit 162a receives the communication packet input by the IF input unit 161a, the data link input unit 162a determines whether the packet (input packet) is the ARP packet 102 having the format shown in FIG. 10B (step S51). . If the input packet is the ARP packet 102, the data link input unit 162a converts the ARP packet 102 from which the data link layer header is removed (ARP request / response) into the ARP packet shown in FIG. 103 is sent to the proxy ARP processing unit 167 (step S52).

一方、入力パケットがARPパケット102でないならば(ステップS51)、つまり図10(a)に示すフォーマットのパケット101であるならば、データリンク入力部162aは当該パケット101が、(図7に示すパケット転送要請パケット71に相当する)パケット転送要請パケットであるかを判定する(ステップS53)。もし、パケット101がパケット転送要請パケットであるならば、データリンク入力部162aは当該パケット101を、そのまま図10(d)に示すパケット転送要請パケット104としてパケット転送広告処理部165に送る(ステップS54)。パケット転送要請パケット104のIPペイロードは、パケット転送要請データを含む。   On the other hand, if the input packet is not the ARP packet 102 (step S51), that is, if it is the packet 101 in the format shown in FIG. 10A, the data link input unit 162a indicates that the packet 101 is the packet shown in FIG. It is determined whether the packet is a packet transfer request packet (corresponding to the transfer request packet 71) (step S53). If the packet 101 is a packet transfer request packet, the data link input unit 162a sends the packet 101 as it is to the packet transfer advertisement processing unit 165 as the packet transfer request packet 104 shown in FIG. 10D (step S54). ). The IP payload of the packet transfer request packet 104 includes packet transfer request data.

また、パケット101がパケット転送要請パケットでもないならば(ステップS53)、データリンク入力部162aは当該パケット101が、(図7に示す登録要求パケット73に相当する)登録要求パケットであるかを判定する(ステップS55)。もし、パケット101が登録要求パケットであるならば、データリンク入力部162aは当該パケット101を、そのまま図10(e)に示す登録要求パケット105として登録処理部166に送る(ステップS56)。登録要求パケット105のIPペイロードには、有効期限(の値)を含む登録要求データが設定される。   If the packet 101 is not a packet transfer request packet (step S53), the data link input unit 162a determines whether the packet 101 is a registration request packet (corresponding to the registration request packet 73 shown in FIG. 7). (Step S55). If the packet 101 is a registration request packet, the data link input unit 162a sends the packet 101 as it is to the registration processing unit 166 as the registration request packet 105 shown in FIG. 10E (step S56). Registration request data including an expiration date (value) is set in the IP payload of the registration request packet 105.

これに対し、パケット101が登録要求パケットでもないならば(ステップS55)、データリンク入力部162aは当該パケット101からデータリンク層ヘッダを除いた部分を、図10(f)に示すIPパケット106としてパケット転送処理部168に送る(ステップS57)。   On the other hand, if the packet 101 is not a registration request packet (step S55), the data link input unit 162a removes the data link layer header from the packet 101 as the IP packet 106 shown in FIG. The packet is sent to the packet transfer processing unit 168 (step S57).

次に、負荷分散装置16内のデータリンク出力部162bの動作について、図11のフローチャート及び図12のデータフォーマットを参照して説明する。まずデータリンク出力部162bは、IP出力部163b、パケット転送広告処理部165、登録処理部166、代理ARP処理部167またはパケット転送処理部168から、図12に示すMACアドレス111とIPパケッ112とを受け取る。このMACアドレス111には、送信先MACアドレスが用いられる。データリンク出力部162bは、MACアドレス111とIPパケット112とから、データリンク層での通信に用いられる図12に示す通信パケット113を生成する(ステップS61)。このパケット113は、データリンク層ヘッダと、上記IPパケット112とから構成される。データリンク層ヘッダは、宛先MACアドレスと、送信元MACアドレスとを含む。データリンク出力部162bは生成された通信パケットをIF出力部161bに送る(ステップS62)。   Next, the operation of the data link output unit 162b in the load balancer 16 will be described with reference to the flowchart of FIG. 11 and the data format of FIG. First, the data link output unit 162b receives the MAC address 111 and the IP packet 112 shown in FIG. 12 from the IP output unit 163b, the packet transfer advertisement processing unit 165, the registration processing unit 166, the proxy ARP processing unit 167, or the packet transfer processing unit 168. Receive. As the MAC address 111, a transmission destination MAC address is used. The data link output unit 162b generates a communication packet 113 shown in FIG. 12 used for communication in the data link layer from the MAC address 111 and the IP packet 112 (step S61). The packet 113 includes a data link layer header and the IP packet 112. The data link layer header includes a destination MAC address and a source MAC address. The data link output unit 162b sends the generated communication packet to the IF output unit 161b (step S62).

次に負荷分散装置16内のパケット転送広告処理部165の動作について、図13のフローチャート及び図14のデータフォーマットを参照して説明する。パケット転送広告処理部165は、データリンク入力部162aから、図14に示すデータリンク層ヘッダを含むパケット転送要請パケット141を受信する。パケット転送広告処理部165は、受信されたパケット転送要請パケット141の送信元IPアドレス(実サーバ12-iのIPアドレス)を使用して、(図7に示すパケット転送広告パケット72に相当する)図14に示すパケット転送広告パケット143を生成する(ステップS71)。このパケット転送広告パケット143の宛先IPアドレスには、パケット転送要請パケット141の送信元IPアドレスが用いられ、当該パケット転送広告パケット143の送信元IPアドレスには負荷分散装置16のIPアドレスが用いられる。パケット転送広告処理部165は、生成されたパケット転送広告パケット143を、パケット転送要請パケット141の送信元に送信するため、当該パケット転送広告パケット143と、パケット転送要請パケット141のデータリンク層ヘッダに含まれている送信元MACアドレス(実サーバ12-iのMACアドレス)とを、データリンク出力部162bに送る(ステップS72)。   Next, the operation of the packet transfer advertisement processing unit 165 in the load balancer 16 will be described with reference to the flowchart of FIG. 13 and the data format of FIG. The packet transfer advertisement processing unit 165 receives the packet transfer request packet 141 including the data link layer header shown in FIG. 14 from the data link input unit 162a. The packet transfer advertisement processing unit 165 uses the source IP address (IP address of the real server 12-i) of the received packet transfer request packet 141 (corresponding to the packet transfer advertisement packet 72 shown in FIG. 7). The packet transfer advertisement packet 143 shown in FIG. 14 is generated (step S71). The source IP address of the packet transfer request packet 141 is used as the destination IP address of the packet transfer advertisement packet 143, and the IP address of the load balancer 16 is used as the source IP address of the packet transfer advertisement packet 143. . The packet transfer advertisement processing unit 165 transmits the generated packet transfer advertisement packet 143 to the transmission source of the packet transfer request packet 141, so that the packet transfer advertisement packet 143 and the data link layer header of the packet transfer request packet 141 are displayed. The included source MAC address (the MAC address of the real server 12-i) is sent to the data link output unit 162b (step S72).

次に、負荷分散装置16内の登録処理部166の登録要求入力時の動作について、図15のフローチャート、図16の登録テーブルTBL1のデータ構造例及び図17のデータフォーマットを参照して説明する。登録処理部166は、データリンク入力部162aから(図7に示す登録要求パケット73または図10に示す登録要求パケット105に相当する)図17に示す登録要求パケット171が入力された場合、当該登録要求パケット171の示す登録要求が正当であるかを判定する(ステップS81)。登録要求が正当でない場合、登録処理部166は登録失敗を判定し、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとの対を含むアドレス情報を登録テーブルTBL1から削除する(ステップS82)。登録要求が正当でない登録要求パケット171の例としては、予め定められた上限値(有効期限の最大値)を超える有効期限の値を含むものが挙げられる。なお、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとに一致するMACアドレスとIPアドレスとを含むアドレス情報が登録テーブルTBL1に登録されていない場合、ステップS82では何も行われない。   Next, the operation at the time of registration request input of the registration processing unit 166 in the load balancer 16 will be described with reference to the flowchart in FIG. 15, the data structure example of the registration table TBL1 in FIG. 16, and the data format in FIG. When the registration request packet 171 shown in FIG. 17 is input from the data link input unit 162a (corresponding to the registration request packet 73 shown in FIG. 7 or the registration request packet 105 shown in FIG. 10), the registration processing unit 166 performs the registration. It is determined whether the registration request indicated by the request packet 171 is valid (step S81). If the registration request is not valid, the registration processing unit 166 determines registration failure and deletes the address information including the pair of the source MAC address and source IP address set in the registration request packet 171 from the registration table TBL1. (Step S82). As an example of the registration request packet 171 whose registration request is not valid, one including an expiration date value exceeding a predetermined upper limit (maximum expiration date) can be cited. If the address information including the MAC address and the IP address that match the transmission source MAC address and the transmission source IP address set in the registration request packet 171 is not registered in the registration table TBL1, nothing is performed in step S82. Not done.

一方、登録要求パケット171の示す当該登録要求が正当である場合、登録処理部166は、登録要求パケット171中の登録要求データに含まれている有効期限の値が0であるかを判定する(ステップS83)。もし、有効期限の値が0であるならば、登録処理部166は、登録要求パケット171に設定されている送信元MACアドレス(実サーバ12-iのMACアドレス)と送信元IPアドレス(実サーバ12-iの通信パケット送受信用のIPアドレス、つまり実サーバ12-1乃至12-3に共通の通信パケット送受信用のIPアドレス)との対を含むアドレス情報を登録テーブルTBL1から削除する(ステップS82)。このことは、有効期限の値が0の登録要求パケット171が登録解除を要求するパケット(登録解除要求パケット)として用いられることを意味する。したがって実サーバ12-iは自身の障害が発生した場合に、この登録解除要求パケットを負荷分散装置16に送信して当該実サーバ12-iの障害を通知することで、クライアント11からの通信データが負荷分散装置16によって当該実サーバ12-iに転送されるのを防止できる。   On the other hand, when the registration request indicated by the registration request packet 171 is valid, the registration processing unit 166 determines whether the value of the expiration date included in the registration request data in the registration request packet 171 is 0 ( Step S83). If the value of the expiration date is 0, the registration processing unit 166 sends the source MAC address (the MAC address of the real server 12-i) and the source IP address (the real server) set in the registration request packet 171. Address information including a pair with the IP address for 12-i communication packet transmission / reception, that is, the IP address for communication packet transmission / reception common to the real servers 12-1 to 12-3 is deleted from the registration table TBL1 (step S82). ). This means that the registration request packet 171 whose expiration date is 0 is used as a packet for requesting registration cancellation (registration cancellation request packet). Therefore, when the real server 12-i has its own failure, the communication data from the client 11 is transmitted by sending this registration cancellation request packet to the load balancer 16 to notify the failure of the real server 12-i. Can be prevented from being transferred to the real server 12-i by the load balancer 16.

これに対して有効期限の値が0でないならば、登録処理部166は登録成功を判定し、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとの対を含むアドレス情報を登録テーブルTBL1に追加登録する(ステップS84)。このアドレス情報は、登録要求パケット171の登録要求データ(IPペイロード)に含まれている有効期限のデータを含む。このように登録テーブルTBL1のエントリのデータは、MACアドレス、IPアドレス及び有効期限の項目を含む(図16参照)。有効期限は、負荷分散装置16による負荷分散の対象である実サーバにパケットを転送する期間を意味し、有効期限が超過すると当該有効期限を含むアドレス情報中のMACアドレスの実サーバに対するパケットの転送が停止される。なお、登録要求パケット171に設定されている送信元MACアドレスと送信元IPアドレスとに一致するMACアドレスとIPアドレスとを含むアドレス情報が既に登録テーブルTBL1に登録されている場合には、上記ステップS84では、当該アドレス情報の有効期限の値を、登録要求パケット171中の登録要求データに含まれている有効期限の値に変更(更新)する処理が行われる。   On the other hand, if the value of the expiration date is not 0, the registration processing unit 166 determines registration success, and address information including a pair of the source MAC address and the source IP address set in the registration request packet 171. Are additionally registered in the registration table TBL1 (step S84). This address information includes expiration date data included in the registration request data (IP payload) of the registration request packet 171. In this way, the entry data of the registration table TBL1 includes items of MAC address, IP address, and expiration date (see FIG. 16). The term of validity means a period during which a packet is transferred to a real server that is a target of load distribution by the load balancer 16. Is stopped. If the address information including the MAC address and IP address that match the source MAC address and source IP address set in the registration request packet 171 is already registered in the registration table TBL1, the above steps In S84, processing for changing (updating) the expiration date value of the address information to the expiration date value included in the registration request data in the registration request packet 171 is performed.

登録処理部166は、ステップS82またはS84を実行すると、登録要求パケット171の送信元IPアドレス(実サーバ12-iのアドレス)を使用して、(図7に示す登録応答パケット74のIPパケットに相当する)図17に示す登録応答パケット(IPパケット)173を生成する(ステップS85)。この登録応答パケット173のIPペイロードには、登録結果のデータを含む登録応答データが設定される。ここで、登録失敗の場合には、登録結果のデータとして有効期限に問題があることを示すデータが用いられる。これに対し、登録成功の場合には、登録結果のデータとして登録成功を示すデータが用いられる。また、有効期限の値が0の登録要求パケット171に対応する登録応答パケット173では、登録結果のデータとして登録解除成功を示すデータが用いられる。   When executing the step S82 or S84, the registration processing unit 166 uses the transmission source IP address (the address of the real server 12-i) of the registration request packet 171 (to the IP packet of the registration response packet 74 shown in FIG. 7). A registration response packet (IP packet) 173 shown in FIG. 17 (corresponding) is generated (step S85). In the IP payload of the registration response packet 173, registration response data including registration result data is set. Here, in the case of registration failure, data indicating that there is a problem with the expiration date is used as registration result data. On the other hand, in the case of successful registration, data indicating successful registration is used as registration result data. Further, in the registration response packet 173 corresponding to the registration request packet 171 whose expiration date is 0, data indicating successful registration cancellation is used as registration result data.

登録応答パケット173の宛先IPアドレスには、登録要求パケット171の送信元IPアドレス(実サーバ12-iのIPアドレス)が用いられ、当該登録応答パケット173の送信元IPアドレスには負荷分散装置16のIPアドレスが用いられる。登録処理部166は、生成された登録応答パケット173を、登録要求パケット171の送信元に送信するため、当該登録応答パケット173と、図17に示す登録要求パケット171のデータリンク層ヘッダに含まれている送信元MACアドレス172、つまり登録要求パケット171の送信元MACアドレス172とを、データリンク出力部162bに送る(ステップS86)。   The source IP address of the registration request packet 171 (the IP address of the real server 12-i) is used as the destination IP address of the registration response packet 173, and the load balancer 16 is used as the source IP address of the registration response packet 173. IP address is used. Since the registration processing unit 166 transmits the generated registration response packet 173 to the transmission source of the registration request packet 171, the registration processing unit 166 includes the registration response packet 173 and the data link layer header of the registration request packet 171 illustrated in FIG. 17. The transmission source MAC address 172, that is, the transmission source MAC address 172 of the registration request packet 171 is sent to the data link output unit 162b (step S86).

図16の登録テーブルTBL1の例では、実サーバのIPアドレスとして、既に述べられている“192.168.10.11”の他に“192.168.10.110”も存在する。その理由について、図18を参照して説明する。   In the example of the registration table TBL1 in FIG. 16, “192.168.10.110” exists in addition to “192.168.10.11” already described as the IP address of the real server. The reason will be described with reference to FIG.

本実施形態では、負荷分散装置16による負荷分散の対象となる実サーバ群(実サーバの集合)として、図1中の実サーバ12-1乃至12-3を含む実サーバ群#1の他に、図18に示すように実サーバ群#2も存在するものとする。但し、図18では作図の都合上、実サーバ12-3は省略されている。実サーバ群#2は、実サーバ12-5及び12-6を含む。実サーバ群#1に属する実サーバ12-1及び12-2等は、それぞれ共通の通信パケット送受信用のIPアドレス“192.168.10.11”を持つ。一方、実サーバ群#2に属する実サーバ12-5及び12-6等は、それぞれ共通の通信パケット送受信用のIPアドレス“192.168.10.110”を持つ。   In the present embodiment, as a real server group (collection of real servers) to be subjected to load balancing by the load balancer 16, in addition to the real server group # 1 including the real servers 12-1 to 12-3 in FIG. As shown in FIG. 18, it is assumed that the real server group # 2 also exists. However, in FIG. 18, the real server 12-3 is omitted for the sake of drawing. The real server group # 2 includes real servers 12-5 and 12-6. The real servers 12-1 and 12-2 and the like belonging to the real server group # 1 each have a common IP address “192.168.10.11” for communication packet transmission / reception. On the other hand, the real servers 12-5 and 12-6, etc., belonging to the real server group # 2 each have a common IP address “192.168.10.110” for transmitting and receiving communication packets.

図18の例では、クライアント11からIPアドレス“192.168.10.11”宛ての通信パケット(通信データ)が矢印181で示されるように送信された場合、負荷分散装置16は当該通信データを実サーバ群#1に属するいずれかの実サーバに転送する。これに対して、クライアント11からIPアドレス“192.168.10.110”宛ての通信パケット(通信データ)が矢印182で示されるように送信された場合には、負荷分散装置16は当該通信データを実サーバ群#2に属するいずれかの実サーバに転送する。このように、実サーバ群毎に、その実サーバ群に属する全ての実サーバに共通の固有のIPアドレスが設定されることで、負荷分散装置16は各実サーバ群をそれぞれ負荷分散の対象として扱うことができる。   In the example of FIG. 18, when a communication packet (communication data) addressed to the IP address “192.168.10.11” is transmitted from the client 11 as indicated by the arrow 181, the load balancer 16 transmits the communication data to the real server group # 1 to any real server belonging to 1. On the other hand, when a communication packet (communication data) addressed to the IP address “192.168.10.110” is transmitted from the client 11 as indicated by the arrow 182, the load balancer 16 transmits the communication data to the real server group. Transfer to any real server belonging to # 2. In this way, for each real server group, a unique IP address common to all real servers belonging to the real server group is set, so that the load balancer 16 treats each real server group as a load distribution target. be able to.

登録処理部166は、定期的に登録テーブルTBL1を監視し、有効期限が0となっているエントリデータ(アドレス情報)を当該登録テーブルTBL1から削除する。この登録処理部166による登録テーブルTBL1の定期監視処理について図19のフローチャートを参照して説明する。ここでは、登録テーブルTBL1に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルTBL1の監視が1秒毎に実行されるものとする。   The registration processing unit 166 periodically monitors the registration table TBL1, and deletes entry data (address information) whose expiration date is 0 from the registration table TBL1. The regular monitoring process of the registration table TBL1 by the registration processing unit 166 will be described with reference to the flowchart of FIG. Here, it is assumed that the second is used as the unit of the expiration date of the entry data registered in the registration table TBL1, and that the table TBL1 is monitored every second.

登録処理部166は登録テーブルTBL1からエントリデータ(アドレス情報)を1つ取り出す(ステップS91)。登録処理部166は取り出されたデータに含まれている有効期限の値が0であるかを判定する(ステップS92)。   The registration processing unit 166 takes out one entry data (address information) from the registration table TBL1 (step S91). The registration processing unit 166 determines whether the expiration date value included in the extracted data is 0 (step S92).

もし、有効期限の値が0(0秒)の場合、登録処理部166は登録テーブルTBL1から該当するデータを削除する(ステップS93)。これに対し、有効期限の値が0でない場合、登録処理部166は登録テーブルTBL1の該当するデータに含まれている有効期限の値を1(1秒)減らす(ステップS94)。
登録処理部166は、上述の処理を、登録テーブルTBL1の全エントリデータに対して行い(ステップS95)、処理を終了する。
If the value of the expiration date is 0 (0 seconds), the registration processing unit 166 deletes the corresponding data from the registration table TBL1 (step S93). On the other hand, if the value of the expiration date is not 0, the registration processing unit 166 decreases the value of the expiration date included in the corresponding data in the registration table TBL1 by 1 (1 second) (step S94).
The registration processing unit 166 performs the above-described processing for all entry data in the registration table TBL1 (step S95), and ends the processing.

さて実サーバ12-iは、登録要求パケットに対して負荷分散装置16から返される登録応答パケットから登録成功が確認できた場合、前記したように登録の有効期限以内の間隔で定期的に登録要求パケットを負荷分散装置16に送信する。これにより実サーバ12-iは、登録テーブルTBL1から当該実サーバ12-iのMACアドレスとIPアドレスとを含むデータが削除されるのを防ぎ、当該実サーバ12-iの登録を維持することができる。もし、実サーバ12-iに障害が発生して、登録要求パケットを定期的に送信することができなくなると、当該実サーバ12-iのMACアドレスとIPアドレスとを含むデータの登録有効期限が切れるため、負荷分散装置16の登録処理部166は登録テーブルTBL1から当該データを削除する(ステップS93)。つまり負荷分散装置16は、障害が発生したために登録要求を定期的に送信できなくなった実サーバ12-iを検知できる。これにより、障害の発生した実サーバ12-iにクライアント11からの通信データを転送することが防止できる。   When the real server 12-i confirms the registration success from the registration response packet returned from the load distribution device 16 in response to the registration request packet, the real server 12-i periodically requests registration at intervals within the registration expiration period as described above. The packet is transmitted to the load balancer 16. As a result, the real server 12-i can prevent the data including the MAC address and IP address of the real server 12-i from being deleted from the registration table TBL1, and maintain the registration of the real server 12-i. it can. If a failure occurs in the real server 12-i and the registration request packet cannot be transmitted periodically, the registration expiration date of the data including the MAC address and IP address of the real server 12-i is set. Since it expires, the registration processing unit 166 of the load balancer 16 deletes the data from the registration table TBL1 (step S93). That is, the load balancer 16 can detect the real server 12-i that cannot regularly transmit a registration request due to a failure. Thereby, it is possible to prevent the communication data from the client 11 from being transferred to the real server 12-i where the failure has occurred.

次に、負荷分散装置16内の代理ARP処理部167の動作について、図20のフローチャート及び図21のデータフォーマットを参照して説明する。代理ARP処理部167はデータリンク入力部162aから(図10に示すARPパケット103に相当する)ARPパケットを受信した場合、当該ARPパケットがARP応答パケットであるかを判定する(ステップS101)。もし、ARP応答パケットの場合、代理ARP処理部167は当該ARP応答パケットをIP入力部163aに送り、通常のTCP/IP通信データとして処理させる(ステップS102)。   Next, the operation of the proxy ARP processing unit 167 in the load balancer 16 will be described with reference to the flowchart of FIG. 20 and the data format of FIG. When proxy ARP processing unit 167 receives an ARP packet (corresponding to ARP packet 103 shown in FIG. 10) from data link input unit 162a, it determines whether the ARP packet is an ARP response packet (step S101). If the packet is an ARP response packet, the proxy ARP processing unit 167 sends the ARP response packet to the IP input unit 163a to be processed as normal TCP / IP communication data (step S102).

これに対し、ARPパケットがARP応答パケットでない場合、つまり図21に示すARP要求パケット211の場合、代理ARP処理部167は、当該ARP要求パケット211が、負荷分散装置16のIPアドレスに対するARP要求を示しているかを判定する(ステップS103)。このステップS103の判定は、ARP要求パケット211のターゲットIPアドレスが負荷分散装置16のアドレスと一致するかを判定することにより行われる。   In contrast, if the ARP packet is not an ARP response packet, that is, the ARP request packet 211 shown in FIG. 21, the proxy ARP processing unit 167 sends an ARP request for the IP address of the load balancer 16 to the ARP request packet 211. It is determined whether it is shown (step S103). The determination in step S103 is performed by determining whether the target IP address of the ARP request packet 211 matches the address of the load balancer 16.

もし、ARP要求パケット211のターゲットIPアドレスが負荷分散装置16のアドレスと一致しているならば、代理ARP処理部167は当該ARP要求パケット211をそのままIP入力部163aに送り、通常のTCP/IP通信データとして処理させる(ステップS102)。   If the target IP address of the ARP request packet 211 matches the address of the load balancer 16, the proxy ARP processing unit 167 sends the ARP request packet 211 as it is to the IP input unit 163a, and performs normal TCP / IP It is processed as communication data (step S102).

一方、ARP要求パケット211のターゲットIPアドレスが負荷分散装置16のアドレスと一致していない場合、代理ARP処理部167は実サーバ12-iのIPアドレス(通信パケットの送受信用のIPアドレス、例えば“192.168.10.11”)に対するARP要求であるかを判定するために、登録テーブルTBL1上のIPアドレスをチェックする(ステップS104)。このステップS104において、代理ARP処理部167は、ARP要求パケット211のターゲットIPアドレスと一致するIPアドレスを含むデータを登録テーブルTBL1から探す。   On the other hand, if the target IP address of the ARP request packet 211 does not match the address of the load balancer 16, the proxy ARP processing unit 167 receives the IP address of the real server 12-i (IP address for transmission / reception of communication packets, eg, “ In order to determine whether it is an ARP request for 192.168.10.11 "), the IP address on the registration table TBL1 is checked (step S104). In step S104, the proxy ARP processing unit 167 searches the registration table TBL1 for data including an IP address that matches the target IP address of the ARP request packet 211.

もし、ARP要求パケット211のターゲットIPアドレスと一致するIPアドレスを含むデータが存在する場合(ステップS105)、代理ARP処理部167はARP要求パケット211に対する図21に示すARP応答パケット213を作成する(ステップS106)。このARP応答パケット213には、送信元MACアドレスに負荷分散装置16のMACアドレスが設定され、送信元IPアドレスに登録テーブルTBL1で一致が判定されたIPアドレスが設定される。また、ターゲットMACアドレス及びターゲットIPアドレスには、それぞれARP要求パケット211の送信元MACアドレス及び送信元IPアドレスが設定される。   If there is data including an IP address that matches the target IP address of the ARP request packet 211 (step S105), the proxy ARP processing unit 167 creates an ARP response packet 213 shown in FIG. 21 for the ARP request packet 211 ( Step S106). In the ARP response packet 213, the MAC address of the load balancer 16 is set as the source MAC address, and the IP address determined to match in the registration table TBL1 is set as the source IP address. Further, the source MAC address and the source IP address of the ARP request packet 211 are set in the target MAC address and the target IP address, respectively.

代理ARP処理部167はARP応答パケット213を作成すると、当該ARP応答パケット213を、ARP要求パケット211の送信元に送信するため、当該ARP応答パケット213と、ARP要求パケット211の送信元MACアドレス212とを、データリンク出力部162bに送る(ステップS107)。   When the proxy ARP processing unit 167 creates the ARP response packet 213, the proxy ARP processing unit 167 transmits the ARP response packet 213 to the transmission source of the ARP request packet 211. Therefore, the transmission source MAC address 212 of the ARP response packet 213 and the ARP request packet 211 is transmitted. Are sent to the data link output unit 162b (step S107).

一方、ARP要求パケット211のターゲットIPアドレスと一致するIPアドレスを含むデータが存在しない場合(ステップS105)、代理ARP処理部167はARP要求パケット211を破棄して処理を終了する(ステップS108)。   On the other hand, when there is no data including an IP address that matches the target IP address of the ARP request packet 211 (step S105), the proxy ARP processing unit 167 discards the ARP request packet 211 and ends the processing (step S108).

次に、負荷分散装置16内のパケット転送処理部168の動作について、図22のフローチャート及び図23のデータフォーマットを参照して説明する。パケット転送処理部168はデータリンク入力部162aから(図10のIPパケット106に相当する)図23(a)に示すIPパケット231を受信した場合、当該パケット231の宛先IPアドレスをチェックし、負荷分散装置16宛てのパケットであるか否か(つまり実サーバに転送するパケットであるか)を判定する(ステップS111)。   Next, the operation of the packet transfer processing unit 168 in the load balancer 16 will be described with reference to the flowchart of FIG. 22 and the data format of FIG. When the packet transfer processing unit 168 receives the IP packet 231 shown in FIG. 23A (corresponding to the IP packet 106 in FIG. 10) from the data link input unit 162a, the packet transfer processing unit 168 checks the destination IP address of the packet 231 and loads It is determined whether or not the packet is destined for the distribution device 16 (that is, whether the packet is transferred to the real server) (step S111).

もし、IPパケット231が負荷分散装置16宛てであった場合、パケット転送処理部168は当該IPパケット231をそのままIP入力部163a送り、通常のTCP/IP通信データとして処理させる(ステップS112)。   If the IP packet 231 is addressed to the load balancer 16, the packet transfer processing unit 168 sends the IP packet 231 as it is and processes it as normal TCP / IP communication data (step S112).

一方、IPパケット231が負荷分散装置16宛てではなくて、実サーバに転送するパケットである場合(ステップS111)、パケット転送処理部168は転送先(負荷分散先)の実サーバ12-iのMACアドレスを取得するために、当該IPパケット231を図23(b)に示すIPパケット232として負荷分散処理部169に送る(ステップS113)。   On the other hand, when the IP packet 231 is not destined for the load balancer 16 but is a packet to be transferred to the real server (step S111), the packet transfer processing unit 168 determines the MAC of the real server 12-i at the transfer destination (load distribution destination). In order to obtain the address, the IP packet 231 is sent to the load distribution processing unit 169 as the IP packet 232 shown in FIG. 23B (step S113).

パケット転送処理部168は、負荷分散処理部169から転送先のMACアドレスを図23に示すMACアドレス233として取得できた場合(ステップS114)、IPパケット231を図23(c)に示すIPパケット234として、取得されたMACアドレス233と共にデータリンク出力部162bに送る(ステップS115)。これに対し、転送先のMACアドレスの取得に失敗した場合、パケット転送処理部168はIPパケット231を破棄して処理を終了する(ステップS116)。   When the packet transfer processing unit 168 can acquire the transfer destination MAC address as the MAC address 233 shown in FIG. 23 from the load distribution processing unit 169 (step S114), the IP packet 231 is changed to the IP packet 234 shown in FIG. As well as the acquired MAC address 233 and sent to the data link output unit 162b (step S115). On the other hand, when acquisition of the MAC address of the transfer destination fails, the packet transfer processing unit 168 discards the IP packet 231 and ends the process (step S116).

このように本実施形態においては、負荷分散装置16をクライアント11からの実サーバ12-i宛ての通信データの中継だけでなく(ステップS115)、自身のアドレスで通常の通信を行わせることもできる(ステップS112)。   Thus, in this embodiment, the load balancer 16 can not only relay communication data addressed to the real server 12-i from the client 11 (step S115), but can also perform normal communication with its own address. (Step S112).

次に、負荷分散装置16内の負荷分散処理部169の動作について、図24のフローチャート及び図25のセッション管理テーブルTBL2のデータ構造例を参照して説明する。負荷分散処理部169は、パケット転送処理部168から図23(b)のIPパケット232が送られると、当該IPパケット232の宛先IPアドレス(を含むアドレス情報)が登録テーブルTBL1上に存在するかをチェックすることにより、当該IPパケット232が負荷分散の対象となるパケットかを判定する(ステップS121)。   Next, the operation of the load distribution processing unit 169 in the load distribution apparatus 16 will be described with reference to the flowchart in FIG. 24 and the data structure example of the session management table TBL2 in FIG. When the IP packet 232 in FIG. 23B is sent from the packet transfer processing unit 168, the load distribution processing unit 169 determines whether the destination IP address (including address information) of the IP packet 232 exists on the registration table TBL1. Is checked to determine whether the IP packet 232 is a load distribution target packet (step S121).

もし、IPパケット232の宛先アドレスが登録テーブルTBL1上に存在しない場合、パケット転送処理部168は当該IPパケット232が実サーバに転送されないようにするため、パケット転送処理部168にエラーを返して処理を終了する(ステップS122)。   If the destination address of the IP packet 232 does not exist on the registration table TBL1, the packet transfer processing unit 168 returns an error to the packet transfer processing unit 168 to prevent the IP packet 232 from being transferred to the real server. Is finished (step S122).

一方、IPパケット232の宛先アドレスが登録テーブルTBL1上に存在する場合(ステップS121)、負荷分散処理部169は当該IPパケット232の転送先となる実サーバ12-iのMACアドレスを取得するため、セッション管理テーブルTBL2をチェックする(ステップS123)。   On the other hand, when the destination address of the IP packet 232 exists on the registration table TBL1 (step S121), the load distribution processing unit 169 acquires the MAC address of the real server 12-i that is the transfer destination of the IP packet 232. The session management table TBL2 is checked (step S123).

セッション管理テーブルTBL2はセッション管理のために用意される。セッション管理テーブルTBL2のエントリデータ(エントリの集合)は、図25に示すように、実サーバ(実サーバ群)の通信パケット送受信用のIPアドレス別に用意され、クライアントのアドレス、実サーバのMACアドレス及び有効期限の値を持つものとする。   The session management table TBL2 is prepared for session management. As shown in FIG. 25, entry data (a set of entries) in the session management table TBL2 is prepared for each IP address for communication packet transmission / reception of a real server (real server group), and includes a client address, a real server MAC address, and It shall have an expiration value.

セッション管理とは、コネクション型通信の場合、セッションが切れるまでの間同一のサーバに通信データを転送する必要があるため、当該セッションを保持しておく有効期限を設けて管理することを指す。有効期限の間に、クライアントからパケットの送信が無ければ、負荷分散処理部169はセッションが切れたと判断し、セッション管理テーブルTBL2から該当するエントリデータを削除する。またパケット転送処理部168から送られるIPパケット232が、TCPのFINパケットのように、明示的にセッション(コネクション)を停止(切断)するパケットの場合にも、負荷分散処理部169はセッションが切れたと判断して、セッション管理テーブルTBL2から該当するエントリデータを削除する。   In the case of connection-type communication, session management means that communication data needs to be transferred to the same server until the session expires, and therefore management is performed with an expiration date for retaining the session. If no packet is transmitted from the client during the expiration date, the load distribution processing unit 169 determines that the session has expired, and deletes the corresponding entry data from the session management table TBL2. Even when the IP packet 232 sent from the packet transfer processing unit 168 is a packet that explicitly stops (disconnects) a session (connection), such as a TCP FIN packet, the load distribution processing unit 169 disconnects the session. The corresponding entry data is deleted from the session management table TBL2.

さて、上記ステップS123において、負荷分散処理部169は、セッション管理テーブルTBL2のうち、パケット転送処理部168から送られるIPパケット232の宛先アドレスに該当するエントリの集合から、当該IPパケット232の送信元IPアドレスがクライアントのIPアドレスと一致するエントリのデータ(アドレス情報)を検索する。   In step S123, the load distribution processing unit 169 transmits the source of the IP packet 232 from the set of entries corresponding to the destination address of the IP packet 232 sent from the packet transfer processing unit 168 in the session management table TBL2. The data (address information) of the entry whose IP address matches the client IP address is searched.

もし、セッション管理テーブルTBL2に該当するエントリのデータ(アドレス情報)が存在する場合(ステップS123)、負荷分散処理部169は、パケット転送処理部168に転送先のMACアドレスを通知するため、当該エントリのデータからIPパケット232の送信元IPアドレスと対をなす実サーバ12-iのMACアドレスを取得する(ステップS124)。次に負荷分散処理部169は、IPパケット232がTCPのFINパケットであるかを判定する(ステップS125)。   If there is data (address information) corresponding to the entry in the session management table TBL2 (step S123), the load distribution processing unit 169 notifies the packet transfer processing unit 168 of the MAC address of the transfer destination. The MAC address of the real server 12-i paired with the transmission source IP address of the IP packet 232 is acquired from the data (step S124). Next, the load distribution processing unit 169 determines whether the IP packet 232 is a TCP FIN packet (step S125).

もし、IPパケット232がFINパケットである場合、負荷分散処理部169はセッション管理テーブルTBL2から該当するエントリのデータを削除する(ステップS126)。これに対し、IPパケット232がFINパケットでない場合、負荷分散処理部169はセッション管理テーブルTBL2の該当するエントリのデータに含まれている有効期限の値を初期値に設定する(ステップS127)。この初期値は必ずしも固定値である必要はなく、負荷分散装置16で変更可能なパラメータとしても良い。例えば、負荷分散装置16の管理者が環境に合わせて手動にて初期値を設定する構成であっても構わない。またこの初期値は、後述するセッション管理テーブル登録時に使用しても良い。   If the IP packet 232 is a FIN packet, the load distribution processing unit 169 deletes the data of the corresponding entry from the session management table TBL2 (step S126). On the other hand, if the IP packet 232 is not a FIN packet, the load distribution processing unit 169 sets the value of the expiration date included in the data of the corresponding entry of the session management table TBL2 as an initial value (step S127). The initial value is not necessarily a fixed value, and may be a parameter that can be changed by the load balancer 16. For example, the configuration may be such that the administrator of the load balancer 16 manually sets the initial value according to the environment. The initial value may be used when registering a session management table, which will be described later.

一方、セッション管理テーブルTBL2に該当するエントリのデータが存在しない場合(ステップS123)、負荷分散処理部169は、登録テーブルTBL1(図16参照)上でIPパケット232の宛先IPアドレス(例えば“192.168.10.11”)と一致するIPアドレスを含むエントリのデータの中から、当該IPパケット232を転送すべき実サーバ12-iに関するエントリのデータを選択(決定)する(ステップS128)。どの実サーバが最適な転送先(負荷分散先)であるかを決定する方法は、本発明とは直接関係しないが、従来から種々知られている。例えば、クライアントとの間でセッションを張っている数の最も少ないサーバを選択する方法が知られている。この方法を適用した場合、実サーバのMACアドレス毎の登録テーブルTBL1のデータ数を計算すれば、転送先として最適な実サーバを決定できる。   On the other hand, when there is no entry data corresponding to the session management table TBL2 (step S123), the load distribution processing unit 169 uses the destination IP address (eg, “192.168.”) Of the IP packet 232 on the registration table TBL1 (see FIG. 16). The entry data relating to the real server 12-i to which the IP packet 232 is to be transferred is selected (determined) from the entry data including the IP address that matches 10.11 ″) (step S128). Various methods for determining which real server is the optimal transfer destination (load distribution destination) are not directly related to the present invention, but are conventionally known. For example, a method of selecting the server with the smallest number of sessions with clients is known. When this method is applied, an optimal real server can be determined as a transfer destination by calculating the number of data in the registration table TBL1 for each MAC address of the real server.

負荷分散処理部169は転送先の実サーバ12-iを選択(決定)すると、当該実サーバ12-iのIPアドレスを含む登録テーブルTBL1のエントリのデータから当該実サーバ12-iのMACアドレスを取得する(ステップS129)。そして負荷分散処理部169は、この実サーバ12-iのMACアドレス、IPパケット232の送信元IPアドレス(クライアントのIPアドレス)及びセッションを保持する有効期限を含むエントリデータをセッション管理テーブルTBL2に追加登録する(ステップS130)。これにより、IPパケット232の送信元と実サーバ12-iとのセッションが開始されることになる。ここでセッション管理テーブルTBL2に登録される有効期限は、負荷分散装置16で変更可能なパラメータとし、負荷分散装置16の管理者が環境に合わせて手動にて設定されるものとする。この有効期限の値が、上記ステップS127で設定される初期値と同一であっても構わない。   When the load distribution processing unit 169 selects (determines) the transfer destination real server 12-i, the load distribution processing unit 169 obtains the MAC address of the real server 12-i from the data of the entry in the registration table TBL1 including the IP address of the real server 12-i. Obtain (step S129). Then, the load distribution processing unit 169 adds entry data including the MAC address of the real server 12-i, the transmission source IP address (client IP address) of the IP packet 232, and the expiration date holding the session to the session management table TBL2. Register (step S130). As a result, a session between the transmission source of the IP packet 232 and the real server 12-i is started. Here, the expiration date registered in the session management table TBL2 is a parameter that can be changed by the load balancer 16, and the administrator of the load balancer 16 is set manually according to the environment. The expiration value may be the same as the initial value set in step S127.

負荷分散処理部169はステップS126,S127またはS130の後、MACアドレスをパケット転送処理部168に送って処理を終了する(ステップS131)。ここで、負荷分散処理部169からパケット転送処理部168に送られるMACアドレスは、IPパケット232の送信元IPアドレスがセッション管理テーブルTBL2に存在する場合(ステップS123のYESの場合)には、当該セッション管理テーブルTBL2から取得されたMACアドレスである。これに対し、IPパケット232の送信元IPアドレスがセッション管理テーブルTBL2に存在しない場合(ステップS123のNOの場合)には、負荷分散処理部169からパケット転送処理部168に送られるMACアドレスは、登録テーブルTBL1上から転送先として決定された実サーバ12-iのMACアドレスである。   After step S126, S127, or S130, the load distribution processing unit 169 sends the MAC address to the packet transfer processing unit 168 and ends the processing (step S131). Here, the MAC address sent from the load distribution processing unit 169 to the packet forwarding processing unit 168 is the same as that in the case where the source IP address of the IP packet 232 exists in the session management table TBL2 (in the case of YES in step S123). It is the MAC address acquired from the session management table TBL2. On the other hand, when the source IP address of the IP packet 232 does not exist in the session management table TBL2 (in the case of NO in step S123), the MAC address sent from the load distribution processing unit 169 to the packet transfer processing unit 168 is This is the MAC address of the real server 12-i determined as the transfer destination from the registration table TBL1.

このように本実施形態では、負荷分散装置16においてセッション管理テーブルTBL2を用いることにより、レイヤ4のセッション管理が可能となる。特に本実施形態では、セッション管理テーブルTBL2に登録されるエントリデータが実サーバ群(実サーバの集合)毎に管理されるため、負荷分散装置16において複数の実サーバ群に対し負荷分散及びレイヤ4のセッション管理が可能となる。   As described above, in the present embodiment, by using the session management table TBL2 in the load balancer 16, layer 4 session management becomes possible. In particular, in the present embodiment, since the entry data registered in the session management table TBL2 is managed for each real server group (collection of real servers), the load balancer 16 applies load balancing and layer 4 to a plurality of real server groups. Session management becomes possible.

負荷分散処理部169は、定期的にセッション管理テーブルTBL2を監視し、有効期限が0となっていエントリデータを当該セッション管理テーブルTBL2から削除する。この負荷分散処理部169によるセッション管理テーブルTBL2の定期監視処理について図26のフローチャートを参照して説明する。ここでは、セッション管理テーブルTBL2に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルTBL2の監視が1秒毎に実行されるものとする。   The load distribution processing unit 169 periodically monitors the session management table TBL2, and deletes entry data whose expiration date is 0 from the session management table TBL2. The periodic monitoring process of the session management table TBL2 by the load distribution processing unit 169 will be described with reference to the flowchart of FIG. Here, it is assumed that seconds are used as a unit of the expiration date of entry data registered in the session management table TBL2, and monitoring of the table TBL2 is executed every second.

負荷分散処理部169はセッション管理テーブルTBL2からエントリデータ(アドレス情報)を1つ取り出す(ステップS141)。負荷分散処理部169は取り出されたデータに含まれている有効期限の値が0であるかを判定する(ステップS142)。   The load distribution processing unit 169 takes out one entry data (address information) from the session management table TBL2 (step S141). The load distribution processing unit 169 determines whether the value of the expiration date included in the extracted data is 0 (step S142).

もし、有効期限の値が0(0秒)の場合、負荷分散処理部169はセッション管理テーブルTBL2から該当するデータを削除する(ステップS143)。これに対し、有効期限の値が0でない場合、負荷分散処理部169はセッション管理テーブルTBL2の該当するデータに含まれている有効期限の値を1(1秒)減らす(ステップS144)。
負荷分散処理部169は、上述の処理を、セッション管理テーブルTBL2の全エントリデータに対して行い(ステップS145)、処理を終了する。
If the value of the expiration date is 0 (0 seconds), the load distribution processing unit 169 deletes the corresponding data from the session management table TBL2 (step S143). On the other hand, when the value of the expiration date is not 0, the load distribution processing unit 169 decreases the value of the expiration date included in the corresponding data in the session management table TBL2 by 1 (1 second) (step S144).
The load distribution processing unit 169 performs the above-described processing for all entry data in the session management table TBL2 (step S145), and ends the processing.

さて、IP層処理部163内のIP入力部163a及びIP出力部163bと、上位プロトコル層の処理部であるトランスポート層処理部164とは、入力されたデータを通常のTCP/IP通信データとして処理する。これにより、負荷分散装置16のIPアドレスを使用した通常の通信が可能となる。   Now, the IP input unit 163a and IP output unit 163b in the IP layer processing unit 163, and the transport layer processing unit 164 which is a processing unit of the higher protocol layer, convert the input data as normal TCP / IP communication data. To process. Thereby, normal communication using the IP address of the load balancer 16 becomes possible.

図27は実サーバ12-iの構成を示すブロック図である。実サーバ12-iは、ネットワークIF(ネットワークインタフェース)121と、データリンク層処理部122と、IP層処理部123と、トランスポート層処理部124とを含む。また実サーバ12-iは、専用装置120-iと当該専用装置120-iによってアクセスされる登録テーブルTBL3とを含む。専用装置120-iは、実サーバ12-iのデータリンク層処理部122とIP層処理部123との中間に存在する。本実施形態における専用装置120-iは、当該実サーバ12-i上の通信を制御する専用のソフトウェアを、実サーバ12-i(のCPU)が読み取って実行することにより実現されるものとする。これにより、実サーバ12-i自体を専用装置としなくて済む。この専用装置120-iの存在により、従来の実サーバが有するデータリンク層処理部122及びIP層処理部123の間のパス、即ちデータリンク入力部122a及びIP入力部123aの間のパスと、IP出力部123b及びデータリンク出力部122bの間のパスは存在しない。   FIG. 27 is a block diagram showing the configuration of the real server 12-i. The real server 12-i includes a network IF (network interface) 121, a data link layer processing unit 122, an IP layer processing unit 123, and a transport layer processing unit 124. The real server 12-i includes a dedicated device 120-i and a registration table TBL3 accessed by the dedicated device 120-i. The dedicated device 120-i exists between the data link layer processing unit 122 and the IP layer processing unit 123 of the real server 12-i. The dedicated device 120-i in the present embodiment is realized by the real server 12-i (CPU) reading and executing dedicated software for controlling communication on the real server 12-i. . As a result, the real server 12-i itself does not have to be a dedicated device. Due to the presence of the dedicated device 120-i, a path between the data link layer processing unit 122 and the IP layer processing unit 123 of the conventional real server, that is, a path between the data link input unit 122a and the IP input unit 123a, There is no path between the IP output unit 123b and the data link output unit 122b.

ネットワークIF121は、実サーバ12-iが接続されているネットワーク14とのインタフェースをなす。ネットワークIF121は、IF入力部121aと、IF出力部121bとを有する。データリンク層処理部122は、データリンク入力部122aと、データリンク出力部122bとを有する。IP層処理部123は、IP入力部123aと、IP出力部123bとを有する。   The network IF 121 serves as an interface with the network 14 to which the real server 12-i is connected. The network IF 121 includes an IF input unit 121a and an IF output unit 121b. The data link layer processing unit 122 includes a data link input unit 122a and a data link output unit 122b. The IP layer processing unit 123 includes an IP input unit 123a and an IP output unit 123b.

専用装置120-iは、データリンク層処理部122(オリジナルのデータリンク層処理部122)に相当するデータリンク層処理部125とIP層処理部123(オリジナルのIP層処理部123)に相当するIP層処理部126とから構成される。データリンク層処理部125は、データリンク入力部125aと、データリンク出力部125bとを含む。IP層処理部126は、IP入力部126aと、IP出力部126bと、登録処理部126cと、ARP処理部126dとを含む。   The dedicated device 120-i corresponds to the data link layer processing unit 125 corresponding to the data link layer processing unit 122 (original data link layer processing unit 122) and the IP layer processing unit 123 (original IP layer processing unit 123). And an IP layer processing unit 126. The data link layer processing unit 125 includes a data link input unit 125a and a data link output unit 125b. The IP layer processing unit 126 includes an IP input unit 126a, an IP output unit 126b, a registration processing unit 126c, and an ARP processing unit 126d.

次に、実サーバ12-iの専用装置120-iを中心とする動作について説明する。専用装置120-iは、実サーバ12-i上のオリジナルのデータリンク層処理部122から通信パケット(データリンク層ヘッダを含むデータリンク層パケット)を受信して、当該専用装置120-i内部でデータ処理を行い、実サーバ12-iのオリジナルのIP層処理部123にIPパケットを送る。また専用装置120-iは、実サーバ12-iのオリジナルのIP層処理部123から、IPパケットまたはARP要求パケットを受信して、当該専用装置120-i内部でデータ処理を行い、実サーバ12-iのオリジナルのデータリンク層処理部122にデータリンク層パケットを送る。   Next, the operation centering on the dedicated device 120-i of the real server 12-i will be described. The dedicated device 120-i receives a communication packet (a data link layer packet including a data link layer header) from the original data link layer processing unit 122 on the real server 12-i, and then inside the dedicated device 120-i. Data processing is performed, and an IP packet is sent to the original IP layer processing unit 123 of the real server 12-i. Also, the dedicated device 120-i receives the IP packet or the ARP request packet from the original IP layer processing unit 123 of the real server 12-i, performs data processing inside the dedicated device 120-i, and performs the real server 12-i. The data link layer packet is sent to the original data link layer processing unit 122 of -i.

次に、専用装置120-i内の各部の動作を順次説明する。
まず、専用装置120-i内のデータリンク入力部125aの動作について、図28のフローチャート、図29のデータフォーマット及び図30の登録テーブルTBL3のデータ構造例を参照して説明する。
Next, the operation of each unit in the dedicated device 120-i will be described sequentially.
First, the operation of the data link input unit 125a in the dedicated device 120-i will be described with reference to the flowchart of FIG. 28, the data format of FIG. 29, and the data structure example of the registration table TBL3 of FIG.

データリンク入力部125aは、実サーバ12-iのオリジナルのデータリンク層処理部122(のデータリンク入力部122a)から通信パケット(データリンク層パケット)を受け取る。データリンク入力部125aに入力される通信パケット(データリンク層パケット)は、データフォーマット上、図29(a)に示すパケット291と図29(b)に示すパケット292とに大別される。パケット291は、データリンク層ヘッダと、IPヘッダと、IPペイロードとを含む。IPヘッダとIPペイロードとから構成されるデータをIPパケットと呼ぶ。一方、パケット292は、データリンク層ヘッダと、ARP要求/応答(ARP要求またはARP応答)のデータとを含むARPパケット(ARP要求/応答パケット)である。パケット291及び292のデータリンク層ヘッダは、いずれも宛先MACアドレス及び送信元MACアドレスを含む。   The data link input unit 125a receives a communication packet (data link layer packet) from the original data link layer processing unit 122 (the data link input unit 122a) of the real server 12-i. Communication packets (data link layer packets) input to the data link input unit 125a are roughly classified into a packet 291 shown in FIG. 29A and a packet 292 shown in FIG. The packet 291 includes a data link layer header, an IP header, and an IP payload. Data composed of an IP header and an IP payload is called an IP packet. On the other hand, the packet 292 is an ARP packet (ARP request / response packet) including a data link layer header and data of an ARP request / response (ARP request or ARP response). The data link layer headers of the packets 291 and 292 both include a destination MAC address and a source MAC address.

データリンク入力部125aは、データリンク入力部122aによって入力された通信パケット(入力パケット)を受信すると、当該パケットが図29(b)に示すフォーマットのARPパケット292であるかを判別する(ステップS151)。もし、入力パケットがARPパケット292であるならば、データリンク入力部125aは、当該ARPパケット292からデータリンク層ヘッダを除いた部分(ARP要求/応答)を、図29(c)に示すARPパケット293としてARP処理部126dに送る(ステップS152)。   When the data link input unit 125a receives the communication packet (input packet) input by the data link input unit 122a, the data link input unit 125a determines whether the packet is the ARP packet 292 having the format shown in FIG. 29B (step S151). ). If the input packet is the ARP packet 292, the data link input unit 125a converts the ARP packet 292 from which the data link layer header is removed (ARP request / response) into the ARP packet shown in FIG. It is sent to the ARP processor 126d as 293 (step S152).

一方、入力パケットがARPパケット292でないならば(ステップS151)、つまり図29(a)に示すフォーマットのパケット291であるならば、データリンク入力部125aは当該パケット291が、(図7に示すパケット転送広告パケット72に相当する)パケット転送広告パケットであるかを判定する(ステップS153)。もし、パケット291がパケット転送広告パケットであるならば、データリンク入力部125aは当該パケット291を、そのまま図29(d)に示すパケット転送広告パケット294として登録処理部126cに送る(ステップS154)。パケット転送広告パケット294のIPペイロードは、パケット転送広告データを含む。   On the other hand, if the input packet is not the ARP packet 292 (step S151), that is, if the packet 291 has the format shown in FIG. 29A, the data link input unit 125a indicates that the packet 291 (the packet shown in FIG. It is determined whether it is a packet transfer advertisement packet (corresponding to the transfer advertisement packet 72) (step S153). If the packet 291 is a packet transfer advertisement packet, the data link input unit 125a sends the packet 291 as it is to the registration processing unit 126c as the packet transfer advertisement packet 294 shown in FIG. 29D (step S154). The IP payload of the packet transfer advertisement packet 294 includes packet transfer advertisement data.

これに対し、パケット291がパケット転送広告パケットでないならば(ステップS153)、データリンク入力部125aは当該パケット291が登録応答パケットであるかを判定する(ステップS155)。もし、パケット291が登録応答パケットであるならば、データリンク入力部125aは当該パケット291を、そのまま図29(e)に示す登録応答パケット295として登録処理部126cに送る(ステップS154)。   On the other hand, if the packet 291 is not a packet transfer advertisement packet (step S153), the data link input unit 125a determines whether the packet 291 is a registration response packet (step S155). If the packet 291 is a registration response packet, the data link input unit 125a sends the packet 291 as it is to the registration processing unit 126c as a registration response packet 295 shown in FIG. 29 (e) (step S154).

一方、パケット291が登録応答パケットでもないならば(ステップS155)、データリンク入力部125aは登録テーブルTBL3上のデータをチェックし、当該パケット291中の送信元MACドレスが、登録テーブルTBL3上に存在するかを判定する(ステップS156)。登録テーブルTBL3のエントリのデータは、図30に示すように、IPアドレス、MACアドレス及び有効期限の項目を含む。登録テーブルTBL3は、負荷分散装置16への登録に成功しているかを示すのに用いられる。登録に成功している場合、IPアドレス、MACアドレス及び有効期限を含むエントリデータが登録テーブルTBL3に設定される。   On the other hand, if the packet 291 is not a registration response packet (step S155), the data link input unit 125a checks the data on the registration table TBL3, and the source MAC address in the packet 291 exists on the registration table TBL3. It is determined whether to do (step S156). The entry data of the registration table TBL3 includes items of an IP address, a MAC address, and an expiration date as shown in FIG. The registration table TBL3 is used to indicate whether registration to the load balancer 16 has been successful. If the registration is successful, entry data including an IP address, a MAC address, and an expiration date is set in the registration table TBL3.

もし、パケット291中の送信元MACドレスが、登録テーブルTBL3上に存在する場合、データリンク入力部125aは当該パケット291からデータリンク層ヘッダを除いた部分、つまりIPパケットを抽出して、図29(f)に示すIPパケット296としてIP入力部123aに送る(ステップS157)。これに対し、パケット291中の送信元MACドレスが、登録テーブルTBL3上に存在しない場合(ステップS156)、データリンク入力部125aは当該パケット291を破棄する(ステップS158)。   If the transmission source MAC address in the packet 291 exists on the registration table TBL3, the data link input unit 125a extracts a portion excluding the data link layer header from the packet 291, that is, the IP packet, and FIG. The IP packet 296 shown in (f) is sent to the IP input unit 123a (step S157). In contrast, when the source MAC address in the packet 291 does not exist on the registration table TBL3 (step S156), the data link input unit 125a discards the packet 291 (step S158).

次に、専用装置120-i内のデータリンク出力部125bの動作について、図31のフローチャート及び図32のデータフォーマットを参照して説明する。データリンク出力部125bは、IP出力部126b、登録処理部126cまたはARP処理部126dから、送信先のMACアドレスとIPパケットとを受け取り、オリジナルのデータリンク層処理部122(のデータリンク出力部122b)に、当該MACアドレスとIPパケットとを送る(ステップS161)。ここで、IP出力部126b及び登録処理部126cからデータリンク出力部125bへは、図32(a)に示す送信先のMACアドレス321とIPパケット322とが送られる。この場合、データリンク出力部125bは、送信先のMACアドレス321とIPパケット322とを、それぞれ図32(c)に示す送信先のMACアドレス325とIPパケット326としてデータリンク層処理部122に送る。一方、ARP処理部126dからデータリンク出力部125bへは、図32(b)に示す送信先のMACアドレス323とARPパケット324とが送られる。この場合、データリンク出力部125bは、送信先のMACアドレス323とARPパケット324とを、それぞれ図32(d)に示す送信先のMACアドレス327とARPパケット328としてデータリンク層処理部122に送る。   Next, the operation of the data link output unit 125b in the dedicated device 120-i will be described with reference to the flowchart of FIG. 31 and the data format of FIG. The data link output unit 125b receives the destination MAC address and the IP packet from the IP output unit 126b, the registration processing unit 126c or the ARP processing unit 126d, and receives the original data link layer processing unit 122 (the data link output unit 122b of the original data link layer 122b). ) To send the MAC address and the IP packet (step S161). Here, the destination MAC address 321 and the IP packet 322 shown in FIG. 32A are sent from the IP output unit 126b and the registration processing unit 126c to the data link output unit 125b. In this case, the data link output unit 125b sends the destination MAC address 321 and the IP packet 322 to the data link layer processing unit 122 as the destination MAC address 325 and the IP packet 326 shown in FIG. 32C, respectively. . On the other hand, the destination MAC address 323 and the ARP packet 324 shown in FIG. 32B are sent from the ARP processing unit 126d to the data link output unit 125b. In this case, the data link output unit 125b sends the destination MAC address 323 and the ARP packet 324 to the data link layer processing unit 122 as the destination MAC address 327 and the ARP packet 328 shown in FIG. .

次に専用装置120-i内の登録処理部126cの動作について説明する。登録処理部126cは、主として以下の第1乃至第3の処理を行う。
(1)まず登録処理部126cは、負荷分散装置16への実サーバ12-iの登録を開始するため、専用装置120-iの起動時及び実サーバ12-iの管理者の操作により、パケット転送要請パケットを生成してデータリンク出力部125bに送信する(第1の処理)。
Next, the operation of the registration processing unit 126c in the dedicated device 120-i will be described. The registration processing unit 126c mainly performs the following first to third processes.
(1) First, the registration processing unit 126c starts registration of the real server 12-i to the load balancer 16, so that the packet is generated when the dedicated device 120-i is activated and the administrator of the real server 12-i operates. A transfer request packet is generated and transmitted to the data link output unit 125b (first process).

(2)また登録処理部126cは、データリンク入力部125aからデータを受け取り、当該データがパケット転送広告の場合に、登録要求パケットを生成してデータリンク出力部125bに送信する。登録処理部126cは、この登録要求パケットに対する登録応答(登録応答パケット)を受信した場合に、登録テーブルTBL3にエントリデータを登録する(第2の処理)。   (2) In addition, the registration processing unit 126c receives data from the data link input unit 125a. When the data is a packet transfer advertisement, the registration processing unit 126c generates a registration request packet and transmits it to the data link output unit 125b. When the registration processing unit 126c receives a registration response (registration response packet) to the registration request packet, the registration processing unit 126c registers entry data in the registration table TBL3 (second processing).

(3)また登録処理部126cは、登録テーブルTBL3を定期的に監視し、有効期限がある値以下(但し0より大)になった場合に登録要求パケットを送信し、有効期限が0となった場合に当該登録テーブルTBL3から該当するデータを削除する(第3の処理)。   (3) Further, the registration processing unit 126c periodically monitors the registration table TBL3, and transmits a registration request packet when the expiration date is less than or equal to a certain value (but greater than 0), and the expiration date becomes 0. If this happens, the corresponding data is deleted from the registration table TBL3 (third process).

次に、登録処理部126cによる上記第1の処理の詳細について、図33のフローチャート及び図34のデータフォーマットを参照して説明する。登録処理部126cは専用装置120-iの起動時に、負荷分散装置16への実サーバ12-iの登録を開始するため、図34に示すパケット転送要請パケット342を生成する(ステップS171)。このパケット転送要請パケット342のIPヘッダは、ブロードキャストまたはマルチキャストの宛先IPアドレスと送信元IPアドレスとを含む。この送信元IPアドレスには、専用装置120-iが置かれている実サーバ12-iの通信パケット送受信用のIPアドレスが用いられる。登録処理部126cは、生成されたパケット転送要請パケット342とブロードキャストのMACアドレス341とをデータリンク出力部125bに送る(ステップS172)。この処理は、上述した専用装置120-iの起動時だけでなく、実サーバ12-iの管理者が負荷分散装置16への登録が必要と判断した場合に特別の操作を行うことによっても実行される。   Next, details of the first processing by the registration processing unit 126c will be described with reference to the flowchart of FIG. 33 and the data format of FIG. The registration processing unit 126c generates a packet transfer request packet 342 shown in FIG. 34 in order to start registration of the real server 12-i to the load balancer 16 when the dedicated device 120-i is activated (step S171). The IP header of the packet transfer request packet 342 includes a broadcast or multicast destination IP address and a source IP address. As this source IP address, the IP address for communication packet transmission / reception of the real server 12-i where the dedicated device 120-i is placed is used. The registration processing unit 126c sends the generated packet transfer request packet 342 and the broadcast MAC address 341 to the data link output unit 125b (step S172). This process is executed not only when the dedicated device 120-i described above is started, but also by performing a special operation when the administrator of the real server 12-i determines that registration to the load balancer 16 is necessary. Is done.

次に、登録処理部126cによる上記第2の処理の詳細について、図35のフローチャート並びに図36及び図37のデータフォーマットを参照して説明する。この処理は、登録処理部126cがデータリンク入力部125aから通信パケットを受信した場合に実行される。   Next, details of the second processing by the registration processing unit 126c will be described with reference to the flowchart of FIG. 35 and the data formats of FIGS. This process is executed when the registration processing unit 126c receives a communication packet from the data link input unit 125a.

登録処理部126cは、データリンク入力部125aから通信パケットを受信すると、当該パケットが(図29(d)の転送広告パケット294に相当する)図36に示すパケット転送広告パケット361であるか判定する(ステップS181)。もし、受信パケットがパケット転送広告パケット361である場合、登録処理部126cは当該パケット転送広告パケット361の送信元IPアドレス(負荷分散装置16のIPアドレス)を宛先IPアドレスに使用して、図36に示す登録要求パケット363を生成する(ステップS182)。この登録要求パケット363は、パケット転送の登録の有効期限の値を含む。この登録の有効期限の値を、実サーバ12-iの管理者が自身で判断して専用装置120-iに設定可能な構成とすることも可能である。   Upon receiving the communication packet from the data link input unit 125a, the registration processing unit 126c determines whether the packet is the packet transfer advertisement packet 361 shown in FIG. 36 (corresponding to the transfer advertisement packet 294 in FIG. 29D). (Step S181). If the received packet is a packet transfer advertisement packet 361, the registration processing unit 126c uses the transmission source IP address of the packet transfer advertisement packet 361 (the IP address of the load balancer 16) as the destination IP address. Is generated (step S182). The registration request packet 363 includes a value for the expiration date of registration for packet transfer. It is also possible to adopt a configuration in which the administrator of the real server 12-i can determine the value of the registration expiration date and set it in the dedicated device 120-i.

登録処理部126cは登録要求パケット363を生成すると、受信パケット(パケット転送広告パケット361)の送信元MACアドレス(負荷分散装置16のMACアドレス)362と当該登録要求パケット363とを、データリンク出力部125bに送る(ステップS183)。   When the registration processing unit 126c generates the registration request packet 363, the transmission source MAC address (MAC address of the load balancer 16) 362 of the received packet (packet transfer advertisement packet 361) and the registration request packet 363 are converted into a data link output unit. 125b (step S183).

一方、受信パケットがパケット転送広告パケット以外の場合、登録処理部126cは当該受信パケットが、(図29(e)の登録応答パケット295に相当する)図37に示す登録応答パケット371であるか判定する(ステップS184)。もし、受信パケットが登録応答パケット371以外の場合、登録処理部126cは当該受信パケットを破棄して処理を終了する(ステップS185)。   On the other hand, when the received packet is other than the packet transfer advertisement packet, the registration processing unit 126c determines whether the received packet is the registration response packet 371 shown in FIG. 37 (corresponding to the registration response packet 295 in FIG. 29E). (Step S184). If the received packet is other than the registration response packet 371, the registration processing unit 126c discards the received packet and ends the process (step S185).

これに対し、受信パケットが登録応答パケット371である場合、登録処理部126cは、当該登録応答パケット371の登録応答データに含まれている登録結果から登録成功かを判定する(ステップS186)。もし、登録成功の場合、登録処理部126cは、登録応答パケット371の送信元MACアドレス(負荷分散装置16のMACアドレス)と送信元IPアドレス(負荷分散装置16のIPアドレス)と有効期限とを含むエントリデータを登録テーブルTBL3に追加登録する(ステップS187)。ここで、有効期限には、上記ステップS183で登録要求パケット363を送信した際に当該パケット363に設定された値が用いられる。なお、登録解除成功の場合、登録処理部126cは上記ステップS187において、登録応答パケット371の送信元MACアドレスと送信元IPアドレスとを含むエントリデータを登録テーブルTBL3から削除する。   On the other hand, when the received packet is the registration response packet 371, the registration processing unit 126c determines whether the registration is successful from the registration result included in the registration response data of the registration response packet 371 (step S186). If the registration is successful, the registration processing unit 126c determines the source MAC address (the MAC address of the load balancer 16), the source IP address (the IP address of the load balancer 16), and the expiration date of the registration response packet 371. The included entry data is additionally registered in the registration table TBL3 (step S187). Here, the value set in the packet 363 when the registration request packet 363 is transmitted in step S183 is used as the expiration date. If the registration cancellation is successful, the registration processing unit 126c deletes the entry data including the transmission source MAC address and the transmission source IP address of the registration response packet 371 from the registration table TBL3 in step S187.

一方、登録失敗の場合で(ステップS186)、その登録失敗の要因が有効期限にある場合、即ち登録応答パケット371の登録応答データに含まれている登録結果が有効期限に問題があることを示している場合(ステップS188)、登録処理部126cは前回送信した登録要求パケットよりも有効期限が短く設定された図37に示す新たな登録要求パケット373を生成する(ステップS189)。ここで、有効期限を短くするのに、必ず毎回ある一定の値を差し引く引く処理を行っても、前回送信した有効期限の値の一定の割り合いの時間を差し引く処理を行っても構わない。   On the other hand, in the case of registration failure (step S186), if the cause of the registration failure is the expiration date, that is, the registration result included in the registration response data of the registration response packet 371 indicates that there is a problem with the expiration date. If so (step S188), the registration processing unit 126c generates a new registration request packet 373 shown in FIG. 37 in which the expiration date is set shorter than the previously transmitted registration request packet (step S189). Here, in order to shorten the validity period, a process of subtracting a certain value every time may be performed, or a process of subtracting a certain percentage of the value of the validity period transmitted last time may be performed.

登録処理部126cは、新たな登録要求パケット373を生成すると(ステップS189)、受信パケット(登録応答パケット371)の送信元MACアドレス(負荷分散装置16のMACアドレス)372と当該登録要求パケット373とを、データリンク出力部125bに送る(ステップS190)。また、登録失敗が、有効期限以外の理由の場合(ステップS188)、登録処理部126cは受信パケットを破棄して処理を終了する(ステップS185)。   When the registration processing unit 126c generates a new registration request packet 373 (step S189), the transmission source MAC address (MAC address of the load balancer 16) 372 of the received packet (registration response packet 371), the registration request packet 373, Is sent to the data link output unit 125b (step S190). If the registration failure is for a reason other than the expiration date (step S188), the registration processing unit 126c discards the received packet and ends the process (step S185).

次に、登録処理部126cによる上記第3の処理の詳細について、図38のフローチャート及び図39の登録テーブルTBL3のデータと登録処理部126cからの出力データとの関係を示す図を参照して説明する。ここでは、登録テーブルTBL3に登録されるエントリデータの有効期限の単位に秒が用いられ、当該テーブルTBL3の監視が1秒毎に実行されるものとする。   Next, details of the third processing by the registration processing unit 126c will be described with reference to the flowchart in FIG. 38 and a diagram showing the relationship between the data in the registration table TBL3 in FIG. 39 and the output data from the registration processing unit 126c. To do. Here, it is assumed that seconds are used as a unit of the expiration date of entry data registered in the registration table TBL3, and monitoring of the table TBL3 is executed every second.

登録処理部126cは登録テーブルTBL3からエントリデータ(アドレス情報)を1つ取り出す(ステップS191)。登録処理部126cは取り出されたデータに含まれている有効期限の値が0であるかを判定する(ステップS192)。   The registration processing unit 126c extracts one entry data (address information) from the registration table TBL3 (step S191). The registration processing unit 126c determines whether the expiration date value included in the extracted data is 0 (step S192).

もし、有効期限の値が0(0秒)の場合、登録処理部126cは登録テーブルTBL3から該当するデータを削除する(ステップS193)。これに対し、有効期限の値が0でない場合、登録処理部166は有効期限の値がある一定の閾値、例えば10(10秒)以下であるかを判定する(ステップS194)。   If the value of the expiration date is 0 (0 seconds), the registration processing unit 126c deletes the corresponding data from the registration table TBL3 (step S193). On the other hand, if the value of the expiration date is not 0, the registration processing unit 166 determines whether the value of the expiration date is a certain threshold value, for example, 10 (10 seconds) or less (step S194).

もし、有効期限の値が0よりは大きいものの10以下であるならば、登録処理部126cは近い将来有効期限が到来して該当するエントリのデータが削除されるのを防止するために、新たな登録要求パケットを生成する(ステップS195)。これにより、図39の登録テーブルTBL3の例のように有効期限の値が9の場合であれば、登録要求パケット392が生成される。この登録要求パケット392の宛先IPアドレスには、登録テーブルTBL3中の該当するエントリのデータに含まれている負荷分散装置16のIPアドレスが用いられる。なお、新たな登録要求パケットを送信する条件となる有効期限の閾値は10秒に限らない。例えば、この閾値を有効期限の初期値の1/2としても構わない。   If the value of the expiration date is greater than 0 but less than or equal to 10, the registration processing unit 126c creates a new entry in order to prevent the entry data from being deleted in the near future expiration date. A registration request packet is generated (step S195). Thereby, if the value of the expiration date is 9, as in the example of the registration table TBL3 in FIG. 39, the registration request packet 392 is generated. As the destination IP address of the registration request packet 392, the IP address of the load balancer 16 included in the data of the corresponding entry in the registration table TBL3 is used. Note that the threshold of the expiration date, which is a condition for transmitting a new registration request packet, is not limited to 10 seconds. For example, this threshold value may be ½ of the initial value of the expiration date.

登録処理部126cは、登録テーブルTBL3中の該当するエントリのデータに含まれている負荷分散装置16のMACアドレス391と生成された登録要求パケット392とをデータリンク出力部125bに送る(ステップS196)。この登録要求パケット392が負荷分散装置16で受信されることにより、登録テーブルTBL1の該当するエントリのデータに設定されている有効期限の値を、当該登録要求パケット392中に設定されている値に更新することができる。   The registration processing unit 126c sends the MAC address 391 of the load balancer 16 and the generated registration request packet 392 included in the data of the corresponding entry in the registration table TBL3 to the data link output unit 125b (step S196). . When the registration request packet 392 is received by the load balancer 16, the value of the expiration date set in the data of the corresponding entry in the registration table TBL1 is changed to the value set in the registration request packet 392. Can be updated.

登録処理部126cは上記ステップS196を実行すると、登録テーブルTBL3の該当するデータに含まれている有効期限の値を1(1秒)減らす(ステップS197)。一方、有効期限の値が10よりも大きい場合には(ステップS194)、登録処理部126cは上記ステップS195及びS196をスキップして、上記ステップS197を実行する。   When executing the above step S196, the registration processing unit 126c decreases the value of the expiration date included in the corresponding data in the registration table TBL3 by 1 (1 second) (step S197). On the other hand, when the value of the expiration date is larger than 10 (step S194), the registration processing unit 126c skips steps S195 and S196 and executes step S197.

次に、専用装置120-i内のARP処理部126dの動作について図40のフローチャート並びに図41及び図42のデータフォーマットを参照して説明する。ARP処理部126dには、IP出力部126bまたはデータリンク入力部125aから、ARPパケット(ARP要求パケットまたはARP応答パケット)が送られる。ARP処理部126dはARPパケットを受信すると、当該ARPパケットが図41に示すARP要求パケット411であるか或いは図42に示すARP応答パケット421であるかを判定する(ステップS201)。   Next, the operation of the ARP processing unit 126d in the dedicated device 120-i will be described with reference to the flowchart of FIG. 40 and the data format of FIGS. 41 and 42. An ARP packet (ARP request packet or ARP response packet) is sent from the IP output unit 126b or the data link input unit 125a to the ARP processing unit 126d. When receiving the ARP packet, the ARP processing unit 126d determines whether the ARP packet is the ARP request packet 411 shown in FIG. 41 or the ARP response packet 421 shown in FIG. 42 (step S201).

受信ARPパケットがARP要求パケット411である場合、当該ARP要求パケット411の送信元のMACアドレスとIPアドレスとが、実サーバ12-iのMACアドレスとIPアドレス(通信パケット送受信用のIPアドレス“192.168.10.11”)と一致するか判定する(ステップS202)。   When the received ARP packet is the ARP request packet 411, the MAC address and IP address of the transmission source of the ARP request packet 411 are the MAC address and IP address of the real server 12-i (IP address “192.168 for communication packet transmission / reception). 10.11 ") is determined (step S202).

もし、MACアドレスとIPアドレスの各々が一致する場合、受信ARPパケットがIP出力部126bから送られてきたARP要求パケット411であることから、ARP処理部126dは当該ARP要求パケット411の送信元IPアドレスを通信パケット送受信用のIPアドレス“192.168.10.11”からARP送信用のIPアドレス“192.168.10.12”に書き換えることで、ARP要求パケット411を図41に示すARP要求パケット413に変換する(ステップS204)。ARP処理部126dは、このIPアドレスが書き換えられたARP要求パケット413とMACアドレス412とをデータリンク出力部125bに送る(ステップS204)。このMACアドレス412には、ARP要求であるためブロードキャストアドレスが用いられる。   If the MAC address and the IP address match, the received ARP packet is the ARP request packet 411 sent from the IP output unit 126b, so the ARP processing unit 126d sends the source IP of the ARP request packet 411. The ARP request packet 411 is converted into the ARP request packet 413 shown in FIG. 41 by rewriting the address from the IP address “192.168.10.11” for communication packet transmission / reception to the IP address “192.168.10.12” for ARP transmission (step S204). ). The ARP processing unit 126d sends the ARP request packet 413 with the rewritten IP address and the MAC address 412 to the data link output unit 125b (step S204). Since the MAC address 412 is an ARP request, a broadcast address is used.

これに対し、受信ARP要求パケット411の送信元のMACアドレスが実サーバ12-iのMACアドレスと一致しないか、或いは受信ARP要求パケット411の送信元のIPアドレスが実サーバ12-iのIPアドレスと一致しない場合(ステップS202)、ARP処理部126dは当該ARP要求パケット411を破棄して処理を終了する(ステップS205)。   On the other hand, the MAC address of the source of the received ARP request packet 411 does not match the MAC address of the real server 12-i, or the IP address of the source of the received ARP request packet 411 is the IP address of the real server 12-i. If it does not match (step S202), the ARP processing unit 126d discards the ARP request packet 411 and ends the processing (step S205).

一方、受信ARPパケットがARP応答パケット421である場合(ステップS201)、当該ARP応答パケット421中のターゲットMACアドレス及びターゲットIPアドレスが、それぞれ実サーバ12-iのMACアドレス及びARP送信用のIPアドレス“192.168.10.12”と一致するか判定する(ステップS206)。もし、MACアドレス及びIPアドレスの各々が一致する場合、受信ARPパケットがデータリンク入力部125aから送られてきたARP応答パケット421であることから、ARP処理部126dは当該ARP応答パケット421のターゲットIPアドレスをARP送信用のIPアドレス“192.168.10.12”から通信パケット送受信用のIPアドレス“192.168.10.11”に書き換えることで、ARP応答パケット421を図42に示すARP応答パケット422に変換する(ステップS207)。ARP処理部126dは、このIPアドレスが書き換えられたARP応答パケット422をIP入力部126aに送る(ステップS208)。   On the other hand, when the received ARP packet is the ARP response packet 421 (step S201), the target MAC address and the target IP address in the ARP response packet 421 are the MAC address of the real server 12-i and the IP address for ARP transmission, respectively. It is determined whether or not it matches “192.168.10.12” (step S206). If the MAC address and the IP address match, the received ARP packet is the ARP response packet 421 sent from the data link input unit 125a, so the ARP processing unit 126d has the target IP of the ARP response packet 421. The ARP response packet 421 is converted into the ARP response packet 422 shown in FIG. 42 by rewriting the address from the IP address “192.168.10.12” for ARP transmission to the IP address “192.168.10.11” for communication packet transmission / reception (step S207). ). The ARP processing unit 126d sends the ARP response packet 422 whose IP address has been rewritten to the IP input unit 126a (step S208).

これに対し、受信ARP応答パケット421中のターゲットMACアドレスが実サーバ12-iのMACアドレスと一致しないか、或いは受信ARP応答パケット421中のターゲットIPアドレスが実サーバ12-iのARP送信用のIPアドレスと一致しない場合(ステップS206)、ARP処理部126dは当該ARP応答パケット421を破棄して処理を終了する(ステップS209)。   On the other hand, the target MAC address in the received ARP response packet 421 does not match the MAC address of the real server 12-i, or the target IP address in the received ARP response packet 421 is for ARP transmission of the real server 12-i. If the IP address does not match (step S206), the ARP processing unit 126d discards the ARP response packet 421 and ends the process (step S209).

次に専用装置120-i内のIP入力部126aの動作について、図43のフローチャート及び図44のデータフォーマットを参照して説明する。IP入力部126aには、IP入力部126aまたはARP処理部126dから、それぞれ図44(a)に示すIPパケット441または(図42のARP応答パケット422に相当する)図44(b)に示すARP応答パケット442が送られる。   Next, the operation of the IP input unit 126a in the dedicated device 120-i will be described with reference to the flowchart of FIG. 43 and the data format of FIG. The IP input unit 126a receives the IP packet 441 shown in FIG. 44A or the ARP shown in FIG. 44B from the IP input unit 126a or the ARP processing unit 126d, respectively (corresponding to the ARP response packet 422 in FIG. 42). A response packet 442 is sent.

IP入力部126aは、IP入力部126aまたはARP処理部126dから送られたIPパケット441またはARP応答パケット442を受信すると、当該IPパケット441またはARP応答パケット442を、それぞれ図44(c)に示すIPパケット443または図44(d)に示すARP応答パケット444として、実サーバ12-i上のオリジナルのIP層処理部123(のIP入力部123a)に送り処理を終了する(ステップS211)。   When the IP input unit 126a receives the IP packet 441 or the ARP response packet 442 sent from the IP input unit 126a or the ARP processing unit 126d, the IP packet 441 or the ARP response packet 442 is shown in FIG. 44 (c), respectively. The IP packet 443 or the ARP response packet 444 shown in FIG. 44 (d) is sent to the original IP layer processing unit 123 (its IP input unit 123a) on the real server 12-i, and the processing is ended (step S211).

次に専用装置120-i内のIP出力部126bの動作について、図45のフローチャート及び図46のデータフォーマットを参照して説明する。IP出力部126bには、実サーバ12-i上のオリジナルのIP層処理部123(のIP出力部123b)から、図46(a)に示すIPパケット462と送信先のMACアドレス461、または図46(b)に示すARP要求パケット464と送信先のMACアドレス462が送られる。   Next, the operation of the IP output unit 126b in the dedicated device 120-i will be described with reference to the flowchart of FIG. 45 and the data format of FIG. The IP output unit 126b receives the IP packet 462 and the destination MAC address 461 shown in FIG. 46A from the original IP layer processing unit 123 (its IP output unit 123b) on the real server 12-i, or FIG. The ARP request packet 464 and the destination MAC address 462 shown in 46 (b) are sent.

IP出力部126bは、IP層処理部123から送られた通信パケットを受信すると、当該受信パケットがARPパケット(ARP要求パケット)であるか判定する(ステップS221)。   When receiving the communication packet sent from the IP layer processing unit 123, the IP output unit 126b determines whether the received packet is an ARP packet (ARP request packet) (step S221).

もし、受信パケットが図46(b)に示すARPパケット(ARP要求パケット)464である場合、IP出力部126bは当該ARPパケット(ARP要求パケット)464を図46(c)に示すARPパケット(ARP要求パケット)465としてARP処理部126dに送って処理を終了する(ステップS222)。   If the received packet is the ARP packet (ARP request packet) 464 shown in FIG. 46 (b), the IP output unit 126b converts the ARP packet (ARP request packet) 464 into the ARP packet (ARP) shown in FIG. 46 (c). Request packet) 465 is sent to the ARP processing unit 126d and the processing is terminated (step S222).

これに対し、受信パケットがARPパケットでない場合、即ち図46(a)に示すIPパケット462である場合、IP出力部126bは、IP層処理部123から受け取ったMACアドレス461及び当該IPパケット462を、それぞれ図46(d)に示すMACアドレス466及びIPパケット467としてデータリンク出力部125bに送って処理を終了する(ステップS223)。   On the other hand, if the received packet is not an ARP packet, that is, the IP packet 462 shown in FIG. 46A, the IP output unit 126b receives the MAC address 461 and the IP packet 462 received from the IP layer processing unit 123. Then, the MAC address 466 and the IP packet 467 shown in FIG. 46D are sent to the data link output unit 125b, respectively, and the process is terminated (step S223).

なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Further, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.

本発明の一実施形態に係る負荷分散システムの基本構成と動作原理を説明するための図。The figure for demonstrating the basic composition and operation | movement principle of the load distribution system which concern on one Embodiment of this invention. 図1のシステムにおいて、クライアント11から負荷分散装置16を中継して実サーバ12-iに通信パケットを送信する方法と、負荷分散装置16を中継せずに、実サーバ12-i(=12-1)からクライアント11に通信パケットを送信する方法を説明するための図。In the system of FIG. 1, a method of transmitting a communication packet from the client 11 to the real server 12-i via the load balancer 16, and a real server 12-i (= 12−) without relaying the load balancer 16 The figure for demonstrating the method to transmit a communication packet to the client 11 from 1). 代理ARPにより負荷分散装置16のMACアドレスで作成されたARPテーブル110のデータが、実サーバ12-iのMACアドレスに書き換えられる例を示す図。The figure which shows the example by which the data of the ARP table 110 produced by the proxy ARP with the MAC address of the load distribution apparatus 16 are rewritten to the MAC address of the real server 12-i. 代理ARPにより負荷分散装置16のMACアドレスで作成されたARPテーブル110のデータが、実サーバ12-iのMACアドレスに書き換えられない例を示す図。The figure which shows the example in which the data of the ARP table 110 produced with the MAC address of the load distribution apparatus 16 by proxy ARP are not rewritten by the MAC address of real server 12-i. 図1のシステムの動作を整理して示すシーケンスチャート。2 is a sequence chart showing the operation of the system of FIG. 1 in an organized manner. 負荷分散装置16上に、実サーバのIPアドレスとMACアドレスとの対を含むアドレス情報を保持するテーブルを自動で作成する方法を説明するためのシーケンスチャート。7 is a sequence chart for explaining a method of automatically creating a table that holds address information including a pair of an IP address and a MAC address of a real server on the load balancer 16. パケット転送要請パケット71、パケット転送広告パケット72、登録要求パケット73及び登録応答パケット74の間のアドレスの流れを示す図。The figure which shows the flow of the address between the packet transfer request packet 71, the packet transfer advertisement packet 72, the registration request packet 73, and the registration response packet 74. 負荷分散装置16の構成を示すブロック図。FIG. 3 is a block diagram showing a configuration of a load distribution device 16. 負荷分散装置16内のデータリンク入力部162aの動作を説明するためのフローチャート。7 is a flowchart for explaining the operation of a data link input unit 162a in the load balancer 16. データリンク入力部162aに入力されるデータ及び当該データリンク入力部162aから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the data link input part 162a, and the data output from the said data link input part 162a. 負荷分散装置16内のデータリンク出力部162bの動作を説明するためのフローチャート。7 is a flowchart for explaining the operation of a data link output unit 162b in the load balancer 16. データリンク出力部162bに入力されるデータ及び当該データリンク出力部162bから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input to the data link output part 162b, and the data output from the said data link output part 162b. 負荷分散装置16内のパケット転送広告処理部165の動作を説明するためのフローチャート。6 is a flowchart for explaining the operation of a packet transfer advertisement processing unit 165 in the load balancer 16. パケット転送広告処理部165に入力されるデータ及び当該パケット転送広告処理部165から出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the packet transfer advertisement process part 165, and the data output from the said packet transfer advertisement process part 165. 負荷分散装置16内の登録処理部166の登録要求入力時の動作を説明するためのフローチャート。7 is a flowchart for explaining an operation when a registration request is input by a registration processing unit 166 in the load distribution apparatus 16. 登録テーブルTBL1のデータ構造例を示す図。The figure which shows the data structure example of registration table TBL1. 登録処理部166に入力されるデータ及び当該登録処理部166から出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the registration process part 166, and the data output from the said registration process part 166. 負荷分散装置16による負荷分散の対象となる実サーバ群が2組存在する場合の、通信データの宛先IPアドレスと負荷分散装置16の動作との関係を説明するための図。The figure for demonstrating the relationship between the destination IP address of communication data, and the operation | movement of the load distribution apparatus 16, when two sets of real servers used as the object of load distribution by the load distribution apparatus 16 exist. 登録処理部166による登録テーブルTBL1の定期監視処理を説明するためのフローチャート。The flowchart for demonstrating the regular monitoring process of registration table TBL1 by the registration process part 166. FIG. 負荷分散装置16内の代理ARP処理部167の動作を説明するためのフローチャート。7 is a flowchart for explaining the operation of a proxy ARP processing unit 167 in the load balancer 16. 代理ARP処理部167に入力されるデータ及び当該代理ARP処理部167から出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the proxy ARP processing part 167, and the data output from the said proxy ARP processing part 167. 負荷分散装置16内のパケット転送処理部168の動作を説明するためのフローチャート。7 is a flowchart for explaining the operation of a packet transfer processing unit 168 in the load balancer 16. パケット転送処理部168に入力されるデータ及び当該パケット転送処理部168から出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the packet transfer process part 168, and the data output from the said packet transfer process part 168. 負荷分散装置16内の負荷分散処理部169の動作を説明するためのフローチャート。9 is a flowchart for explaining the operation of a load distribution processing unit 169 in the load distribution device 16. セッション管理テーブルTBL2のデータ構造例を示す図。The figure which shows the example of a data structure of session management table TBL2. 負荷分散処理部169によるセッション管理テーブルTBL2の定期監視処理を説明するためのフローチャート。The flowchart for demonstrating the regular monitoring process of session management table TBL2 by the load distribution process part 169. FIG. 実サーバ12-iの構成を示すブロック図。The block diagram which shows the structure of real server 12-i. 専用装置120-i内のデータリンク入力部125aの動作を説明するためのフローチャート。The flowchart for demonstrating operation | movement of the data link input part 125a in exclusive apparatus 120-i. データリンク入力部125aに入力されるデータ及び当該データリンク入力部125aから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the data link input part 125a, and the data output from the said data link input part 125a. 登録テーブルTBL3のデータ構造例を示す図。The figure which shows the data structure example of registration table TBL3. 専用装置120-i内のデータリンク出力部125bの動作を説明するためのフローチャート。The flowchart for demonstrating operation | movement of the data link output part 125b in dedicated apparatus 120-i. データリンク出力部125bに入力されるデータ及び当該データリンク出力部125bから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input to the data link output part 125b, and the data output from the said data link output part 125b. 登録処理部126cによる第1の処理を説明するためのフローチャート。The flowchart for demonstrating the 1st process by the registration process part 126c. 登録処理部126cに入力されるデータ及び当該登録処理部126cから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the registration process part 126c, and the data output from the said registration process part 126c. 登録処理部126cによる第2の処理を説明するためのフローチャート。The flowchart for demonstrating the 2nd process by the registration process part 126c. 登録処理部126cによるパケット転送広告受信時の入出力データのフォーマットを示す図。The figure which shows the format of the input-output data at the time of packet transfer advertisement reception by the registration process part 126c. 登録処理部126cによる登録応答受信時の入出力データのフォーマットを示す図。The figure which shows the format of the input-output data at the time of the registration response reception by the registration process part 126c. 登録処理部126cによる第3の処理を説明するためのフローチャート。The flowchart for demonstrating the 3rd process by the registration process part 126c. 登録テーブルTBL3のデータと登録処理部126cからの出力データとの関係を示す図。The figure which shows the relationship between the data of registration table TBL3, and the output data from the registration process part 126c. 専用装置120-i内のARP処理部126dの動作を説明するためのフローチャート。The flowchart for demonstrating operation | movement of the ARP process part 126d in exclusive apparatus 120-i. ARP処理部126dに入力されるデータがARP要求パケットである場合の、当該ARP要求パケットと当該ARP処理部126dから出力されるデータとの関係を示す図。The figure which shows the relationship between the said ARP request packet and the data output from the said ARP processing part 126d when the data input into the ARP processing part 126d is an ARP request packet. ARP処理部126dに入力されるデータがARP応答パケットである場合の、当該ARP応答パケットと当該ARP処理部126dから出力されるデータとの関係を示す図。The figure which shows the relationship between the said ARP response packet and the data output from the said ARP processing part 126d when the data input into the ARP processing part 126d is an ARP response packet. 専用装置120-i内のIP入力部126aの動作を説明するためのフローチャート。The flowchart for demonstrating operation | movement of the IP input part 126a in dedicated apparatus 120-i. IP入力部126aに入力されるデータ及び当該IP入力部126aから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input into the IP input part 126a, and the data output from the said IP input part 126a. 専用装置120-i内のIP出力部126bの動作を説明するためのフローチャート。The flowchart for demonstrating operation | movement of the IP output part 126b in dedicated apparatus 120-i. IP出力部126bに入力されるデータ及び当該IP出力部126bから出力されるデータのフォーマットを示す図。The figure which shows the format of the data input from the IP output part 126b, and the data output from the said IP output part 126b.

符号の説明Explanation of symbols

11…クライアント、12-1〜12-3,12-5,12-6,12-i…実サーバ、13,14…ネットワーク、16…負荷分散装置、121,161…ネットワークIF、122,125,162…データリンク層処理部、122a…IP入力部、122b…データリンク出力部、123,126,163…IP層処理部、123a,126a,163a…IP入力部、123b…IP出力部、124,164…トランスポート層処理部、125a…データリンク入力部(受信手段、第1の受信手段)、125b…データリンク出力部(送信手段、第2の送信手段)、126b…IP出力部(第2の受信手段)、126c,166…登録処理部、126d…ARP処理部、162a…データリンク入力部(受信手段)、162b…データリンク出力部(送信手段、第1の送信手段)、163b…IP出力部、165…パケット転送広告処理部、167…代理ARP処理部、168…パケット転送処理部、169…負荷分散処理部、TBL1,TBL3…登録テーブル、TBL2…セッション管理テーブル。   DESCRIPTION OF SYMBOLS 11 ... Client, 12-1 to 12-3, 12-5, 12-6, 12-i ... Real server, 13, 14 ... Network, 16 ... Load balancer, 121, 161 ... Network IF, 122, 125, 162 ... Data link layer processing unit, 122a ... IP input unit, 122b ... Data link output unit, 123, 126, 163 ... IP layer processing unit, 123a, 126a, 163a ... IP input unit, 123b ... IP output unit, 124, 164: Transport layer processing unit, 125a: Data link input unit (reception unit, first reception unit), 125b ... Data link output unit (transmission unit, second transmission unit), 126b ... IP output unit (second 126c, 166 ... registration processing unit, 126d ... ARP processing unit, 162a ... data link input unit (receiving unit), 162b ... data link output unit (Transmission means, first transmission means), 163b ... IP output section, 165 ... packet transfer advertisement processing section, 167 ... proxy ARP processing section, 168 ... packet transfer processing section, 169 ... load distribution processing section, TBL1, TBL3 ... Registration table, TBL2 ... session management table.

Claims (19)

複数のクライアントにサービスを提供する複数の実サーバであって、当該複数の実サーバに共通の第1のIPアドレスを持つ複数の実サーバと、
前記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置とを具備し、
前記負荷分散装置は、
通信データを受信する受信手段であって、前記クライアントからの前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを代理で受信する受信手段と、
通信データを送信する第1の送信手段と、
前記複数の実サーバの中から、前記受信手段によって代理で受信された通信データを転送すべき実サーバを選択する負荷分散処理手段と、
前記受信手段によって代理で受信された通信データを前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに前記第1の送信手段によって転送させる転送処理手段とを有し、
前記複数の実サーバの各々は、
前記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで前記クライアントの物理アドレスを取得するためのアドレス解決を行うアドレス解決プロトコル処理手段と、
前記アドレス解決プロトコル処理手段による前記アドレス解決により決定された物理アドレスに対し前記第1のIPアドレスを送信元IPアドレスとする通信データを送信する第2の送信手段とを有する
ことを特徴とする負荷分散システム。
A plurality of real servers that provide services to a plurality of clients, the plurality of real servers having a first IP address common to the plurality of real servers;
A load balancer that allocates service requests from each of the plurality of clients to the plurality of real servers, the network addresses of the plurality of real servers being in the same segment,
The load balancer is:
Receiving means for receiving communication data, the receiving means for receiving, on behalf of, communication data addressed to a real server having the first IP address from the client as a destination IP address;
First transmission means for transmitting communication data;
Load distribution processing means for selecting a real server to which communication data received on behalf of the receiving means is to be transferred from the plurality of real servers;
Transfer processing means for causing the first transmission means to transfer the communication data received on behalf of the reception means to the physical address of the real server selected by the load distribution processing means,
Each of the plurality of real servers is
Address resolution protocol processing means for performing address resolution for acquiring the physical address of the client with a second IP address for address resolution protocol request transmission different from the first IP address;
A second transmission unit configured to transmit communication data having the first IP address as a transmission source IP address with respect to the physical address determined by the address resolution by the address resolution protocol processing unit; Distributed system.
前記負荷分散装置は、前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返す代理アドレス解決プロトコル処理手段を更に有し、
前記負荷分散装置の前記受信手段は、前記代理アドレス解決プロトコル応答により前記クライアントに返された前記負荷分散装置の物理アドレス宛てに当該クライアントから前記第1のIPアドレスで通信データが送信された場合に、当該通信データを受信する
ことを特徴とする請求項1記載の負荷分散システム。
The load balancer further includes a proxy address resolution protocol processing unit that returns a proxy address resolution protocol response including a physical address of the load balancer in response to an address resolution protocol request for the first IP address from the client. ,
The receiving unit of the load balancer receives communication data from the client to the physical address of the load balancer returned to the client by the proxy address resolution protocol response from the client using the first IP address. The load distribution system according to claim 1, wherein the communication data is received.
前記実サーバの前記アドレス解決プロトコル処理手段は、前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して応答しないことを特徴とする請求項1記載の負荷分散システム。   2. The load distribution system according to claim 1, wherein the address resolution protocol processing means of the real server does not respond to an address resolution protocol request for the first IP address from the client. 前記負荷分散装置は、サービス要求を割り振る対象となる前記複数の実サーバの物理アドレスと前記第1のIPアドレスとを含むエントリデータを格納する負荷分散装置側登録テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置側登録テーブルから、前記受信手段によって受信された通信データの前記宛先IPアドレスと一致するIPアドレスを含むエントリデータを抽出し、当該抽出されたエントリデータに含まれている物理アドレスの中から前記通信データを転送すべき実サーバの物理アドレスを選択することを特徴とする請求項1記載の負荷分散システム。
The load balancer further includes a load balancer side registration table that stores entry data including physical addresses of the plurality of real servers to which service requests are allocated and the first IP address,
The load distribution processing means of the load distribution apparatus extracts entry data including an IP address that matches the destination IP address of the communication data received by the reception means from the load distribution apparatus side registration table, and extracts the data 2. The load distribution system according to claim 1, wherein a physical address of a real server to which the communication data is to be transferred is selected from physical addresses included in the entry data.
前記負荷分散装置の前記受信手段は、前記負荷分散装置のIPアドレスを宛先IPアドレスとする通信データをも受信し、
前記負荷分散装置の前記転送処理手段は、前記受信手段によって通信データが受信された場合、当該通信データの宛先IPアドレスが前記負荷分散装置自身のIPアドレスと一致するか判定する手段と、前記負荷分散装置自身のIPアドレスと一致する場合、前記通信データをインターネットプロトコル層及び上位のプロトコル層に受け渡す手段と、前記負荷分散装置自身のIPアドレスと一致しない場合、前記通信データを前記負荷分散処理手段に渡して当該負荷分散処理手段により転送先の物理アドレスを選択させる手段と、前記通信データを転送すべき実サーバの物理アドレスが前記負荷分散処理手段によって選択できなかった場合、前記通信データを破棄する手段とを含むことを特徴とする請求項4記載の負荷分散装置。
The receiving means of the load balancer also receives communication data having the IP address of the load balancer as a destination IP address;
The transfer processing means of the load balancer, when communication data is received by the receiving means, means for determining whether the destination IP address of the communication data matches the IP address of the load balancer itself, and the load Means for passing the communication data to the Internet protocol layer and higher protocol layers if the IP address of the distribution device itself matches, and the load distribution processing if the communication data does not match the IP address of the load distribution device itself Means for selecting a transfer destination physical address by the load distribution processing means, and when the physical address of a real server to which the communication data is to be transferred cannot be selected by the load distribution processing means, The load balancing apparatus according to claim 4, further comprising a discarding unit.
前記負荷分散装置は、前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データの送信元のIPアドレスと当該通信データの転送先の実サーバの物理アドレスと有効期限のデータとを含むエントリデータが登録されるセッション管理テーブルを更に有し、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置の前記転送処理手段から前記実サーバ宛ての通信データが受け渡された場合、当該通信データの送信元IPアドレスを含むエントリデータが前記セッション管理テーブルに存在するかを判定する手段と、前記通信データの送信元IPアドレスを含むエントリデータが前記セッション管理テーブルに存在しないならば、当該通信データの送信元IPアドレスと所定の有効期限を含むエントリデータを前記セッション管理テーブルに追加登録することでセッションの開始とする手段と、前記通信データの送信元IPアドレスを含むエントリデータが前記セッション管理テーブルに存在するならば、セッションが保持されているものとして当該エントリデータに含まれている有効期限の値を前記所定の有効期限の値に戻す手段と、前記通信データがセッション終了を意味するデータである場合、前記セッション管理テーブル上の該当するエントリデータを削除する手段とを含むことを特徴とする請求項5記載の負荷分散システム。
The load balancer includes an IP address of a transmission source of communication data addressed to a real server having the first IP address as a destination IP address, a physical address of a real server of a transfer destination of the communication data, and expiration date data. A session management table in which entry data including
When the communication data addressed to the real server is transferred from the transfer processing unit of the load distribution device, the load distribution processing unit of the load distribution device receives entry data including a transmission source IP address of the communication data. The means for determining whether or not the session management table exists, and entry data including the source IP address of the communication data do not exist in the session management table, the source IP address of the communication data and a predetermined expiration date If the entry data including the communication data transmission source IP address exists in the session management table, the session is held if the entry data including the entry data is additionally registered in the session management table. Expiration date included in the entry data as being Means for returning the value to the value of the predetermined expiration date, and means for deleting the corresponding entry data on the session management table when the communication data is data indicating session termination. The load distribution system according to claim 5.
前記負荷分散装置の前記負荷分散処理手段は、前記セッション管理テーブルを定期的に監視して、その都度当該セッション管理テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該セッション管理テーブルから削除する手段を含むことを特徴とする請求項6記載の負荷分散システム。   The load distribution processing means of the load balancer periodically monitors the session management table, and reduces the value of the validity period of the entry data registered in the session management table each time, 7. The load distribution system according to claim 6, further comprising means for deleting the expired data from the session management table. 前記第1のIPアドレスを持つ複数の実サーバの集合とは別に、前記第1のIPアドレスとは異なる第1のIPアドレスを共通に持つ複数の実サーバの集合を少なくとも1つ有しており、
前記セッション管理テーブルのエントリデータは、前記実サーバの集合毎に、当該集合に固有の前記第1のIPアドレスに関連付けられており、
前記負荷分散装置の前記負荷分散処理手段は、前記負荷分散装置の前記転送処理手段から前記実サーバ宛ての通信データが受け渡された場合、当該通信データの宛先IPアドレスに基づいて、前記負荷分散処理手段の前記判定する手段による判定のために参照すべき前記セッション管理テーブル内のエントリデータの集合を特定する
ことを特徴とする請求項6記載の負荷分散システム。
Aside from the set of a plurality of real servers having the first IP address, at least one set of a plurality of real servers having a common first IP address different from the first IP address is provided. ,
The entry data of the session management table is associated with the first IP address unique to the set for each set of the real servers,
When the communication data addressed to the real server is delivered from the transfer processing unit of the load distribution device, the load distribution processing unit of the load distribution device is configured to distribute the load distribution based on a destination IP address of the communication data. The load distribution system according to claim 6, wherein a set of entry data in the session management table to be referred to for determination by the determination unit of the processing unit is specified.
前記複数の実サーバの各々は、
前記負荷分散装置の物理アドレスを含むエントリデータを格納するサーバ側登録テーブルと、
TCP/IP通信におけるデータリンク層の処理を行うデータリンク層処理手段と、
前記TCP/IP通信におけるIP層の処理を行うIP層処理手段と、
前記データリンク層処理手段から前記IP層処理手段に送るべき通信データを当該IP層処理手段に代わり受信する第1の受信手段であって、受信された通信データがIPパケットの場合、前記サーバ側登録テーブルに登録されている物理アドレスを送信元アドレスとするパケットのみを前記IP層処理手段に送る第1の受信手段と、
前記第2の送信手段を含み、前記IP層処理手段から前記データリンク層処理手段に送るべき通信データを前記データリンク層処理手段に代わり受信する第2の受信手段であって、受信された通信データがIPパケットの場合、当該IPパケットをそのまま前記データリンク層処理手段に送る第2の受信手段とを更に有し、
前記実サーバの前記アドレス解決プロトコル処理手段は、前記第1の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル応答パケットであって、前記ターゲットIPアドレスが前記第2のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、前記ターゲットIPアドレスを前記第1のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第1のIPアドレスに変換された前記アドレス解決プロトコル応答パケットを前記IP層処理手段に送る手段と、前記ターゲットIPアドレスが前記第2のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル応答パケットを破棄する手段と、前記第2の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル要求パケットであって、前記ターゲットIPアドレスが前記第1のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、送信元IPアドレスを前記第2のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第2のIPアドレスに変換された前記アドレス解決プロトコル要求パケットを前記データリンク層処理手段に送る手段と、前記ターゲットIPアドレスが前記第1のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル要求パケットを破棄する手段とを含む
ことを特徴とする請求項4記載の負荷分散システム。
Each of the plurality of real servers is
A server side registration table for storing entry data including a physical address of the load balancer;
Data link layer processing means for performing data link layer processing in TCP / IP communication;
IP layer processing means for processing the IP layer in the TCP / IP communication;
First receiving means for receiving communication data to be sent from the data link layer processing means to the IP layer processing means instead of the IP layer processing means, and when the received communication data is an IP packet, the server side First receiving means for sending only a packet having a physical address registered in a registration table as a transmission source address to the IP layer processing means;
A second receiving means for receiving communication data to be sent from the IP layer processing means to the data link layer processing means instead of the data link layer processing means, the second receiving means including the second sending means; A second receiving means for sending the IP packet as it is to the data link layer processing means when the data is an IP packet;
The address resolution protocol processing means of the real server is an address resolution protocol response packet in which the communication data received by the first receiving means includes a target IP address and a target physical address, and the target IP address is the first address. And a means for converting the target IP address into the first IP address when the target physical address is a physical address of the real server, and the target IP address is the first IP address. Means for sending the address resolution protocol response packet converted into the IP layer processing means, and the target IP address is not the second IP address or the target physical address is not the physical address of the real server , The address Means for discarding a resolution protocol response packet; and communication data received by the second reception means is an address resolution protocol request packet including a target IP address and a target physical address, and the target IP address is the first IP address. Means for converting a source IP address into the second IP address when the target physical address is a physical address of the real server, and the target IP address is converted into the second IP address. The address resolution protocol request packet sent to the data link layer processing means and the target IP address is not the first IP address, or the target physical address is not the physical server physical address, The address resolution Load balancing system according to claim 4, characterized in that it comprises a means for discarding protocol request packet.
前記負荷分散装置は、
前記実サーバと互いに物理アドレス及びIPアドレスの対を交換するため、ブロードキャストもしくはマルチキャストのIPパケットを含むパケット転送要請が送られた場合、前記パケット転送要請の送信元アドレスに対してIPパケットを含むパケット転送広告を前記第1の送信手段により送信させるパケット転送広告処理手段と、
前記パケット転送広告に応じて前記パケット転送要請の送信元の前記実サーバから登録要求が送られた場合、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータを前記負荷分散装置側登録テーブルに追加登録すると共に、当該登録の結果を前記パケット転送要請の送信元の前記サーバに通知するためのIPパケットを含む登録応答を前記第1の送信手段により送信させる登録処理手段とを更に有し、
前記実サーバは、前記負荷分散装置と互いに物理アドレス及びIPアドレスの対を交換するため、ブロードキャストもしくはマルチキャストのIPパケットを含む前記パケット転送要請を前記第2の送信手段により送信させると共に、前記パケット転送要請に応じて前記負荷分散装置から前記パケット転送広告が送られた場合、前記パケット転送広告の送信元IPアドレスを宛先IPアドレスとするIPパケットを含む前記登録要求を前記第2の送信手段により送信させ、前記登録要求に応じて前記負荷分散装置から前記登録応答が送られた場合、前記サーバ側登録テーブルに前記負荷分散装置の物理アドレスを含むエントリデータを登録する登録処理手段を更に有する
ことを特徴とする請求項9記載の負荷分散システム。
The load balancer is:
When a packet transfer request including a broadcast or multicast IP packet is sent to exchange a physical address and IP address pair with the real server, a packet including an IP packet with respect to the source address of the packet transfer request A packet transfer advertisement processing means for causing the first transmission means to transmit a transfer advertisement;
When a registration request is sent from the real server that is the transmission source of the packet transfer request in response to the packet transfer advertisement, the entry data including the physical address and IP address of the real server that is the transmission source of the registration request Registration processing for additionally registering in the load balancer side registration table and causing the first transmission means to transmit a registration response including an IP packet for notifying the server of the transmission source of the packet transfer request of the registration result And further comprising means
The real server exchanges a pair of a physical address and an IP address with the load balancer so that the packet transmission request including a broadcast or multicast IP packet is transmitted by the second transmission unit, and the packet transfer When the packet transfer advertisement is sent from the load balancer in response to the request, the registration request including the IP packet having the source IP address of the packet transfer advertisement as the destination IP address is transmitted by the second transmission unit. A registration processing means for registering entry data including a physical address of the load balancer in the server side registration table when the registration response is sent from the load balancer in response to the registration request. The load distribution system according to claim 9, wherein:
前記実サーバから送られる前記登録要求は登録の有効期限のデータを含み、
前記負荷分散装置の前記登録処理手段は、前記実サーバから前記登録要求が送られた場合、当該登録要求に含まれている前記有効期限のデータの示す値が正当であるならば、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスと前記有効期限の値とを含むエントリデータを前記負荷分散装置側登録テーブルに追加登録し、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータが既に登録済みであれば当該エントリデータ中の有効期限の値を当該登録要求に含まれている前記有効期限のデータの示す値に変更する手段と、前記登録要求に含まれている前記有効期限のデータの示す値が正当でないならば、前記負荷分散装置側登録テーブルへの前記ユーザデータの登録を控え、当該登録要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータが既に登録済みであれば当該エントリデータを前記負荷分散装置側登録テーブルから削除する手段と、前記第1の送信手段により送信させる前記登録応答として、前記負荷分散装置側登録テーブルへの登録の成功または失敗を表す登録結果のデータを含む前記登録応答を生成する手段とを含み、
前記実サーバの前記登録処理手段は、前記パケット転送要請に応じて前記負荷分散装置から前記パケット転送広告が送られた場合、前記有効期限のデータを含む前記登録要求を前記第2の送信手段により送信させる手段と、前記登録要求に応じて前記負荷分散装置から前記登録結果のデータを含む前記登録応答が送られた場合、当該登録応答の送信元の前記負荷分散装置の物理アドレスとIPアドレスと前記登録要求に含まれている前記有効期限の値とを含むエントリデータを前記サーバ側登録テーブルに追加登録し、当該登録応答の送信元の前記負荷分散装置の物理アドレスとIPアドレスとを含むエントリデータが既に登録済みであれば当該エントリデータ中の有効期限の値を前記登録要求に含まれている前記有効期限の値に変更する手段と、前記登録応答に含まれている前記登録結果のデータにより登録失敗が示されている場合、前記登録要求に含まれている有効期限より短い値に変更された新たな登録要求を前記第2の送信手段により再度送信させる手段とを含む
ことを特徴とする請求項10記載の負荷分散システム。
The registration request sent from the real server includes registration expiration data,
When the registration request is sent from the real server, the registration processing unit of the load distribution apparatus, if the value indicated by the expiration date data included in the registration request is valid, the registration request Entry data including the physical address, IP address, and value of the expiration date of the real server that is the source of the registration is additionally registered in the load balancer side registration table, and the physical address of the real server that is the source of the registration request Means for changing the value of the expiration date in the entry data to the value indicated by the expiration date data included in the registration request, if the entry data including the IP address is already registered, and the registration request If the value indicated by the expiration date data included in the data is not valid, the user data is not registered in the load balancer side registration table, and the registration If the entry data including the physical address and the IP address of the real server that is the transmission source has already been registered, the entry data is deleted from the load balancer side registration table, and transmitted by the first transmission unit. Generating the registration response including registration result data indicating success or failure of registration in the load balancer side registration table as the registration response to be performed,
When the packet transfer advertisement is sent from the load balancer in response to the packet transfer request, the registration processing unit of the real server sends the registration request including the expiration date data to the second transmission unit. When the registration response including the registration result data is sent from the load balancer in response to the registration request, a physical address and an IP address of the load balancer that is a transmission source of the registration response Entry data including the expiration date value included in the registration request is additionally registered in the server-side registration table, and an entry includes the physical address and IP address of the load balancer that is the transmission source of the registration response If the data has already been registered, it is possible to change the expiration date value in the entry data to the expiration date value included in the registration request. If the registration failure is indicated by the registration result data included in the registration response, a new registration request changed to a value shorter than the expiration date included in the registration request is sent to the second registration request. The load distribution system according to claim 10, further comprising means for retransmitting by the transmission means.
前記負荷分散装置の前記登録処理手段は、前記負荷分散装置側登録テーブルを定期的に監視して、その都度当該負荷分散装置側登録テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該負荷分散装置側登録テーブルから削除する手段を含むことを特徴とする請求項11記載の負荷分散システム。   The registration processing means of the load balancer periodically monitors the load balancer side registration table, and reduces the validity period value of the entry data registered in the load balancer side registration table each time. 12. The load distribution system according to claim 11, further comprising means for deleting the expired data from the load distribution apparatus side registration table. 前記実サーバの前記登録処理手段は、前記サーバ側登録テーブルを定期的に監視して、その都度当該サーバ側登録テーブルに登録されている前記エントリデータの有効期限の値を減らし、当該有効期限が切れたデータを当該サーバ側登録テーブルから削除する手段を含むことを特徴とする請求項11記載の負荷分散システム。   The registration processing means of the real server periodically monitors the server-side registration table, and decreases the value of the validity period of the entry data registered in the server-side registration table each time. 12. The load distribution system according to claim 11, further comprising means for deleting the expired data from the server side registration table. 前記負荷分散装置の前記登録処理手段は、前記実サーバから登録解除を示す登録要求として登録解除要求が送られた場合、当該登録解除要求の送信元の前記実サーバの物理アドレスとIPアドレスとを含むエントリデータを前記負荷分散装置側登録テーブルから削除する手段を含み、
前記登録応答を生成する手段は、前記登録解除要求に対する前記登録応答として、登録解除成功を表す登録結果のデータを含む登録応答を生成し、
前記実サーバの前記登録処理手段は、前記登録解除要求を前記第2の送信手段により送信させる手段と、前記登録解除要求に応じて前記負荷分散装置から前記登録解除成功を表す登録結果のデータを含む前記登録応答が送られた場合、当該登録応答の送信元の前記負荷分散装置の物理アドレスとIPアドレスとを含むエントリデータを前記サーバ側登録テーブルから削除する手段とを含む
ことを特徴とする請求項11記載の負荷分散システム。
When a registration cancellation request is sent as a registration request indicating cancellation of registration from the real server, the registration processing means of the load distribution apparatus obtains the physical address and IP address of the real server that is the transmission source of the registration cancellation request. Means for deleting the entry data including from the load balancer side registration table,
The means for generating the registration response generates, as the registration response to the registration cancellation request, a registration response including registration result data indicating successful registration cancellation,
The registration processing means of the real server includes means for causing the registration cancellation request to be transmitted by the second transmission means, and data of a registration result indicating successful registration cancellation from the load balancer in response to the registration cancellation request. Means for deleting entry data including a physical address and an IP address of the load balancer that is a transmission source of the registration response from the server-side registration table when the registration response is transmitted. The load distribution system according to claim 11.
複数のクライアントにサービスを提供する複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置であって、
前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返す代理アドレス解決プロトコル処理手段と、
通信データを受信する受信手段であって、前記代理アドレス解決プロトコル応答により前記クライアントに返された前記負荷分散装置の物理アドレス宛てに当該クライアントから前記第1のIPアドレスで通信データが送信された場合に、当該通信データを代理で受信する受信手段と、
通信データを送信する送信手段と、
前記複数の実サーバの中から、前記受信手段によって代理で受信された通信データを転送すべき実サーバを選択する負荷分散処理手段と、
前記受信手段によって代理で受信された通信データを前記負荷分散処理手段によって選択された実サーバの物理アドレス宛てに前記送信手段によって転送させる転送処理手段と
を具備することを特徴とする負荷分散装置。
A load distribution device for allocating service requests from each of the plurality of clients to the plurality of real servers, wherein a plurality of real servers that provide services to a plurality of clients have network addresses in the same segment,
Proxy address resolution protocol processing means for returning a proxy address resolution protocol response including a physical address of the load balancer in response to an address resolution protocol request for the first IP address from the client;
A receiving means for receiving communication data, when the communication data is transmitted from the client to the physical address of the load balancer returned to the client by the proxy address resolution protocol response from the client at the first IP address And receiving means for receiving the communication data on behalf of,
A transmission means for transmitting communication data;
Load distribution processing means for selecting a real server to which communication data received on behalf of the receiving means is to be transferred from the plurality of real servers;
A load distribution apparatus comprising: transfer processing means for causing the transmission means to transfer communication data received on behalf of the reception means to a physical address of a real server selected by the load distribution processing means.
負荷分散装置によって割り振られた複数のクライアントの各々からのサービス要求に応じて当該クライアントにサービスを提供する、前記負荷分散装置とネットワークアドレスが同一のセグメントに存在し、且つ共通の第1のIPアドレスを持つ複数の実サーバの集合に属する実サーバであって、
前記クライアントからの前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データが前記負荷分散装置で代理で受信されて、当該負荷分散装置による振り分けで当該代理で受信された通信データが自身の物理アドレス宛てに送信された場合に、当該通信データを受信する受信手段と、
前記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで前記クライアントの物理アドレスを取得するためのアドレス解決を行うアドレス解決プロトコル処理手段と、
前記アドレス解決プロトコル処理手段による前記アドレス解決により決定された物理アドレスに対し前記第1のIPアドレスを送信元IPアドレスとする通信データを送信する送信手段と
を具備することを特徴とする実サーバ。
A first IP address that is common to the load balancer and a network address that provides a service to the client in response to a service request from each of a plurality of clients allocated by the load balancer and that is in the same segment A real server belonging to a set of multiple real servers having
Communication data addressed to the real server having the first IP address as the destination IP address from the client is received by the load balancer as a proxy, and the communication data received by the proxy by the distribution by the load balancer is A receiving means for receiving the communication data when transmitted to its own physical address;
Address resolution protocol processing means for performing address resolution to obtain a physical address of the client with a second IP address for address resolution protocol request transmission different from the first IP address;
A real server comprising: a transmission unit configured to transmit communication data having the first IP address as a transmission source IP address with respect to a physical address determined by the address resolution by the address resolution protocol processing unit.
前記負荷分散装置の物理アドレスを含むエントリデータを格納するサーバ側登録テーブルと、
TCP/IP通信におけるデータリンク層の処理を行うデータリンク層処理手段と、
前記TCP/IP通信におけるIP層の処理を行うIP層処理手段と、
前記受信手段を含み、前記データリンク層処理手段から前記IP層処理手段に送るべき通信データを当該IP層処理手段に代わり受信する第1の受信手段であって、受信された通信データがIPパケットの場合、前記サーバ側登録テーブルに登録されている物理アドレスを送信元アドレスとするパケットのみを前記IP層処理手段に送る第1の受信手段と、
前記IP層処理手段から前記データリンク層処理手段に送るべき通信データを前記データリンク層処理手段に代わり受信する第2の受信手段であって、受信された通信データがIPパケットの場合、当該IPパケットをそのまま前記データリンク層処理手段に送る第2の受信手段とを更に具備し、
前記アドレス解決プロトコル処理手段は、前記第1の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル応答パケットであって、前記ターゲットIPアドレスが前記第2のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、前記ターゲットIPアドレスを前記第1のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第1のIPアドレスに変換された前記アドレス解決プロトコル応答パケットを前記IP層処理手段に送る手段と、前記ターゲットIPアドレスが前記第2のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル応答パケットを破棄する手段と、前記第2の受信手段によって受信された通信データがターゲットIPアドレス及びターゲット物理アドレスを含むアドレス解決プロトコル要求パケットであって、前記ターゲットIPアドレスが前記第1のIPアドレスで、且つターゲット物理アドレスが前記実サーバの物理アドレスである場合に、送信元IPアドレスを前記第2のIPアドレスに変換する手段と、前記ターゲットIPアドレスが前記第2のIPアドレスに変換された前記アドレス解決プロトコル要求パケットを前記データリンク層処理手段に送る手段と、前記ターゲットIPアドレスが前記第1のIPアドレスでないか、或いは前記ターゲット物理アドレスが前記実サーバの物理アドレスでない場合に、前記アドレス解決プロトコル要求パケットを破棄する手段とを含む
ことを特徴とする請求項16記載の実サーバ。
A server side registration table for storing entry data including a physical address of the load balancer;
Data link layer processing means for performing data link layer processing in TCP / IP communication;
IP layer processing means for processing the IP layer in the TCP / IP communication;
A first receiving means including the receiving means for receiving communication data to be sent from the data link layer processing means to the IP layer processing means instead of the IP layer processing means, wherein the received communication data is an IP packet; In this case, a first receiving means for sending only a packet having a physical address registered in the server side registration table as a transmission source address to the IP layer processing means,
Second receiving means for receiving, instead of the data link layer processing means, communication data to be sent from the IP layer processing means to the data link layer processing means, and when the received communication data is an IP packet, Second receiving means for sending the packet as it is to the data link layer processing means,
The address resolution protocol processing means is an address resolution protocol response packet in which the communication data received by the first receiving means includes a target IP address and a target physical address, and the target IP address is the second IP address. And when the target physical address is the physical address of the real server, the target IP address is converted to the first IP address, and the target IP address is converted to the first IP address. Means for sending said address resolution protocol response packet to said IP layer processing means, and said address resolution when said target IP address is not said second IP address or said target physical address is not a physical address of said real server Protoco Means for discarding the response packet; and communication data received by the second receiving means is an address resolution protocol request packet including a target IP address and a target physical address, and the target IP address is the first IP address. And when the target physical address is the physical address of the real server, means for converting the source IP address to the second IP address, and the target IP address is converted to the second IP address. Means for sending the address resolution protocol request packet to the data link layer processing means, and if the target IP address is not the first IP address or the target physical address is not a physical address of the real server, the address Resolution protocol request Real server of claim 16, characterized in that it comprises a means for discarding packets.
複数のクライアントにサービスを提供する複数の実サーバであって、当該複数の実サーバに共通の第1のIPアドレスを持つ複数の実サーバと、前記複数の実サーバとネットワークアドレスが同一のセグメントに存在し、前記複数のクライアントの各々からのサービス要求を前記複数の実サーバに割り振る負荷分散装置とから構成される負荷分散システムに適用される負荷分散方法であって、
前記クライアントからの前記第1のIPアドレスを宛先IPアドレスとする実サーバ宛ての通信データを前記負荷分散装置が代理で受信するステップと、
前記代理で受信された通信データを転送すべき実サーバを、前記複数の実サーバの中から選択するステップと、
前記代理で受信された通信データを前記選択された実サーバの物理アドレス宛てに前記負荷分散装置が転送するステップと、
前記実サーバが、前記第1のIPアドレスとは異なるアドレス解決プロトコル要求送信用の第2のIPアドレスで前記クライアントの物理アドレスを取得するためのアドレス解決を行うステップと、
前記アドレス解決により決定された物理アドレスに対し前記第1のIPアドレスを送信元IPアドレスとする通信データを前記実サーバが送信するステップと
を具備することを特徴とする負荷分散方法。
A plurality of real servers that provide services to a plurality of clients, the plurality of real servers having a first IP address common to the plurality of real servers, and the network addresses of the plurality of real servers in the same segment A load distribution method applied to a load distribution system that includes a load distribution device that exists and allocates a service request from each of the plurality of clients to the plurality of real servers,
The load balancer receives, on behalf of, communication data addressed to a real server whose destination IP address is the first IP address from the client;
Selecting a real server to which communication data received on behalf of the proxy is to be transferred, from among the plurality of real servers;
Transferring the communication data received on behalf of the proxy to the physical address of the selected real server;
The real server performing address resolution for obtaining the physical address of the client with a second IP address for sending an address resolution protocol request different from the first IP address;
A load distribution method comprising: a step of transmitting communication data having the first IP address as a transmission source IP address with respect to a physical address determined by the address resolution.
前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記負荷分散装置が当該負荷分散装置の物理アドレスを含む代理アドレス解決プロトコル応答を返すステップと、
前記クライアントからの前記第1のIPアドレスに対するアドレス解決プロトコル要求に対して前記複数のサーバの各々が応答しないステップと
を更に具備することを特徴とする請求項18記載の負荷分散方法。
In response to an address resolution protocol request for the first IP address from the client, the load balancer returns a proxy address resolution protocol response including a physical address of the load balancer;
The load balancing method according to claim 18, further comprising a step in which each of the plurality of servers does not respond to an address resolution protocol request for the first IP address from the client.
JP2005098687A 2005-03-30 2005-03-30 Load distribution system, real server, and load distribution method Expired - Fee Related JP4177346B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005098687A JP4177346B2 (en) 2005-03-30 2005-03-30 Load distribution system, real server, and load distribution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005098687A JP4177346B2 (en) 2005-03-30 2005-03-30 Load distribution system, real server, and load distribution method

Publications (2)

Publication Number Publication Date
JP2006277569A true JP2006277569A (en) 2006-10-12
JP4177346B2 JP4177346B2 (en) 2008-11-05

Family

ID=37212238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005098687A Expired - Fee Related JP4177346B2 (en) 2005-03-30 2005-03-30 Load distribution system, real server, and load distribution method

Country Status (1)

Country Link
JP (1) JP4177346B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226127A (en) * 2007-03-15 2008-09-25 Toshiba Corp Device and method for enhancing reliability of message in distributed processing
JP2009080642A (en) * 2007-09-26 2009-04-16 Nippon Telegr & Teleph Corp <Ntt> Load control method, device and program
JP2009253578A (en) * 2008-04-04 2009-10-29 Nec Corp Network load distribution device, network load distribution method, and program
JP2011223295A (en) * 2010-04-09 2011-11-04 Hitachi Ltd Frame transfer device and frame transfer method
US8081580B2 (en) 2007-03-15 2011-12-20 Fujitsu Limited Network verification system
JP2014032530A (en) * 2012-08-03 2014-02-20 Nippon Telegr & Teleph Corp <Ntt> Distribution processing system and distribution processing method
WO2014192856A1 (en) * 2013-05-30 2014-12-04 日本電気株式会社 Control apparatus, communication system, relay apparatus control method and program
JP2016515790A (en) * 2013-04-16 2016-05-30 アマゾン・テクノロジーズ・インコーポレーテッド Open connection with distributed load balancer
CN110933190A (en) * 2019-10-18 2020-03-27 平安科技(深圳)有限公司 Client address obtaining method and device, storage medium and computer equipment
JP2022510306A (en) * 2018-11-30 2022-01-26 オラクル・インターナショナル・コーポレイション How to distribute SIGTRAN connections among signal relay station (STP) message processors, systems, and readable media.

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8081580B2 (en) 2007-03-15 2011-12-20 Fujitsu Limited Network verification system
JP2008226127A (en) * 2007-03-15 2008-09-25 Toshiba Corp Device and method for enhancing reliability of message in distributed processing
JP2009080642A (en) * 2007-09-26 2009-04-16 Nippon Telegr & Teleph Corp <Ntt> Load control method, device and program
JP4729549B2 (en) * 2007-09-26 2011-07-20 日本電信電話株式会社 Load control method, apparatus and program
JP2009253578A (en) * 2008-04-04 2009-10-29 Nec Corp Network load distribution device, network load distribution method, and program
JP4683345B2 (en) * 2008-04-04 2011-05-18 日本電気株式会社 Network load balancing apparatus, network load balancing method, and program
JP2011223295A (en) * 2010-04-09 2011-11-04 Hitachi Ltd Frame transfer device and frame transfer method
JP2014032530A (en) * 2012-08-03 2014-02-20 Nippon Telegr & Teleph Corp <Ntt> Distribution processing system and distribution processing method
JP2016515790A (en) * 2013-04-16 2016-05-30 アマゾン・テクノロジーズ・インコーポレーテッド Open connection with distributed load balancer
WO2014192856A1 (en) * 2013-05-30 2014-12-04 日本電気株式会社 Control apparatus, communication system, relay apparatus control method and program
JPWO2014192856A1 (en) * 2013-05-30 2017-02-23 日本電気株式会社 CONTROL DEVICE, COMMUNICATION SYSTEM, RELAY DEVICE CONTROL METHOD, AND PROGRAM
US10742539B2 (en) 2013-05-30 2020-08-11 Nec Corporation Control apparatus, communication system, relay apparatus control method, and program
JP2022510306A (en) * 2018-11-30 2022-01-26 オラクル・インターナショナル・コーポレイション How to distribute SIGTRAN connections among signal relay station (STP) message processors, systems, and readable media.
JP7336521B2 (en) 2018-11-30 2023-08-31 オラクル・インターナショナル・コーポレイション A method, system, and computer readable program for distributing SIGTRAN connections among message processors of signaling transfer points (STPs)
CN110933190A (en) * 2019-10-18 2020-03-27 平安科技(深圳)有限公司 Client address obtaining method and device, storage medium and computer equipment
CN110933190B (en) * 2019-10-18 2022-09-27 平安科技(深圳)有限公司 Client address acquisition method and device, storage medium and computer equipment

Also Published As

Publication number Publication date
JP4177346B2 (en) 2008-11-05

Similar Documents

Publication Publication Date Title
JP4177346B2 (en) Load distribution system, real server, and load distribution method
JP4163697B2 (en) Load distribution system, real server, and load distribution method
US10797995B2 (en) Request routing based on class
US20220174010A1 (en) Updating routing information based on client location
US9608957B2 (en) Request routing using network computing components
US7415536B2 (en) Address query response method, program, and apparatus, and address notification method, program, and apparatus
US8892768B2 (en) Load balancing apparatus and load balancing method
US8156243B2 (en) Request routing
US8321586B2 (en) Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method
JP2007133896A (en) Server load balancing system, server load balancing device, content management device, and server load balancing program
JP2007207231A (en) Method for accessing distributed service in network
JP4910881B2 (en) Communication system, node device, node processing program, and message transmission / reception method
WO2016133066A1 (en) Name identification device, name identification method and recording medium
US10129145B2 (en) Routing IPv6 packets between autonomous systems
JP2010226665A (en) Load distribution system, apparatus and method
KR101598577B1 (en) - Method for constructing publish-subscribe network and supporting communication using hash function
US20060209833A1 (en) Communication apparatus and computer program product for communicating with other communication apparatus
WO2017121134A1 (en) Method for node identification and service advertisement in communication networks
KR20210066641A (en) Method for processing push data in icn system and apparatus for the same
JP5227984B2 (en) Gateway system, communication method, accommodation management server device, and program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080627

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080821

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees