COMPUTER SYSTEM AND COMMUNICATION METHOD
The present invention relates to a computer system and a communication method in a computer system, and more particularly relates to a server load balancing method in a computer system. In a large-scale system established in a data center and so on, a server load balancing device is used for securing scalability. In the server load balancing device, processing is performed, which determines a destination server as a real distribution destination for a Virtual Internet Protocol (hereinafter referred to as a VIP) address and changes a packet header such that the packet is transmitted to the destination. For example, the load balancing device performs MAT (Media Access Control Translation) processing which rewrites only a MAC address of the destination without changing a VIP address of the destination, or performs NAT (Network Address Translation) processing which rewrites an IP address of the packet into an IP address of the real destination. For example, Japanese patent publication No. JP 2008-60747 A describes a load balancing processing method by MAT processing for realizing load balancing of Layer 2 (see a patent literature 1). In the patent literature 1, the load balancing device executes a proxy ARP response to an ARP packet, learns a MAC address of a server and converts a MAC address of the load balancing device included in the packet into the MAC address of the server in response to a destination IP address. Accordingly, an access destination server accessed from the network can be changed by the load balancing device in an integrated fashion and an access destination from the server to the network can be changed by the load balancing device in an integrated fashion. Meanwhile, with speed-up of a network, 10 Gbps has been used in a network interface of a host, and a switch having a lot of 10-Gbps ports is commonly used as a network switch. However, in a high-speed processing environment, since speed-up of a CAM (Content Addressable Memory) for header retrieval is difficult, speed-up of the MAT processing and the NAT processing is also difficult. For speed-up of the MAT processing, for example, a dedicated ASIC which is used for processing a packet header may be considered. In this case, the device cost might be increased. Generally, a L2 switch executes forwarding based on only a destination MAC address having a fixed length and does not executes a header conversion. Since a L2 switch is indispensible for establishing a network and the product cost is decreased due to economy of scale, it is desired that a simple function such as a L2 switch is used in the high-speed network environment. For example, Japanese patent publication No. JP 2009-253578 A describes a load balancing device which executes load balancing for a server by using a L2 switch (see a patent literature 2). The load balancing device described in the patent literature 2 forwards an ARP response from a server to a client, the server being selected from multiple servers based on connection situations between respective servers and the client, and each of the multiple servers performing the ARP response to the ARP request from the client. In the patent literature 2, since the client can directly specify a MAC address of a real server and transmit a packet, MAC address translation processing, which is an inhibitory factor for speed-up of a network, is not required. However, in the method of the patent literature 2, for an ARP relay between the client and the server, a packet processing device should be installed in the network. Thus, the packet processing device is expected to be a processing bottleneck in the high-speed processing environment. Meanwhile, the OpenFlow Consortium proposes the technique (the OpenFlow) in which a forwarding operation and so on of each switch is controlled by an external controller in an integrated fashion in a computer network (see a non-patent literature 1). An example of a system with respect to the OpenFlow is described in “OpenFlow: Enabling Innovation in Campus Networks” by Nick McKeown and 7 other authors (see a non-patent literature 2). In the OpenFlow, communication is treated as end-to-end flow and routing is executed on a flow unit. An OpenFlow switch functioning as a forwarding node operates according to a flow table which is added/updated by an OpenFlow controller based on the OpenFlow protocol. In the flow table, a combination of a packet matching rule (hereinafter referred to as a rule) and an action is registered as a flow entry, the rule specifying a packet, and the action specifying an operation for a reception packet such as “outputting to a specific port”, “discarding” and “rewriting a header”. When header information of the reception packet matches the rule of the flow entry registered in the OpenFlow switch, the OpenFlow switch executes processing of the reception packet according to the action described in the flow entry. Or, when there is no rule (flow entry) matching header information of the reception packet, the OpenFlow switch notifies the OpenFlow controller of the packet (hereinafter referred to as a first packet). When receiving the first packet, the OpenFlow controller determines a route based on information such as a transmission source host and a transmission destination host included in the packet and instructs all OpenFlow switches on the route to set a flow entry specifying a forwarding destination of the packet (issues a flow table updating instructions). The OpenFlow switches on the route update their flow tables managed by themselves in response to the flow table updating instructions. After that, the OpenFlow switch starts forwarding of the packet based on the updated flow table, and the packet reaches the destination host through the route determined by the OpenFlow controller. In a network using the OpenFlow protocol, a controller (a control system) and a switch (a packet forwarding system) are separated. Therefore, a feature expansion to the existing switch operation is easily realized. However, since the existing OpenFlow switch executes the switch processing involving the header reference and the header conversion, a dedicated high-speed device is required as similarly described above to achieve the speed-up of the network. This might lead to increase of costs. According to the above, an object of the present invention is to arbitrarily set a server which is an access destination of a terminal device while suppressing increase of costs in a high-speed network environment. Another object of the present invention is to suppress increase of costs of a computer system which achieves load balancing in the high-speed network environment. Still another object of the present invention is to achieve server load balancing processing with high scalability without using an expensive network device in the high-speed network environment. Yet still another object of the present invention is to achieve load balancing of Layer 4 in which address conversion is required in the high-speed network environment. A computer system according to an aspect of the present invention includes: a controller; and a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation specified by the flow entry. The controller selects, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in an ARP request packet from a terminal device as a physical server which is an access destination of the terminal device. In addition, the controller executes a proxy response to the ARP request packet by using an ARP response packet in which a MAC (Media Access Control) address of the physical server is set as a transmission source MAC address, to notify the terminal device of the MAC address of the physical server which is the access destination of the terminal device. Furthermore, the controller sets a flow entry to the switch, the flow entry specifying that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. A computer system according to another aspect of the present invention includes: a controller; a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation specified by the flow entry; and a switching device. The switch forwards, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server. The controller sets a second flow entry to the switch by replacing the first flow entry, the second flow entry specifying that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device. The switch forwards, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device. The switching device changes the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwards a communication route to the second server. The above-mentioned controller is preferably realized by executing a communication control program by a computer. The above-mentioned switching device is preferably realized by executing a communication control program by a computer. A communication method according to another aspect of the present invention which is executed by a computer system, the computer system including: a switch configured to perform, on a reception packet complying with a flow entry set by a controller, a relay operation specified by the flow entry. The communication method according to the present invention includes: the controller selecting, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in an ARP request packet from a terminal device as a physical server which is an access destination of the terminal device; the controller executing a proxy response to the ARP request packet by using an ARP response packet in which a MAC (Media Access Control) address of the physical server is set as a transmission source MAC address, to notify the terminal device of the MAC address of the physical server which is the access destination of the terminal device; and the controller setting a flow entry to the switch, the flow entry specifying that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. A communication method according to another aspect of the present invention which is executed by a computer system, the computer system including: a switch configured to perform, on a reception packet complying with a flow entry set by a controller, a relay operation specified by the flow entry. The communication method according to the present invention includes: the switch forwarding, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server; the controller setting a second flow entry to the switch by replacing the first flow entry, the second flow entry specifying that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device; the switch forwarding, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device; and the switching device changing the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwarding a communication route to the second server. According to the present invention, a server which is an access destination of a terminal device can be arbitrarily set while increase of costs is suppressed in a high-speed network environment. In addition, server load balancing processing can be achieved while increase of costs is suppressed in the high-speed network environment. Furthermore, server load balancing processing with high scalability can be achieved without using an expensive network device in the high-speed network environment. Moreover, load balancing of Layer 4 in which address conversion is required can be achieved in the high-speed network environment. The above and other objects, advantages and features of the present invention will be more apparent from the following description of certain preferred exemplary embodiments taken in conjunction with the accompanying drawings, in which: Exemplary embodiments of the present invention will be described below referring to the accompanying drawings. In the drawings, same or similar reference numerals indicate same, similar or equivalent configuration elements. In addition, when there are multiple similar configurations, a serial number is added to the reference numeral in each configuration for explanation, and when there is no need for distinguishing between the multiple configurations, a serial number is not added to the reference numeral in each configuration for explanation. A computer system according to the present invention performs establishing a communication route and forwarding control of packet data by using the OpenFlow technique. In the computer system according to the present invention, an OpenFlow controller (hereinafter referred to as a controller) determines a physical server as an access destination of a terminal device based on a load situation of each of multiple physical servers. At this time, the controller collects an ARP request received from the terminal device from an OpenFlow switch (hereinafter referred to as a switch) and executes a proxy response to the ARP request to notify the terminal device of a MAC address of the physical server as the access destination of the terminal device. In addition, the controller sets a flow entry in OpenFlow switches, the flow entry being for relaying a packet to the physical server from the terminal device, and the OpenFlow switches being on a route in which the terminal device and the physical server are endpoints. In this way, since the system according to the present invention determines the physical server as the access destination while using the Layer 2 switches, load balancing can be realized with low costs in the high-speed network. An example of the configuration of the computer system according to the present invention will be described with reference to With reference to The controller 20 is connected to the plurality of switches 10-1 to 10-4 respectively through a control interface 70 of a secure network. The controller 20 controls communication between the plurality of terminal devices 50-1 to 50-2 and the plurality of servers 60-1 to 60-3 through some of the plurality of switches 10-1 to 10-4 by setting a flow entry in each of the plurality of switches 10-1 to 10-4 based on the OpenFlow protocol. In detail, the controller 20 controls communication route establishment and packet forwarding processing for packet forwarding in the system by using the OpenFlow technique. Here, the OpenFlow technique (in detail, see the non-patent literature 1) is the technique that the controller 20 sets route information in units of multilayer and flow in the switches 10 on the communication route and performs routing and node control based on the routing policy (flow entry: flow+action). Accordingly, by separating the routing function from a router and a switch, the controller can perform concentrated control to achieve optimum routing and traffic management. The switch 10 to which the OpenFlow technique is applied treats communication as the flow of END2END, and does not treat communication in units of packet and flame like the conventional router and switch. With reference to The load balancing control section 21 collects load information from each of the servers 60-1 to 60-3 through the load information collecting device 30, records the information in the load information table 25 and manages the information. The load information 253 is collected from each server at regular intervals or at arbitrary time by the load information collecting device 30, and is transmitted to the load balancing controlling section 21 with the server information 251 and the VIP 252. For example, the load information collecting device 30 collects the load information 253 by using a method of collecting an application load through an API such as a SNMP (Simple Network Management Protocol) and a CLI (Command Line User Interface), by using a method of collecting information from a load collecting agent included in the server, or the like. The load balancing controlling section 21 acquires the load information 253 from the load information collecting device 30 at regular intervals or at arbitrary time and updates the load information table 25. At this time, the load balancing controlling section 21 actively or passively acquires the load information 253 from the load information collecting device 30. In addition, the load balancing controlling section 21 records information in the assignment information table 26 and manages the information, the information relating the terminal device 50 to the server 60 which is assigned as an access destination of the terminal device 50. The ARP response processing section 22 executes a proxy ARP response to an ARP request packet transmitted from the switch 10 through the control interface 70. In detail, the ARP response processing section 22 transmits an ARP response packet to the terminal 50 of the request source, the ARP response packet having a MAC address of a host terminal (for example, the server 60) as a transmission source, the host terminal corresponding to a target address included in the ARP request packet. At this time, when the target address is the IP address of the server 60, with reference to the host terminal information table 24, the ARP response processing section 22 specifies the server 60, to which the IP address 242 coinciding with the target address is set, as the ARP request destination and sets the MAC address 243 of the server 60 as a transmission source MAC address of the ARP response packet. On the other hand, when the target address is the VIP address, with reference to the load information table 25, the ARP response processing section 22 specifies the server 60 of the ARP request destination from the server information 251 related to the VIP 252 coinciding with the target address and sets the MAC address 243 corresponding to the host terminal ID 24 related to the server information 251 in the host terminal information table 24 as a transmission source MAC address of the ARP response packet. Due to the above configuration, the controller 20 according to the present invention manages the MAC address and the VIP address set to every server 60 and executes the proxy response using the ARP response packet in which the MAC address of the server 60 corresponding to the target address of the ARP request is set as the transmission source, instead of the server 60. The switch controlling section 23 sets and deletes a flow entry (rule+action) with respect to the switch 10 according to the OpenFlow protocol. Consequently, the switch 10 performs an action (for example, relay and discard of packet data) corresponding to a rule depending on header information of a reception packet. In the rule set to the flow entry, for example, combinations of addresses and identifiers from Layer 1 to Layer 4 of the OSI (Open Systems Interconnection) reference model included in header information of packet data of TCP/IP (Transmission Control Protocol/Internet Protocol) are regulated. For example, a combination of a physical port of Layer 1, a MAC address and a VLAN tag (a VLAN id) of Layer 2, an IP address of Layer 3 and a port number of Layer 4 is set as the rule. Here, a priority order (a VLAN Priority) may be added to the VLAN tag. Here, the addresses and identifiers such as the port number set as the rule by the switch controlling section 23 may be set within a predetermined range. In addition, preferably, an address of a destination and an address of a transmission source are separately set as the rule. For example, a range of a MAC destination address, a range of a destination port number specifying an application of an access destination and a range of a transmission source port number specifying an application of an access source are set as the rule. In addition, an identifier specifying a data forwarding protocol may be set as the rule. In the action set to the flow entry, for example, a method of processing packet data of TCP/IP is regulated. For example, information indicating whether or not reception packet data is relayed and a transmission destination in the case of the relay are set as the action. In addition, as the action, information instructing copying and discarding of the packet data may be set. The switch controlling section 23 sets the flow entry to the switch 10 according to the notification of the first packet and the notification of the ARP request packet from the switch 10. Since the setting of the communication route and the setting and managing of the flow entry of the switch controlling section 23 are executed based on the OpenFlow protocol described in the non-patent literature 1, the detail description is omitted here. Operations which are not regulated in the protocol will be described later. The switch 10 determines a processing method (an action) of a reception packet based on the flow entry set (updated) by the controller 20. The action for the reception packet is exemplified by forwarding to another switch 10 and discarding. In addition, when the reception packet is an ARP request, the switch processing section 11 notifies the switch controlling section 13 of the reception packet. The switch controlling section 13 transmits the notified reception packet (the ARP request packet) to the controller 20 through the control interface 70. The switching device 40 is connected to each of the plurality of switches 10-1 to 10-4 through the control interface 70 as the secure network. The switching device 40 can be realized by a switch or a server which can process traffic with granularity of Layer 4 such as TCP and UDP. The switch processing section 41 is connected to the switch network composed of the plurality of switches 10-1 to 10-4 and realizes a switch function for a packet forwarded through the control interface 80. The switch controlling section 43 controls the setting of the flow entry to the flow table 42 based on the switching information table 45. The switching information table 45 is recorded and managed by the switching controlling section 44. The switch processing section 41 analyzes a reception packet and notifies the switch controlling section 43 of the analysis result. The switch controlling section 43 changes the action of the flow entry set in the flow table 42 based on the analysis result. For example, the switch processing section 41 judges whether or not the reception packet is a TCP packet including a SYN flag and whether or not the flow entry complying with the reception packet exists and notifies the switch controlling section 43 of the judgment result. When the reception packet is the TCP packet including the SYN flag and when the reception packet is not the TCP packet, with reference to the switching information table 45, the switch controlling section 43 changes the destination regulated by the action of the flow entry complying with the reception packet into the MAC address indicated by the new destination server information 453. Or, when the reception packet is not the TCP packet including a SYN flag and the flow entry complying with the packet is set, the switch controlling section 43 executes the action regulated in the flow entry. Due to the above configuration, in the computer system according to the present invention, by the controller 20 controlling the change of the access destination of the terminal device based on the loads of the servers in an integrated fashion and using the switching device 40, the server 60 of the access destination of the terminal device 50 can be switched to another server while the session is retained. With reference to With reference to In advance of this operation, the controller 20 describes a flow entry into the flow table 12 of the switch 10-1, the flow entry being that when receiving an ARP packet, the switch 10-1 transmits it to the controller. For example, the flow entry is set to the switch 10-1, the flow entry including that a matching condition that an interface (a port number) connected to the terminal device 50-1 and an Ethernet type field of 0x0806 as information indicating an ARP request is the rule, and forwarding to the controller is the action. First, the terminal device 50-1 broadcasts an ARP request packet in order to acquire a MAC address which is an address of Layer 2 with respect to a VIP address of an access destination (step S101). The ARP request packet transmitted here indicates that a destination is a broadcast address, a transmission source is the MAC address of the terminal device 50-1 and the payload includes the VIP address as the target to be solved. When the switch 10-1 adjacent to the terminal device 50-1 receives the packet from the terminal device 50-1, the switch 10-1 judges whether or not a flow entry complying with (matched with) the packet is set by retrieving the flow entry with reference to the flow table 12 (step S102). Here, since the reception packet is the ARP request packet through an interface connected to the terminal device 50-1, the switch 10-1 executes the action of “notify the controller 20 of the received ARP request packet” regulated in the flow entry complying with the packet (steps S102: No, S103: Yes and S104). The controller 20 executes ARP response processing with respect to the ARP request packet notified from the switch 10-1 (step S105). With reference to In detail, with reference to the load information table 25, the load balancing controlling section 21 specifies the server (the server information 251) to which the destination VIP address of the reception packet is assigned, extracts the MAC address 243 with respect to the specified server information 251 from the host terminal information table 24 and gives the extracted MAC address 243 to the ARP response processing section 22. At that time, when there are multiple servers to which the destination VIP address is assigned, the load balancing controlling section 21 determines the server to be assigned as the access destination based on the load information 253 with respect to each of the multiple servers (the server information 251). For example, the load balancing controlling section 21 assigns the server 60-1 whose load is smallest in the multiple servers, to which the destination VIP address is assigned, as the access destination of the terminal device 50-1 and gives the MAC address of the server to the ARP response processing section 22. When assigning the server to the target VIP address of the ARP request packet, the load balancing controlling section 21 records the assignment result in the assignment information table 26. In detail, the load balancing controlling section 21 sets the target VIP address of the ARP request packet as the destination information 261, sets the host terminal ID corresponding to the transmission source address (e.g. the transmission source MAC address) of the ARP request packet as the terminal information 262, sets the host terminal ID of the server assigned to the VIP address as the assignment server information 263, relates them to each other and records them in the assignment information table 26. Or, when the server assigned to the VIP address based on the load information 253 is preliminary recorded in the assignment information table 26, the load balancing controlling section 21 extracts the assignment server information 263 corresponding to the target VIP address from the assignment information table 26, and gives the MAC address 243 corresponding to the assignment server information 263 to the ARP response processing section 22. Incidentally, in the step S12, when referring to the assignment information table 26 and finding that the server assigned to the VIP address is not preliminary recorded, the load balancing controlling section 21 preferably determines the server to be assigned to the target VIP address based on the load information table 25. On the other hand, in the step S11, when the reception packet is not the ARP request packet with respect to the VIP address (for example, when the reception packet is the ARP request packet with respect to the destination IP address), the ARP response processing section 22 judges whether or not the proxy response is executed (step S14). For example, information in which the terminal devices connected to the network is preliminary set in the controller 20, to avoid useless traffic, the ARP response processing section 22 returns the response by proxy without flooding (broadcasting) the received ARP request packet. In the step S14, the ARP response processing section 22 judges whether or not the execution of the proxy response to the ARP request from a predetermined terminal device is set. If it is set, the ARP response processing section 22 executes the proxy response based on the setting (steps S14: Yes, S15, S13). Here, when executing the proxy response to the ARP request, the ARP response processing section 22 acquires the MAC address 243 corresponding to the destination IP address of the first packet from the host terminal information table 24 (step S15). When the server is assigned to the target IP address of the ARP request packet, the load balancing controlling section 21 preferably records this assignment result in the assignment information table 26. In detail, the load balancing controlling section 21 sets the target IP address of the ARP request packet as the destination information 261, sets the host terminal ID corresponding to the transmission source address (e.g. the transmission source MAC address) of the ARP request packet as the terminal information 262, sets the host terminal ID of the server assigned to the IP address as the assignment server information 263, relates them to each other and records them in the assignment information table 26. The ARP response processing section 22 transmits an ARP response packet to the terminal device 50-1 of the request source, the ARP response packet being the packet in which the MAC address acquired from the load balancing controlling section 21 or the host terminal information table 24 is set as the transmission source MAC address and the transmission source MAC address of the ARP request packet is set as the destination MAC address (step S13, step S106 in With reference to The terminal device 50-1 sets the transmission source MAC address of the received ARP response packet as the MAC address assigned to the destination VIP address in the ARP table (step S108). Here, the MAC address of the server 60-1 of the destination VIP address is assigned. At the step S108 or later, the terminal device 50-1 sets the MAC address of the server 60-1 as the destination MAC address of the packet in which the destination is the VIP address and then executes the communication in which the destination is the VIP address (step S109 to S115). In detail, the terminal device 50-1 transmits the packet in which the destination is the MAC address of the server 60-1 as the packet in which the destination is the VIP address (step S109). The switch 10-1 judges whether or not the reception packet complies with the entry in the flow table. If the reception packet does not comply with the entry, the switch 10-1 notifies the controller 20 of the packet as the first packet (steps S110: Yes, S111). The controller 20 analyzes the notified first packet and executes flow control processing (step S112). In detail, the controller 20 specifies the terminal 50-1 and the server 60-1 which are end points of a communication route based on the transmission source MAC address and the destination MAC address of the first packet and calculates the communication route which connects between the end points. Next, the controller 20 determines a flow entry for forwarding the packet through the communication route. The controller 20 instructs each of the switches on the communication route to set the flow entry (step S113). Based on the instructions of the setting of the flow entry, the switch 10-1 sets the flow entry in its own flow table and forwards the packet received at the step S109 to the forwarding destination according to the flow entry (step s115). For example, the flow entry is set in the switch 10-1, the flow entry regulating that “forward to the server 60-1 the packet in which the MAC address of the terminal device 50-1 is set as the transmission source address and the MAC address of the server 60-1 is set as the transmission source address as the packet in which the destination is the VIP address.” At the step S114 or later, the packet whose destination is the VIP address is forwarded to the server 60-1 through the switch 10-1, the packet being that the MAC address of the terminal device 50-1 is set as the transmission source address and the MAC address of the server 60-1 is set as the transmission source address. Incidentally, in the example shown in In addition, as the rule of the flow entry set in the switch 10, it is enough to regulate at least the transmission source MAC address and the destination MAC address, and it is not necessary to regulate the destination IP address. According to this, the packet can be forwarded in the usual L2 switch network and the communication with the server 60-1 can be executed by using the L2 switch function included in the switch 10. In this case, since the switch 10 performs the L2 forwarding, the packet is forwarded based on only the destination address. That is, since the rewriting of the packet header is not performed in the network, the system can be established by using the high speed and low cost switches. As described above, in the computer system according to the present invention, the controller 20 captures the ARP request to the VIP address executed by the terminal device 50 and the ARP proxy response is executed in which the server (of the MAC address) assigned to the VIP address is set as the transmission source. In addition, the controller 20 sets to the switch 10 the flow entry in which the reception packet is forwarded to the MAC address assigned to the VIP address. Accordingly, the switch 10 can forward the reception packet to the destination server (the MAC address) corresponding to the VIP address without converting the MAC address. Consequently, according to the present invention, in the high speed and low cost L2 network, the access destination of the terminal device 50 can be arbitrary set by the controller 20. Furthermore, since the controller 20 according to the present invention changes the server of the access destination based on the server load, in the high speed and low cost L2 network, the server load balancing can be realized. At the step S14 shown in Similarly to the operation shown in With reference to With reference to At the step S203 or later, similarly to an ARP procedure by a usual terminal device, an operation for acquiring a destination MAC address is executed (steps S204 to S206). The example shown in At the step S206 or later, similarly to the operation shown in (3) Destination Server Switching Operation With reference to With reference to With reference to Subsequently, the ARP response processing section 22 acquires real server information (MAC address) assigned to the destination information 261 and the terminal device information 262 from the load balancing controlling section 21. In detail, with reference to the load information table 25, the load balancing controlling section 21 specifies the server (the server information 251) to which the destination information 261 (e.g. the destination VIP address) specified at the step S22 is assigned, extracts the MAC address 243 corresponding to the specified server information 251 from the host terminal information table 24, and give it to the ARP response processing section 22. At this time, when there are multiple servers to which the VIP address is assigned, the load balancing controlling section 21 determines the server to be assigned as a new access destination based on the load information 253 corresponding to each of the multiple servers (the server information 251). For example, the load balancing controlling section 21 assigns the server 60-2 whose load is smallest in the multiple servers except the server 60-1, to which the VIP address is assigned, as the access destination of the terminal device 50-1 and gives the MAC address of the server to the ARP response processing section 22. When assigning the server 60-2 as a new destination corresponding to the VIP address, the load balancing controlling section 21 records the assignment result in the assignment information table 26. At this time, the load balancing controlling section 21 records the assignment server information 263 before changing the server assignment as the old destination server information 264 and rewrites the host terminal ID of the server newly assigned to the VIP address as the assignment server information 263. For example, the load balancing controlling section 21 sets the VIP address specified at the step S22 as the destination information 261, sets the host terminal ID corresponding to the terminal device 50-1 specified at the step S22 as the terminal information 262, sets the host terminal ID of the server 60-2 assigned to the VIP address as the assignment server information 263, relates them to each other and records them in the assignment information table 26. The ARP response processing section 22 issues a GARP (Gratuious ARP) packet to the terminal device 50 specified at the step S22, the GARP packet being the packet in which the MAC address of the server newly assigned by the load balancing controlling section 21 is set as the transmission source MAC address (step S24, step S304 in The terminal 50-1 updates the ARP table using the transmission source MAC address of the received GARP packet as the MAC address assigned to the destination VIP address (step S306). Here, the MAC address of the server 60-2 is assigned to the destination VIP address. At the step S306 or later, similarly to the steps S109 to S115 of As described above, according to the present invention, even if the destination server is deleted, the destination server switching in consideration of load can be realized by the controller 20 controlling in an integrated fashion. (4) Destination Server Switching Operation while Session is Retained with reference to With reference to With reference to When switching the destination server, the load balancing controlling section 21 notifies the switching device 40 of the information (the MAC address) of the destination server before and after the switching as the switching information (step S32, step S404 in With reference to When notifying the switching device 40 of the switching information, the controller 20 instructs the switches 10 on the communication route to set (change) the flow entry such that the communication route to the server 60 before the switching is executed is redirected to the switching device 40 (redirection setting instructions, step S406, step S33 in Based on the instructions for setting the flow entry, the switch 10-1 sets the foregoing flow entry to the own flow table 12 (step S407). Here, the flow entry regulating that “forwarding the packet in which the MAC address of the terminal device 50-1 is set as the transmission source MAC address and the MAC address of the server 60-1 is set as the destination MAC address to the switching device 40” is set. At the step S407 or later, the packet to the VIP address, in which the MAC address of the terminal device 50-1 is set as the transmission source MAC address and the MAC address of the server 60-1 is set as the transmission source MAC address, is forwarded to the server 60-1 through the switch 10-1 (steps S408 and S409). In detail, the terminal device 50-1 transmits the packet to the VIP address in which the destination is the MAC address of the server 60-1 (step S408). The switch 10-1 forwards the reception packet to the switching device 40 according to the flow entry (step S409. Consequently, the redirection of the traffic from the terminal device 50-1 to the destination MAC address of the server 60-1 can be realized. When receiving the packet, the switching device 40 analyzes the reception packet by the packet controlling processing and executes the changing of the flow entry or the processing according to the flow entry based on the analysis result (step S410). With reference to First, the switching device 40 judges whether or not the reception packet is the TCP packet (step S41). When the reception packet is not a TCP packet, since there is no connection concept, the switch processing section 41 sets the server 60 corresponding to the new destination server information 453 as the destination of the reception packet and registers the flow entry regulating that “converting the destination MAC address of the reception packet into the MAC address of the server 60 and forwarding it” in the flow table 42 (steps S41: No and S43). In detail, at the step S43, the switch controlling section 43 specifies the new destination server information 453 corresponding to the transmission source MAC address and the destination VIP address of the reception packet. Next, the switch controlling section 43 registers a flow entry in the flow table 42, the flow entry being that the rule is the transmission source MAC address and the destination VIP address of the reception packet and the action is of converting the destination MAC address of the packet into the specified new destination server information 453 (the MAC address) and forwarding the packet. On the other hand, at the step S41, when the reception packet is a TCP packet, the switching device 40 confirms the SYN flag bit of the reception packet (steps S41: Yes and S42). Here, when the reception packet is a SYN packet, since the foregoing packet represents a new connection of the TCP, the procedure proceeds to the step S43 and the destination is changed into the new server (the new destination server information 453) for the this connection (step S42: Yes). At the step S43, when the flow table 42 is changed, the switch processing section 41 executes the action regulated in the changed flow table (step S50). Here, the switch processing section 41 converts the destination MAC address of the reception packet into the MAC address (the new destination server information 453) of the server newly assigned by the controller 20 and forwards the packet. On the other hand, when the reception packet is not the SYN packet and does not meet the TCP completion judgment condition, the switch processing section 41 forwards the reception packet based on the action regulated in the flow entry complying with the reception packet (steps S42: No, S44: Yes, S45, S48: No and S50). Here, meeting the TCP completion judgment condition is, for example, the case that a FIN packet and FIN-ACK packet are transmitted interactively. However, when the flow entry complying with the reception packet which is not the SYN packet is not set in the flow table 42, the switch processing section 41 registers a flow entry in the flow table 42, the flow entry regulating that the server corresponding to the old destination server information 454 is set as the destination of the reception packet and the destination MAC address of the reception packet is converted into the MAC address of the foregoing server and the packet is forwarded (steps S42: No, S44: No, S46 and S47). In detail, the switching controlling section 43 specifies the old destination server information 454 corresponding to the transmission source MAC address and the destination VIP address of the reception packet from the switching information table 45. Next, the switch controlling section 43 registers a flow entry in the flow table 42, the flow entry being that the rule is the transmission source MAC address and the destination VIP address of the reception packet and the action is of converting the destination MAC address of the packet into the specified old destination server information 454 (the MAC address) and forwarding the packet. After the flow entry is registered, when the reception packet does not meet the TCP completion judgment condition, the switch processing section 41 forwards the reception packet based on the action regulated in the flow entry registered at the step S47 (step S50). In addition, when the reception packet is the TCP packet and meets the TCP completion judgment condition such as the case that the FIN packet and FIN-ACK packet are transmitted interactively, since the connection is closed, the entry of the flow table is explicitly deleted (here, only a deletion declaration is explicitly preformed, and the actual deletion will be preformed after executing the action) (steps S48: Yes and S49). As described above, the switching device 40 judges whether the destination server of the reception packet is the old server or the new server after switching and forwards the reception packet to the destination according to the flow entry based on the judgment result. In the present invention, by the switching device 40 changing the destination MAC address of the packet forwarded from the terminal device 50, the destination server can be changed into another server while the session is retained. The example shown in Furthermore, at the step S403, the controller 20 may determine whether or not the switching device is used when the assignment of the destination server is changed based on the protocol of the communication between the terminal device and the server. For example, when the communication between the terminal device and the server is the TCP communication, when the server assignment is changed, the packet is made to pass through the switching device 40 and the server assignment is gradually changed while the session is not disconnected. On the other hand, when the communication is the HTTP communication, the server assignment is changed without the packet passing through the switching device 40 and the interruption of the session is allowed. Or, when the communication of the HTTP protocol is for the specific important application, the controller 20 may control the packet to pass through the switching device not to interrupt the service. In addition, by determining whether or not the packet is made to branch to the switching device based on the transmission source IP address, the controller can set whether or not the session is retained when the server assignment is changed, in units of not only protocol but also user. (5) Switching Completion Operation According to Deletion of Flow Entry. When the flow entry is expired because the completion condition of the TCP connection is satisfied or the time out arises, the switching controlling section 44 confirms whether a flow entry is present in the flow entries recorded in the flow table 42, the flow entry being that the MAC address (the old destination server information 454) of the server before switching is set as the destination MAC address (steps S60, S61 and S62). Here, when the flow entry that the old destination server information 454 is set as the destination MAC address is present in the flow table 42, the switching controlling section 44 waits ready until the expiring of new flow entry arises (step S62: Yes). On the other hand, when the flow entry that the old destination server information 454 is set as the destination MAC address is not present, the switching controlling section 44 notifies the controller 20 of the completion of the switching processing (steps S62: Yes and S63). For example, the switching controlling section 44 counts the flow entries that the old destination server information 454 is set as the destination MAC address every time when deleting the flow entry. At the time when the count value is zero (0) or when certain time passes from the switching processing, the switching control section 44 completes the switching, and notifies the controller of the completion. When receiving the switching completion notification, the controller 20 notifies the terminal device 50 of the physical server (the MAC address) corresponding to the VIP address by using the GARP packet similarly to As described above, according the present invention, the access destination server can be changed without executing header conversion in the switch. Therefore, the load balancing system can be established by using the low cost and high speed L2 switches. Furthermore, in the present invention, the setting of the flow and the changing of the access destination server is realized by using the OpenFlow network based on the server load and the server deletion. Therefore, the server load balancing processing with high scalability can be achieved. While the exemplary embodiments of the present invention has been described in detail, the present invention is not limited to the above exemplary embodiments, but may be modified and changed without departing from the scope and spirit of the present invention. For example, it goes without saying that the number of switches 10, the number of terminal devices 50, the number of switching devices 40 and the number of servers 60 are not limited to the above example. In addition, a plurality of the computer systems according to the present invention may be provided and routing (load balancing control) may be executed among the plurality of computer systems by the cooperation among respective controllers 20. Moreover, in the example mentioned above, the destination server is changed based on the server load and the application load. However, the present invention is not limited to these. The destination server may be arbitrarily changed based on the network load (congestion state) and the setting by a vendor application load. For example, at the maintenance time of the server, the destination server is changed. In addition, the switching device 40 may be realized by a device other than the controller 20 or a device same as the controller 20. When the switching device 40 is realized by the device same as the controller 20, the function (the packet relay function) of the switch 10 is also applied. That is, the switch 40 can be realized by combining the controller 20 and the switch 10. The whole or part of the exemplary embodiments disclosed above can be described as, but not limited to, the following supplementary notes. A computer system including: a controller; and a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation regulated by the flow entry, wherein the controller: notifies, by executing a proxy response to an ARP request packet from a terminal device, the terminal device of a MAC (Media Access Control) address of a physical server which is an access destination of the terminal device, and sets a flow entry to the switch, the flow entry regulating that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. The computer system according to Supplementary note 1, wherein the controller selects, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in the ARP request packet as a physical server which is an access destination of the terminal device, and transmits a MAC address of the physical server to the terminal device as a transmission source MAC address of an ARP response packet. The computer system according to Supplementary note 1 or 2, wherein the controller selects the MAC address of the physical server which is the access destination of the terminal device based on each load on each of the servers. The computer system according to any of Supplementary notes 1 to 3, wherein the controller transmits a GARP packet, in which a MAC address of another physical server different from the physical server is set as a transmission source MAC address, to the terminal device to change a destination MAC address set in an ARP table of the terminal device from the MAC address of the physical server into the MAC address of the other physical server. The computer system according to any of Supplementary notes 1 to 4, wherein when a reception packet is an ARP request packet, according to a flow entry set by the controller, the switch notifies the controller of the ARP request packet. A computer system including: a controller; a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation regulated by the flow entry; and a switching device, wherein the switch forwards, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server, wherein the controller sets a second flow entry to the switch by replacing the first flow entry, the second flow entry regulating that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device, wherein the switch forwards, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device, and wherein the switching device changes the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwards it to a communication route to the second server. The computer system according to Supplementary note 6, wherein the switching device changes, when the reception packet is a TCP (Transmission Control Protocol) packet and a flow entry complying the reception packet is not set in an own flow table, the destination MAC address of the reception packet from the switch into the first MAC address and forwards it to a communication route to the first server. The computer system according to Supplementary note 6 or 7, wherein the switching device executes TCP completion judgment based on a reception packet, and when the switching device judges that TCP connection is completed, after the switching device forwards the reception packet to a destination according to a flow entry which complies with the reception packet and is set in an own flow table, the switching device deletes the flow entry from the flow table. The computer system according to any of Supplementary notes 6 to 8, wherein the switching device notifies the controller of switching completion after deleting a flow entry from an own flow table, and wherein the controller deletes the second flow entry from the switch based on the switching completion. The computer system according to any of Supplementary notes 6 to 9, wherein the controller selects a second MAC address of the second server to be an access destination of the terminal device based on load of each of a plurality of server and notifies the switching device. A controller used for the computer system according to any of Supplementary notes 1 to 10. A switching device used for the computer system according to any of Supplementary notes 6 to 10. A communication control program, when executed by a computer, realizing the controller according to Supplementary note 11. A communication control program, when executed by a computer, realizing the switching device according to Supplementary note 12. A communication method which is executed by a computer system, the computer system including: a switch configured to perform, on a reception packet complying with a flow entry set by a controller, a relay operation regulated by the flow entry, the communication method including: the controller notifying, by executing a proxy response to an ARP request packet from a terminal device, the terminal device of a MAC (Media Access Control) address of a physical server which is an access destination of the terminal device, and the controller setting a flow entry to the switch, the flow entry regulating that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. The communication method according to Supplementary note 15, further including: the controller selecting, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in the ARP request packet as a physical server which is an access destination of the terminal device, wherein the step of notifying the MAC address, includes: the controller transmitting a MAC address of the physical server to the terminal device as a transmission source MAC address of an ARP response packet. The communication method according to Supplementary note 15 or 16, further including: the controller selecting the MAC address of the physical server which is the access destination of the terminal device based on each load on each of the servers. The communication method according to any of Supplementary notes 15 to 17, further including: the controller transmitting a GARP packet, in which a MAC address of another physical server different from the physical server is set as a transmission source MAC address, to the terminal device to change a destination MAC address set in an ARP table of the terminal device from the MAC address of the physical server into the MAC address of the other physical server. The communication method according to any of Supplementary notes 15 to 18, further including: the switch notifying, when a reception packet is an ARP request packet, according to a flow entry set by the controller, the controller of the ARP request packet. A communication method which is executed by a computer system, the computer system including: a switch configured to perform, on a reception packet complying with a flow entry set by a controller, a relay operation regulated by the flow entry, the communication method including: the switch forwarding, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server; the controller setting a second flow entry to the switch by replacing the first flow entry, the second flow entry regulating that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device; the switch forwarding, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device; and the switching device changing the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwarding it to a communication route to the second server. The communication method according to Supplementary note 20, further including: the switching device changing, when the reception packet is a TCP (Transmission Control Protocol) packet and a flow entry complying the reception packet is not set in an own flow table, the destination MAC address of the reception packet from the switch into the first MAC address and forwards it to a communication route to the first server. The communication method according to Supplementary note 20 or 21, further including: the switching device judging that TCP connection is completed based on a reception packet, and the switching device deletes, after forwarding the reception packet to a destination according to a flow entry which complies with the reception packet, the flow entry from the flow table. The communication method according to any of Supplementary note 20 or 22, further including: the switching device notifying the controller of switching completion after deleting a flow entry from an own flow table, and the controller deleting the second flow entry from the switch based on the switching completion. The communication method according to any of Supplementary note 20 or 23, further including: the controller selecting a second MAC address of the second server to be an access destination of the terminal device based on load of each of a plurality of server and notifying the switching device. This application is based upon and claims the benefit of priority from Japanese patent application No. 2011-80955, the disclosure of Japanese patent application No. 2011-80955 is incorporated herein in its entirety by reference. In a computer system by using an ARP response packet in which a MAC address of a physical server is set as a transmission source MAC address, the MAC address of the physical server corresponding to a target VIP address included in an ARP request packet from a terminal device, a controller executes a proxy response to the ARP request packet to notify the terminal device of the MAC address of the physical server which is the access destination of the terminal device. In addition, the controller sets a flow entry to the switch, the flow entry regulating that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. Accordingly, a server which is an access destination of a terminal device can be arbitrarily set while increase of costs is suppressed in a high-speed network environment. 1. A computer system comprising:
a controller; and a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation regulated by the flow entry, wherein the controller:
selects, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in an ARP request packet from a terminal device as a physical server which is an access destination of the terminal device, and notifies, by executes a proxy response to the ARP request packet by using an ARP response packet in which a MAC (Media Access Control) address of the physical server is set as a transmission source MAC address, the terminal device of the MAC address of the physical server which comprises the access destination of the terminal device, sets a flow entry to the switch, the flow entry regulating that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. 2. The computer system according to 3. The computer system according to 4. A computer system comprising:
a controller; a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation regulated by the flow entry; and a switching device, wherein the switch forwards, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server, wherein the controller sets a second flow entry to the switch by replacing the first flow entry, the second flow entry regulating that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device, wherein the switch forwards, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device, wherein the switching device changes the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwards it to a communication route to the second server. 5. A controller used for the computer system,
the computer system comprising: the controller; and a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation regulated by the flow entry, wherein the controller:
selects, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in an ARP request packet from a terminal device as a physical server which is an access destination of the terminal device, and notifies, by executes a proxy response to the ARP request packet by using an ARP response packet in which a MAC (Media Access Control) address of the physical server is set as a transmission source MAC address, the terminal device of the MAC address of the physical server which comprises the access destination of the terminal device, sets a flow entry to the switch, the flow entry regulating that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. 6. A switching device used for the computer system according to 7. A non-transitory computer-readable recording medium storing a communication control program, when executed by a computer, realizing the controller according to 8. A non-transitory computer-readable recording medium storing a communication control program, when executed by a computer, realizing the switching device according to 9. A communication method which is executed by a computer system, the computer system including: a switch configured to perform, on a reception packet complying with a flow entry set by a controller, a relay operation regulated by the flow entry,
the communication method comprising: the controller selecting, with reference to a table in which a VIP (Virtual Internet Protocol) address and a physical server are related and recorded, a physical server which corresponds to a target VIP address included in an ARP request packet from a terminal device as a physical server which is an access destination of the terminal device; the controller notifying, by executing a proxy response to the ARP request packet by using an ARP response packet in which a MAC (Media Access Control) address of the physical server is set as a transmission source MAC address, the terminal device of the MAC address of the physical server which comprises the access destination of the terminal device; and the controller setting a flow entry to the switch, the flow entry regulating that a reception packet, which is transmitted from the terminal device and in which the MAC address is set as a destination MAC address, is made to be forwarded to a communication route to the physical server. 10. A communication method which is executed by a computer system, the computer system including: a switch configured to perform, on a reception packet complying with a flow entry set by a controller, a relay operation regulated by the flow entry,
the communication method comprising: the switch forwarding, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server; the controller setting a second flow entry to the switch by replacing the first flow entry, the second flow entry regulating that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device; the switch forwarding, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device; and the switching device changing the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwarding it to a communication route to the second server. 11. A controller used for the computer system, the computer system comprising:
the controller; a switch configured to perform, on a reception packet complying with a flow entry set by the controller, a relay operation regulated by the flow entry; and a switching device, wherein the switch forwards, based on a first flow entry set by the controller, a packet in which a first MAC address of a first server is set as a destination MAC address to a communication route to the first server, wherein the controller sets a second flow entry to the switch by replacing the first flow entry, the second flow entry regulating that a packet, in which a first MAC address of the first server is set as a destination MAC address, is made to be forwarded to the switching device, wherein the switch forwards, based on the second flow entry, the packet in which the first MAC address is set as the destination MAC address to the switching device, wherein the switching device changes the destination MAC address of the reception packet from the switch from the first MAC address into a second MAC address of a second server different from the first server and forwards it to a communication route to the second server. 12. A non-transitory computer-readable recording medium storing a communication control program, when executed by a computer, realizing the controller according to TECHNICAL FIELD
BACKGROUND ART
CITATION LIST
Patent Literature
Non Patent Literature
SUMMARY OF INVENTION
BRIEF DESCRIPTION OF DRAWINGS
DESCRIPTION OF EXEMPLARY EMBODIMENTS
(Outline)
(Configuration of Computer System)
(Operation)
(1) Load Balancing Operation in the Case of Executing ARP Proxy Response
(2) Operation in the Case of not Executing ARP Proxy Response
(Supplementary Note 1)
(Supplementary Note 2)
(Supplementary Note 3)
(Supplementary Note 4)
(Supplementary Note 5)
(Supplementary Note 6)
(Supplementary Note 7)
(Supplementary Note 8)
(Supplementary Note 9)
(Supplementary Note 10)
(Supplementary Note 11)
(Supplementary Note 12)
(Supplementary Note 13)
(Supplementary Note 14)
(Supplementary Note 15)
(Supplementary Note 16)
(Supplementary Note 17)
(Supplementary Note 18)
(Supplementary Note 19)
(Supplementary Note 20)
(Supplementary Note 21)
(Supplementary Note 22)
(Supplementary Note 23)
(Supplementary Note 24)