WO2011087085A1 - 計算機、ネットワーク接続切替え方法およびプログラム - Google Patents

計算機、ネットワーク接続切替え方法およびプログラム Download PDF

Info

Publication number
WO2011087085A1
WO2011087085A1 PCT/JP2011/050544 JP2011050544W WO2011087085A1 WO 2011087085 A1 WO2011087085 A1 WO 2011087085A1 JP 2011050544 W JP2011050544 W JP 2011050544W WO 2011087085 A1 WO2011087085 A1 WO 2011087085A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
network interface
interface device
virtual switch
computer
Prior art date
Application number
PCT/JP2011/050544
Other languages
English (en)
French (fr)
Inventor
稗田 諭士
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2011550015A priority Critical patent/JP5664557B2/ja
Publication of WO2011087085A1 publication Critical patent/WO2011087085A1/ja
Priority to US13/137,333 priority patent/US20120170477A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2010-005919 (filed on Jan. 14, 2010), the entire description of which is incorporated herein by reference. Shall.
  • the present invention relates to a computer, a network connection switching method, and a program, and more particularly, to a computer provided with a plurality of physical network interface devices, a network connection switching method, and a program.
  • Patent Document 1 and Patent Document 2 describe an example of a network connection system including a plurality of physical network interface devices.
  • Patent Document 1 discloses that a driver wrapper sets a network connection device to be used for each application by a user in a transmission device having a network connection device (for example, a network interface card (NIC)) connected to a network.
  • a network connection device for example, a network interface card (NIC)
  • NIC network interface card
  • Patent Document 2 discloses a configuration including an interface selection unit that selects a network interface with the shortest response time in a computer system that can use a plurality of network interfaces.
  • OpenFlow captures communication as an end-to-end flow and performs path control, failure recovery, load balancing, and optimization on a per-flow basis.
  • the OpenFlow switch that functions as a forwarding node includes a secure channel for communication with the OpenFlow controller, and operates according to a flow table that is appropriately added or rewritten from the OpenFlow controller.
  • a set of a rule (header field part) for matching with a packet header, an action (action part) that defines processing contents, and flow statistical information (counter part) is defined (see FIG. 8).
  • OpenFlow switch can be realized by mounting the above functions on physical switches provided by various vendors. For example, when the OpenFlow switch receives a packet, the OpenFlow switch searches the flow table for an entry having a rule that matches the header information of the received packet. If an entry that matches the received packet is found as a result of the search, the OpenFlow switch processes the received packet for the processing contents (forwarding to the next hop, rewriting the packet, (Disposal). On the other hand, if no entry matching the received packet is found as a result of the search, the OpenFlow switch forwards the received packet to the OpenFlow controller via the secure channel, and the source / destination of the received packet. To request the determination of the route of the packet based on the above, receive the flow entry that realizes this, and update the flow table.
  • Patent Documents 1 and 2 and Non-Patent Documents 1 and 2 are incorporated herein by reference.
  • the following analysis has been made by the present invention.
  • it is necessary to prepare path control information regarding a plurality of physical network interface devices on the transmission device side see FIG. 8 of Patent Document 1). That is, there is a problem that the user must know and set in advance which physical network interface device should transmit the packet for each application.
  • each network interface selects a network interface that has the shortest response time of a signal transmitted to the same communication destination, the network interface that receives the packet and the packet are transmitted.
  • the network interface may be different. For example, a packet arrives from a communication device to a network interface that is not selected by the interface selection unit (selection engine), and a response is transmitted from the other network interface selected by the interface selection unit (selection engine).
  • a problem occurs in a session such as TCP (Transmission Control Protocol).
  • the present invention has been made in view of the above-described circumstances, and the object of the present invention is to cause a problem with a session such as TCP from different network interfaces without the user setting the above-described routing control information. It is an object of the present invention to provide a computer, a network connection switching method, and a program capable of selecting a network interface that does not cause a problem.
  • a virtual network interface device a first virtual switch connected to the first physical network interface device, and a second virtual connected to the second physical network interface device Based on the result of communication between the switch and the packet destination obtained by analyzing the packet transmitted from the virtual network interface device, the virtual network interface device is classified into the first virtual switch and the second virtual switch.
  • a computer comprising: a communication analysis unit that selects which of the communication analysis unit is connected; and a connection setting unit that holds a connection between the virtual switch selected by the communication analysis unit and the virtual network interface device.
  • the virtual network interface apparatus based on a communication result with a packet destination obtained by analyzing a packet transmitted from a virtual network interface apparatus constructed in a computer, the virtual network interface apparatus A network connection switching method comprising: selecting whether to connect to the first or second virtual switch; and maintaining a connection between the selected virtual switch and the virtual network interface device Is done.
  • This method is linked to a specific machine, which is a computer on which a virtual network interface device is constructed, using the computer resource.
  • the virtual network interface apparatus based on a communication result with a packet destination obtained by analyzing a packet transmitted from a virtual network interface apparatus constructed in a computer, the virtual network interface apparatus A program for causing a computer to execute a process of selecting whether to connect to the first or second virtual switch and a process of maintaining a connection between the selected virtual switch and the virtual network interface device is provided. Is done.
  • This program can be recorded on a computer-readable storage medium. That is, the present invention can be embodied as a computer program product.
  • an appropriate one of a plurality of virtual switches connected to different physical network interface devices according to the transmission destination IP address of a packet to be transmitted can be obtained without setting routing control information in the computer. Is selected and used for packet transmission.
  • the present invention can be applied to a computer 100 having a plurality of different network interfaces such as a first physical NIC 101 and a second physical NIC 102.
  • the computer 100 according to the present invention includes a first virtual switch 103 connected to the first physical NIC 101, a second virtual switch 104 connected to the second physical NIC 102, and a communication program 108 operating on the computer 100 from the network.
  • a virtual NIC 107 recognized as an interface, a packet analysis unit 106 that analyzes a packet transmitted from the virtual NIC 107 and selects whether the virtual NIC 107 is connected to the first virtual switch 103 or the second virtual switch 104;
  • a connection setting unit 105 that holds a connection between the virtual switch 103/104 selected by the communication analysis unit 106 and the virtual NIC 107;
  • the communication analysis unit 106 communicates with the computer (transmission destination computer) of the transmission destination IP address of the transmission packet transmitted from the virtual NIC 107, selects the one with the shorter response time, and has a high throughput.
  • One of the first virtual switch 103 and the second virtual switch 104 is selected using a predetermined selection rule such as selecting a method or selecting a method having a smaller number of communication hops. This achieves the object of selecting an appropriate network interface that does not cause problems in a session such as TCP without using routing control information.
  • the present invention can also be applied to selection of a physical network interface in a computer connected to a path control unit (path control device) corresponding to the OpenFlow controller described in Non-Patent Documents 1 and 2.
  • path control device path control device
  • This configuration will be described later as second and third embodiments.
  • the following modes are possible.
  • [Form 1] As the computer described in the first aspect.
  • the first physical network interface device is connected to a first network;
  • the second physical network interface device is connected to a second network;
  • the connection setting unit preferably disconnects the connection between the virtual network interface device and the virtual switch.
  • the virtual network interface device When a packet is received from the virtual network interface device, the virtual network interface device is connected to the first virtual switch and the second virtual switch using network topology information representing the connection form of a plurality of communication devices under management. From the path control unit that selects which to connect to, it is possible to receive an instruction of a virtual switch to be connected to the virtual network interface device, The connection setting unit may hold a connection between the virtual switch instructed by the path control unit and the virtual network interface device.
  • the first and second physical network interface devices are preferably connected to first and second physical switches controlled by the path control unit, respectively.
  • the route control unit Whether to connect the virtual network interface device to the first or second virtual switch using failure information or traffic information collected from communication devices constituting the network in addition to the network topology information It is preferable to select.
  • the route control unit sets an entry in a route table of each communication device arranged in the first network or the second network, so that packets transmitted and received between the virtual network interface device and a destination computer are transmitted. It is preferable to perform path control.
  • [Form 7] As in the network connection switching method according to the second aspect.
  • the network connection switching method includes: First and second virtual switches constructed in the computer using the network topology information representing the connection form of a plurality of communication devices under management, packets transmitted from the virtual network interface device constructed in the computer Selecting from which to send, Connecting the selected virtual switch and the virtual network interface device; It can also be set as the form containing.
  • the program is First and second virtual switches constructed in the computer using the network topology information representing the connection form of a plurality of communication devices under management, packets transmitted from the virtual network interface device constructed in the computer Process to select from which to send, Processing for connecting the selected virtual switch and the virtual network interface device; Can be a program that causes a computer to execute.
  • the network connection switching method and program of [Form 7] to [Form 10] can be expanded to the contents of Forms 2 to 6, as in the communication system of Form 1.
  • the program can be stored in a computer-readable storage medium.
  • FIG. 1 is a block diagram showing the configuration of the first exemplary embodiment of the present invention.
  • a computer 100 that can be connected to both a first network 200 and a second network 300 is shown.
  • the computer 100 includes a first physical NIC (Network Interface Card) 101, a second physical NIC 102, a first virtual switch 103, a second virtual switch 104, a connection setting unit 105, a communication analysis unit 106, and a virtual NIC 107. And a communication program 108.
  • a first physical NIC Network Interface Card
  • a second physical NIC 102 Network Interface Card
  • a first virtual switch 103 a second virtual switch 104
  • a connection setting unit 105 a communication analysis unit 106
  • a virtual NIC 107 a communication program 108.
  • FIG. 1 one virtual NIC 107 and one communication program 108 are shown, but a plurality of virtual NICs 107 and communication programs 108 may exist in the computer 100.
  • the first physical NIC 101 and the second physical NIC 102 are communication devices used for the computer 100 to communicate with other computers, and are assigned different IP addresses.
  • the first physical NIC 101 is connected to the first network 200 and the second physical NIC 102 is connected to the second network 300.
  • the first virtual switch 103 and the second virtual switch 104 are virtual switches emulated by software, and have a function of switching a packet transfer destination.
  • the first virtual switch 103 is connected to the first physical NIC 101, and the second virtual switch 104 is connected to the second physical NIC 102.
  • the virtual NIC 107 is a virtual network interface device emulated by software.
  • the virtual NIC 107 is recognized as a NIC from the communication program 108 running on the computer 100.
  • the communication program 108 is a program for communicating with other computers via the virtual NIC 107.
  • the communication analysis unit 106 analyzes a packet transmitted from the communication program 108 via the virtual NIC 107, and acquires a transmission destination IP address of the packet. Based on the destination IP address, the virtual NIC 107 is selected to be connected to the first virtual switch 103 or the second virtual switch 104. As a method for determining which of the first virtual switch 103 and the second virtual switch 104 is to be selected, the one having a shorter response time when a packet is transmitted is selected, and the one having a larger throughput is selected. For example, select the one with the smaller number of communication hops.
  • an echo message of ICMP Internet Control Message Protocol
  • ICMP Internet Control Message Protocol
  • connection setting unit 105 connects the virtual NIC 107 and the virtual switch 103/104 according to the virtual switch assignment determined by the communication analysis unit 106, and holds the state.
  • the connection between the virtual NIC 107 and the virtual switch 103/104 by the connection setting unit 105 is a connection between the first physical NIC 101 and the first network 200, or a connection between the second physical NIC 102 and the second network 300. It may be released when is disconnected. The reason is that when the first physical NIC 101 and the second physical NIC 102 are reconnected to the network 200/300, the network topology viewed from the virtual NIC 107 may change. For example, the communication cable inserted into the NIC by the user may be mistaken, the first physical NIC 101 may be connected to the second network 300, and the second physical NIC 102 may be connected to the first network. In this case, it is desirable to reset the connection between the virtual NIC 107 and the virtual switch 103/104.
  • the first network 200 and the second network 300 are telecommunications networks composed of a plurality of communication devices.
  • the positioning of the OS (Operating System) in this embodiment will be described.
  • the following two cases can be considered as positioning of the OS in this embodiment.
  • the first is a case where one OS is operating in the computer 100 (see the broken line in FIG. 2).
  • the components of the computer 100 are placed under the management of one OS.
  • the plurality of virtual NICs 107 and communication programs 108 operate on the OS and perform the same operations as described above.
  • the second is a case where one or more OSs are operating in the computer 100 by a virtualization technology such as VM (Virtual Machine) (see the broken line in FIG. 3).
  • VM Virtual Machine
  • the virtual NIC 107 and the communication program 108 are placed under the management of the OS executed on the VMM (Virtual Machine Monitor), and other components are placed under the management of the VMM. become.
  • the operations of the plurality of virtual NICs 107 and the communication program 108 are the same as described above.
  • FIG. 4 is a flowchart showing the operation of the first exemplary embodiment of the present invention.
  • step A1 when the communication program 108 transmits a packet to communicate with another computer (hereinafter referred to as a destination computer) (step A1), the communication analysis unit 106 analyzes the transmitted packet and transmits the packet. A destination IP address is acquired (step A2).
  • the communication analysis unit 106 selects the transmission from the first virtual switch 103 or the second virtual switch 104 for the transmission destination IP address (step A3).
  • the communication analysis unit 106 instructs the connection setting unit 105 to connect between the virtual NIC 107 and the first virtual switch 103 (step A4).
  • the connection setting unit 105 connects the virtual NIC 107 and the first virtual switch 103 based on an instruction from the communication analysis unit 106 (step A5). In this case, the virtual NIC 107 transmits a packet to the first virtual switch 103 (step A6).
  • the first virtual switch 103 transfers the packet to the first physical NIC 101, and the packet is transferred from the first physical NIC 101 to the first network 200.
  • the packet sent to the first network 200 is then delivered to the final destination computer via zero or more communication devices (step A7).
  • the communication analysis unit 106 selects to connect to the second virtual switch 104 in the previous step A3, the communication analysis unit 106 sends the virtual NIC 107-second to the connection setting unit 105. Instruct to connect the two virtual switches 104 (step A8).
  • the connection setting unit 105 connects the virtual NIC 107 and the second virtual switch 104 based on an instruction from the communication analysis unit 106 (step A9). In this case, the virtual NIC 107 transmits a packet to the second virtual switch 104 (step A10).
  • the second virtual switch 104 transfers the packet to the second physical NIC 102, and the packet is transferred from the second physical NIC 102 to the second network 300.
  • the packet sent to the second network 300 is then delivered to the final destination computer via zero or more communication devices (step A7).
  • the communication analysis unit 106 transmits an ICMP Echo Message from the first virtual switch 103 and the second virtual switch 104 to obtain a response time.
  • the connection setting unit 105 is instructed to connect the virtual NIC 107 and the first physical switch 103.
  • the communication analysis unit 106 transmits an ICMP Echo Message from the first virtual switch 103 and the second virtual switch 104 to obtain a response time.
  • an ICMP Reply Message response takes 200 ms (milliseconds) via the first virtual switch 103 and 150 ms via the second virtual switch 104.
  • the communication analysis unit 106 instructs the connection setting unit 105 to connect the virtual NIC 107 and the second virtual switch 104 in order to transmit the received packet from the second physical NIC 102.
  • the communication program 108 executed on the computer 100 can perform appropriate communication in consideration of the network topology. It can be performed. This is because the communication analysis unit 106 is configured to select a virtual switch to which the virtual NIC 107 is connected when communication from the virtual NIC 107 occurs.
  • connection setting unit 105 disconnects the connection between the first physical NIC 101 and the first network 200 or the connection between the second physical NIC 102 and the second network 300, the connection between the virtual NIC 107 and the virtual switch.
  • canceling it is possible to reduce the necessity for the user to know exactly which network each of the plurality of physical NICs included in the computer 100 is connected to. For example, when the user mistakes the communication cable inserted into the NIC, the first physical NIC 101 is connected to the second network 300, and the second physical NIC 102 is connected to the first network, the communication cable is connected to the correct NIC.
  • the connection between the virtual NIC 107 and the virtual switch 103/104 is correctly reset by re-inserting into the network or by switching the connection between the virtual NIC 107 and the virtual switch 103/104.
  • FIG. 7 is a block diagram showing the configuration of the second exemplary embodiment of the present invention. Referring to FIG. 7, a computer 100A that can be connected to both the first route management network 400 and the second route management network 500 is shown.
  • the computer 100A includes a first physical NIC 101, a second physical NIC 102, a first virtual switch 103A, a second virtual switch 104A, a connection setting unit 105A, a virtual NIC 107, and a communication program 108. Furthermore, the computer 100A is connected to the path control unit 109.
  • the first physical NIC 101, the second physical NIC 102, the virtual NIC 107, and the communication program 108 which have the same reference numerals as those in the first embodiment, operate in the same manner as in the first embodiment. Omitted.
  • a description will be given focusing on differences from the first embodiment.
  • the virtual NIC 107 and the first virtual switch 103A are already connected. Therefore, a packet transmitted by the communication program 108 via the virtual NIC 107 is first transmitted to the first virtual switch 103A.
  • the first virtual switch 103A and the second virtual switch 104A in the present embodiment are communication devices that are emulated by software and perform operations corresponding to the OpenFlow switches of Non-Patent Documents 1 and 2. That is, the first virtual switch 103A and the second virtual switch 104A have a function of transferring a packet according to a route table provided therein. Further, when the first virtual switch 103A and the second virtual switch 104A cannot determine the transfer destination in the route table, the first virtual switch 103A and the second virtual switch 104A transfer the packet to the route control unit 109 and request a new entry to be applied to the packet.
  • FIG. 8 is an example of a route table corresponding to the flow tables of Non-Patent Documents 1 and 2.
  • Each entry includes a header field part, a counter part, and an action part.
  • the header field part is further detailed, the source IP address, source MAC (Media Access Control) address, destination IP address, destination MAC address, TCP (Transmission Control Protocol) port number, VLAN (Virtual Local Area Network). ) It consists of fields such as ID.
  • the counter unit stores the number of times the received packet matches the entry.
  • the action part it is possible to specify how to process a packet whose header field part matches, and for example, it is possible to store an action for transferring a packet from a designated port number.
  • the first virtual switch 103A has a communication flow table as shown in FIG.
  • the first virtual switch 103A has received a packet addressed to the destination computer 600 having the source IP address 10.1.1.101 and the destination IP address 10.1.1.102 from the virtual NIC 107.
  • "*" Means a wild card.
  • the first virtual switch 103A searches the communication flow table from the top, the entry E1 in which “10.1.1.101” is set as the transmission source IP address is hit.
  • the first virtual switch 103A transfers the packet to the port to which the first physical NIC 101 is connected according to the contents of the action field.
  • the first virtual switch 103A has a packet with a transmission source IP address of 10.1.1.102 and a transmission destination IP address of 10.1.1.101. Is received, the entry E2 in which “10.1.1.101” is set as the destination IP address is hit. In this case, the first virtual switch 103A transfers the packet to the port to which the virtual NIC 107 is connected according to the contents of the action field. As described above, a series of packets (flows) between the node (virtual NIC 107) whose IP address is 10.1.1.101 and the destination computer 600 whose IP address is 10.1.1.102 are relayed. .
  • the path control unit 109 selects which virtual switch the virtual NIC 107 is connected to based on the internal network topology information.
  • the network topology information is connection information of communication devices (including communication devices arranged in the first and second route management networks 400/500) under the control of the route control unit 109.
  • Several forms of network topology information are conceivable. For example, as shown in FIG. 9, there is a method of managing two connected communication devices as one set.
  • the path control unit 109 sets the virtual NIC 107 to the first virtual switch 107A. It is determined that the virtual switch 103A may remain connected.
  • the path control unit 109 sets the virtual NIC 107 to the second virtual switch 107A. It is determined that it is better to connect to the virtual switch 104A.
  • the first virtual switch 103A and the second virtual switch 104A can reach the destination IP address of the packet transferred from the first virtual switch 103A (or the second virtual switch 104A), the first virtual switch If the number of hops to reach is smaller when the communication is performed from 103A, the path control unit 109 determines that it is better to connect the virtual NIC 107 to the first virtual switch 103A, and the communication is performed from the second virtual switch 104A. If the number of hops to reach is small, it is determined that the virtual NIC 107 should be connected to the second virtual switch 104A.
  • the route control unit 109 determines that it is better to connect to the first virtual switch 103A as described above, the route control unit 109 sets an appropriate route table entry for the first virtual switch 103A. If it is determined that it is better to connect to the second virtual switch 104A, the path control unit 109 sets an appropriate path table entry for the second virtual switch 104A, and further sets the virtual NIC 107 to the connection setting unit 105. Instruct to disconnect the connection between the first virtual switch 103A and connect between the virtual NIC 107 and the second virtual switch 104A.
  • the route control unit 109 sets appropriate route table entries for the first virtual switch 103A and the second virtual switch 104A, as well as others in the first route management network 400 and the second route management network 500. An entry in the route table is also set for the communication device.
  • a route control unit 109 is realized by a control device that controls the route of whether a packet is transmitted from a certain communication device (node) to a destination computer, which corresponds to the OpenFlow controller of Non-Patent Documents 1 and 2. You can also.
  • the route control unit 109 may periodically collect the network topology information described above and the traffic information held in the counter unit of the route table in FIG. In this way, when a failure or congestion occurs in one communication device in the network or the network topology changes, an operation is performed to obtain a new route and set a route table entry for each communication device. Can be made.
  • the route control unit 109 may be in the computer 100A.
  • the computer 100A is realized by a device corresponding to the open flow controller of Non-Patent Documents 1 and 2.
  • the connection setting unit 105A connects the virtual NIC 107 and the first and second virtual switches 103A / 104A according to an instruction from the path control unit 109.
  • the connection setting unit 105A may release the connection between the virtual NIC 107 and the first and second virtual switches 103A / 104A at the time of the disconnection.
  • the virtual NIC 107 and the first and second virtual switches 103A / 104A can be connected again according to the new network topology.
  • the first route management network 400 and the second route management network 500 are telecommunications networks composed of a plurality of communication devices. Similar to the first virtual switch 103A and the second virtual switch 104A, the communication devices belonging to the first route management network 400 and the second route management network 500 have a route table therein, and receive new packets that do not match the entry. When received, it is transferred to the route control unit 109, and an entry that defines an action to be applied to the packet is set from the route control unit 109. Therefore, the communication devices belonging to the first route management network 400 and the second route management network 500 are realized by devices corresponding to the open flow switches of Non-Patent Documents 1 and 2.
  • FIG. 10 is a flowchart showing the operation of the second exemplary embodiment of the present invention.
  • the first virtual switch 103A refers to the route table and corresponds to the received packet transmitted via the virtual NIC 107.
  • the entry to be searched is searched (step B2).
  • Step B3 when an entry matching the received packet is found in the route table in the first virtual switch 103A (“Yes” in Step B2), the first virtual switch 103A follows the contents of the action field of the entry, The received packet is transferred to the first physical NIC 101 (step B3).
  • the first physical NIC 101 that has received the transfer of the received packet transfers the received packet to the first route management network 400 (step B4), and the received packet is finally passed through the communication device in the first route management network 400. To the destination computer 600 (step B5).
  • step B2 if no entry matching the received packet is found in step B2 (“No” in step B2), the first virtual switch 103A transmits the received packet to the route control unit 109 (step B6). .
  • the path control unit 109 selects which virtual switch the virtual NIC 107 should be connected to based on the internal network topology information (step B7).
  • the path control unit 109 is appropriate for the path table of the first virtual switch 103A.
  • a new entry is set (step B8).
  • the received packet is transmitted to the destination computer 600 by the operation after Step B3 described above.
  • the path control unit 109 sets an appropriate entry in the path table of the second virtual switch 104A (step B9), and the packet is sent to the second virtual switch 104A.
  • the data is transferred to the switch 104A (step B10).
  • the path control unit 109 instructs the connection setting unit 105 to switch the connection between the virtual NIC 107 and the first virtual switch 103A to the connection between the virtual NIC 107 and the second virtual switch 104A (step B11).
  • the path control unit 109 may further instruct the packet transmitted from the virtual NIC 107 to transfer the packet remaining in the first virtual switch 103A to the second virtual switch 104A.
  • connection setting unit 105A disconnects the connection between the virtual NIC 107 and the first virtual switch 103A and connects between the virtual NIC 107 and the second virtual switch 104A (step B12).
  • the second virtual switch 104A transfers the packet to the second physical NIC 102 in accordance with the newly set entry (step B13). Thereafter, the second physical NIC 102 transfers the packet to the second route management network 500 (step B14), and finally the packet is delivered to the destination computer 600 via the communication device in the second route management network 500. .
  • a route via the second route management network 500 is set from the virtual NIC 107 to the destination computer 600.
  • the route control unit 109 detects the failure and sets a new route table entry in each communication device.
  • the connection setting unit 105A is instructed to switch the connection between the virtual NIC 107 and the second virtual switch 104A to the connection between the virtual NIC 107 and the first virtual switch 103A.
  • a new route from the virtual NIC 107 to the destination computer 600 is set.
  • the path control unit 109 selects the virtual switch to which the virtual NIC 107 is connected based on the network topology information of the entire network, and the transmission destination computer 600. Therefore, the communication program 108 executed on the computer 100A does not have to set the route control information of the computer 100A. Communication can be performed.
  • connection setting unit 105A further disconnects the connection between the first physical NIC 101 and the first path management network 400 or the connection between the second physical NIC 102 and the second path management network 500.
  • the connection between the virtual NIC 107 and the virtual switch is sometimes disconnected, there is no need for the user to manage which path management network each of the plurality of physical NICs of the computer 100A is connected to.
  • FIG. 13 is a block diagram showing the configuration of the third exemplary embodiment of the present invention.
  • a computer 100B that can be connected to both the first path management network 400 and the second path management network 500 via a first physical switch 113 and a second physical switch 114 is shown.
  • the computer 100B includes a first physical NIC 101, a second physical NIC 102, a first virtual switch 103, a second virtual switch 104, a connection setting unit 105, a virtual NIC 107, and a communication program 108. Further, the computer 100B is connected to the path control unit 109A. Among these, the first physical NIC 101, the second physical NIC 102, the first virtual switch 103, the second virtual switch 104, the connection setting unit 105, the virtual NIC 107, and the communication program 108, which have the same reference numerals as those in the first embodiment, are described. Since the operation is the same as that of the first embodiment, the description thereof is omitted here. Hereinafter, a description will be given focusing on differences from the first embodiment.
  • the first physical switch 113 and the second physical switch 114 in the present embodiment are communication devices and have a function of transferring packets in accordance with a route table inside the switch. That is, the communication apparatus has the same packet transfer function as the first virtual switch 103A and the second virtual switch 104A in the second embodiment.
  • the path control unit 109A in the present embodiment receives a packet from the first physical switch 113 or the second physical switch 114, the path control unit 109A converts the virtual NIC 107 and the first virtual switch 103 to the first virtual switch 103 based on the network topology information included therein. 2 Select which of the virtual switches 104 should be connected.
  • the route control unit 109A When the route control unit 109A selects to connect the virtual NIC 107 and the first virtual switch 103, the route control unit 109A sets an appropriate route table entry for the first physical switch 113. Similarly, when the route control unit 109A selects to connect the virtual NIC 107 and the second virtual switch 104, the route control unit 109A sets an appropriate route table entry for the second physical switch 114, and further, the route control unit 109A. Instructs the connection setting unit 105 to switch the connection between the virtual NIC 107 and the first virtual switch 103 to the connection between the virtual NIC 107 and the second virtual switch 104. Further, at the time of switching the connection, the path control unit 109A may instruct the first physical switch 113 to transfer the received packet to the second physical switch 114. The path control unit 109A may instruct the first physical switch 113 to delete these packets.
  • FIG. 14 is a flowchart showing the operation of the third exemplary embodiment of the present invention.
  • the communication program 108 transmits a packet to communicate with the destination computer 600 (step C1)
  • the packet is transmitted from the virtual NIC 107 to the first physical switch 113 via the first virtual switch 103 and the first physical NIC 101. Sent.
  • the first physical switch 113 searches for an entry in the route table (step C2).
  • step C2 If there is an entry that matches the packet in the route table in the first physical switch 113 (“Yes” in step C2), the packet is sent to the communication device of the first route management network 400 designated by the entry. Transfer (step C3). The packet is finally delivered to the transmission destination computer 600 via the communication device in the first route management network 400 (step C4).
  • Step C2 if no entry matching the received packet is found in Step C2 (“No” in Step C2), the first physical switch 113 transmits the received packet to the path control unit 109A (Step C5). .
  • the path controller 109A selects which virtual switch the virtual NIC 107 should be connected to based on the internal network topology information (step C6).
  • step C7 the received packet is transmitted to the destination computer 600 by the operation after step C3 described above.
  • the route control unit 109A sets an appropriate entry in the route table of the second physical switch 114 (Step C8), and the packet is sent to the second virtual switch 104.
  • the data is transferred to the switch 104 (step C9).
  • the path control unit 109A instructs the connection setting unit 105 to switch the connection between the virtual NIC 107 and the first virtual switch 103 to the connection between the virtual NIC 107 and the second virtual switch 104 (step C10).
  • the path control unit 109 ⁇ / b> A may further instruct the packet remaining in the first virtual switch 103 among the packets transmitted from the virtual NIC 107 to be transferred to the second virtual switch 104.
  • connection setting unit 105 disconnects the connection between the virtual NIC 107 and the first virtual switch 103 and connects between the virtual NIC 107 and the second virtual switch 104 (step C11).
  • the second physical switch 114 transfers the received packet to the communication device of the second path management network 500 in accordance with the newly set entry (step C12).
  • the packet is finally delivered to the destination computer 600 via the communication device in the second path management network 500 (step C4).
  • the path control unit 109A is configured to select a virtual switch to which the virtual NIC 107 is connected based on the packet information received from the physical switch 113/114, and the communication program 108 executed on the computer 100B. This is because appropriate communication can be performed in consideration of the network topology.
  • connection setting unit 105 further disconnects the connection between the first physical NIC 101 and the first path management network 400 or the connection between the second physical NIC 102 and the second path management network 500.
  • the connection between the virtual NIC 107 and the virtual switch is sometimes disconnected, there is no need for the user to manage which path management network each of the plurality of physical NICs of the computer 100B is connected to.
  • the entry for transferring the packet is stored in the route table.
  • the route control unit 109 / 109A causes the specific packet to be discarded.
  • an entry for rewriting a specific header may be added.
  • the present invention can be applied to a general computer that needs to use a plurality of physical network interfaces depending on a packet transmission destination or the like.
  • VM virtual network
  • It can also be applied to other virtual switches.
  • the present invention can also be applied to a virtual switch placed between a virtual NIC provided by an OS for a program and a physical NIC.
  • the path control unit is a computer that causes the first and second virtual switches to perform an action corresponding to a packet by setting an entry in the path table of the first and second virtual switches.
  • the path control unit determines a packet transfer route from the virtual network interface device to the destination computer using the network topology information, and connects to the virtual network interface device according to the transfer route.
  • Non-Patent Documents 1 and 2 are incorporated herein by reference.
  • the embodiments and examples can be changed and adjusted based on the basic technical concept.
  • Various combinations or selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.

Abstract

 ユーザが経路制御情報を設定することなく、異なるネットワークインタフェースの中から、TCP等のセッションに不具合の生じないネットワークインタフェースを選択することのできる構成を提供する。計算機は、第1の物理ネットワークインタフェース装置と接続された第1の仮想スイッチと、第2の物理ネットワークインタフェース装置と接続された第2の仮想スイッチと、前記仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1の仮想スイッチと第2の仮想スイッチとのどちらに接続するかを選択する通信解析部(または経路制御部)と、前記通信解析部(または経路制御部)によって選択された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する接続設定部と、を備える。

Description

計算機、ネットワーク接続切替え方法およびプログラム
[関連出願についての記載]
 本発明は、日本国特許出願:特願2010-005919号(2010年01月14日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、計算機、ネットワーク接続切替え方法およびプログラムに関し、特に、物理ネットワークインタフェース装置を複数備えた計算機、ネットワーク接続切替え方法およびプログラムに関する。
 特許文献1および特許文献2に、物理ネットワークインタフェース装置を複数備えたネットワーク接続システムの一例が記載されている。特許文献1には、ネットワークに接続するネットワーク接続装置(例えば、NIC(Network Interface Card))を有する送信装置において、ユーザがアプリケーションごとに使用するネットワーク接続装置を設定することで、ドライバラッパがアプリケーションごとに適切なネットワーク接続装置を割り当てて通信すること構成が開示されている。
 特許文献2には、複数のネットワークインタフェースを利用可能なコンピュータシステムにおいて、応答時間が最短となるネットワークインタフェースを選択するインタフェース選択部を備えた構成が開示されている。
 近年、オープンフロー(OpenFlow)という技術が提案されている(非特許文献1、2参照)。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルール(ヘッダフィールド部)と、処理内容を定義したアクション(アクション部)と、フロー統計情報(カウンタ部)との組が定義される(図8参照)。
 オープンフロースイッチは、各種ベンダによって提供されている物理スイッチに上記機能を実装することによって実現できる。例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルールを持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容(次ホップへの転送、パケットの書き換え、パケットの廃棄)を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
特開2005-072759号公報 特開2009-219003号公報
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成21年12月14日検索]、インターネット〈URL:http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 0.9.0. (Wire Protocol 0x98) [平成21年12月14日検索] 、インターネット〈URL:http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf〉
 上記特許文献1、2及び非特許文献1、2の全開示内容はその引用をもって本書に繰込み記載する。
 以下の分析は、本発明によってなされたものである。
 しかしながら、上記した特許文献1の方法では、送信装置側に、複数の物理ネットワークインタフェース装置に関する経路制御情報を用意する必要がある(特許文献1の図8参照)。すなわち、アプリケーション毎に、どの物理ネットワークインタフェース装置からパケットを送信すべきかを、ユーザがあらかじめ把握し、設定しなければならないという問題点がある。
 また、特許文献2の方法では、ネットワークインタフェースのそれぞれについて、同じ通信先に送信した信号の応答時間が最短となるネットワークインタフェースを選択するものであるため、パケットを受信するネットワークインタフェースとパケットを送信するネットワークインタフェースが異なる場合が生じてしまうという問題点がある。例えば、インタフェース選択部(選択エンジン)が選択していない方のネットワークインタフェースに、ある通信装置からパケットが届き、その返答をインタフェース選択部(選択エンジン)が選択した他方のネットワークインタフェースから送信することになるが、このとき、TCP(Transmission Control Protocol)等のセッションに不具合が発生してしまう。
 本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、ユーザが上記した経路制御情報を設定することなく、異なるネットワークインタフェースの中から、TCP等のセッションに不具合の生じないネットワークインタフェースを選択することのできる計算機、ネットワーク接続切替え方法およびプログラムを提供することにある。
 本発明の第1の視点によれば、 仮想ネットワークインタフェース装置と、第1の物理ネットワークインタフェース装置と接続された第1の仮想スイッチと、第2の物理ネットワークインタフェース装置と接続された第2の仮想スイッチと、前記仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1の仮想スイッチと第2の仮想スイッチとのどちらに接続するかを選択する通信解析部と、前記通信解析部によって選択された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する接続設定部と、を備える計算機が提供される。
 本発明の第2の視点によれば、計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1、第2の仮想スイッチとのどちらに接続するかを選択するステップと、前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持するステップと、を含むネットワーク接続切替え方法が提供される。本方法は、その計算機資源を用いて、仮想ネットワークインタフェース装置が構築された計算機という、特定の機械に結びつけられている。
 本発明の第3の視点によれば、計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1、第2の仮想スイッチとのどちらに接続するかを選択する処理と、前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する処理と、をコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、経路制御情報を計算機に設定しなくとも、送信するパケットの送信先IPアドレスに応じて、それぞれ異なる物理ネットワークインタフェース装置と接続された複数の仮想スイッチの中から、適切なものを選択してパケットの送信に用いる構成を採用したことにある。
本発明の第1の実施形態の構成を示すブロック図である。 本発明におけるOS(オペレーティングシステム)の位置付けを示す例である。 本発明におけるOSの位置付けを示す別の例である。 本発明の第1の実施形態の動作を示す流れ図である。 具体的なネットワーク構成を示して本発明の第1の実施形態の動作を説明するための図である。 具体的なネットワーク構成を示して本発明の第1の実施形態の動作を説明するための別の図である。 本発明の第2の実施形態の構成を示すブロック図である。 本発明の第2の実施形態の計算機に保持されるフローテーブルの一例を示す図である。 本発明の第2の実施形態の計算機が参照するネットワークトポロジ情報の一例を示す図である。 本発明の第2の実施形態の動作を示す流れ図である。 具体的なネットワーク構成を示して本発明の第2の実施形態の動作を説明するための図である。 具体的なネットワーク構成を示して本発明の第1の実施形態の動作を説明するための別の図である。 本発明の第3の実施形態の構成を示すブロック図である。 本発明の第3の実施形態の動作を示す流れ図である。
 はじめに、本発明の概要について図面を参照して説明する。本発明は、図1に示すように、第1物理NIC101と、第2物理NIC102といった複数の異なるネットワークインタフェースを有する計算機100に適用することができる。本発明に係る計算機100は、第1物理NIC101と接続された第1仮想スイッチ103と、第2物理NIC102と接続された第2仮想スイッチ104と、計算機100上で動作する通信プログラム108からはネットワークインタフェースとして認識される仮想NIC107と、仮想NIC107から送信されてきたパケットを解析し、仮想NIC107を第1仮想スイッチ103と第2仮想スイッチ104のどちらに接続するかを選択する通信解析部106と、通信解析部106によって選択された仮想スイッチ103/104と仮想NIC107との接続を保持する接続設定部105と、を備える。なお、この概要に付記した図面参照符号は、専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。
 より具体的には、通信解析部106が、仮想NIC107から送信されてきた送信パケットの送信先IPアドレスの計算機(送信先計算機)と通信を行ない、応答時間が短い方を選択する、スループットが大きい方を選択する、通信ホップ数が少ない方を選択する、などの所定の選択規則を用いて、第1仮想スイッチ103と第2仮想スイッチ104のいずれかを選択する。これにより、経路制御情報を用いずに、しかも、TCP等のセッションに不具合の生じない適切なネットワークインタフェースを選択するという目的が達成される。
 また、本発明は、非特許文献1、2に記載のオープンフローコントローラに相当する経路制御部(経路制御装置)と接続された計算機における、物理ネットワークインタフェースの選択にも適用可能である。この構成については後に第2、第3の実施形態として説明する。
 本発明において以下の形態が可能である。
[形態1]
 前記第1の視点に記載の計算機のとおり。
[形態2]
 前記第1の物理ネットワークインタフェース装置は、第1のネットワークと接続され、
 前記第2の物理ネットワークインタフェース装置は、第2のネットワークと接続され、
 前記第1の物理ネットワークインタフェース装置と第1のネットワークとの間の接続、または、前記第2の物理ネットワークインタフェース装置と第2のネットワークとの間の接続が切断された場合、
 前記接続設定部は、前記仮想ネットワークインタフェース装置と前記仮想スイッチとの間の接続を切断することが好ましい。
[形態3]
 前記通信解析部を備えることに代えて、
 仮想ネットワークインタフェース装置からパケットを受信すると、管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を第1の仮想スイッチと第2の仮想スイッチとのどちらに接続するかを選択する経路制御部から、前記仮想ネットワークインタフェース装置と接続する仮想スイッチの指示を受信可能であり、
 前記接続設定部は、前記経路制御部から指示された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持することもできる。
[形態4]
 前記第1、第2の物理ネットワークインタフェース装置は、それぞれ前記経路制御部によって制御される第1、第2の物理スイッチと接続されていることが好ましい。
[形態5]
 前記経路制御部は、
 前記ネットワークトポロジ情報に加えて、前記ネットワークを構成する通信装置から収集した障害情報またはトラヒック情報を用いて、前記仮想ネットワークインタフェース装置を前記第1、第2の仮想スイッチとのどちらに接続するかを選択することが好ましい。
[形態6]
 前記経路制御部は、第1のネットワークまたは第2のネットワークに配置された各通信装置の経路テーブルにエントリを設定することにより、前記仮想ネットワークインタフェース装置と、送信先計算機間で送受信されるパケットの経路制御を行うことが好ましい。
[形態7]
 前記第2の視点に記載のネットワーク接続切替え方法のとおり。
[形態8]
 また、前記ネットワーク接続切替え方法は、
 管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第1、第2の仮想スイッチのどちらから送信するかを選択するステップと、
 前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続するステップと、
 を含む形態とすることもできる。
[形態9]
 前記第3の視点に記載のプログラムのとおり。
[形態10]
 また、前記プログラムは、
 管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第1、第2の仮想スイッチのどちらから送信するかを選択する処理と、
 前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続する処理と、
 をコンピュータに実行させるプログラムとすることもできる。
 なお、上記[形態7]~[形態10]のネットワーク接続切替え方法およびプログラムは、形態1の通信システムと同様に、形態2~形態6の内容に展開することが可能である。
 なお、プログラムはコンピュータが読み取り可能な記憶媒体に記憶することができる。
[第1の実施形態]
 続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態の構成を示すブロック図である。図1を参照すると、第1ネットワーク200および第2ネットワーク300の双方に接続可能な計算機100が示されている。
 計算機100は、第1物理NIC(Network Interface Card)101と、第2物理NIC102と、第1仮想スイッチ103と、第2仮想スイッチ104と、接続設定部105と、通信解析部106と、仮想NIC107と、通信プログラム108を備えている。なお、図1の例では、それぞれ一つの仮想NIC107と通信プログラム108を示しているが、仮想NIC107および通信プログラム108は計算機100内にそれぞれ複数あっても良い。
 第1物理NIC101および第2物理NIC102は、計算機100が他の計算機と通信するために使用される通信装置であり、それぞれ異なるIPアドレスが割り当てられている。ここでは、第1物理NIC101が、第1ネットワーク200に接続され、第2物理NIC102が第2ネットワーク300に接続されているものとする。
 第1仮想スイッチ103および第2仮想スイッチ104は、ソフトウェアでエミュレーションされた仮想的なスイッチであり、パケットの転送先を切り替える機能を有する。第1仮想スイッチ103は第1物理NIC101と接続されており、第2仮想スイッチ104は第2物理NIC102と接続されている。
 仮想NIC107は、ソフトウェアでエミュレーションされた仮想的なネットワークインタフェース装置である。計算機100上で実行している通信プログラム108からは、この仮想NIC107がNICとして認識される。
 通信プログラム108は、仮想NIC107を介して他の計算機と通信を行うプログラムである。
 通信解析部106は、通信プログラム108から仮想NIC107を介して送信されてきたパケットを解析し、パケットの送信先IPアドレスを取得する。そして送信先IPアドレスをもとに、仮想NIC107を第1仮想スイッチ103と第2仮想スイッチ104のどちらに接続するかを選択する。第1仮想スイッチ103と第2仮想スイッチ104のうち、どちらを選択するかを決定する方法としては、更にパケットを送信した時の応答時間が短い方を選択する、スループットが大きい方を選択する、通信ホップ数が少ない方を選択する、などが挙げられる。
 前記パケットを送信した時の応答時間を計測する方法としては、例えば、パケットの送信先IPアドレスに対して、第1仮想スイッチ103および第2仮想スイッチ104からICMP(Internet Control Message Protocol)のEcho Messageを送信し、Echo Reply Messageが返ってきて、かつ返答時間が短い仮想スイッチを選択する方法が挙げられる。
 接続設定部105は、通信解析部106によって決定された仮想スイッチの割り当てに従い、仮想NIC107と仮想スイッチ103/104を接続し、その状態を保持する。
 なお、接続設定部105による、仮想NIC107と仮想スイッチ103/104間の接続は、第1物理NIC101と第1ネットワーク200の間の接続、または、第2物理NIC102と第2ネットワーク300の間の接続が切断された段階で、解除してもよい。その理由は、第1物理NIC101および第2物理NIC102がネットワーク200/300と再度接続された時に、仮想NIC107から見たネットワークトポロジが変化している可能性があるためである。例えば、ユーザがNICに挿し込む通信ケーブルを間違え、第1物理NIC101が第2ネットワーク300と接続され、第2物理NIC102が第1ネットワークと接続されることなどが考えられる。この場合、仮想NIC107と仮想スイッチ103/104間の接続も再設定されることが望ましい。
 第1ネットワーク200および第2ネットワーク300は、複数の通信装置で構成された電気通信網である。
 続いて、本実施形態におけるOS(オペレーティングシステム)の位置付けについて説明する。本実施形態におけるOSの位置付けとしては、以下の2つの場合が考えられる。
 第1は、計算機100内で1つのOSが動作しているケースである(図2の破線参照)。この場合、図2に示すように、計算機100の構成要素は、1つのOSの管理下に置かれる。なお、複数の仮想NIC107、通信プログラム108がある場合も、これら複数の仮想NIC107、通信プログラム108は、OS上で動作し、上記と同様の動作をとる。
 第2は、VM(Virtual Machine)などの仮想化技術によって計算機100内で1つ以上のOSが動作している場合である(図3の破線参照)。この場合、図3に示すように、仮想NIC107および通信プログラム108がVMM(Virtual Machine Monitor)上で実行されるOSの管理下に置かれ、それ以外の構成要素はVMMの管理下に置かれることになる。なおVMM上に複数のOSが実行されていても、これら複数の仮想NIC107および通信プログラム108の動作は、上記と同様の動作をとる。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。図4は、本発明の第1の実施形態の動作を示す流れ図である。
 まず、通信プログラム108が他の計算機(以降、送信先計算機と表記)と通信するためにパケットを送信すると(ステップA1)、通信解析部106は、送信されてきたパケットを解析し、パケットの送信先IPアドレスを取得する(ステップA2)。
 そして、通信解析部106は、送信先IPアドレスに対して、第1仮想スイッチと103と第2仮想スイッチ104のどちらから送信するかを選択する(ステップA3)。
 ここでもし第1仮想スイッチ103と接続することを選択した場合、通信解析部106は、接続設定部105に対して、仮想NIC107-第1仮想スイッチ103間を接続するよう指示する(ステップA4)。接続設定部105は、通信解析部106からの指示に基づいて仮想NIC107と第1仮想スイッチ103を接続する(ステップA5)。この場合、仮想NIC107は、第1仮想スイッチ103にパケットを送信する(ステップA6)。
 その後、第1仮想スイッチ103は、第1物理NIC101にパケットを転送し、第1物理NIC101から第1ネットワーク200にパケットが転送される。第1ネットワーク200に送出されたパケットは、その後0個以上の通信装置を介して、最終的な送信先計算機に届けられる(ステップA7)。
 一方、先のステップA3において、通信解析部106が、第2仮想スイッチ104と接続することを接続することを選択した場合、通信解析部106は、接続設定部105に対して、仮想NIC107-第2仮想スイッチ104間を接続するよう指示する(ステップA8)。接続設定部105は、通信解析部106からの指示に基づいて仮想NIC107と第2仮想スイッチ104を接続する(ステップA9)。この場合、仮想NIC107は、第2仮想スイッチ104にパケットを送信する(ステップA10)。
 この場合、第2仮想スイッチ104は、第2物理NIC102にパケットを転送し、第2物理NIC102から第2ネットワーク300にパケットが転送される。第2ネットワーク300に送出されたパケットは、その後0個以上の通信装置を介して、最終的な送信先計算機に届けられる(ステップA7)。
 ここで、具体的な例を示して、通信解析部106と接続設定部105の動作をより詳細に説明する。
 例えば、図5で示すようなネットワーク構成において、通信プログラム108が、仮想NIC107を介して、IPアドレスが10.1.1.102である送信先計算機600に対してパケットを送信した場合を考える。このとき、通信解析部106は、第1仮想スイッチ103および第2仮想スイッチ104から、ICMP Echo Messageを送信し、応答時間を求める。図5のネットワーク構成では、第2仮想スイッチ104経由では返答がないため、第1仮想スイッチ103経由の方が、Echo Reply Messageの受信が早いと判定され、通信解析部106は受信したパケットを第1物理NIC101から送信するため、接続設定部105に対し仮想NIC107と第1物理スイッチ103を接続するよう指示する。
 また例えば、図6で示すようなネットワーク構成において、通信プログラム108が、仮想NIC107を介して、IPアドレスが10.1.1.102である送信先計算機600に対してパケットを送信した場合を考える。このときも同様に、通信解析部106は、第1仮想スイッチ103および第2仮想スイッチ104から、ICMP Echo Messageを送信し、応答時間を求める。その結果、ICMP Reply Messageの返答が、第1仮想スイッチ103経由では200ms(ミリ秒)、第2仮想スイッチ104経由では150msかかったとする。この場合、通信解析部106は、受信したパケットを第2物理NIC102から送信するため、接続設定部105に対し仮想NIC107と第2仮想スイッチ104を接続するよう指示する。
 以上のように、本実施形態によれば、ユーザが計算機100の経路制御情報を設定しなくても、計算機100上で実行される通信プログラム108は、ネットワークトポロジを考慮した上での適切な通信を行うことができる。その理由は、仮想NIC107からの通信が発生した時に、通信解析部106が仮想NIC107の接続先となる仮想スイッチを選択するよう構成されているためである。
 また、接続設定部105が、第1物理NIC101と第1ネットワーク200の間の接続、もしくは第2物理NIC102と第2ネットワーク300の間の接続が切断された時に、仮想NIC107と仮想スイッチ間の接続を解除(切断)するよう構成することにより、計算機100が備える複数の物理NICについて、ユーザが、それぞれどのネットワークに接続させるかを厳密に把握している必要性を低減することができる。例えば、ユーザがNICに差し込む通信ケーブルを間違え、第1物理NIC101が第2ネットワーク300と接続され、第2物理NIC102が第1ネットワークと接続してしまったような場合において、通信ケーブルをそれぞれ正しいNICに挿し直す、あるいは、仮想NIC107-仮想スイッチ103/104間の接続を切り替えることで、仮想NIC107と仮想スイッチ103/104間の接続が正しく再設定されることになる。
[第2の実施の形態]
 続いて、本発明の第2の実施形態について図面を参照して詳細に説明する。図7は、本発明の第2の実施形態の構成を示すブロック図である。図7を参照すると、第1経路管理ネットワーク400および第2経路管理ネットワーク500の双方に接続可能な計算機100Aが示されている。
 計算機100Aは、第1物理NIC101と、第2物理NIC102と、第1仮想スイッチ103Aと、第2仮想スイッチ104Aと、接続設定部105Aと、仮想NIC107と、通信プログラム108を備えている。さらに、計算機100Aは、経路制御部109と接続されている。このうち、第1の実施形態と同一の符号を付した第1物理NIC101、第2物理NIC102、仮想NIC107、通信プログラム108については、第1の実施形態と同じ動作をするので、ここでは説明を省略する。以下、第1の実施形態との相違点を中心に説明する。
 まず本実施形態では、仮想NIC107と第1仮想スイッチ103Aがすでに接続されている。従って、通信プログラム108が仮想NIC107経由で送信するパケットは、まず第1仮想スイッチ103Aに送信される。
 本実施形態における第1仮想スイッチ103Aおよび第2仮想スイッチ104Aは、ソフトウェアでエミュレーションされ、非特許文献1、2のオープンフロースイッチに相当する動作を行う通信装置である。即ち、第1仮想スイッチ103Aおよび第2仮想スイッチ104Aは、内部に備えた経路テーブルに従ってパケットを転送する機能を有する。また、第1仮想スイッチ103Aおよび第2仮想スイッチ104Aは、経路テーブルで転送先を決定することができない場合は、経路制御部109にパケットを転送し、当該パケットに適用する新しいエントリを要求する。
 図8は、非特許文献1、2のフローテーブルに相当する経路テーブルの例である。各エントリは、ヘッダフィールド部、カウンタ部、アクション部から構成されている。このうちヘッダフィールド部はさらに細かく、送信元IPアドレス、送信元MAC(Media Access Control)アドレス、送信先IPアドレス、送信先MACアドレス、TCP(Transmission Control Protocol)のポート番号、VLAN(Virtual Local Area Network) IDなどのフィールドから構成されている。カウンタ部は、受信したパケットがエントリにマッチした回数が保存される。またアクション部では、ヘッダフィールド部が一致したパケットをどのように処理するかを指定することができ、例えば、パケットを指定したポート番号から転送するアクションを格納することができる。
 ここで例えば、第1仮想スイッチ103Aが、図8のような通信フローテーブルを有している場合を考える。第1仮想スイッチ103Aが、仮想NIC107から、送信元IPアドレスが10.1.1.101であり、送信先IPアドレスが10.1.1.102である送信先計算機600宛てのパケットを受信したとする(”*”はワイルドカードを意味する)。このとき、第1仮想スイッチ103Aが、通信フローテーブルを上から検索すると、送信元IPアドレスとして“10.1.1.101”が設定されているエントリE1がヒットする。この場合、第1仮想スイッチ103Aは、そのアクションフィールドの内容に従って、第1物理NIC101が接続されたポートへ当該パケットを転送する。一方、このパケットの応答として送信先計算機600から、第1仮想スイッチ103Aが、送信元IPアドレスが10.1.1.102であり、送信先IPアドレスが10.1.1.101であるパケットを受信した場合、送信先IPアドレスとして“10.1.1.101”が設定されているエントリE2がヒットする。この場合、第1仮想スイッチ103Aは、そのアクションフィールドの内容に従って、仮想NIC107が接続されたポートへパケットを転送する。以上により、IPアドレスが10.1.1.101であるノード(仮想NIC107)と、IPアドレスが10.1.1.102である送信先計算機600間の一連のパケット(フロー)が中継される。
 経路制御部109は、第1仮想スイッチ103Aまたは第2仮想スイッチ104Aからパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想NIC107をどちらの仮想スイッチに接続するか選択する。
 ネットワークトポロジ情報は、経路制御部109の管理下にある通信装置(第1、第2経路管理ネットワーク400/500に配置された通信装置を含む。)の接続情報である。ネットワークトポロジ情報の形態としてはいくつか考えられるが、例えば、図9に示すように、接続されている2つの通信装置を1つの組として管理する方法が挙げられる。
 図9のようにして経路制御部109の管理下にあるすべての通信装置について接続されている通信装置間を組として管理すると、ある通信装置から別の通信装置まで到達するまでの経路を求めることができる。
 例えば、第1仮想スイッチ103A(または第2仮想スイッチ104A)から転送されたパケットの送信先IPアドレスが、第1仮想スイッチ103Aから辿り着けるのであれば、経路制御部109は、仮想NIC107を第1仮想スイッチ103Aに接続したままで良いと判断する。
 一方、第1仮想スイッチ103A(または第2仮想スイッチ104A)から転送されたパケットの送信先IPアドレスが、第2仮想スイッチ104Aから辿り着けるのであれば、経路制御部109は、仮想NIC107を第2仮想スイッチ104Aと接続した方が良いと判断する。
 また、第1仮想スイッチ103A(または第2仮想スイッチ104A)から転送されたパケットの送信先IPアドレスに、第1仮想スイッチ103Aおよび第2仮想スイッチ104Aの両方から辿り着けるとしても、第1仮想スイッチ103Aから通信した方が到達までのホップ数が少ないのであれば、経路制御部109は、仮想NIC107を第1仮想スイッチ103Aと接続した方が良いと判断し、第2仮想スイッチ104Aから通信した方が到達までのホップ数が少ないのであれば、仮想NIC107を第2仮想スイッチ104Aと接続した方が良いと判断する。
 経路制御部109は、上記のように、第1仮想スイッチ103Aと接続した方が良いと判断すると、第1仮想スイッチ103Aに対して適切な経路テーブルのエントリを設定する。第2仮想スイッチ104Aと接続した方が良いと判断すると、経路制御部109は、第2仮想スイッチ104Aに対して適切な経路テーブルのエントリを設定し、さらに接続設定部105に対して、仮想NIC107-第1仮想スイッチ103A間の接続を解除し、仮想NIC107-第2仮想スイッチ104A間を接続するよう指示する。
 前記接続を切り替えた際に、第1仮想スイッチ103A内に仮想NIC107から送信されてきたパケットが残っている可能性がある。それらのパケットはまとめて、第2仮想スイッチ104Aへ転送するようにしてもよい。また、これら残っているパケットを削除することとしても良い。
 また、経路制御部109は、第1仮想スイッチ103Aおよび第2仮想スイッチ104Aに対して、適切な経路テーブルのエントリを設定するほか、第1経路管理ネットワーク400および第2経路管理ネットワーク500内の他の通信装置に対しても、経路テーブルのエントリを設定する。このような経路制御部109は、非特許文献1、2のオープンフローコントローラに相当する、ある通信装置(ノード)から送信先計算機までパケットを送信するかの経路制御を行う制御装置によって実現することもできる。
 また経路制御部109は、前述したネットワークトポロジ情報や図8の経路テーブルのカウンタ部に保持されているトラヒック情報を定期的に収集するものとしてもよい。このようにすれば、ネットワーク内の一つの通信装置に障害や輻輳が生じたり、ネットワークトポロジが変更になった場合に、新しい経路を求め、各通信装置に経路テーブルのエントリを設定する動作を行わせることができる。
 また、経路制御部109は、計算機100A内にあっても良い。この場合、計算機100Aは、非特許文献1、2のオープンフローコントローラに相当する装置によって実現される。
 接続設定部105Aは、経路制御部109からの指示に従い、仮想NIC107と第1、第2仮想スイッチ103A/104Aを接続する。なお、第1物理NIC101および第2物理NIC102が第1、第2経路管理ネットワーク400/500との接続が切断された場合、その後仮想NIC107から見たネットワークトポロジにも変化が生じている可能性があるので、接続設定部105Aが、前記切断の時点で、仮想NIC107と第1、第2仮想スイッチ103A/104A間の接続を解除するようにしても良い。これにより、再接続後にパケットを受信した時点で、新しいネットワークトポロジに従って、再度仮想NIC107と第1、第2仮想スイッチ103A/104A間を接続することができる。
 第1経路管理ネットワーク400および第2経路管理ネットワーク500は、複数の通信装置で構成された電気通信網である。第1経路管理ネットワーク400および第2経路管理ネットワーク500に属している通信装置は、第1仮想スイッチ103Aおよび第2仮想スイッチ104Aと同様に経路テーブルを内部に有し、エントリにマッチしない新しいパケットを受信すると経路制御部109に転送し、経路制御部109から当該パケットに適用すべきアクションを定めたエントリを設定される。従って、第1経路管理ネットワーク400および第2経路管理ネットワーク500に属している通信装置は、非特許文献1、2のオープンフロースイッチに相当する装置によって実現される。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。図10は、本発明の第2の実施形態の動作を示す流れ図である。
 まず、通信プログラム108が送信先計算機600と通信するためにパケットを送信すると(ステップB1)、第1仮想スイッチ103Aは、経路テーブルを参照して、仮想NIC107経由で送信されてきた受信パケットに対応するエントリを検索する(ステップB2)。
 ここで、第1仮想スイッチ103A内の経路テーブルに、前記受信パケットに一致するエントリが見つかった場合(ステップB2の「ある」)、第1仮想スイッチ103Aは、そのエントリのアクションフィールドの内容に従い、第1物理NIC101に受信パケットを転送する(ステップB3)。
 前記受信パケットの転送を受けた第1物理NIC101は、第1経路管理ネットワーク400に受信パケットを転送し(ステップB4)、第1経路管理ネットワーク400内の通信装置を経由して、受信パケットは最終的に送信先計算機600に届けられる(ステップB5)。
 一方、ステップB2にて、前記受信パケットに一致するエントリが見つからなかった場合(ステップB2の「ない」)、第1仮想スイッチ103Aは、当該受信パケットを経路制御部109に送信する(ステップB6)。
 経路制御部109は、第1仮想スイッチ103Aからパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想NIC107をどちらの仮想スイッチに接続すれば良いか選択する(ステップB7)。
 ここで、第1仮想スイッチ103Aと接続することを選択した場合、仮想NIC107-第1仮想スイッチ103A間の接続を切り替える必要はなく、経路制御部109は、第1仮想スイッチ103Aの経路テーブルに適切なエントリを設定する(ステップB8)。これにより、受信パケットは、前述したステップB3以降の動作により、送信先計算機600に送信される。
 一方、ステップB7において第2仮想スイッチ104Aと接続することを選択した場合、経路制御部109は、第2仮想スイッチ104Aの経路テーブルに適切なエントリを設定し(ステップB9)、パケットを第2仮想スイッチ104Aに転送する(ステップB10)。さらに、経路制御部109は、接続設定部105に対して、仮想NIC107-第1仮想スイッチ103A間の接続を仮想NIC107-第2仮想スイッチ104A間の接続に切り替えるよう指示する(ステップB11)。このとき更に、経路制御部109は、仮想NIC107から送信されてきたパケットのうち、第1仮想スイッチ103Aに残っているパケットを第2仮想スイッチ104Aに転送するよう指示してもよい。
 次に接続設定部105Aは、仮想NIC107-第1仮想スイッチ103A間の接続を切断し、仮想NIC107-第2仮想スイッチ104A間を接続する(ステップB12)。
 すると第2仮想スイッチ104Aは、新たに設定されたエントリに従って、パケットを第2物理NIC102に転送する(ステップB13)。その後、第2物理NIC102がパケットを第2経路管理ネットワーク500に転送し(ステップB14)、第2経路管理ネットワーク500内の通信装置を経由して、最終的にパケットは送信先計算機600に届けられる。
 ここで、具体的な例を示して、第1経路管理ネットワーク400または第2経路管理ネットワーク500を構成する通信装置に障害が発生した時の本実施形態の計算機100Aおよび経路制御部109の動作について説明する。
 例えば、図11で示すようなネットワーク構成において、仮想NIC107から送信先計算機600に対して、第2経路管理ネットワーク500を介した経路が設定されていたとする。ここで、図12で示すように、第2経路管理ネットワーク500に障害が発生した時に、経路制御部109が前記障害を検知し、新しい経路テーブルのエントリを各通信装置に設定する。さらに接続設定部105Aに対して、仮想NIC107-第2仮想スイッチ104A間の接続を、仮想NIC107-第1仮想スイッチ103A間の接続に切り替えるよう指示する。これにより、図12に示すように、新たに仮想NIC107から送信先計算機600に対する経路が設定されることになる。
 以上のように、本発明の第2の実施形態によれば、経路制御部109において、ネットワーク全体のネットワークトポロジ情報をもとに、仮想NIC107を接続する仮想スイッチを選択し、また送信先計算機600までの経路を設定できるよう構成されているので、ユーザが計算機100Aの経路制御情報を設定しなくても、計算機100A上で実行される通信プログラム108は、ネットワークトポロジを考慮した上での適切な通信を行うことができる。
 また本実施形態では、さらに接続設定部105Aが、第1物理NIC101と第1経路管理ネットワーク400の間の接続、または、第2物理NIC102と第2経路管理ネットワーク500の間の接続が切断された時に、仮想NIC107と仮想スイッチ間の接続を切断するよう構成した場合、計算機100Aの複数の物理NICについて、ユーザが、それぞれどの経路管理ネットワークに接続させるかを管理する必要はない。
[第3の実施の形態]
 続いて、本発明の第3の実施形態について図面を参照して詳細に説明する。図13は、本発明の第3の実施形態の構成を示すブロック図である。図13を参照すると、第1物理スイッチ113、第2物理スイッチ114を介して、第1経路管理ネットワーク400および第2経路管理ネットワーク500の双方に接続可能な計算機100Bが示されている。
 計算機100Bは、第1物理NIC101と、第2物理NIC102と、第1仮想スイッチ103と、第2仮想スイッチ104と、接続設定部105と、仮想NIC107と、通信プログラム108を備えている。さらに、計算機100Bは、経路制御部109Aと接続されている。このうち、第1の実施形態と同一の符号を付した第1物理NIC101、第2物理NIC102、第1仮想スイッチ103、第2仮想スイッチ104、接続設定部105、仮想NIC107、通信プログラム108については、第1の実施形態と同じ動作をするので、ここでは説明を省略する。以下、第1の実施形態との相違点を中心に説明する。
 本実施形態における第1物理スイッチ113および第2物理スイッチ114は、通信装置であり、スイッチ内部の経路テーブルに従ってパケットを転送する機能を有する。つまり第2の実施形態における第1仮想スイッチ103Aおよび第2仮想スイッチ104Aと同様のパケット転送機能を持つ通信装置である。
 また本実施の形態における経路制御部109Aは、第1物理スイッチ113または第2物理スイッチ114からパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想NIC107を第1仮想スイッチ103と第2仮想スイッチ104のどちらに接続したらよいか選択する。
 経路制御部109Aは、仮想NIC107と第1仮想スイッチ103とを接続することを選択すると、第1物理スイッチ113に対して適切な経路テーブルのエントリを設定する。同様に、経路制御部109Aは、仮想NIC107と第2仮想スイッチ104とを接続することを選択すると、第2物理スイッチ114に対して適切な経路テーブルのエントリを設定し、さらに、経路制御部109Aは、接続設定部105に対して、仮想NIC107-第1仮想スイッチ103間の接続を、仮想NIC107-第2仮想スイッチ104間の接続に切り替えるよう指示する。また、前記接続の切り替えの際に、経路制御部109Aが、第1物理スイッチ113に対し、受信済みパケットを第2物理スイッチ114に転送するよう指示するものとしてもよい。また、経路制御部109Aが、第1物理スイッチ113に対し、これらのパケットを削除するよう指示するものとしても良い。
 続いて、本実施形態の動作について図面を参照して詳細に説明する。図14は、本発明の第3の実施形態の動作を示す流れ図である。
 まず、通信プログラム108が送信先計算機600と通信するためにパケットを送信すると(ステップC1)、そのパケットは仮想NIC107から第1仮想スイッチ103、第1物理NIC101を介して、第1物理スイッチ113に送信される。
 第1物理スイッチ113は、パケットを受信すると、経路テーブルのエントリを検索する(ステップC2)。
 ここで、第1物理スイッチ113内の経路テーブルに、前記パケットと一致するエントリがあれば(ステップC2の「ある」)、そのエントリで指定された第1経路管理ネットワーク400の通信装置にパケットを転送する(ステップC3)。そのパケットは、第1経路管理ネットワーク400内の通信装置を経由して、最終的に送信先計算機600に届けられる(ステップC4)。
 一方、ステップC2にて、前記受信パケットに一致するエントリが見つからなかった場合(ステップC2の「ない」)、第1物理スイッチ113は、当該受信パケットを経路制御部109Aに送信する(ステップC5)。
 経路制御部109Aは、第1物理スイッチ113からパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想NIC107をどちらの仮想スイッチに接続すれば良いか選択する(ステップC6)。
 ここで、第1仮想スイッチ103と接続することを選択した場合、仮想NIC107-第1仮想スイッチ103間の接続を切り替える必要はなく、経路制御部109Aは、第1物理スイッチ113の経路テーブルに適切なエントリを設定する(ステップC7)。これにより、受信パケットは、前述したステップC3以降の動作により、送信先計算機600に送信される。
 一方、ステップC6において第2仮想スイッチ104と接続することを選択した場合、経路制御部109Aは、第2物理スイッチ114の経路テーブルに適切なエントリを設定し(ステップC8)、パケットを第2仮想スイッチ104に転送する(ステップC9)。さらに、経路制御部109Aは、接続設定部105に対して、仮想NIC107-第1仮想スイッチ103間の接続を仮想NIC107-第2仮想スイッチ104間の接続に切り替えるよう指示する(ステップC10)。このとき更に、経路制御部109Aは、仮想NIC107から送信されてきたパケットのうち、第1仮想スイッチ103に残っているパケットを第2仮想スイッチ104に転送するよう指示してもよい。
 次に接続設定部105は、仮想NIC107-第1仮想スイッチ103間の接続を切断し、仮想NIC107-第2仮想スイッチ104間を接続する(ステップC11)。
 すると第2物理スイッチ114は、新たに設定されたエントリに従って、受信したパケットを第2経路管理ネットワーク500の通信装置に転送する(ステップC12)。第2経路管理ネットワーク500内の通信装置を経由して、最終的にパケットは送信先計算機600に届けられる(ステップC4)。
 以上のように、本発明の第3の実施形態によれば、仮想スイッチが経路制御部109Aの管理外であっても、第2の実施形態と同等のネットワーク接続切り替えを行うことが可能となる。その理由は、経路制御部109Aが、物理スイッチ113/114から上がってきたパケット情報をもとに、仮想NIC107を接続する仮想スイッチを選択するよう構成し、計算機100B上で実行される通信プログラム108が、ネットワークトポロジを考慮した上での適切な通信を行うことができるようにしたためである。
 また本実施形態では、さらに接続設定部105が、第1物理NIC101と第1経路管理ネットワーク400の間の接続、または、第2物理NIC102と第2経路管理ネットワーク500の間の接続が切断された時に、仮想NIC107と仮想スイッチ間の接続を切断するよう構成した場合、計算機100Bの複数の物理NICについて、ユーザが、それぞれどの経路管理ネットワークに接続させるかを管理する必要はない。
 以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した各実施形態では、各所で非特許文献1、2のオープンフロースイッチやオープンフローコントローラを用いるものとして説明したが、これらに限定されるものではなく、同等の仕組みを持つ装置を適宜用いることが可能である。
 また例えば、上記した第2、第3の実施形態では、パケットの転送を行うエントリが経路テーブルに格納されているものとして説明したが、経路制御部109/109Aが、特定のパケットを廃棄させるエントリを設定したり、あるいは、特定のヘッダを書き換えるエントリを追加してもよいことはもちろんである。
 本発明は、上記の通り、パケットの送信先等により、複数の物理ネットワークインタフェースを使い分ける必要のある計算機一般に適用可能であるが、計算機内でVM(Virtual Machine)に仮想的なネットワークを提供するための仮想スイッチにも適用できる。また本発明は、OSがプログラムに対して提供する仮想NICと物理NIC間の間に置く仮想スイッチにも適用できる。
 最後に、本発明の特許請求の範囲に繰り込み可能な発明を付記する。
[付記1]
 上記第1の実施形態の通信解析部に代えて、
 仮想ネットワークインタフェース装置からパケットを受信すると、管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を第1の仮想スイッチと第2の仮想スイッチとのどちらに接続するかを選択する経路制御部を備える計算機。
[付記2]
 前記経路制御部は、前記第1、第2の仮想スイッチの経路テーブルにエントリを設定することにより、前記第1、第2の仮想スイッチにパケットに応じたアクションを実施させる計算機。
[付記3]
 前記経路制御部は、前記ネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を起点とする前記送信先計算機までのパケットの転送経路を決定し、前記転送経路に従って、前記仮想ネットワークインタフェース装置に接続する前記第1、第2の仮想スイッチの選択を行う計算機。
 なお、上記非特許文献1、2の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
100、100A、100B 計算機
101 第1物理NIC
102 第2物理NIC
103 第1仮想スイッチ(本発明の第1、第3の実施形態)
103A 第1仮想スイッチ(本発明の第2の実施形態)
104 第2仮想スイッチ(本発明の第1、第3の実施形態)
104A 第2仮想スイッチ(本発明の第2の実施形態)
105 接続設定部(本発明の第1、第3の実施形態)
105A 接続設定部(本発明の第2の実施形態)
106 通信解析部
107 仮想NIC
108 通信プログラム
109 経路制御部(本発明の第2の実施形態)
109A 経路制御部(本発明の第3の実施形態)
113 第1物理スイッチ
114 第2物理スイッチ
200 第1ネットワーク
300 第2ネットワーク
400 第1経路管理ネットワーク
500 第2経路管理ネットワーク
600 送信先計算機

Claims (10)

  1.  仮想ネットワークインタフェース装置と、
     第1の物理ネットワークインタフェース装置と接続された第1の仮想スイッチと、
     第2の物理ネットワークインタフェース装置と接続された第2の仮想スイッチと、
     前記仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1の仮想スイッチと第2の仮想スイッチとのどちらに接続するかを選択する通信解析部と、
     前記通信解析部によって選択された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する接続設定部と、
     を備える計算機。
  2.  前記第1の物理ネットワークインタフェース装置は、第1のネットワークと接続され、
     前記第2の物理ネットワークインタフェース装置は、第2のネットワークと接続され、
     前記第1の物理ネットワークインタフェース装置と第1のネットワークとの間の接続、または、前記第2の物理ネットワークインタフェース装置と第2のネットワークとの間の接続が切断された場合、
     前記接続設定部は、前記仮想ネットワークインタフェース装置と前記仮想スイッチとの間の接続を切断する請求項1の計算機。
  3.  前記通信解析部を備えることに代えて、
     仮想ネットワークインタフェース装置からパケットを受信すると、管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を第1の仮想スイッチと第2の仮想スイッチとのどちらに接続するかを選択する経路制御部から、前記仮想ネットワークインタフェース装置と接続する仮想スイッチの指示を受信可能であり、
     前記接続設定部は、前記経路制御部から指示された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する請求項1または2の計算機。
  4.  前記第1、第2の物理ネットワークインタフェース装置は、それぞれ前記経路制御部によって制御される第1、第2の物理スイッチと接続されている請求項3の計算機。
  5.  前記経路制御部は、
     前記ネットワークトポロジ情報に加えて、前記ネットワークを構成する通信装置から収集した障害情報またはトラヒック情報を用いて、前記仮想ネットワークインタフェース装置を前記第1、第2の仮想スイッチとのどちらに接続するかを選択する請求項3または4の計算機。
  6.  前記経路制御部は、第1のネットワークまたは第2のネットワークに配置された各通信装置の経路テーブルにエントリを設定することにより、前記仮想ネットワークインタフェース装置と、送信先計算機間で送受信されるパケットの経路制御を行う請求項3から5いずれか一の計算機。
  7.  計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1、第2の仮想スイッチとのどちらに接続するかを選択するステップと、
     前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続するステップと、
     を含むネットワーク接続切替え方法。
  8.  管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第1、第2の仮想スイッチのどちらから送信するかを選択するステップと、
     前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続するステップと、
     を含むネットワーク接続切替え方法。
  9.  計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第1、第2の仮想スイッチとのどちらに接続するかを選択する処理と、
     前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続する処理と、
     をコンピュータに実行させるプログラム。
  10.  管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第1、第2の仮想スイッチのどちらから送信するかを選択する処理と、
     前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続する処理と、
     をコンピュータに実行させるプログラム。
PCT/JP2011/050544 2010-01-14 2011-01-14 計算機、ネットワーク接続切替え方法およびプログラム WO2011087085A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011550015A JP5664557B2 (ja) 2010-01-14 2011-01-14 計算機、ネットワーク接続切替え方法およびプログラム
US13/137,333 US20120170477A1 (en) 2010-01-14 2011-08-05 Computer, communication system, network connection switching method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010005919 2010-01-14
JP2010-005919 2010-01-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/137,333 Continuation US20120170477A1 (en) 2010-01-14 2011-08-05 Computer, communication system, network connection switching method, and program

Publications (1)

Publication Number Publication Date
WO2011087085A1 true WO2011087085A1 (ja) 2011-07-21

Family

ID=44304354

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050544 WO2011087085A1 (ja) 2010-01-14 2011-01-14 計算機、ネットワーク接続切替え方法およびプログラム

Country Status (3)

Country Link
US (1) US20120170477A1 (ja)
JP (1) JP5664557B2 (ja)
WO (1) WO2011087085A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579894A (zh) * 2013-10-28 2015-04-29 杭州华三通信技术有限公司 分布式虚拟交换机系统的IGMP Snooping实现方法及装置
JP5796693B2 (ja) * 2013-03-12 2015-10-21 日本電気株式会社 安定化システム、安定化方法、コンピュータ装置及びプログラム
JP2016105576A (ja) * 2014-11-25 2016-06-09 株式会社リコー 通信路切替装置、通信路切替装置の制御方法、及びプログラム
US9661550B2 (en) 2013-12-20 2017-05-23 Ricoh Company, Ltd. Communication apparatus, communication method, and communication system

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9185056B2 (en) * 2011-09-20 2015-11-10 Big Switch Networks, Inc. System and methods for controlling network traffic through virtual switches
KR20130093734A (ko) * 2011-12-26 2013-08-23 한국전자통신연구원 로드 밸런싱 장치 및 그것의 로드 밸런싱 방법
CN103379039B (zh) * 2012-04-23 2016-12-14 华为技术有限公司 一种用于流统计的方法、装置及系统
EP2908483B1 (en) * 2012-10-10 2017-11-29 NEC Corporation Communication node, communication system, control device, packet transfer method, and program
KR102029707B1 (ko) * 2012-10-19 2019-11-08 에스케이텔레콤 주식회사 가상망 기반의 차등 네트워크 구현 방법 및 그 장치
KR102055686B1 (ko) * 2012-10-19 2019-12-13 에스케이텔레콤 주식회사 오픈 플로우 스위치와 컨트롤러를 사용한 가상망 구현 방법 및 그 장치
US9225605B2 (en) * 2012-11-19 2015-12-29 Cisco Technology, Inc. Dynamic re-assignment of service ports to active virtual network switch based on service policy
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9444748B2 (en) * 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
CN103621026B (zh) * 2013-04-01 2017-06-13 华为技术有限公司 虚拟机的数据交换方法、装置和系统
JP2016012909A (ja) * 2014-06-03 2016-01-21 株式会社リコー 通信装置、通信方法および通信システム
CN104618141B (zh) * 2014-12-27 2018-04-06 中国船舶重工集团公司第七一一研究所 基于fpga的双网切换装置及其双网切换方法
US10608881B2 (en) * 2016-09-22 2020-03-31 Nicira, Inc. Application-based network segmentation in a virtualized computing environment
US10728145B2 (en) * 2018-08-30 2020-07-28 Juniper Networks, Inc. Multiple virtual network interface support for virtual execution elements
US10855531B2 (en) 2018-08-30 2020-12-01 Juniper Networks, Inc. Multiple networks for virtual execution elements
US10841226B2 (en) 2019-03-29 2020-11-17 Juniper Networks, Inc. Configuring service load balancers with specified backend virtual networks
US11310102B2 (en) * 2019-08-02 2022-04-19 Ciena Corporation Retaining active operations, administration, and maintenance (OAM) sessions across multiple devices operating as a single logical device
US20230020114A1 (en) * 2021-06-30 2023-01-19 Juniper Networks, Inc. Service aware routing using network interface cards having processing units

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000312244A (ja) * 1999-04-27 2000-11-07 Nippon Telegr & Teleph Corp <Ntt> ネットワークインタフェース切替方法およびその装置、その記録媒体
JP2004357252A (ja) * 2003-05-30 2004-12-16 Ntt Docomo Inc 通信装置及び通信方法
JP2007213465A (ja) * 2006-02-13 2007-08-23 Hitachi Ltd 計算機の制御方法、プログラム及び仮想計算機システム
JP2009176103A (ja) * 2008-01-25 2009-08-06 Hitachi Information Systems Ltd 仮想ネットワークシステムのnic接続制御方法とシステムおよびプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941539B2 (en) * 2008-06-30 2011-05-10 Oracle America, Inc. Method and system for creating a virtual router in a blade chassis to maintain connectivity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000312244A (ja) * 1999-04-27 2000-11-07 Nippon Telegr & Teleph Corp <Ntt> ネットワークインタフェース切替方法およびその装置、その記録媒体
JP2004357252A (ja) * 2003-05-30 2004-12-16 Ntt Docomo Inc 通信装置及び通信方法
JP2007213465A (ja) * 2006-02-13 2007-08-23 Hitachi Ltd 計算機の制御方法、プログラム及び仮想計算機システム
JP2009176103A (ja) * 2008-01-25 2009-08-06 Hitachi Information Systems Ltd 仮想ネットワークシステムのnic接続制御方法とシステムおよびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5796693B2 (ja) * 2013-03-12 2015-10-21 日本電気株式会社 安定化システム、安定化方法、コンピュータ装置及びプログラム
CN104579894A (zh) * 2013-10-28 2015-04-29 杭州华三通信技术有限公司 分布式虚拟交换机系统的IGMP Snooping实现方法及装置
CN104579894B (zh) * 2013-10-28 2018-05-11 新华三技术有限公司 分布式虚拟交换机系统的IGMP Snooping实现方法及装置
US9661550B2 (en) 2013-12-20 2017-05-23 Ricoh Company, Ltd. Communication apparatus, communication method, and communication system
JP2016105576A (ja) * 2014-11-25 2016-06-09 株式会社リコー 通信路切替装置、通信路切替装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
JPWO2011087085A1 (ja) 2013-05-20
JP5664557B2 (ja) 2015-02-04
US20120170477A1 (en) 2012-07-05

Similar Documents

Publication Publication Date Title
JP5664557B2 (ja) 計算機、ネットワーク接続切替え方法およびプログラム
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
US20180324274A1 (en) Information system, control apparatus, method of providing virtual network, and program
JP5621778B2 (ja) コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
JP5742834B2 (ja) 通信システム、経路制御装置、パケット転送装置および経路制御方法
JP5994846B2 (ja) 通信システム、制御装置、ノード、ノードの制御方法およびプログラム
US9491000B2 (en) Data transport system, transmission method, and transport apparatus
US10645006B2 (en) Information system, control apparatus, communication method, and program
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
EP2629464A1 (en) Communication system, control device, method for setting processing rules, and program
JP2014533001A (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
US10171352B2 (en) Communication system, node, control device, communication method, and program
JP5534033B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
US10523629B2 (en) Control apparatus, communication system, communication method, and program
JP2017503408A (ja) 通信ネットワーク内の制御を提供する方法
WO2013062070A1 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
JP4025697B2 (ja) パケット転送装置およびその制御方法
JP5768600B2 (ja) 通信システム、制御装置、パケット転送方法およびプログラム
WO2014142081A1 (ja) 転送ノード、制御装置、通信システム、パケット処理方法及びプログラム
JP2016225933A (ja) 制御装置、中継装置の制御方法、プログラム及び通信システム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2011550015

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11732955

Country of ref document: EP

Kind code of ref document: A1