This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-115246, filed on May 23, 2011, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are directed to an information processing apparatus, a system, and an information processing program.
There is a conventional technology for logically separating computing resources, such as servers. For example, there is a technology named cloud computing in which multiple computing resources on a network are used as user's computing resources. In cloud computing, virtual machines (VM) are allocated to different corporations or divisions, and thereby computing resources are separated for each corporation or division.
Furthermore, there is also a technology for creating a client address in a virtual group routing table and for identifying a virtual group of a client by using this table. Furthermore, there is also a technology for determining whether data is to be forwarded or deleted by using information on a MAC address of a terminal for each virtual group.
Examples of the technology for logically separating computing resources include virtual local area network tagging (VLAN tag: IEEE 802.1q standard) and a provider backbone bridge (PBB: IEEE 802.1ah standard). In the VLAN tag, a VLAN ID is embedded in a media access control (MAC) frame header as an identifier of a logical network. Computing resources are logically separated by using the VLAN ID. Furthermore, in the PBB, a service instance identification (I-SID), which is obtained by encapsulating a MAC frame, is embedded in the MAC frame and the computing resources are logically separated by using the I-SID.
Patent Document 1: Japanese Laid-open Patent Publication No. 09-289521
Patent Document 2: Japanese Laid-open Patent Publication No. 10-093610
However, in the above described technology, there is a problem in that a network is not adequately separated.
For example, in the above described technology for identifying a virtual group of a client, a network is not adequately separated if broadcast communication is performed with the broadcast address set in the header of the data to be transmitted. Specifically, in the above described technology for identifying a virtual group of the client, data is transmitted to all ports instead of being transmitted in virtual group units. Similarly, in the technology for determining whether the data is forwarded or deleted, a network is not adequately separated if broadcast communication is performed with the broadcast address set in the header of the data to be transmitted. Specifically, in the technology for determining whether data is to be forwarded or deleted, data is transmitted to all ports instead of being transmitted in virtual group units. This problem is not limited to cases in which a port is connected to a virtual device; it also occurs in cases in which a port is connected to a server device.
Furthermore, in a VLAN tag and PBB, because a VLAN ID or an I-SID is embedded in data to be transmitted, the size of the data becomes large. Accordingly, there is a problem in that a load is applied to the network. Furthermore, the number of identifiers of the logical network to be set in a header of the VLAN tag or the PBB are 4,096 and 16,777,216, respectively. Accordingly, there is a problem in that, in the VLAN tag and the PBB, the number of logical networks to be used is limited. Furthermore, when compared with other communication methods, because high-cost network devices are used in the PBB, there is a problem in that it is difficult to configure a low-cost network.
According to an aspect of an embodiment of the invention, an information processing apparatus includes a storing unit that stores therein first association information, in which address information on a device connected to a port is associated with information indicating a logical network to which the device belongs, and second association information, in which information indicating the port is associated with the information indicating the logical network to which the device connected to the port belongs; and a transferring unit that receives data containing address information on a transmission source device, that specifies, when the address information on the transmission source device matches the address information indicated by the first association information, the logical network that is indicated by the first association information and is associated with the matched address information, that specifies, when the specified logical network matches the logical network indicated by the second association information, the port that is indicated by the second association information and is associated with the matched logical network, and that transfers the data to the specified port.
According to another aspect of an embodiment of the invention, an information processing apparatus includes a memory; and a processor coupled to the memory, wherein the processor executes a process includes receiving data containing address information on a transmission source device; specifying, when the address information on the transmission source device matches address information indicated by first association information stored in a storing unit that stores therein the first association information, in which address information on a device connected to a port is associated with information indicating a logical network to which the device belongs, and second association information, in which the information indicating the port is associated with the information indicating the logical network to which the device connected to the port belongs, the logical network that is indicated by the first association information and is associated with the matched address information; specifying, when the matched logical network matches the logical network indicated by the second association information, the port that is indicated by the second association information and is associated with the matched logical network; and transferring the data to the specified port.
According to still another aspect of an embodiment of the invention, a non-transitory computer readable storage medium having stored therein a information processing program causing a computer to execute a process includes receiving data containing address information on a transmission source device; specifying, when the address information on the transmission source device matches address information indicated by first association information stored in a storing unit that stores therein the first association information, in which address information on a device connected to a port is associated with information indicating a logical network to which the device belongs, and second association information, in which the information indicating the port is associated with the information indicating the logical network to which the device connected to the port belongs, the logical network that is indicated by the first association information and is associated with the matched address information; specifying, when the matched logical network matches the logical network indicated by the second association information, the port that is indicated by the second association information and is associated with the matched logical network; and transferring the data to the specified port.
The object and advantages of the embodiment 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 embodiment, as claimed.
Preferred embodiments of the present invention will be explained with reference to accompanying drawings. The present invention is not limited to these embodiments. Furthermore, the embodiments can be appropriately used in combination as long as processes do not contradict.
[a] First Embodiment
System Configuration
An information processing apparatus and an information processing according to a first embodiment will be described.
As illustrated in
By operating the VMM, the physical server 10 operates a VM that is to be allocated to multiple corporations or divisions. The physical servers 10A and 10B are connected to the physical switch 12. The physical server 10A includes a physical network interface card (NIC) 13A, a management VM 14A, and a storing unit 15A. The physical server 10B includes a physical NIC 13B, a management VM 14B, and a storing unit 15B. The configuration of the physical server 10A and the physical server 10B are the same. Specifically, the configurations of the physical NIC 13A, the management VM 14A, and the storing unit 15A is the same as those of the physical NIC 13B, the management VM 14B, and the storing unit 15B, respectively. In the following, if there is no need to distinguish between the physical NIC 13A and the physical NIC 13B and between the management VM 14A and the management VM 14B, the physical NICs 13A and 13B and the managements VM 14A and VM 14B are generically referred to as a physical NIC 13 and a management VM 14, respectively. Furthermore, in the following, if there is no need to distinguish between the storing unit 15A and the storing unit 15B, they are generically referred to as a storing unit 15.
The physical NIC 13 is an interface for the communication between the physical switch 12 and a virtual switch 18, which will be described later. For example, the physical NIC 13 receives data, which is transmitted from a VM arranged in another physical server and is transferred by the physical switch 12, and transmits the received data to the virtual switch 18.
The storing unit 15A stores therein first association information 16A in which a logical network identification (LNID) that is information indicating a logical network to which a VM operated in the physical server 10 belongs is associated with a MAC address of a virtual NIC in a VM. Furthermore, the storing unit 15B stores therein first association information 16C in which an LNID that is information indicating a logical network to which a VM operated in the physical server 10 belongs is associated with a MAC address of a virtual NIC in a VM. In the following, if there is no need to distinguish between the first association information 16A and the first association information 16C, they are simply referred to as the first association information. Furthermore, in a description below, a MAC address of a virtual NIC in a VM may be referred to as a “MAC address of a VM”.
An example of the LNID includes a “global LNID” indicating that the LNID belongs to all of the logical networks. Specifically, a VM belonging to a logical network that is indicated by the “global LNID” can communicate with any VM belonging to any logical network.
Furthermore, the storing unit 15A stores therein second association information 16B in which information on a port of a virtual switch connected to a VM operated in the physical server 10 is associated with an LNID indicating a logical network to which the VM connected to the port belongs. Furthermore, the storing unit 15B stores therein second association information 16D in which information on a port of a virtual switch connected to a VM operated in the physical server 10 is associated with an LNID indicating a logical network to which the VM connected to the port belongs. In the following, if there is no need to distinguish between the second association information 16B and the second association information 16D, they are simply referred to as the second association information.
Furthermore, the storing unit 15A stores therein a virtual FDB 16E corresponding to a virtual forwarding database (FDB) that is third information in which ports are associated with MAC addresses. The storing unit 15B also stores therein a virtual FDB 16F. In the following, if there is no need to distinguish between the virtual FDB 16E and the virtual FDB 16F, they are simply referred to as a virtual FDB.
The storing unit 15 is, for example, a semiconductor memory device, such as a flash memory, or a storage device, such as a hard disk or an optical disk. However, the storing unit 15 is not limited to these types of the storage device; the storing unit 15 may also be a random access memory (RAM) or a read only memory (ROM).
The management VM 14A and the management VM 14B each operates a VMM and performs various controls related to a VM. The management VM 14A includes a VM control unit 17A and a virtual switch 18A. The management VM 14B includes a VM control unit 17B and a virtual switch 18B. The VM control unit 17A and the virtual switch 18A are the same as the VM control unit 17B and the virtual switch 18B, respectively. In the following, if there is no need to distinguish between the VM control unit 17A and the VM control unit 17B and between the virtual switch 18A and the virtual switch 18B, the VM control units 17A and 17B and the virtual switches 18A and 18B are generically referred to as a VM control unit 17 and the virtual switch 18, respectively.
The management VM 14 is an integrated circuit, such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), or an electronic circuit, such as a central processing unit (CPU) or a micro processing unit (MPU).
The VM control unit 17 is a control unit that implements virtualization. For example, if the VM control unit 17 receives an instruction to operate a VM from the management server 11 via the physical switch 12 and the physical NIC 13, the VM control unit 17 operates the VM in a virtual region.
Furthermore, the VM control unit 17 transmits information on the operated VM to the management server 11. For example, the VM control unit 17 transmits the MAC address of the operated VM to the management server 11. Furthermore, the VM control unit 17 transmits, to the management server 11, information on a port, for example, a port name, connected to the operated VM.
Furthermore, if the VM control unit 17 receives, from the management server 11, an instruction to store, in an associated manner, a MAC address of a VM and an LNID that indicates a logical network to which the VM belongs, the VM control unit 17 performs the following process. Namely, the VM control unit 17 stores, in the storing unit 15, the first information by associating the MAC address of the VM contained in the instruction with the LNID that indicates the logical network to which the VM belongs.
Furthermore, if the VM control unit 17 receives, from the management server 11, an instruction to store, in an associated manner, the information indicating the port connected to the VM, the LNID indicating the logical network to which the VM belongs, and the MAC address of the VM, the VM control unit 17 performs the following process. Namely, the VM control unit 17 stores, in the storing unit 15, the second information that contains, in an associated manner, the information indicating the port connected to the VM contained in the instruction, the LNID indicating the logical network to which the VM belongs, and the MAC address of the VM.
Furthermore, if the VM control unit 17 receives, from the management server 11, an instruction to delete, from the storing unit 15, a record of a stopped VM or a record of a VM from which allocation of the logical network is released, the VM control unit 17 performs the following process. Namely, the VM control unit 17 deletes, from the storing unit 15 in accordance with the instruction, the record including the stopped VM or the MAC address of the VM from which the allocation of the logical network is released.
The VM operated by the VM control unit 17 belongs to a logical network from among a plurality of logical networks. Because the VM belongs to the logical network in this way, the VM is allocated to a corporation or a division associated with the logical network. Here, to communicate in the same corporation or in the same division, the VM communicates with another VM that belongs to the logical network to which the subject VM belongs. For example, the VM broadcasts an ARP request to another VM belonging to the same logical network. In this case, the ARP request contains, as the transmission source address, a MAC address of a VM of a transmission source and contains, as the destination address, a broadcast address. Furthermore, the VM can communicate with another VM by containing, in the data to be transmitted, address information on the other VM as the destination address.
The virtual switch 18 performs the switching of the received data. For example, the virtual switch 18A includes a transferring unit 21A. Furthermore, the virtual switch 18B includes a transferring unit 21B. The transferring unit 21A and the transferring unit 21B are the same. In the following, if there is no need to distinguish between the transferring unit 21A and the transferring unit 21B, they are simply referred to as a transferring unit 21.
If the transferring unit 21 receives the data containing MAC address information on a VM that corresponds to the transmission source, the transferring unit 21 determines whether the MAC address information on the VM corresponding to the transmission source matches the MAC address information that is indicated by the first association information. If the MAC address information on the VM corresponding to the transmission source matches the MAC address information indicated by the first association information, the transferring unit 21 specifies a logical network that is indicated by the first association information and is associated with the matched address information. Then, the transferring unit 21 determines whether the specified logical network matches the logical network that is indicated by the second association information. If the specified logical network matches the logical network indicated by the second association information, the transferring unit 21 specifies a port that is indicated by the second association information and is associated with the matched logical network. Then, the transferring unit 21 transfers the data to the specified port. In this way, the transferring unit 21 transmits the data to the VM connected to the port.
For example, if the transferring unit 21 receives the data transmitted from the VM, the transferring unit 21 specifies a port of the virtual switch 18 that is associated with the destination of the received data. Specifically, if the destination address is a broadcast address, the transferring unit 21 specifies all of the ports in the virtual switch 18 as the destination port. Furthermore, if the destination address is a MAC address of a VM, the transferring unit 21 searches a virtual FDB by using the destination address as a key and specifies a port in the virtual switch 18. If a port associated with the MAC address of the VM is not searched, the transferring unit 21 specifies all of the ports in the virtual switch 18 as the ports of the destination.
Then, the transferring unit 21 acquires the MAC address (MACSRC) of the VM corresponding to the transmission source contained in the received data. Subsequently, the transferring unit 21 determines whether the acquired MACSRC is registered, as the MAC address of the VM, in the first association information in the storing unit 15.
If the acquired MACSRC is not registered in the first association information as the MAC address of the VM, there is no VM belonging to the same logical network to which the transmission source VM belongs. Accordingly, the transferring unit 21 discards the received data.
In contrast, if the acquired MACSRC is registered in the first association information as the MAC address of the VM, it is assumed that a VM belonging to the same logical network to which the transmission source VM belongs is operated. Accordingly, in such a case, the transferring unit 21 specifies, from the record of the MACSRC registered in the first association information, the LNID (LNIDSRC) that indicates the logical network to which the VM corresponding to the transmission source of the data belongs. Subsequently, as will be described below, the transferring unit 21 determines whether all of the ports in the virtual switch 18 associated with the destination of the data have been selected.
If not all of the ports associated with the destination of the data in the virtual switch 18 has been selected, the transferring unit 21 performs the following process. Namely, the transferring unit 21 selects, from among all of the ports associated with the destination of the data in the virtual switch 18, a port that has not been selected and specifies, from the second association information, the LNIDDST associated with the selected port.
Then, if the specified LNIDSRC matches the LNIDDST that is newly specified, the transferring unit 21 transfers the received data to the newly selected port.
Furthermore, if the specified LNIDSRC is a “global LNID”, the transferring unit 21 transfers the received data to the newly selected port.
Furthermore, if the specified LNIDDST is a “global LNID”, the transferring unit 21 transfers the received data to the newly selected port.
In contrast, if the specified LNIDSRC does not match the newly specified LNIDDST and if the specified LNIDSRC and the newly specified LNIDDST are not the “global LNID”, the transferring unit 21 performs the following process. Namely, the transferring unit 21 prohibits the transmission of the received data to the newly selected port.
The transferring unit 21 repeatedly performs this process until the transferring unit 21 selects all of the ports that are in the virtual switch 18 and that are associated to the destination of the data.
As described above, from the association relationship between the MAC address information and the logical network indicated by the first association information, the transferring unit 21 specifies, as the logical network to which the transmission source VM belongs, the logical network associated with the MAC address of the transmission source VM. From the association relationship between the logical network and the port indicated by the second association information, the transferring unit 21 specifies the port associated with the logical network to which the transmission source VM belongs. The transferring unit 21 transfers the data to the specified port. Accordingly, even if the destination address contained in the data is a broadcast address, the transferring unit 21 can broadcast to only the logical network to which the transmission source VM belongs. Therefore, the logical network can be adequately separated.
Furthermore, the transferring unit 21 compares the logical network of the transmission source contained in the data with the logical network associated with the port. Then, if the logical networks do match or if the LNID of either of the logical networks is a “global LNID”, the transferring unit 21 transfers the received data to a port that is newly selected. Specifically, the transferring unit 21 does not compare the logical network, to which transmission source VM contained in the data belongs, with the logical network, to which the transmission destination VM contained in the data belongs. The reason for this will be described. For example, if the destination address contained in the data is a broadcast address, it is not possible for the transferring unit 21 to specify, from the first association information in which the address information is associated with the information that indicates the logical network, the logical network to which the transmission destination VM belongs. This is because the broadcast address and the information that indicates the logical network are not associated with each other in the first association information. In such a case, it is not possible to specify the logical network to which the transmission destination VM belongs, i.e., to specify the logical network used for the comparison; therefore, it is not possible to control the data transfer, such as transferring the data to the port or prohibiting the transferring of the data to the port. Accordingly, instead of using the logical network to which the transmission destination VM contained in the data belongs for the comparison, the transferring unit 21 controls the data transfer by using the logical network associated with the port for the comparison. Accordingly, the transferring unit 21 can prevent the occurrence of a case in which the data transfer is not controlled.
Furthermore, the transferring unit 21 specifies the logical network associated with the port from the second association information in which information indicating the port is associated with, one to one, information indicating the logical network to which the VM connected to the port belongs. Accordingly, the logical network can be easily specified by searching, using the address information on the transmission source VM as a key, a table, which stores therein the address information that is associated with the information indicating the logical network, for the information indicating the logical network.
Furthermore, the transferring unit 21 can separate the network by performing adequate transferring on the network data that does not contain an identifier for identifying the logical network. Specifically, when compared with a case in which data contains an identifier for identifying the logical network, the transferring unit 21 can separate the network in accordance with data whose size and load is small on the network. Accordingly, when separating the network, the transferring unit 21 can reduce the load on the network.
Furthermore, the transferring unit 21 separates the network in accordance with the network data that does not contain the identifier for identifying the logical network. Specifically, because the number of logical networks to be handled depends on the capacity of the storing unit 15, the number of logical networks that can be handled increases when compared with a case in which the identifier is contained in the network data.
Referring back to
In the LNID table 11b, for all of the logical networks, information that indicates the logical network, to which the VM operated in the physical server 10 belongs, and the MAC address of the VM are registered in an associated manner. In the LNID table 11b, the information is registered by the storage control unit 11a, which will be described later.
If the storage control unit 11a receives an instruction to allocate a new logical network to the VM that is operated in the physical server 10, the storage control unit 11a performs the following process. Namely, the storage control unit 11a registers, in an associated manner in the LNID table 11b, the LNID, which is indicated by the received instruction and indicates a new logical network that is newly allocated, and the MAC address of the VM. Furthermore, the storage control unit 11a transmits, to each physical server 10, an instruction to store, in an associated manner, the MAC address of the VM and the LNID that indicates the logical network to which the VM belongs. At this stage, the storage control unit 11a transmits, to each physical server 10, the instruction to store only the information in which the LNIDs of all of the logical networks to which the VMs operated in the physical server 10 belong are associated with the MAC addresses of all of the VMs belonging to the logical networks. Accordingly, each storing unit 15 in each physical server 10 stores therein the first association information that contains only the information in which the LNIDs of all of the logical networks to which the VMs operated in each physical server 10 belong are associated with the MAC addresses of all of the VMs belonging to the logical networks. Accordingly, for all of the logical networks and the VMs, when compared in a case of storing the first association information in which the LNIDs are associated with the MAC addresses of the VMs, each storing unit 15 can store therein a small amount of the first association information. Furthermore, because each storing unit 15 stores therein, in an associated manner, the LNIDs of the VMs in the physical server 10 and the MAC addresses of the VMs, each storing unit 15 stores therein information needed for the control of the data transfer performed by the transferring unit 21. Specifically, due to the process performed by the storage control unit 11a, each storing unit 15 can store therein a small amount of information needed for the control of the data transfer.
In the following, a description will be given using a specific example. For example, it will be assumed that three VMs, i.e., the VM 19_1A, the VM 19_2A, and the VM 19_2B, are operated in the system 1 and that the LNIDs indicating the logical networks to which the VMs belong are “L1”, “L2”, and “L1”. In such a case, if only the VM 19_1A out of the three VMs is operated in a single physical server 10, the VM 19_1A and the VM 19_2B are associated with the LNID “L1” and registered in the first association information stored in the storing unit 15 in this physical server 10. Specifically, in the first association information in this case, only the information on the VM related to the LNID “L1” to which the operated VM belongs is registered; therefore, the information on the VM related to the LNID “L2” to which the VM operated only in another physical server 10 belongs is not registered.
Furthermore, if a new VM is operated, the storage control unit 11a performs the following process. Namely, the storage control unit 11a transmits, to the physical server 10 that includes a new operated VM, an instruction to store, in an associated manner, the MAC address of the new operated VM, the information indicating the port connected to the subject VM, and the LNID that indicates the logical network to which the subject VM belongs. Accordingly, the storing unit 15 in the physical server 10, which receives the instruction, stores therein the second association information that contains, in an associated manner, the MAC address of the VM operated in the physical server 10, the LNID of the logical network to which the VM belongs, and the information on the port.
Furthermore, if the VM stops or if the allocation of the logical network to the VM is released, the storage control unit 11a performs the following process. Namely, the storage control unit 11a transmits, to each physical server 10, an instruction to delete, from the storing unit 15, a record of the stopped VM or a record of the VM from which the allocation of the logical network is released.
In the example illustrated in
Then, in the example illustrated in
Furthermore, in the example illustrated in
Flow of a Process
In the following, the flow of a process performed by the physical server 10 according to the first embodiment will be described.
As illustrated in
The transferring unit 21 acquires the MAC address (MACSRC) of the transmission source VM contained in the received data (Step S102). Then, the transferring unit 21 determines whether the acquired MACSRC is registered in the first association information as the MAC address of the VM (Step S103).
If the MACSRC is not registered in the first association information as the MAC address of the VM (No at Step S103), the transferring unit 21 discards the received data (Step S104) and ends the process.
In contrast, if the MACSRC is registered in the first association information as the MAC address of the VM (Yes at Step S103), the transferring unit 21 performs the following process. Namely, the transferring unit 21 specifies, from the record in which the MACSRC is registered in the first association information, the LNID (LNIDSRC) that indicates the logical network to which the VM corresponding to the transmission source of the data belongs (Step S105). Subsequently, the transferring unit 21 determines whether all of the ports of the virtual switch 18 associated with the destination of the data specified at Step S101 have been selected (Step S106).
If all of the ports in the virtual switch 18 associated with the destination of the data have been selected (Yes at Step S106), the transferring unit 21 ends the process. If not all of the ports in the virtual switch 18 associated with the destination of the data has been selected (No at Step S106), the transferring unit 21 selects, from all of the ports in the virtual switch 18 associated with the destination of the data, one port that has not been selected (Step S107). Subsequently, the transferring unit 21 specifies the LNIDDST that is associated with the selected port from the second association information (Step S108).
Then, the transferring unit 21 determines whether the specified LNIDSRC matches the newly specified LNIDDST (Step S109). If the specified LNIDSRC matches the newly specified LNIDDST (Yes at Step S109), the transferring unit 21 transfers the received data to the port that is newly selected at Step S107 (Step S110) and returns to Step S106.
In contrast, if the specified LNIDSRC does not match the newly specified LNIDDST (No at Step S109), the transferring unit 21 determines whether the specified LNIDSRC is the “global LNID” (Step S111). If the specified LNIDSRC is the “global LNID” (Yes at Step S111), the process proceeds to Step S110.
If the specified LNIDSRC is not the “global LNID” (No at Step S111), the transferring unit 21 determines whether the specified LNIDDST is the “global LNID” (Step S112). If the specified LNIDDST is the “global LNID” (Yes at Step S112), the process proceeds to Step S110.
In contrast, if the specified LNIDDST is not the “global LNID” (No at Step S112), the transferring unit 21 prohibits the transfer of the received data to the port that is newly selected at Step S107 (Step S113) and returns to Step S106.
Advantage of the First Embodiment
As described above, if the virtual switch 18 according to the embodiment receives data containing the MAC address information on the VM that corresponds to the transmission source, the virtual switch 18 determines whether the MAC address information on the VM that corresponds to the transmission source matches the MAC address information indicated by the first association information. If the MAC address information on the transmission source VM matches the MAC address information indicated by the first association information, the virtual switch 18 according to the first embodiment specifies the logical network that is indicated by the first association information and is associated with the matched address information. Then, the virtual switch 18 according to the first embodiment determines whether the specified logical network matches the logical network indicated by the second association information. If the specified logical network matches the logical network indicated by the second association information, the virtual switch 18 according to the first embodiment specifies the port that is indicated by the second association information and is associated with the matched logical network. Accordingly, even if the destination address contained in the data is the broadcast address, the virtual switch 18 according to the first embodiment can broadcast only to the logical network to which the transmission source VM belongs, thereby the logical network can be more adequately separated.
Furthermore, the virtual switch 18 according to the first embodiment compares the logical network of the transmission source contained in the data with the logical network that is associated with the port. Then, if the logical networks do match or if the LNID of either of the logical networks is the “global LNID”, the virtual switch 18 according to the first embodiment transfers the received data to the newly selected port. Specifically, the virtual switch 18 according to the first embodiment does not compare the logical network, to which the transmission source VM contained in the data belongs, with the logical network, to which the transmission destination VM contained in the data belongs. The virtual switch 18 according to the first embodiment controls the data transfer by using the logical network associated with the port for the comparison without using, for the comparison, the logical network to which the transmission destination VM contained in the data belongs. Accordingly, with the virtual switch 18 according to the first embodiment, it is possible to prevent the occurrence of a case in which the data transfer is not controlled.
Furthermore, the virtual switch 18 according to the first embodiment specifies the logical network associated with the port from the second association information in which the information indicating the port is associated with, one to one, the information indicating the logical network to which the VM connected to the port belongs. Accordingly, when compared with a case of searching for the information indicating the logical network, the virtual switch 18 can easily specify the logical network by searching, using the address information on the transmission source VM as a key, the table that stores therein, in an associated manner, the address information and the information indicating the logical network.
Furthermore, the virtual switch 18 according to the first embodiment can separate the network by adequately transferring the network data that does not contain the identifier for identifying the logical network. Specifically, when compared with a case in which the data contains the identifier that identifies the logical network, the virtual switch 18 according to the first embodiment can separate the network in accordance with the data whose size and load is small on the network. Accordingly, when separating the network, the virtual switch 18 according to the first embodiment can reduce the load on the network.
Furthermore, the virtual switch 18 according to the first embodiment separates the network in accordance with the network data that does not contain the identifier for identifying the logical network. Specifically, because the number of the logical networks to be handled depends on the capacity of the storing unit 15, it is possible to increase the number of logical networks to be handled when compared with a case in which the network data contains the identifier.
Furthermore, if the system 1 according to the first embodiment receives an instruction to allocate a new logical network to the VM that is operated in the physical server 10, the system 1 performs the following process. Namely, the system 1 according to the first embodiment associates the LNID that indicates the logical network, which is indicated by the received instruction and is to be newly allocated, with the MAC address of the VM and registers them in the LNID table 11b. In addition to this, the system 1 according to the first embodiment transmits, to each physical server 10, an instruction to store, in an associated manner, the MAC address of the VM and the LNID indicating the logical network to which the VM belongs. At this time, the system 1 according to the first embodiment transmits, to each physical server 10, an instruction to store only the information in which each of the LNIDs of all of the logical networks to which the VMs operated in the physical server 10 belong is associated with each of the MAC addresses of all of the VMs belonging to the logical networks. Accordingly, only the information, in which each of the LNIDs of all of the logical networks to which the VMs operated in each physical server 10 belong is associated with each of the MAC addresses of all of the VMs belonging to the logical networks, is registered in the first association information stored in each physical server 10. Accordingly, for all of the logical networks and the VMs, when compared with a case of storing the first association information in which the LNIDs are associated with the MAC addresses of the VMs, each storing unit 15 can store a small amount of the first association information. Furthermore, because each storing unit 15 stores therein the first association information in which the LNIDs to which the VMs operated in the physical server 10 belong are associated with the MAC addresses of the VMs, the storing unit 15 stores therein the information needed for controlling the data transfer performed by the transferring unit 21. Specifically, due to the process performed by the system 1 according to the first embodiment, each storing unit 15 can store therein a small amount of information needed for the control of the data transfer.
[b] Second Embodiment
In the first embodiment, a case has been described in which the transfer of the received data is controlled; however, the information processing apparatus disclosed in the present invention is not limited thereto. Accordingly, in a second embodiment, a description will be given of a case in which the transfer of the transmission data is controlled.
System Configuration
In addition to the function performed by the transferring unit 21 according to the first embodiment, the transferring unit 31 according to the second embodiment checks if there is any fraudulent information contained in the data transmitted from the VM. If fraudulent information is contained in the data, the transferring unit 31 prohibits the transmission of the data. An example of fraudulence includes a case in which an attacker to the system 1 transmits, from the VM, the data containing a fraud MAC address of the transmission source VM.
For example, the transferring unit 31 acquires the MAC address of the transmission source VM contained in the data that is transmitted from the VM. Then, from the association relationship between the ports and the MAC addresses indicated by the second association information, the transferring unit 31 acquires, using the port connected to the VM that transmits the data as a key, the MAC address of the VM connected to the port.
Subsequently, the transferring unit 31 determines whether the MAC address of the transmission source VM contained in the data that is transmitted from the VM matches the MAC address acquired from the association relationship indicated by the second association information. If the MAC address of the transmission source VM contained in the data transmitted from the VM matches the MAC address acquired from the association relationship indicated by the second association information, the transferring unit 31 transmits the data to the physical NIC 13. In contrast, the MAC address of the transmission source VM contained in the data transmitted from the VM does not match the MAC address acquired from the association relationship indicated by the second association information, the transferring unit 31 discards the data and prohibits the transmission of the data. The reason for this is that, if these two MAC addresses differ, it is assumed that the data to be transmitted may be data that contains a fake MAC address of the transmission source VM.
Furthermore, as described above, in addition to comparing the MAC addresses and checking whether there is any fraudulent information contained in the data, the transferring unit 31 may also check whether there is any fraudulent information contained in the data by comparing the information on the logical networks.
Specifically, by using the MAC address of the transmission source VM contained in the data transmitted from the VM as a key, the transferring unit 31 acquires the LNID associated with the MAC address of the VM from the association relationship between the MAC addresses and the LNIDs indicated by the first association information. Furthermore, from the association relationship between the ports and the LNIDs indicated by the second association information, by using the port connected to the VM that transmits the data as a key, the transferring unit 31 acquires the LNID of the logical network to which the VM connected to the port belongs.
Subsequently, the transferring unit 31 determines whether the LNID acquired from the association relationship indicated by the first association information matches the LNID acquired from the association relationship indicated by the second association information. If the LNID acquired from the association relationship indicated by the first association information matches the LNID acquired from the association relationship indicated by the second association information, the transferring unit 31 transfers the data to the physical NIC 13. In contrast, if the LNID acquired from the association relationship indicated by the first association information does not match the LNID acquired from the association relationship indicated by the second association information, the transferring unit 31 discards the data and prohibits the transmission of the data. The reason for this is that, if these two LNIDs differ, it is assumed that the data to be transmitted may be data containing a fake MAC address of the transmission source VM.
Flow of a Process
In the following, the flow of a process performed by the physical server 10 according to the second embodiment will be described.
As illustrated in
Subsequently, the transferring unit 31 determines whether the MAC address of the transmission source VM contained in the data transmitted from the VM matches the MAC address acquired from the association relationship indicated by the second association information (Step S203). If the MAC address of the transmission source VM contained in the data transmitted from the VM matches the MAC address acquired from the association relationship indicated by the second association information (Yes at Step S203), the transferring unit 31 transfers the data to the physical NIC 13 (Step S204) and ends the process. In contrast, if the MAC address of the transmission source VM contained in the data transmitted from the VM does not match the MAC address acquired from the association relationship indicated by the second association information (No at Step S203), the transferring unit 31 discards the data, prohibits the transmission of the data (Step S205), and ends the process.
As illustrated in
Subsequently, the transferring unit 31 determines whether the LNID acquired from the association relationship indicated by the first association information matches the LNID acquired from the second association information (Step S303). If the LNID acquired from the association relationship indicated by the first association information matches the LNID acquired from the association relationship indicated by the second association information (Yes at Step S303), the transferring unit 31 transfers the data to the physical NIC 13 (Step S304) and ends the process. In contrast, if the LNID acquired from the association relationship indicated by the first association information does not match the LNID acquired from the association relationship indicated by the second association information (No at Step S303), the transferring unit 31 discards the data, prohibits the transmission of the data (Step S305), and ends the process.
Advantage of the Second Embodiment
As described above, if the virtual switch 18 according to the second embodiment receives data containing the MAC address information on the transmission source VM, the virtual switch 18 determines whether the MAC address information on the transmission source VM matches the MAC address information indicated by the first association information. If the MAC address information on the transmission source VM matches the MAC address information indicated by the first association information, the virtual switch 18 according to the second embodiment specifies the logical network that is indicated by the first association information and that is associated with the matched address information. Then, the virtual switch 18 according to the second embodiment determines whether the specified logical network matches the logical network that is indicated by the second association information. If the specified logical network matches the logical network that is indicated by the second association information, the virtual switch 18 according to the second embodiment specifies the port that is indicated by the second association information and is associated with the matched logical network. Accordingly, even if the destination address contained in the data is a broadcast address, the virtual switch 18 according to the second embodiment can broadcast only to the logical network to which the transmission source VM belongs, which makes it possible to more adequately separate the logical network.
Furthermore, the virtual switch 18 according to the second embodiment compares the logical network of the transmission source contained in the data with the logical network associated with the port. Then, if the logical networks do match or if the LNID of either of the logical networks is the “global LNID”, the virtual switch 18 according to the second embodiment transfers the received data to a newly acquired port. Specifically, the virtual switch 18 according to the second embodiment does not compare the logical network, to which the transmission source VM that is contained in the data belongs, with the logical network, to which the destination VM contained in the data belongs. The virtual switch 18 according to the second embodiment controls the data transfer by using, for the comparison, the logical network associated with the port without using, for the comparison, the logical network to which the destination VM contained in the data belongs. Accordingly, with the virtual switch 18 according to the second embodiment, it is possible to prevent the occurrence of a case in which the data transfer is not controlled.
Furthermore, the virtual switch 18 according to the second embodiment specifies the logical network associated with the port from the second association information in which the information indicating the port is associated with, one to one, the information indicating the logical network to which the VM connected to the port belongs. Accordingly, when compared with a case of searching for the information indicating the logical network, the virtual switch 18 can easily specify the logical network by searching, using the address information on the transmission source VM as a key, the table that stores therein, in an associated manner, the address information and the information indicating the logical network.
Furthermore, the virtual switch 18 according to the second embodiment can separate the network by adequately transferring the network data that does not contain the identifier for identifying the logical network. Specifically, when compared with a case in which the data contains the identifier for identifying the logical network, the virtual switch 18 according to the second embodiment can separate the network in accordance with the data whose size and load is small on the network. Accordingly, when separating the network, the virtual switch 18 according to the second embodiment can reduce the load on the network.
Furthermore, the virtual switch 18 according to the second embodiment separates the network in accordance with the network data that does not contain the identifier for identifying the logical network. Specifically, because the number of the logical networks to be handled depends on the capacity of the storing unit 15, it is possible to increase the number of logical networks to be handled when compared with a case in which the network data contains the identifier.
Furthermore, if the system 1 according to the second embodiment receives an instruction to allocate a new logical network to the VM that is operated in the physical server 10, the system 1 performs the following process. Namely, the system 1 according to the second embodiment associates the LNID that indicates the logical network, which is to be newly allocated and is indicated by the received instruction, with the MAC address of the VM and then registers them in the LNID table 11b. In addition to this, the system 1 according to the second embodiment transmits, to each physical server 10, an instruction to store, in an associated manner, the MAC address of the VM and the LNID indicating the logical network to which the VM belongs. At this time, the system 1 according to the second embodiment transmits, to each physical server 10, an instruction to store only the information in which each of the LNIDs of all of the logical networks to which the VMs operated in the physical server 10 belong is associated with each of the MAC addresses of all of the VMs belonging to the logical networks. Accordingly, only the information, in which each of the LNIDs of all of the logical networks to which the VMs operated in each physical server 10 belong is associated with each of the MAC addresses of all of the VMs belonging to the logical networks, is registered in the first association information stored in each physical server 10. Accordingly, for all of the logical networks and the VMs, when compared with a case of storing the first association information in which the LNIDs are associated with the MAC addresses of the VMs, each storing unit 15 can store a small amount of the first association information. Furthermore, because each storing unit 15 stores therein the first association information in which the LNIDs to which the VMs operated in the physical server 10 belong are associated with the MAC addresses of the VMs, the storing unit 15 stores therein the information needed for the transferring unit 21 controlling the data transfer. Specifically, due to the process performed by the system 1 according to the second embodiment, each storing unit 15 can store therein a small amount of information needed for the control of the data transfer.
Furthermore, If a VM transmits data via a port connected to the VM, the virtual switch 18 according to the second embodiment compares the MAC address of the transmission source VM that is contained in the data with the MAC address acquired from the association relationship indicated by the second association information. If the comparison result indicates that the two MAC addresses differ, the virtual switch 18 according to the second embodiment prohibits the transmission of the data. Furthermore, if a VM transmits data via a port connected to the VM, another virtual switch 18 according to the embodiment compares two LNIDs. Of the two LNIDs, one LNID is an LNID indicated by the first association information that indicates the logical network associated with the MAC address of the transmission source VM contained in the data. The other LNID is an LNID indicated by the second association information that indicates the logical network to which the VM connected to the port belongs. If the comparison result indicates that the two LNIDs differ, the virtual switch 18 according to the second embodiment prohibits the transmission of the data. Accordingly, the virtual switch 18 according to the second embodiment can check whether there is any fraudulent information contained in the data to be transmitted. Furthermore, if the fraudulent information is contained in the data to be transmitted, the virtual switch 18 according to the second embodiment prohibits the transmission of the data, thus preventing the fraudulent data flowing on the network.
In the above explanation, the embodiments of the present invention has been described; however, the present invention can be implemented with various kinds of embodiments other than the embodiments described above. Therefore, in the following, another embodiment included in the present invention will be described below.
For example, in the first and second embodiments, a case has been described in which a virtual switch is connected to a virtual device; however, the present invention is not limited thereto. For example, the present invention may also be used when a physical switch is connected to a physical server, when a virtual switch is connected to a physical server, and when a physical switch is connected to a virtual device.
Furthermore, in accordance with various loads or the operation state, processes performed at each Step described in each embodiment may also arbitrarily be separated or be integrated each other. Furthermore, some Step may also be omitted. For example, processes performed at Steps S105 and S106 illustrated in
Furthermore, in accordance with various loads or use conditions, it is also possible to change the order of processes performed at each Step described in each embodiment. For example, before performing the processes at Step S201 illustrated in
The components of each device illustrated in the drawings are only for conceptually illustrating the functions thereof and are not always physically configured as illustrated in the drawings. In other words, the specific shape of a separate or integrated device is not limited to the drawings; however, all or part of the device can be configured by functionally or physically separating or integrating any of the units depending on various loads or use conditions. For example, the transferring unit 21 illustrated in
Information Processing Program
Furthermore, the various processes performed by the information processing apparatus described in the above embodiments may also be implemented by a program prepared in advance and executed by a computer system such as a personal computer or a workstation. Accordingly, in the following, a computer that executes an information processing program having the same function as that performed by the information processing apparatus described in the first and second embodiments will be described with reference to
[c] Third Embodiment
The ROM 320 stores therein, in advance, an information processing program 320A having the same function as that performed by the transferring unit 21 described in the first embodiment. The information processing program 320A may also appropriately be separated into two programs, for example, a program, which has the same function as that performed by the receiving unit that receives the data, and a program, which has the same function as that performed by the transferring unit that controls the transferring the received data.
Then, the CPU 310 reads the information processing program 320A from the ROM 320 and executes it.
The HDD 330 stores therein first association information and second association information. The first association information and the second association information correspond to the first association information and the second association information, respectively, illustrated in
Then, the CPU 310 reads the first association information and the second association information and stores them in the RAM 340. Furthermore, by using data on the first association information and the second association information stored in the RAM 340, the CPU 310 executes the information processing program. For the data stored in the RAM 340, not all of the data is needed to be stored in the RAM 340 as long as only the data needed to be processed is stored in the RAM 340.
The information processing program described above does not need to be stored in the ROMs 320 from the beginning.
For example, the program is stored in a “portable physical medium”, such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optic disk, an IC CARD, or the like that can be inserted in to a computer 300. Then, the computer 300 may read and execute the program from the flexible disk or the like described above.
Alternatively, the program may also be stored in “another computer (or a server)” connected to the computer 300 via a public circuit, the Internet, a LAN, a WAN, or the like. Then the computer 300 may read and execute the program.
According to an aspect of the information processing apparatus, the system, and the information processing program, a network can be more adequately separated.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation 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 the 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.
Number | Date | Country | Kind |
---|---|---|---|
2011-115246 | May 2011 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5892912 | Suzuki et al. | Apr 1999 | A |
6003137 | Kawasaki | Dec 1999 | A |
6085238 | Yuasa et al. | Jul 2000 | A |
20090006603 | Duponchel et al. | Jan 2009 | A1 |
20090304008 | Kono et al. | Dec 2009 | A1 |
20120278802 | Nilakantan et al. | Nov 2012 | A1 |
Number | Date | Country |
---|---|---|
9-130421 | May 1997 | JP |
9-233110 | Sep 1997 | JP |
9-284328 | Oct 1997 | JP |
09-289521 | Nov 1997 | JP |
10-093610 | Apr 1998 | JP |
11-112547 | Apr 1999 | JP |
2009-296246 | Dec 2009 | JP |
2010-178211 | Aug 2010 | JP |
Entry |
---|
“VINEA: A Policy-based Virtual Network Embedding Architecture”—Esposito et al, Boston Univ., Sep. 2009 http://www.cs.bu.edu/techreports/pdf/2013-010-vinea.pdf. |
Japanese Office Action mailed Sep. 16, 2014 for corresponding Japanese Patent Application 2011-115246, with Partial English Translation, 9 pages. |
Onoue, Koichi, “Host-based Logical Isolation Technology for Scalable Cloud Networks,” Information Processing Society of Japan Transactions, Oct. 2011, [CD-ROM], Japan, Information Processing Society of Japan, vol. 4, No. 4, pp. 180-190, with English Abstract. |
Number | Date | Country | |
---|---|---|---|
20120303744 A1 | Nov 2012 | US |