Abstract:
In an information processing system including a plurality of information processing apparatuses, a first information processing apparatus includes a first memory to store a first destination information table in which destination information and specific destination information are associated, and a first processing circuit to calculate a hash value based on destination information included in a first packet, to search the first destination information table, to select a second information processing apparatus based on the hash value, to generate a second packet by adding the hash value and specifying information, to transmit the second packet to the second information processing apparatus. The second information processing apparatus includes a second memory to store a second destination information table and a second processing circuit to receive the second packet, and to transmit to a destination represented by the specific destination information a third packet converted the second packet.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-010144, filed on Jan. 22, 2015, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiments discussed herein are related to an information processing system, an information processing apparatus and a control method of an information processing system. 
     BACKGROUND 
     In recent years, regarding datacenter networks, network virtualization technology utilizing overlay technology such as VXLAN (Virtual eXtensible Local Area Network), STT (Stateless Transport Tunneling), etc. has been gathering attention. 
     According to VXLAN, which is an overlay technique, a VTEP (VXLAN Terminal End Point) is arranged at an end point of an edge of a VXLAN. A VTEP performs a packet conversion process such as encapsulation of a packet to be transmitted to a VXLAN, decapsulation of a packet received from a VXLAN, etc. 
     A VTEP operates in accordance with a hypervisor in a physical server. In other words, the packet conversion process is performed by means of software. 
     In the network virtualization, the encapsulation of packets is performed by means of software, and this has caused performance problems for reasons that a bottleneck occurs due to loads on the CPU (Central Processing Unit) and it is difficult to benefit from the speed acceleration function of an NIC (Network Interface Card), etc. 
     In the above situation, products that realize higher speeds by conducting off-load of encapsulation/decapsulation processes of packets conducted by software into hardware such as a NIC, a switch, etc. (hardware off-load) are emerging. In other words, these products realize the function of a VTEP by using a NIC or a switch. 
     At a protocol termination point for network virtualization such as a VTEP, destination node information of packets after encapsulation is obtained from a destination table so as to conduct encapsulation by using the obtained information. 
     The number of entries in a destination table of a device having an off-load function is very small because of the implementation area and cost. Accordingly, it is difficult to realize a large-scale configuration while using an off-load function. 
     Furthermore, a document such as Japanese Laid-open Patent Publication No. 2014-160907 is well known. 
     SUMMARY 
     According to an aspect of the invention, an information processing system includes a plurality of information processing apparatuses. 
     A first information processing apparatus among the plurality of information processing apparatuses includes a first memory and a first processing circuit. 
     The first memory is configured to store a first destination information table in which destination information and specific destination information that corresponds to the destination information are associated. 
     The first processing circuit is configured to calculate a hash value on the basis of destination information included in a first packet received from a virtual machine, to search the first destination information table, to select a second information processing apparatus on the basis of the calculated hash value when a search target entry does not exist, and to generate a second packet that is a result of the hash value added and specifying information to specify the first information processing apparatus, which is the apparatus of the first processing circuit, to the received first packet. 
     The first processing circuit is configured to transmit the second packet to the second information processing apparatus. 
     A second information processing apparatus among the plurality of information processing apparatuses includes a second memory and a second processing circuit. 
     The second memory is configured to store a second destination information table in which destination information and specific destination information that corresponds to the destination information are associated. 
     The second processing circuit is configured to receive the second packet. 
     The second processing circuit is configured to transmit to a destination represented by the specific destination information a third packet that is a result of the second converted packet by using a specific destination information obtained by searching the second destination information table on the basis of the hash value included in the second packet. 
     The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a configuration diagram of an information processing system according to an embodiment; 
         FIG. 2  illustrates a variation example of a system configuration of the information processing system according to an embodiment; 
         FIG. 3  is a configuration diagram of a node according to an embodiment; 
         FIG. 4  is a hardware diagram of a node according to an embodiment; 
         FIG. 5  is an example of a node determination table; 
         FIG. 6  illustrates an example of a VNI table; 
         FIG. 7  illustrates an example of a destination VTEP table (first); 
         FIG. 8  illustrates an example of a destination VTEP table (second); 
         FIG. 9  illustrates a VXLAN packet format in detail; 
         FIG. 10  is a schematic diagram of a format of a VXLAN packet; 
         FIG. 11  schematically illustrates a packet relay method according to an embodiment; 
         FIG. 12  illustrates apparent operations of a cluster of an embodiment; 
         FIG. 13  is a flowchart for a packet relay method according to an embodiment; 
         FIG. 14  illustrates a process of determining a responsible node; 
         FIG. 15  illustrates a VXLAN header for transfer of a packet between in-cluster nodes; 
         FIG. 16  illustrates a VXLAN packet for transfer of a packet between in-cluster nodes; 
         FIG. 17  is a flowchart of a packet relay method according to an embodiment; 
         FIG. 18  illustrates a VXLAN header for transmission of a packet to a VXLAN; 
         FIG. 19  illustrates a VXLAN packet for transmission of a packet to a VXLAN; 
         FIG. 20  illustrates a configuration diagram of anode according to another embodiment; and 
         FIG. 21  is a hardware diagram of a node according to another embodiment. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     Hereinafter, explanations will be given for the embodiments by referring to the drawings. 
       FIG. 1  is a configuration diagram of an information processing system according to an embodiment. 
     An information processing system  101  includes nodes  201 - i  (i=1 through 5). 
     The nodes  201  are for example a server, a personal computer, etc. The node  201  is an example of an information processing apparatus. 
     The node  201 - i  is connected to a VXLAN. The VXLAN is an example of an overlay network. The nodes  201 - 1  through  201 - 3  are connected to the nodes  201 - 4  and  201 - 5  via the VXLAN. 
     The nodes  201 - 1  through  201 - 5  are respectively provided with the functions of VTEP # 1 - 1  through # 1 - 3 , # 4  and # 5 . A VTEP is arranged at an end point of an edge of a VXLAN, and performs a packet conversion process such as encapsulation of a packet to be transmitted to the VXLAN, decapsulation (cancellation of encapsulation) of a packet received from the VXLAN, etc. 
     The nodes  201 - 1  through  201 - 3  are connected to each other via dedicated communication channels. In the information processing system  101 , the nodes  201 - 1  through  201 - 3  constitute a cluster (group). 
     Each of VTEPs # 1 - 1  through # 1 - 3 , # 4  and # 5  has a destination VTEP table. A destination VTEP table stores destination information of a packet (destination MAC address) and specific destination information of a VTEP (VTEP IP address and VTEP MAC address) in an associated manner. 
     VTEPs # 1 - 1  through # 1 - 3 , # 4  and # 5  perform encapsulation of packets by using a destination VTEP table. 
     Destination VTEP tables are created so that duplication does not occur between entries in destination VTEP tables in a cluster. For example, among nodes  201 - 1  through  201 - 3  in a cluster, information of VTEP # 5  is described in the destination VTEP table included in the node  201 - 1  and information of VTEP # 4  is described in the destination VTEP table included in the node  201 - 2 . 
     Also, the information processing system  101  according to an embodiment may employ a configuration as illustrated in  FIG. 2 . 
     In the information processing system illustrated in  FIG. 1 , the nodes  201 - 1  through  201 - 3  are connected to each other via dedicated communication channels respectively, whereas it is also possible to make it possible for the nodes  201 - 1  through  201 - 3  to communicate with each other via a physical communication channel that is shared with the VXLAN as illustrated in  FIG. 2 . 
     It is also possible to configure logical communication channels that are independent (isolated) from each other in a shared physical communication channel so as to connect the nodes  201 - 1  through  201 - 3  to each other. 
       FIG. 3  is a configuration diagram of a node according to an embodiment. 
     The node  201 - i  includes a computer unit  211 - i  and an NIC  221 - i.    
     The computer unit  211 - i  is a hardware device that can execute a program. In the computer unit  211 - i , a virtual machine (VM) is executed. Note that the number of virtual machines may be arbitrary. 
     The NIC  221 - i  conducts input and output (I/O) with a network such as a VXLAN etc. 
     The NIC  221 - i  includes a packet processing unit  231 - i , an in-cluster transmission/reception unit  241 - i  and a storage unit  251 - i . The packet processing unit  231 - i , the in-cluster transmission/reception unit  241 - i  and the storage unit  251 - i  realize the function of a VTEP. 
     The packet processing unit  231 - i  performs processes such as searching for a destination VTEP table for a received packet, calculation of a hash value, encapsulation/decapsulation of a packet, etc. 
     The in-cluster transmission/reception unit  241 - i  performs processes of determination of the node  201 - i  in a cluster to which to transfer a packet, addition of information to a packet, transfer of a packet to the determined node  201 - i , etc. 
     The storage unit  251 - i  is a storage device for storing data and a table used in the NIC  221 - i . The storage unit  251 - i  stores a node determination table  252 - i , a VNI table  253 - i  and a destination VTEP table  254 - i . The node determination table  252 - i , the VNI table  253 - i  and the destination VTEP table  254 - i  will be explained later in detail. 
       FIG. 4  is a hardware diagram of a node according to an embodiment. 
     The node  201 - i  includes a CPU  212 - i , a memory  213 - i , a storage  214 - i  and an NIC  261 - i.    
     The CPU  212 - i , the memory  213 - i  and the storage  214 - i  correspond to the computer unit  211 - i.    
     The CPU  212 - i  is a processor that performs various processes. The CPU  212 - i  executes a program read onto the  213 - i , and thereby performs various processes such as the control of a virtual machine. 
     The memory  213 - i  is a storage device that temporarily stores data, a program, etc. used by the node  201 - i . An example of the memory  213 - i  is a RAM (Random Access Memory). 
     The storage  214 - i  is a storage device that stores data, program, etc. used by the node  201 - i . Examples of the storage  214 - i  are a magnetic disk device (hard disk drive), a non-volatile memory, etc. 
     The NIC  261 - i  includes a controller  262 - i , a processing circuit  263 - i , a memory  264 - i  and a transmission/reception port  265 - i.    
     The NIC  261 - i  corresponds to the NIC  221 - i.    
     The controller  262 - i  is a chip for controlling the NIC  261 - i.    
     The processing circuit  263 - i  conducts calculation of a hash value, encapsulation/decapsulation of a packet, determination of the node  201 - i  to which to transfer a packet, addition of information to a packet and transfer of a packet to the determined node  201 - i . The processing circuit  263 - i  corresponds to the packet processing unit  231 - i  and the in-cluster transmission/reception unit  241 - i . Also, the processing circuit  263 - i  may be a processor that executes a program stored in the memory  264 - i.    
     The  264 - i  is a storage device that temporarily stores data, a program, etc. used by the NIC  261 - i . The memory  264 - i  corresponds to the storage unit  251 - i.    
     The transmission/reception port  265 - i  is an interface for conducting transmission and reception of a packet. 
       FIG. 5  is an example of a node determination table. 
     The node determination table  252 - i  is used in a process of determining a responsible node, which will be described later, and represents which node  201 - i  has information of the destination VTEP of a transmission packet. 
     A node determination table describes an index value and a node ID in an associated manner. 
     An index value is an index referred to when search is conducted, and describes part of a hash value calculated from a transmission packet. 
     A node ID is an identifier for identifying the node  201 - i . A unique node ID has been assigned to the node  201 - i.    
       FIG. 6  illustrates an example of a VNI table. 
     The VNI table  253 - i  describes a correspondence relationship between a VM and a logical network to which the VM belongs. 
     The VNI table  253 - i  described an address, a transmission source MAC address, a VLAN ID and a VNI in an associated manner. 
     An address is an index for identifying an entry of a VNI table. 
     A transmission source MAC address is a MAC address of a VM. 
     A VLAN ID is identification information of a VLAN to which a VM belongs. 
     A VNI is identification information of a logical network to which a VM belongs. 
       FIG. 7  illustrates an example of a destination VTEP table (first). 
     The destination VTEP table  254 - i - 1  describes an address, a destination MAC address, a VNI, a destination VTEP IP address and a destination VTEP MAC address in an associated manner. 
     An address is an index for identifying an entry of the destination VTEP table  254 - i - 1 . 
     An destination MAC address is the MAC address of a VM of a destination. A destination MAC address is an example of a destination information. 
     A VNI is identification information of a logical network. 
     A destination VTEP IP address is the IP address of a VTEP. 
     A destination VTEP MAC address is a VTEP MAC address. 
     A destination VTEP IP address and a destination VTEP MAC address are examples of specific destination information. 
     Also, the destination VTEP table  254 - i  may employ the following configuration. 
       FIG. 8  illustrates an example of a destination VTEP table (second). 
     In this example (second), two tables, specifically tables  254 - i - 2  and  254 - i - 3  constitute the destination VTEP table  254 - i.    
     In this example, the destination VTEP table illustrated in  FIG. 7  is divided into the two tables  254 - i - 2  and  254 - i - 3 . Thereafter, entries of the two tables  254 - i - 2  and  254 - i - 3  are associated by using the destination VTEP ID of each table as a key. 
     The first table  254 - i - 2  describes an address, a destination MAC address, a VNI and a destination VTEP ID in an associated manner. 
     An address, a destination MAC address and a VNI are similar to those in the example of the destination VTEP table (first), and explanations thereof will be omitted. 
     A destination VTEP ID is the identification information of a VTEP. 
     The second table  254 - i - 3  describes a destination VTEP ID, a destination VTEP IP address and a destination VTEP MAC address in an associated manner. 
     A destination VTEP ID is the identification information of a VTEP. 
     A destination VTEP IP address and a destination VTEP MAC address are similar to those in the example of the destination VTEP table (first), and the explanations thereof will be omitted. 
     When a search is conducted by using two tables as described above, the first table  254 - i - 2  is first searched and the second table  254 - i - 3  is referred to by using, as a key, the detected destination VTEP ID. Then, the destination VTEP IP address and the destination VTEP MAC address corresponding to the detected destination VTEP ID are obtained as search results. 
     Entries in the destination VTEP table  254 - i  are set so that duplication does not occur between the nodes  201 - 1  through  201 - 3  in the cluster. 
       FIG. 9  illustrates the VXLAN packet format in detail. 
       FIG. 10  is a schematic diagram of a format of a VXLAN packet. The VXLAN packet illustrated in  FIG. 10  is part of the VXLAN packet illustrated in  FIG. 9 . 
     A VXLAN packet is a packet obtained as a result of encapsulation of an original Ethernet frame (original frame). For the encapsulation, an outer header has been added to the original Ethernet frame. An outer header includes an outer Ethernet header, an outer IP header, an outer UDP (User Datagram Protocol) header, and a VXLAN header. 
     An outer Ethernet header includes a destination MAC address field (the field in which “Destination VTEP MAC Address (H)” and “Destination VTEP MAC Address (L)” are described in  FIG. 9 ), a transmission source MAC address field (the field in which “Source VTEP MAC Address (H)” and “Source VTEP MAC Address (L)” are described in  FIG. 9 ), an EtherType field, and an Outer VLAN Tag Information field. 
     Among the above fields, the EtherType field is afield in which an identifier representing the type of a communication protocol is stored as data. “C-Tag 802.1Q” described in the Optional EtherType field indicates that IEEE (Institute of Electrical and Electronic Engineers) 802.1Q has been specified as the network standard. In such a case, in the Outer VLAN Tag Information field, a PCP (Priority Code Point), a CFI (Canonical Format Indicator) and VLAN ID (Identifier) are stored as data. PCP is data specifying the priority of a VXLAN packet. CFI is data representing whether or not a MAC address is an official format. 
     An outer IP header includes a ToS (Type of Service) field, a Protocol field, a transmission source IP address field (in which “Source VTEP IP Address” is described in  FIG. 9 ) and a destination IP address field (in which “Destination VTEP IP Address” is described in  FIG. 9 ). In the ToS field, type data, which represents the type of the service, is stored, In the Protocol field, an identifier representing the type of the communication protocol is stored. 
     An outer UDP header includes a transmission port number field (in which “Source Port” is described in  FIG. 9 ) and a reception port number field (in which “Dest Port” is described in  FIG. 9 ). As a general rule, a transmission port number field stores information for identifying a transmission source application software in the same transmission source IP address and the reception port number field stores information for identifying a transmission destination application software in the same destination IP address. “Dest Port=VXLAN Port” in  FIG. 9  indicates that this UDP packet is a VXLAN packet. In a VXLAN, it is possible to set an arbitrary value as a transmission source port number, and “Source Port=xxxx” in  FIG. 9  indicates that an arbitrary number has been set. Note that the VXLAN specification recommends that information related to original packet information before encapsulation (such as a hash value etc.) be stored. 
     A VXLAN header includes a flag field (in which “Flags” is described in  FIG. 9 ), a VXLAN Network Identifier field for storing a VNI (VXLAN Network Identifier) and a reserved bit (in which “Reserved” is described in  FIG. 9 ). 
       FIG. 11  schematically illustrates a packet relay method according to an embodiment. 
     In  FIG. 11 , explanations will be given for a case where VM 1  operating in the node  201 - 1  transmits a packet to VM 6  operating in the node  201 - 4 . Note that in  FIG. 11 , VTEPs # 1 - 3  and # 5  are omitted. 
     In the embodiment, the nodes  201 - 1  through  201 - 3  constitute a cluster and VTEPs # 1 - 1  through # 1 - 3  of the nodes  201 - 1  through  201 - 3  cooperate so as to operate as one virtual VTEP # 1 . Information used for packet conversion is described in the destination VTEP tables  254 - 1  and  254 - 2  so that duplication does not occur between the nodes  201 - 1  through  201 - 3  in the cluster. 
     First, VM 1  outputs a packet destined to VM 6  to VTEP # 1 - 1  (step S 10 ). 
     The packet processing unit  231 - 1  of VTEP # 1 - 1  receives the packet, calculates a hash value, searches the destination VTEP table  254 - 1 , and transfers the hash value calculated for the search and the received packet to the in-cluster transmission/reception unit  241 - 1  when information corresponding to the received packet has not been registered in the table as the search result (step S 20 ). 
     The in-cluster transmission/reception unit  241 - 1  determines the node  201 - 2  (VTEP # 1 - 2 ) that is responsible for the received packet on the basis of (part of) the hash value, and adds the information of the device to which the in-cluster transmission/reception unit  241 - 1  belongs to the received packet and transfers it to the determined node  201 - 2  (VTEP # 1 - 2 ) (step S 30 ). 
     When the in-cluster transmission/reception unit  241 - 2  has received a packet including a hash value, the packet processing unit  231 - 2  searches the destination VTEP table  254 - 2  by using the hash value (for this, it is unnecessary to calculate the hash value again), and obtains the specific destination information (destination VTEP IP address and destination VTEP MAC address) corresponding to the packet described in the obtained entry (step S 40 ). 
     The packet processing unit  231 - 2  converts (encapsulates) the packet by using the obtained specific destination information and transmits it to the network (step S 50 ). 
       FIG. 12  illustrates apparent operations of the cluster of the embodiment. 
     In the information processing system  101 , the plurality of nodes  201 - 1  through  201 - 3  (VTEP # 1 - 1  through # 1 - 3 ) operate in cooperation (the left diagram in  FIG. 12 ). Seen from VM 1  through VMS, which are operating in the nodes of the cluster, the VTEP to which they themselves are connected look like a virtual VTEP having one large destination VTEP table (right diagram in  FIG. 12 ). When for example the number of entries are the same between the tables of the respective nodes, the number of entries of the tables becomes N times when N nodes constitute a cluster. 
       FIG. 13  is a flowchart for a packet relay method according to an embodiment. 
       FIG. 13  illustrates a process of a VTEP that first receives a packet output from a virtual machine (VM). For example, in the example illustrated in  FIG. 11 , the process corresponds to the process of VTEP # 1 - 1  (node  201 - 1 ) that first receives a packet from VM 1 . 
     In step S 501 , the packet processing unit  231 - i  receives a packet from a VM. Hereinafter, packets that were received are referred to as received packets. 
     In step S 502 , the packet processing unit  231 - i  searches the VNI table  253 - i  by using, as keys, the transmission source MAC address and the VLAN ID included in the received packet. The packet processing unit  231 - i  obtains the VNI corresponding to the key as a result of the search. 
     In step S 503 , the packet processing unit  231 - i  uses the destination MAC address included in the received packet and the obtained VNI so as to calculate the hash value, and searches the destination VTEP table  254 - i  by using the hash value. More specifically, the packet processing unit  231 - i  refers to the entry of the address of the destination VTEP table  254 - i  that corresponds to the hash value. 
     In step S 504 , the packet processing unit  231 - i  checks whether or not an entry corresponding to the received packet exists in the destination VTEP table  254 - i , and the control proceeds to step S 505  when it exists, and the control proceeds to step S 508  when it does not. More specifically, the packet processing unit  231 - i  checks whether or not the entry of the destination VTEP table  254 - i  referred to by using the hash value is identical to the destination MAC address included in the received packet and the obtained VNI. When it is identical, the packet processing unit  231 - i  determines that an entry corresponding to the received packet exists in the destination VTEP table  254 - i . When it is not identical, the packet processing unit  231 - i  determines that an entry corresponding to the received packet does not exist in the destination VTEP table  254 - i.    
     In step S 505 , the packet processing unit  231 - i  obtains the destination VTEP address of the received packet (destination VTEP IP address and destination VTEP MAC address) as a search result. 
     In step S 506 , the packet processing unit  231 - i  uses the obtained VNI, the destination VTEP address and the VTEP address of itself so as to encapsulate the receive packet (packet conversion). 
     In step S 507 , the packet processing unit  231 - i  outputs the encapsulated packet to the destination VTEP. 
     In step S 508 , the in-cluster transmission/reception unit  241 - i  obtains the hash value used for the search as a search result. 
     In step S 509 , the in-cluster transmission/reception unit  241 - i  uses the obtained hash value so as to refer to the node determination table  252 - i , and obtains the node ID corresponding to the hash value (responsible node information). In other words, the packet processing unit  231 - i  determines a responsible node for the received packet and obtains responsible node information, which is information of the responsible node. 
     In step S 510 , the in-cluster transmission/reception unit  241 - i  uses the obtained hash value, the responsible node information and the VTEP address of itself so as to encapsulate the received packet (packet conversion). In more detail, in a case of a VXLAN, the in-cluster transmission/reception unit  241 - i  converts the received packet into a VXLAN packet for transfer between in-cluster nodes, which will be described later. 
     In step S 511 , the packet processing unit  231 - i  transmits the encapsulated packet to the responsible node. 
     Here, an example of a process of determining a responsible node will be described. 
       FIG. 14  illustrates a process of determining a responsible node. 
     As explained by referring to  FIG. 13 , the packet processing unit  231 - i  receives a packet from a VM (step S 501 ), searches the VNI table  253 - i  by using the transmission source MAC address and the VLAN ID of the received packet, and obtains a VNI (step S 502 ). Then, the packet processing unit  231 - i  uses the destination MAC address of the received packet and the obtained VNI so as to calculate the hash value, and searches the destination VTEP table  254 - i  (step S 503 ). 
     When an entry corresponding to the received packet does not exist in the destination VTEP table  254 - i  (No in step S 504 ), the in-cluster transmission/reception unit  241 - i  obtains the hash value as a search result (step S 508 ). In this example, it is assumed that 0x41a45762f4 was obtained as the hash value of the received packet. 
     As node determination information (index value), the in-cluster transmission/reception unit  241 - i  extracts the two significant bits of the obtained hash value (=01(0x4=0100)). In this example, it is assumed that the maximum number of nodes in the cluster is four. 
     Then, the in-cluster transmission/reception unit  241 - i  refers to the node determination table  252 - i  by using the extracted node determination information as a key (S 509 ). In  FIG. 14 , “2” is obtained as a node ID that corresponds to index value=01. Accordingly, node  201 - i  that corresponds to node ID=2 is determined (calculated) as a responsible node. 
     In order to make it possible to determine a responsible node by the above process, which entry is to be arranged in which of the nodes  201 - i  at the generation of the destination VTEP table  254 - i  is determined by calculating a hash value from the destination MAC address and the VNI and referring to the node determination table  252 - i  by using (part of) the hash value similarly to the process of determining a responsible node. Note that the above method of obtaining an index value from a hash value is an example and the invention is not limited to the method described herein. 
       FIG. 15  illustrates a VXLAN header for transfer of a packet between in-cluster nodes. 
     The upper table of  FIG. 15  illustrates a conventional or standard VXLAN header, and the lower table illustrates a VXLAN header of a packet for transfer between in-cluster nodes. 
     Seven bits in the flag field, which has eight bits, of a conventional VXLAN header are reserved bits (denoted by “R” in  FIG. 15 ). In an embodiment, the least significant bit in the flag field is used as a bit for indicating whether or not the packet is a normal VXLAN packet or a packet of communications between in-cluster nodes. 
     In an embodiment, the least significant bit in the flag field is referred to as an E bit. An E bit is used as control information for indicating whether the packet is a normal VXLAN packet or a packet of communications between in-cluster nodes. A case when E bit=0 is satisfied represents a case when the packet is a normal VXLAN packet and a case when E bit=1 is satisfied represents a case when the packet is a packet of communications between in-cluster nodes. 
     As illustrated in the lower table in  FIG. 15 , when a packet is to be transferred to a node in a cluster, the E bit is set to one. Also, the reserved bit of the VXLAN header is set to the hash value of the packet and the VNI field is set to zero. 
       FIG. 16  illustrates a VXLAN packet for a case when a packet is transferred between in-cluster nodes. 
     In  FIG. 16 , similarly to  FIG. 11 , VTEP # 1 - 1  receives a packet from VM 1  and transfers the packet to VTEP # 1 - 2 . 
       FIG. 16  illustrates a VXLAN packet transmitted from VTEP # 1 - 1  to VTEP # 1 - 2 . 
     In the destination MAC address and the destination IP address of a VXLAN packet, the MAC address and the IP address of VTEP # 1 - 2  are described, respectively. In the transmission source MAC address and the transmission source IP address of a VXLAN packet, the destination MAC address and the destination IP address of VTEP # 1 - 1  are described, respectively. Also, in the VXLAN header, the VXLAN header for transfer between in-cluster nodes illustrated in  FIG. 15  is set. 
     In the above explanations, packet conversion for transfer between in-cluster nodes in a case when a VXLAN is used as the overlay protocol has been described, and explanations will be given for a method of converting a packet when transfer is conducted between in-cluster nodes in a case when Geneve is used as the overlay protocol. 
     According to Geneve, it is possible to add a plurality of options to a tunnel header (corresponding to the VXLAN header of a VXLAN). 
     In packet conversion for transfer between in-cluster nodes in a case when Geneve is used as an overlay protocol, the processes as follows are conducted. 
     A hash value is embedded in a tunnel header as an option. Note that the option is set in the TLV (Type, Length, Value) format, and when a hash value is to be set, a value representing that it is TLV containing the hash value is set in Type, a length of the hash value is set in Length using the number of bytes (4 bytes in this example) set in Length, and the hash value is set in Value. The transmission source address and the destination address of the outer header are set similarly to the case of a VXLAN. Because a VNI has not been determined, zero is set in the VNI field. 
     Next, explanations will be given for a process of a node conducted when a packet has been received from another node in the same cluster or from a network. 
       FIG. 17  is a flowchart of a packet relay method according to an embodiment. 
       FIG. 17  illustrates a process of a VTEP that receives a packet transmitted from another VTEP in the same cluster or a packet from a VXLAN. For example, in the example illustrated in  FIG. 11 , it corresponds to the process of VTEP # 1 - 2  (node  201 - 2 ) that receives a packet from VTEP # 1 - 1 . 
     In step S 521 , the in-cluster transmission/reception unit  241 - i  receives a packet from another node in the same cluster or a network (VXLAN). 
     In step S 522 , the packet processing unit  231 - i  determines whether or not the received packet includes a hash value. More specifically, in the case of a VXLAN, the packet processing unit  231 - i  refers to the E bit and determines whether or not a hash value exists on the basis of the VXLAN of the E bit. The packet processing unit  231 - i  determines that the received packet does not include a hash value when E bit=0, and determines that the received packet includes a hash value when E bit=1. When a hash value is included in the received packet, the control proceeds to step S 523 , and when a hash value is not included, the control proceeds to step S 527 . 
     In step S 523 , the packet processing unit  231 - i  searches the destination VTEP table  254 - i  by using the hash value, and obtains the VNI and the destination VTEP addresses (destination VTEP MAC address and the destination VTEP IP address) of the received packet. More specifically, the packet processing unit  231 - i  refers to an entry of the address of the VTEP table  254 - i  that corresponds to the hash value, and obtains the VNI and the destination VTEP addresses of the received packet. 
     In step S 524 , the packet processing unit  231 - i  rewrites the transmission source MAC address and the transmission source IP address of the outer header into the MAC address and the IP address of the VTEP itself, and sets the MAC address and the IP address of the obtained destination VTEP in the destination MAC address and the destination IP address of the outer header, respectively. 
     In step S 525 , the packet processing unit  231 - i  deletes the hash value included in the VXLAN header, and sets the obtained VNI in the VNI field. 
     In step S 526 , the packet processing unit  231 - i  outputs an encapsulated packet to the network. 
     In step S 527 , the packet processing unit  231 - i  executes a reception process of a normal overlay packet (for example, decapsulation (cancellation of encapsulation) etc.). 
       FIG. 18  illustrates a VXLAN header for transmission of a packet to a VXLAN. 
     In the example of packet relaying illustrated in  FIG. 11 , the packet conversion below is performed by VTEP # 1 - 2 . 
     The upper table in  FIG. 18  illustrates a VXLAN header of a packet received from another node in the same cluster, and the lower table illustrates a VXLAN header of a packet used for transmission to a VXLAN. 
     As described above, the E bit in a VXLAN header for transfer between in-cluster nodes has been set to “1”, and a hash value has been set in the reserved bit. 
     For transmission to a VXLAN, a standard VXLAN header is used again. In other words, the E bit is changed to zero and the hash value described in the reserved bit is changed to zero. Further, the VNI obtained in the search is set in the VNI field. 
       FIG. 19  illustrates a VXLAN packet for transmission of a packet to a VXLAN. 
     In  FIG. 19 , similarly to  FIG. 11 , a case will be explained in which VTEP # 1 - 2  receives a packet from VTEP # 1 - 1  and transmits the packet to VTEP # 4  via a VXLAN. 
     The upper table in  FIG. 19  illustrates a VXLAN packet received from VTEP # 1 - 1  (before-conversion packet), and the lower table illustrates a VXLAN packet for transmission to VTEP # 4  (after-conversion packet). 
     In the destination MAC address and the destination IP address of the outer header of an after-conversion packet, the MAC address and the IP address of VTEP # 4  are described, respectively. In the transmission source MAC address and the transmission source IP address of the after-conversion packet, the destination MAC address and the destination IP address of VTEP # 1 - 2 , which are the destination MAC address and the destination IP address of the before-conversion packet, are described, respectively. 
     As the last description of the explanations for  FIG. 16 , a method of packet conversion for transfer between in-cluster nodes used in a case when Geneve is used as an overlay protocol was explained. 
     When a packet that has received the above conversion is to be output to an overlay network from a cluster, conversion into a standard format is performed by conducting the following processes. 
     The hash value portion is deleted from the option portion of a tunnel header. Then, the VNI obtained as a search result is set in the VNI field. Note that changes of the transmission address and the destination address of the outer header are similar to the case of a VXLAN. 
     Note that while the embodiment employs the packet format of the overlay protocol as the packet format of communications between in-cluster nodes, this is for the purpose of reducing the mounting amount of LSI (Large Scale Integration) etc., and a completely unique packet format may be used for communications between in-cluster nodes. 
     Also, the node  201 - i  may employ the following configuration. 
       FIG. 20  illustrates a configuration diagram of a node according to another embodiment. 
     A node  1201  includes computer units  1211 - j  ( j - 1 ,  2 ) and a switch  1221 . The node  1201  may be a system as illustrated in  FIG. 20  instead of a single device. 
     The computer units  1211 - j  are hardware devices that can execute a program. In the computer units  1211 - j , virtual machines (VMs) are executed. Note that the number of virtual machines can be arbitrary. Also, the number of the computer units  1211  can be arbitrary. 
     The computer units  1211 - j  include NICs  1215 - j.    
     The NICs  1215 - j  conduct processes such as data conversion etc. accompanying communications. The NIC  1215 - j  are connected to the switch  1221  via a network such as a LAN etc. 
     The switch  1221  performs input/output (I/O) with a network such as a VXLAN etc. 
     The switch  1221  includes a packet processing unit  1231 , an in-cluster transmission/reception unit  1241  and a storage unit  1251 . The packet processing unit  1231 , the in-cluster transmission/reception unit  1241  and the storage unit  1251  realize the function of a VTEP. 
     The storage unit  1251  stores a node determination table  1252 , a VNI table  1253  and a destination VTEP table  1254 . 
     The functions of the packet processing unit  1231 , the in-cluster transmission/reception unit  1241  and the  1251  are similar to those of the packet processing unit  231 - i , the in-cluster transmission/reception unit  241 - i  and the storage unit  251 - i , respectively, and accordingly the explanations thereof will be omitted. The node determination table  1252 , the VNI table  1253  and the destination VTEP table  1254  have configurations similar to those of the node determination tables  252 - i , the VNI table  253 - i  and the destination VTEP table  254 - i , respectively, and accordingly the explanations thereof will be omitted. 
       FIG. 21  is a hardware diagram of a node according to another embodiment. 
     The node  1201  includes a calculator  1218 - j  and a switch  1261 . 
     The calculators  1218 - j  include CPUs  1212 - j , memories  1213 - j , storages  1214 - j  and NICs  1261 - j.    
     The calculators  1218 - j  correspond to the computer units  1211 - j . The calculators  1218 - j  are information processing apparatuses such as a server, a personal computer, etc. 
     The functions of the CPUs  1212 - j , the memories  1213 - j  and the storages  1214 - j  are similar to those of the CPUs  212 - i , the memories  213 - i  and the storages  214 - i , and accordingly the explanations thereof will be omitted. 
     The NICs  1261 - j  correspond to the NICs  1215 - j . The NICs  1261 - j  include transmission/reception ports  1217 - j.    
     The transmission/reception ports  1217 - j  are interfaces that conduct transmission and reception of a packet. 
     The switch  1261  corresponds to the switch  1221 . The switch  1261  includes an 802.1Q switch chip  1262 , a processing circuit  1263 , a memory  1264  and transmission/reception ports  1265  and  1266 - j.    
     The 802.1Q switch chip  1262  performs processes based on IEEE 802.1Q, which is a standard for network. 
     The processing circuit  1263  corresponds to the packet processing unit  1231  and the in-cluster transmission/reception unit  1241 . Also, the processing circuit  263 - i  may be a processor that executes a program stored in the memory  1264 . 
     The memory  1264  corresponds to the storage unit  1251 . 
     The functions of the processing circuit  1263 , the memory  1264 , the transmission/reception ports  1265  and  1266 - j  are similar to those of the processing circuits  263 - i , the memories  264 - i  and the transmission/reception ports  265 - i , and accordingly the explanations thereof will be omitted. 
     According to the information processing system of an embodiment, it is possible to use all destination VTEP tables included in a cluster without duplication in a packet conversion process and to increase the number of entries of the tables of the entire information processing system. This makes it possible to construct a large-scale system while using hardware off-load. 
     According to an information processing system of an embodiment, a first node to have received a packet calculates a hash value used for searching destination VTEP tables and the hash value is added to a packet for transmission to a different node in a cluster, making it unnecessary to calculate a hash value again and making it possible to search a destination VTEP table in a different node at a high speed. 
     All examples and conditional language provided herein are intended for pedagogical purposes to aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as being limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.