WO2016143338A1 - ネットワークシステム、制御装置、制御方法及びプログラム記録媒体 - Google Patents

ネットワークシステム、制御装置、制御方法及びプログラム記録媒体 Download PDF

Info

Publication number
WO2016143338A1
WO2016143338A1 PCT/JP2016/001284 JP2016001284W WO2016143338A1 WO 2016143338 A1 WO2016143338 A1 WO 2016143338A1 JP 2016001284 W JP2016001284 W JP 2016001284W WO 2016143338 A1 WO2016143338 A1 WO 2016143338A1
Authority
WO
WIPO (PCT)
Prior art keywords
control device
network
identifiers
virtual
virtual networks
Prior art date
Application number
PCT/JP2016/001284
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 日本電気株式会社
Publication of WO2016143338A1 publication Critical patent/WO2016143338A1/ja

Links

Images

Definitions

  • the present disclosure relates to a network system, a control device, a control method, and a program recording medium, and more particularly, to a network system, a control device, a control method, and a program recording medium in a network configured by devices that transfer packets according to instructions from the control device. .
  • OpenFlow is a communication that considers communication as an end-to-end flow, and performs path control, failure recovery, load balancing, and optimization in units of flows.
  • 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.
  • FlowKey a set of a rule (FlowKey; matching key) that matches a packet header, an action (Action) that defines the processing content, and flow statistical information (Stats) is defined.
  • the OpenFlow switch when it receives the first packet (first packet), it searches the flow table for an entry having a rule (FlowKey) 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 performs the process described in the action field of the entry on the received packet. On the other hand, if no entry matching the received packet is found as a result of the search, the OpenFlow switch transfers the received packet to the OpenFlow controller via the secure channel. The OpenFlow switch requests the determination of the packet path based on the transmission source / destination of the received packet, receives the flow entry that realizes this, and updates the flow table.
  • FlowKey a rule
  • the OpenFlow switch determines the packet processing method according to the flow entry setting from the OpenFlow controller.
  • “OUTPUT” that outputs a packet to a specified interface is frequently used as a processing method, but the port specified at this time is not limited to a physical interface.
  • OpenFlow is realized by defining traffic control as a set of processing rules defined by match conditions by controlling the OpenFlow switch by the OpenFlow controller.
  • Non-Patent Document 3 discloses a slicing technique for performing traffic control by a plurality of open flow controllers, and enables a plurality of operators to independently operate a common open flow network.
  • a special OpenFlow controller called FlowVisor mediates between one OpenFlow switch and a plurality of OpenFlow controllers.
  • FlowVisor mediates between one OpenFlow switch and a plurality of OpenFlow controllers.
  • identification information of traffic to be accommodated by each OpenFlow controller is registered.
  • Conflicts between policies can be avoided by distributing processing rule requests from the OpenFlow switch and performing exclusive control of processing rules instructed by the OpenFlow controller according to this identification information.
  • This technology makes it possible to virtually cut out a plurality of networks from a common OpenFlow network and provide them to the user.
  • Patent Document 2 discloses a technique for reducing the control load of the OpenFlow controller, and describes a technique for layering the OpenFlow network.
  • upper controllers that further control each OpenFlow controller (hereinafter referred to as “lower controller”) that controls the physical OpenFlow network. Is described).
  • lower controller notifies the upper controller of the network controlled by itself as one virtual switch.
  • Each lower controller realizes a hierarchy of networks by receiving flow control from the upper controller, and integrates and controls a plurality of open flow networks as one network.
  • Non-Patent Document 4 discloses an architecture applied to an OpenFlow network by combining a plurality of virtualization technologies including slicing and hierarchization described in Non-Patent Document 3 and Patent Document 2.
  • Non-Patent Document 4 defines Aggregator (contraction function), Slicer (cutout function), and Fedatorator (combining function) as components that perform network virtualization.
  • Non-Patent Document 4 proposes an architecture for converting and controlling a network composed of physical OpenFlow switches to various configurations by recursively applying them to the network.
  • Non-Patent Document 5 discloses a technique for realizing the architecture described in Non-Patent Document 4 on not only an open flow network but also other network control technologies such as VXLAN (Virtual eXtensible Local Area Network). ing.
  • VXLAN Virtual eXtensible Local Area Network
  • Non-Patent Document 6 discloses a technique for verifying that target traffic is transferred as specified by a traffic processing rule set in an OpenFlow network.
  • a set of packet headers corresponding to traffic identification conditions in a traffic processing rule is geometrically expressed as an identifier space. Then, it is verified whether the traffic control as expected can be realized by checking whether the identifier space of the traffic processing rule set in the OpenFlow switch on the transfer path matches or has a common partial space. ing. Further, it is verified that the traffic control intended for the entire network is performed by simultaneously checking whether or not the identifier space conflicts with another traffic processing rule that has already been set.
  • Non-Patent Document 7 describes a technique for verifying whether a traffic processing rule set in a virtual network is set as intended or whether a collision with a traffic processing rule in another virtual network occurs.
  • the effectiveness of the traffic processing rule is expressed by a binary decision tree that represents the traffic identification conditions that can be used in the traffic processing rule, and checks whether the traffic identification conditions in the configured traffic processing rules deviate from the usable range. Is done.
  • Non-Patent Document 3 By using the technology described in Non-Patent Document 3, it is possible to constrain only the traffic type permitted for each user. When setting of a traffic processing rule that deviates from the permitted range is instructed, exclusive control of the traffic processing rule is realized by correcting or rejecting the setting before setting the physical network. However, the technique described in Non-Patent Document 3 does not have a means for verifying the traffic type information itself, and if the available traffic type settings for each user collide, the intended control cannot be executed. Further, since exclusive control of traffic processing rules is performed in response to transmission of setting instructions from the OpenFlow controller, it is not possible to calculate processing rules that do not collide with other rules in advance.
  • Non-Patent Documents 6 and 7 By using the techniques described in Non-Patent Documents 6 and 7, it is possible to verify whether the set traffic processing rules cause inconsistencies between virtual networks or whether the intended control can be realized. However, similarly to Non-Patent Document 3, this technology cannot perform verification of registration information and pre-calculation of processing rules for avoiding a collision.
  • a physical node that processes communication traffic identified by an identification condition included in a processing rule for processing communication traffic, and constructs a plurality of virtual networks using the physical node
  • a first control device that is assigned to each of the plurality of virtual networks, and the first control device can be used as the identification condition based on a predetermined condition.
  • a network system is provided in which a set of identifiers is assigned to each of the plurality of virtual networks, and the assigned set of identifiers is notified to the second control device.
  • a plurality of virtual networks are constructed using physical nodes that process communication traffic identified by an identification condition included in a processing rule for processing communication traffic. And assigning a set of identifiers that can be used as the identification condition to each of the plurality of virtual networks, and notifying the assigned set of identifiers to a second control device assigned to each of the plurality of virtual networks.
  • a control device is provided.
  • a plurality of virtual networks are constructed using physical nodes that process communication traffic identified by an identification condition included in a processing rule for processing communication traffic. And assigning a set of identifiers that can be used as the identification condition to each of the plurality of virtual networks, and notifying the assigned set of identifiers to a second control device assigned to each of the plurality of virtual networks.
  • a control method is provided.
  • a computer mounted on a control device that controls a physical node that processes communication traffic identified by an identification condition included in a processing rule for processing communication traffic includes the physical A process of constructing a plurality of virtual networks using a node, a process of assigning a set of identifiers usable as the identification condition to each of the plurality of virtual networks based on a predetermined condition, and a set of the assigned identifiers And a process for notifying a second control device assigned to each of the plurality of virtual networks.
  • This program can be recorded on a computer-readable recording medium.
  • the recording medium may be non-transient such as a semiconductor memory, a hard disk, a magnetic recording medium, an optical recording medium or the like.
  • the present disclosure can also be embodied as a computer program product.
  • a network system a control device, a control method, and a program that contribute to avoiding a collision of traffic processing rules between virtual networks in advance are provided.
  • FIG. 1 is a diagram for explaining an outline of an embodiment.
  • FIG. 2 shows an example of a system configuration in the first embodiment.
  • FIG. 3 shows a configuration example of the first control apparatus in the first embodiment.
  • FIG. 4 shows a configuration example of the second control device in the first embodiment.
  • FIG. 5 shows a configuration example of the third control apparatus in the first embodiment.
  • FIG. 6 shows a configuration example of the fourth control device in the first embodiment.
  • FIG. 7 illustrates an identifier space calculated by the first control device in the first embodiment.
  • FIG. 8 illustrates the accommodation traffic condition in the first embodiment.
  • FIG. 9 illustrates duplication of accommodation traffic conditions in the first embodiment.
  • FIG. 10 illustrates an identifier space calculated by the second control device in the first embodiment.
  • FIG. 10 illustrates an identifier space calculated by the second control device in the first embodiment.
  • FIG. 11 exemplifies two network identifier spaces disclosed in the third control apparatus in the first embodiment.
  • FIG. 12 illustrates an identifier space calculated by the third control device in the first embodiment.
  • FIG. 13 illustrates an identifier space calculated by the second control device in the second embodiment.
  • FIG. 14 illustrates an identifier space modified by the second control device in the second embodiment.
  • FIG. 15 illustrates an identifier space modified by the third control device in the second embodiment.
  • FIG. 16 illustrates the configuration of the first control device in the third embodiment.
  • FIG. 17 illustrates the configuration of the second control device in the third embodiment.
  • FIG. 18 illustrates the configuration of the third control device in the third embodiment.
  • FIG. 19 illustrates an identifier space disclosed in the fourth control device in the third embodiment.
  • FIG. 12 illustrates an identifier space calculated by the third control device in the first embodiment.
  • FIG. 13 illustrates an identifier space calculated by the second control device in the second embodiment.
  • FIG. 14 illustrates an identifier
  • FIG. 20 illustrates traffic identification conditions included in the traffic processing rule set by the fourth control device in the third embodiment.
  • FIG. 21 illustrates traffic identification conditions modified by the third control device in the third embodiment.
  • FIG. 22 illustrates an identifier space disclosed in the third control device in the fourth embodiment.
  • FIG. 23 illustrates an identifier space calculated by the third control device in the fourth embodiment.
  • FIG. 24 shows an example of the configuration of a computer that implements the control device.
  • a network system includes a physical node 100, a first control device 101, and a second control device 102. Based on a processing rule for processing communication traffic, the physical node 100 processes communication traffic identified by the identification condition included in the processing rule.
  • the first control apparatus 101 constructs a plurality of virtual networks using the physical node 100.
  • the second control device 102 is assigned to each of the plurality of virtual networks.
  • the first control device 101 assigns a set of identifiers that can be used as identification conditions to each of the plurality of virtual networks based on a predetermined condition, and notifies the second control device 102 of the set of assigned identifiers.
  • the first control apparatus 101 constructs a plurality of virtual networks and assigns a set of identifiers (identifier space described later) that can be used in each virtual network.
  • the set of assigned identifiers is provided to the second control apparatus 102 that controls each virtual network.
  • the second control apparatus 102 issues a traffic control instruction (flow setting instruction) so as to conform to the provided set of identifiers, or is instructed by an upper apparatus of the second control apparatus 102 that does not conform to the identifier set. Rejecting the traffic control instruction can avoid collision of identification conditions.
  • the network system calculates a traffic processing rule by calculating a traffic identification condition allowed in each virtual network to prevent collision with other virtual networks when the network is virtualized in various ways. Can be provided.
  • FIG. 2 is a diagram illustrating a configuration example of the entire system according to the first embodiment.
  • a network 3-1 composed of nodes 1-1 to 1-3 and a network 3-2 composed of nodes 1-4 to 1-6 are connected to each other. Further, a terminal 2 is connected to each of the nodes 1-1, 1-2, 1-5, and 1-6.
  • the network 3-1 is directly managed by the control device 10-1.
  • the network 3-2 is directly managed by the control device 10-2.
  • the control devices 10-1 and 10-2 provide network information managed by the control devices 10-1 and 10-2 to other control devices, and enter control.
  • the control device 20 constructs two virtual networks from the information of the control device 10-1, and provides virtual network information to the control device 40-1 and the control device 30.
  • the control device 20 passes the control instruction from the control device 40-1 and the control instruction from the control device 30 to the control device 10-1, and also controls the information from the control device 10-1 according to the conditions to the control device 40-1, It has a function of distributing to the control device 30.
  • the control device 30 combines the network information from the control device 10-2 and the control device 20, and provides a single network information to the control device 40-2.
  • the control device 30 has a function of dividing the control instruction from the control device 40-2 and distributing it to the control device 10-2 and the control device 20.
  • the control device 40 calculates a flow to be set for the corresponding network from the received network information, and transmits it to the lower control device.
  • control devices 10, 20, 30, and 40 configuration examples of the control devices 10, 20, 30, and 40 will be described with reference to FIGS.
  • the control device 10 includes a node communication unit 11, a node control message processing unit 12, a processing rule calculation unit 13, a network information management unit 14, an identifier space calculation unit 15, and an inter-control device message.
  • the processing unit 16 and the control device communication unit 17 are configured.
  • the node communication unit 11 is connected to the node 1 for communication.
  • the node control message processing unit 12 analyzes the information received from the node 1 and distributes it to other functional units.
  • the node control message processing unit 12 converts information from other functional units into a control message for the node 1 and transmits it to the node communication unit 11.
  • the processing rule calculation unit 13 calculates a processing rule for instructing setting to the node 1 based on information from the network information management unit 14 and transmits the processing rule to the node control message processing unit 12.
  • the network information management unit 14 manages network information managed by the control device 10 and updates the information based on information from the node 1 and information from the control device 20 or 30.
  • the network information management unit 14 notifies the update information to the control devices 20 and 30 and the node 1.
  • the identifier space calculation unit 15 calculates and stores an identifier space that can be used as a traffic identification condition of the flow in the network managed by the control device 10 based on the network information held by the network information management unit 14.
  • the identifier space calculation unit 15 notifies the network information management unit 14 of identifier spaces that can be used as traffic identification conditions for flows.
  • the inter-control device message processing unit 16 creates a message for transmitting information to the control devices 20 and 30 based on a request from another functional unit.
  • the inter-control device message processing unit 16 analyzes the information received from the control devices 20 and 30 and distributes the information to other functional units.
  • the control device communication unit 17 manages communication with the control devices 20 and 30.
  • the processing rule calculation unit 13 includes a flow database (flow DB; Data Base) 131 that stores processing rules that have already been calculated and flow information that is the basis of the calculation.
  • the network information management unit 14 includes a network database (network DB) 141 that stores network information managed by the control device 10, that is, network topology, node 1 information, flow information to be set in the network, and the like.
  • the identifier space calculation unit 15 includes an identifier space database (identifier space DB) 151 that stores the identifier space calculated by itself.
  • control device 20 includes a network slice unit 21, an identifier space calculation unit 22, a network information management unit 23, an inter-control device message processing unit 24, and a control device communication unit 25. ing.
  • the network slice unit 21 stores a plurality of pieces of virtual network information based on the network information received from the control device 10 (that is, the lower level network information that is the basis of virtualization) and the identification conditions of the traffic to be accommodated in the virtual network. calculate. Further, the network slice unit 21 transmits the information from the lower network to the network information management unit 23 that manages the corresponding virtual network information, or the information from the control device 30 or 40 to the inter-control device message processing unit 24. introduce.
  • the identifier space calculation unit 22 calculates an identifier space that can be used as a traffic identification condition of the flow in each virtual network based on the lower network information and the identifier space included therein, and stores it as the identifier space of the virtual network.
  • the identifier space calculation unit 22 notifies the identifier space of the virtual network to the network information management unit 23 that manages the information of the corresponding virtual network.
  • the network information management unit 23 manages lower network information and network information corresponding to the virtual network.
  • the inter-control device message processing unit 24 creates a message for transmitting information to the control devices 10, 30, and 40 based on a request from another functional unit.
  • the inter-control device message processing unit 24 analyzes the information received from the control devices 10, 30, and 40 and distributes the information to other functional units.
  • the control device communication unit 25 manages communication with the control devices 10, 30, and 40.
  • the network slice unit 21 includes an information distribution unit 211 and an accommodation traffic condition database (accommodation traffic condition DB) 212. Based on the information in the accommodation traffic condition database 212, the information distribution unit 211 distributes information from the control devices 10, 30, and 40 to the network information management unit 23 that manages the corresponding network information.
  • the accommodation traffic condition database 212 stores (stores) identification conditions of traffic to be accommodated in the virtual network.
  • the identifier space calculation unit 22 includes an identifier space database 221 that stores the identifier space calculated by itself.
  • the network information management unit 23 includes a network database 231 that stores lower-level network information and virtual network information.
  • the network information management unit 23 may exist independently for each lower network and virtual network. Further, although the network information management unit 23 is single, the network database 231 may exist independently for each network. Alternatively, a single network database 231 may be used, and network information may be managed in an independent area inside the network database 231. Further, the network information management unit 23 may adopt a method that does not have lower network information and that is acquired from a lower network control device as needed, or that uses information notified from the lower network control device. .
  • the information stored in the accommodation traffic condition database 212 may be registered from the outside by an operator or a user, or any information registration means such as setting at startup can be used. That is, the control device 20 holds in advance identification conditions (accommodated traffic identification conditions) for identifying communication traffic to be accommodated in the virtual network, and a set of identifiers usable in the virtual network based on the identification conditions held in advance. Can be managed.
  • control device 30 includes a network coupling unit 31, an identifier space calculation unit 32, a network information management unit 33, an inter-control device message processing unit 34, and a control device communication unit 35. ing.
  • the network combining unit 31 combines a plurality of lower network information and calculates a single virtual network information. Specifically, the network coupling unit 31 uses the network information received from the control devices 10 and 20 (lower network information as a basis for virtualization) and the boundary information between lower networks stored in the network boundary database 312. Perform calculations based on Furthermore, the network connection unit 31 transmits information from the lower network to the network information management unit 33 that manages the corresponding virtual network information. Alternatively, the network coupling unit 31 transmits information from the control device 40 to the inter-control device message processing unit 34.
  • the identifier space calculation unit 32 calculates an identifier space that can be used as a traffic identification condition of the flow in the virtual network based on the lower network information and the identifier space included therein, and stores the identifier space as the virtual network identifier space.
  • the identifier space calculation unit 32 notifies the identifier space of the virtual network to the network information management unit 33 that manages the information of the corresponding virtual network.
  • the network information management unit 33 manages lower network information and network information corresponding to the virtual network.
  • the inter-control device message processing unit 34 creates a message for transmitting information to the control devices 10, 20, and 40 based on a request from another functional unit.
  • the inter-control device message processing unit 34 analyzes the information received from the control devices 10, 20, and 40 and distributes the information to other functional units.
  • the control device communication unit 35 manages communication with the control devices 10, 20, and 40.
  • the network connection unit 31 includes a control instruction decomposition unit 311 and a network boundary database (network boundary DB) 312. Based on the information in the network boundary database 312, the control instruction decomposing unit 311 decomposes information from the control device 40 and distributes the information to the network information managing unit 33 that manages the corresponding network information.
  • the network boundary database 312 stores (stores) information about boundaries connecting lower networks, that is, information such as links between networks.
  • the identifier space calculation unit 32 includes an identifier space database (identifier space DB) 321 that stores the identifier space calculated by itself.
  • the network information management unit 33 includes a network database (network DB) 331 that stores lower-level network information and virtual network information.
  • the network information management unit 33 may adopt a method that does not have lower-layer network information and that is acquired from a lower-layer network control device as needed, or that uses information notified from the lower-layer network control device.
  • the information stored in the network boundary database 312 may be registered from the outside by an operator or a user, or any information registration means such as setting at startup can be used.
  • control device 40 includes a flow calculation unit 41, a network information management unit 42, an inter-control device message processing unit 43, and a control device communication unit 44.
  • the flow calculation unit 41 acquires the network information received from the control devices 20 and 30 (that is, the lower network information to be subjected to flow control) from the network information management unit 42, and calculates the flow to be set in the lower network.
  • the network information management unit 42 manages the lower network information.
  • the inter-control device message processing unit 43 analyzes a function for creating a message for transmitting information to the control devices 20 and 30 and information received from the control devices 20 and 30 based on a request from another function unit. It has a function to distribute to the functional part.
  • the control device communication unit 44 manages communication with the control devices 20 and 30.
  • the flow calculation unit 41 includes a flow database (flow DB) 411 that stores a flow calculated by itself.
  • the network information management unit 42 includes a network database (network DB) 421 that stores lower-level network information and virtual network information.
  • the network information management unit 42 does not have lower network information, and may adopt a method of acquiring from a lower network control device or a method of using information notified from the lower network control device as necessary.
  • the network databases 141, 231, 331, and 421 included in the control devices 10, 20, 30, and 40 may hold information related to the terminal 2 as well as the network information. Further, the network information management units 14, 23, 33, and 42 may exist separately as external devices connected by arbitrary information communication means instead of inside the control devices 10, 20, 30, and 40.
  • control devices to which the control devices 10, 20, 30, 40 described in FIGS. 3 to 6 are connected are in accordance with the system configuration of FIG. Connection destination.
  • the apparatus that calculates the flow as the traffic processing method is the control apparatus 40 connected at the highest level. Therefore, the flow calculated by the control device 40 and instructed to set is inspected in each control device that mediates control whether the traffic identification condition included in the flow is acceptable.
  • the control devices 10, 20, and 30 hold a set of traffic identification conditions (hereinafter referred to as identifier space) that can be instructed by the control devices 20, 30, and 40 connected to the host device. It is disclosed (provided) to the control devices 20, 30, and 40.
  • the control devices 10, 20, and 30 are not permissible flow setting instructions when a traffic control instruction that does not correspond to the identifier space (hereinafter referred to as a flow setting instruction) is transmitted from the control devices 20, 30, and 40. An error notification including the effect is returned.
  • the control devices 10, 20, and 30 return error notifications to ensure that the flow settings from the control devices do not collide.
  • control device 40 obtains in advance an identifier space defined by the control devices 20 and 30 that are directly below the control device, calculates a flow setting instruction suitable for the space, and sends the flow setting instruction to the control devices 20 and 30.
  • the transmission may guarantee the avoidance of flow setting collision. Since the identifier space disclosed by the control devices 20 and 30 reflects the identifier space in the lower control device, it can be guaranteed that the control device 20 is allowed to reach the lowest control device 10.
  • the identifier space is calculated based on a traffic identification condition that can be used by the physical device corresponding to the node.
  • a traffic identification condition that can be used by the physical device corresponding to the node.
  • source MAC Media Access Control
  • destination MAC address VLAN (Virtual Local Area Network) ID
  • VLAN priority L2 frame type
  • IP ToS Internet Protocol Type Service
  • IP protocol number IP address
  • source IP address destination IP address
  • source L4 port number source L4 port number
  • destination L4 port number destination 11 types of packet header information and 12 fields of packet input port.
  • an identifier space is calculated from identification conditions that can be supported by each model.
  • an example limited to the source MAC address, the destination MAC address, the source IP address, and the destination IP address will be described.
  • a set of identification conditions that can be used as a traffic processing rule by a device corresponding to a node is an identifier space.
  • a method of sharing one identifier space in the entire network without including information on input ports and input nodes in the identifier space is shown. Therefore, the identifier space calculation in the control device 10 becomes an identifier space including all values from the minimum value to the maximum value allowed in each field.
  • FIG. 7 shows an example of the identifier space expression calculated by the control device 10.
  • all values that can be used in the specification are expressed as “any”.
  • a product set of identification conditions that can be used by each device is calculated and used as an identifier space. If a node that can identify a source MAC address, a destination MAC address, a source IP address, and a destination IP address is mixed with a node that can identify a source MAC address and a destination MAC address, An arbitrary set of values of the source MAC address and destination MAC address fields that are products is the identifier space of the network.
  • control device 20 Since the control device 20 cuts out the network into a plurality of virtual networks, the control device 20 ensures that the identifier space is independent among the virtual networks, thereby ensuring traffic control collision avoidance.
  • the network 3-1 is virtualized to an equivalent network by the control device 10-1, and the network information is stored in the network database 141 in the control device 10-1.
  • the control device 20 generates two virtual networks based on this network information and provides them to the control device 40-1 and the control device 30.
  • the control device 20 calculates the identifier space based on the identification conditions of the traffic to be accommodated in the network provided to the control device 40-1 and the control device 30.
  • the traffic identification conditions are set by an operator or a user at the time of system configuration, for example, and stored in the accommodated traffic condition database 212 in the control device 20.
  • Figure 8 shows an example of traffic accommodation conditions.
  • the virtual network 1 in which the traffic with the destination MAC address “00: 00: 00: 00: 01” to “00: 00: 00: 00: 00: 0f” is provided to the control device 40-1. It is set to be accommodated. Further, it is set so that traffic having a destination IP address “192.168.0.1” to “192.168.0.9” is accommodated in the virtual network 2 provided to the control device 30.
  • distribution to the virtual network 1 has a high priority (1), and distribution to the virtual network 2 has a low priority (2).
  • the control device 20 calculates the identifier space based on this accommodated traffic condition. For example, when the accommodated traffic condition is used as the identifier space of the virtual networks 1 and 2 as it is, the destination MAC address is changed from “00: 00: 00: 01: 00” to “00: 00: 00: 00: 00: 00”. ”And the traffic identification condition whose destination IP address is in the range of“ 192.168.0.1 ”to“ 192.168.0.9 ”will collide.
  • the duplication of identifier space that causes the above collision is shown in FIG.
  • the horizontal axis represents the destination IP address value
  • the vertical axis represents the destination MAC address value
  • the source IP address and source MAC address are omitted.
  • the area filled in black indicates the identifier space of the virtual network 1
  • the white area indicates the identifier space of the virtual network 2
  • the overlapping area is the overlap of the identifier space.
  • the control device 20 reduces the identifier space of the virtual network 2 having a low priority and expresses it as a prohibited area in the identifier space of the virtual network 2.
  • the identifier space calculated by the control device 20 is shown in FIG. Note that ⁇ indicates an empty set.
  • the identifier space of the virtual network 1 has the same permitted area as the accommodated traffic condition of FIG. 8, and all the prohibited areas are empty sets.
  • the identifier space of the virtual network 2 has the same range as the accommodated traffic condition as the permitted space, but the destination MAC address that is a part common (overlapping) with the virtual network 1 as the prohibited area is “00: 00: 00: 00: 00:01 "to" 00: 00: 00: 00: 00: 0f ".
  • mutually independent identifier spaces are disclosed to the control devices 40-1 and 40.
  • the lower networks corresponding to the control device 20 and the control device 10-2 are combined to form a single upper network so that a plurality of networks can be integrated and controlled. Therefore, the control device 30 integrates the identifier spaces of the two lower networks to form the identifier space of the upper network.
  • FIG. 11 shows the identifier spaces disclosed by the control devices 20 and 10-2, respectively.
  • the identifier space of the virtual network 2 has transmission destination IP addresses “192.168.0.1” to “192.168.0.9” as permitted areas.
  • the identifier space of the virtual network 2 has a destination MAC address “00: 00: 00: 00: 01” to “00: 00: 00: 00: 00: 0f” as a prohibited area.
  • the identifier space of the virtual network 3 (network provided to the control device 10-2) has a destination MAC address of “00: 00: 00: 00: 11” to “00: 00: 00: 00: as a permitted area. 00: 1f ”and an empty set as a prohibited area.
  • control device 30 calculates the product of the permitted areas in the two spaces and the sum of the prohibited areas in this embodiment, and calculates the identifier of the virtual network 4 provided to the control device 40-2. Space.
  • FIG. 12 shows the identifier space of the virtual network 4.
  • the destination IP address which is the product of the permission area of the virtual network 2 and the permission area of the virtual network 3 as the permission area, is “192.168.0.1” to “192.168.0.9”.
  • the range of the destination MAC address from “00: 00: 00: 00: 11” to “00: 00: 00: 00: 1f” is calculated.
  • the destination MAC address that is the sum of the prohibited area of the virtual network 2 and the prohibited area (empty set) of the virtual network 3 is set to “00: 00: 00: 00” from “00: 00: 00: 00” as the prohibited area. : 00: 00: 0f "is calculated.
  • the sum of the product of the permitted area and the prohibited area is calculated, so that it is common end-to-end in a combined network that is a separate network at a lower level.
  • region of the traffic identification condition from which a flow becomes effective even if it straddles a network is shown.
  • each control device calculates an identifier space, so that an identifier space that can be used in each virtual network without colliding with other networks is defined and provided to each control device.
  • the control device that has received the traffic identification condition collates using this identifier space, and if it is not acceptable, notifies the fact as an error (sends a rejection notice), so that the collision of the traffic identification condition is not caused.
  • the inter-control device message processing unit of each control device receives a processing rule setting request from a higher-level control device, the identifier used for the processing rule requested to be set is the processing rule.
  • a rejection notification indicating that the processing rule cannot be set is transmitted.
  • the collision of the traffic identification conditions may be finally avoided by obtaining the identifier space in advance and calculating the traffic identification conditions corresponding thereto.
  • control device 20 holds the accommodation traffic condition as shown in FIG. 8 as in the first embodiment. Based on this condition, the control device 20 calculates the identifier space for the virtual network 1 provided to the control device 40-1 and the virtual network 2 provided to the control device 30 as shown in FIG.
  • the control device 20 does not calculate the prohibited area and the destination MAC address that is the overlapping area of the accommodated traffic conditions is “00: 00: 00: 00: 01”.
  • To “00: 00: 00: 00: 00: 0f” and the destination IP addresses “192.168.0.1” to “192.168.0.9” are both in the virtual networks 1 and 2 It is treated as a permitted area and disclosed to the control devices 40-1 and 30.
  • control device 20 performs collision avoidance based on the order of use by setting the previously used traffic identification condition as a prohibited area in another virtual network.
  • the control device 20 checks whether or not the flow corresponds to the overlap area, and if so, the field constituting the overlap area, that is, the value of the destination MAC address and the destination IP address, is a virtual network that is another virtual network. 2 is added to the prohibited area. As a result of the addition to the prohibited area, the identifier space as shown in FIG. 14 is rewritten.
  • control device 30 updates the identifier space calculated and disclosed to the control device 40-2 as shown in FIG.
  • the overlapping area is propagated as a prohibited area according to the use situation, thereby avoiding the occurrence of a collision of traffic identification conditions in the entire system, Preventing an unnecessarily increase.
  • FIG. 16 illustrates the configuration of the control device 10 in the third embodiment.
  • the configuration of the control device 10 is the same as that of the first and second embodiments except for a part thereof, and the processing rule calculation unit 13 is different from those of the first and second embodiments.
  • the processing rule calculation unit 13 includes a flow database (flow DB) 131 and an identification condition correction unit 132.
  • the flow database 131 stores the processing rule that has been calculated by itself (the processing rule calculation unit 13) and the flow information that is the basis of the calculation.
  • the identification condition correction unit 132 corrects the traffic identification condition of the flow instructed from the control devices 20 and 30 in accordance with the information in the identifier space database 151 included in the identifier space calculation unit 15.
  • FIG. 17 illustrates the configuration of the control device 20 in the third embodiment.
  • the configuration of the control device 20 is the same as that of the first and second embodiments except for a part thereof, and the network slice unit 21 is different from that of the first and second embodiments.
  • the network slice unit 21 includes an information distribution unit 211, an accommodation traffic condition database (accommodation traffic condition DB) 212, and an identification condition correction unit 213. Based on the information in the accommodation traffic condition database 212, the information distribution unit 211 distributes information from the control devices 10, 30, and 40 to the network information management unit 23 that manages the corresponding network information.
  • the accommodation traffic condition database 212 stores identification conditions for traffic to be accommodated in the virtual network.
  • the identification condition correction unit 213 corrects the traffic identification condition of the flow instructed from the control devices 30 and 40 in accordance with the information in the identifier space database 221 included in the identifier space calculation unit 22.
  • FIG. 18 illustrates the configuration of the control device 30 in the third embodiment.
  • the configuration of the control device 30 is the same as that of the first and second embodiments except for a part thereof, and the network coupling unit 31 is different from that of the first and second embodiments.
  • the network coupling unit 31 includes a control instruction decomposing unit 311, a network boundary database (network boundary DB) 312, and an identification condition correcting unit 213. Based on the information in the network boundary database 312, the control instruction decomposing unit 311 decomposes information from the control device 40 and distributes the information to the network information managing unit 33 that manages the corresponding network information.
  • the network boundary database 312 stores information related to boundaries connecting lower networks, that is, information such as links between networks.
  • the identification condition correction unit 313 corrects the traffic identification condition of the flow instructed from the control device 40 in accordance with the information in the identifier space database 321 included in the identifier space calculation unit 32.
  • control devices 10, 20, and 30 include the identification condition correction units 132, 213, and 313, so that one of the flows instructed by the host control device does not match the corresponding identifier space. The part is corrected, and processing for matching with the identifier space is performed.
  • the adaptation process only a flow that is specified so as to be able to take an arbitrary value in the field constituting the traffic identification condition and that matches the identifier space by limiting the portion is targeted.
  • control device 30 presents the identifier space of the virtual network 4 provided to the control device 40-2 as shown in FIG. 19, the flow having the traffic identification condition as shown in FIG. -2 is specified.
  • the flow shown in FIG. 20 does not match the identifier space in FIG. 19 in the destination IP address field, and has a value exceeding the area specified by the identifier space.
  • the control device 30 limits the field of the destination IP address according to the identifier space of FIG.
  • the flow of FIG. 20 is modified as shown in FIG. By this processing, the lower control devices 20 and 10-2 are instructed to flow suitable for the identifier space.
  • the range expression 21 uses the range expression as the IP address value. However, if the control devices 10, 20, 30, and 40 permit the range expression, the range expression may be used as it is. A range expression flow may be divided into a plurality of flows having a single value. In addition, when the node does not allow the range expression when the flow that is the range expression is received, the control apparatus 10 may divide and set the plurality of flows having one value as described above. . Alternatively, in this case, when the control device 10 once stores the flow in the flow database 131 and receives a processing rule request conforming to this range expression from the node, the control device 10 matches the value of the packet header included in the processing rule request. You may set one by one.
  • the third embodiment since a means for correcting a traffic identification condition for a flow is provided, it is possible to perform an operation in which a flow that does not conform to the identifier space can be set as much as possible.
  • the configuration of the control device in the fourth embodiment can be the same as that in the first embodiment or the third embodiment.
  • a network identifier space is held in association with a port.
  • FIG. 22 shows an example of the identifier space disclosed in the control device 30. Note that p1 to p14 described in the input port field match the port ID in the system configuration of FIG.
  • the identifier space calculated by the control device 30 is as shown in FIG. 23, and different identifier spaces are designated depending on the value of the input port.
  • the calculation of the identifier space in the control device 20 is the same as in the first embodiment.
  • whether or not the flow conforms to the identifier space is verified including the input port in the traffic identification condition in the flow. Therefore, for example, a flow that controls traffic that is input from the port p1 and output to the port p14 passes through different identifier spaces along the transfer path. Specifically, in the flow for controlling the transfer from the port p1 to the port p7 (that is, in the network 3-1 in the system configuration of FIG. 2), the input port field in FIG. The identification conditions are verified according to the permitted and prohibited areas p1 to p7. On the other hand, in the flow for controlling the transfer from the port p8 to the port p14 (that is, in the network 3-2 in FIG. 2), the input port field in FIG.
  • the ports p8 to p14 Verified according to allowed and prohibited areas.
  • the IDs of all the ports are unique in the entire system, and therefore the input port field is included in the identifier space.
  • the port ID is not unique, it can be uniquely identified by expressing it in combination with the node ID.
  • the identifier space can be defined in units of ports, the amount of information for expressing the identifier space increases, but there is room for changing the traffic identification condition in the middle of the transfer path, and the degree of freedom of flow control Will improve.
  • control devices 10, 20, 30, and 40 described in the first to fourth embodiments may be realized by a computer program that causes a computer installed in each control device to execute the processing of each unit described above. it can.
  • FIG. 24 is a block diagram illustrating a hardware configuration of a computer 400 that implements the control device according to the present disclosure.
  • the computer 400 includes a CPU (Central Processing Unit) 401, a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, a storage device 404, a drive device 405, a communication interface 406, and an input / output interface 407. And have.
  • the control device according to the present disclosure may be realized by the configuration (or part thereof) shown in FIG.
  • the CPU 401 executes the program 408 using the RAM 403.
  • the program 408 may be stored in the ROM 402.
  • the program 408 may be recorded on a recording medium 409 such as a flash memory and read by the drive device 405, or may be transmitted from an external device via the network 410.
  • the communication interface 406 exchanges data with an external device via the network 410.
  • the input / output interface 407 exchanges data with peripheral devices (such as an input device and a display device).
  • the communication interface 406 and the input / output interface 407 can function as means for acquiring or outputting data.
  • control device may be configured by a single circuit (a processor or the like) or may be configured by a combination of a plurality of circuits.
  • the circuit here may be either dedicated or general purpose.
  • the control device 20 manages at least one communication network including the physical node 1 (for example, the network 3-1), and among the communication interfaces of the physical nodes included in the communication network to be managed, the unmanaged communication network ( For example, a set of identifiers usable in a communication interface (port 7 of the node 1-3) connected to the network 3-2) may be calculated, and the calculated set of identifiers may be managed in association with a predetermined communication interface. . That is, the control devices 20, 30 and the like may calculate only the identifier space that can be used in the edge port, and hold the calculated identifier space in association with the edge port.
  • the control devices 20, 30 and the like may calculate only the identifier space that can be used in the edge port, and hold the calculated identifier space in association with the edge port.
  • the control device 20 uses the identifiers that can be used in the virtual network constructed using the physical nodes.
  • a set may be calculated, and the calculated set of identifiers may be managed in association with a plurality of communication networks. That is, the control devices 20, 30 and the like calculate not only the identifier space that can be used in common in all nodes included in the communication network, and store the calculated identifier space in association with the virtual network, but also the communication. You may manage in connection with a network.
  • [Appendix 1] Based on a processing rule for processing communication traffic, a physical node that processes communication traffic identified by an identification condition included in the processing rule; A first control device (for example, the control device 20 in FIG. 2) that constructs a plurality of virtual networks using the physical node; A second control device (for example, the control devices 40-1 and 30 in FIG. 2) assigned to each of the plurality of virtual networks, The first control device includes: Based on a predetermined condition, a set of identifiers that can be used as the identification condition is assigned to each of the plurality of virtual networks, A network system for notifying the set of assigned identifiers to the second control device.
  • the first or second control device is: For each communication interface included in the physical node, calculate the set of identifiers usable in the communication interface, The network system according to appendix 1, wherein the calculated set of identifiers is managed in association with the communication interface.
  • the first or second control device is: Based on the identifier usable in the communication interface of the physical node, a set of the identifier usable in a virtual network constructed using the physical node is calculated, The network system according to appendix 1 or 2, wherein the set of calculated identifiers is managed in association with the virtual network constructed using the physical node.
  • the first or second control device is: The set of identifiers usable in the virtual network constructed using the physical node is calculated based on the union or intersection set of the set of identifiers usable in the communication interface of the physical node.
  • the first or second control device is: A set of identifiers usable in a predetermined communication interface connected to a second communication network among communication interfaces of physical nodes included in the first communication network corresponding to the virtual network; The network system according to attachment 2, wherein the calculated set of identifiers is managed in association with the predetermined communication interface.
  • the first or second control device is: Based on the union or product set of the set of identifiers usable in a predetermined communication interface of the physical node included in the first communication network, the virtual network constructed using the physical node can be used.
  • the first control device includes: The identification condition for identifying communication traffic to be accommodated in the virtual network is held in advance, The network system according to any one of appendices 1 to 6, wherein the set of identifiers usable in the virtual network is managed based on the identification condition held in advance.
  • the first control device includes: When the set of identifiers that can be used in each of the plurality of virtual networks overlap with each other, the set of identifiers that are not allowed to be used as the identifier by each of the plurality of virtual networks.
  • the first control device includes: When the set of identifiers that can be used in each of the plurality of virtual networks overlap each other, a predetermined identifier included in the overlapping set can be used in a virtual network having a high priority among the plurality of virtual networks.
  • the first control device includes: When the sets of identifiers that can be used in each of the plurality of virtual networks overlap with each other, a predetermined identifier included in the overlapping set is assigned to the virtual to which the processing rule including the predetermined identifier is first assigned.
  • the network system according to any one of appendices 1 to 9, which is set as an identifier usable in a network.
  • the first control device includes: The network system according to appendix 9 or 10, wherein the predetermined identifier is set as an identifier that cannot be used by a virtual network other than the virtual network to which the processing rule including the predetermined identifier is assigned.
  • the first control device includes: The network system according to any one of appendices 1 to 11, wherein a set of identifiers usable in each of the plurality of virtual networks is calculated so as to be independent for each of the plurality of virtual networks.
  • the first or second control device is: When receiving a request for setting the processing rule, the identifier is included in the set of identifiers that can be used as an identification condition of the processing rule when the identifier included in the processing rule for which setting is requested 13.
  • the network system according to any one of appendices 1 to 12, which transmits a rejection notice indicating that a rule cannot be set.
  • the first or second control device is: (1) When a request for setting the processing rule is received, the identifier included in the processing rule requested to be set is changed to an identifier included in a set of identifiers that can be used as an identification condition of the processing rule.
  • the network system as described in any one of thru
  • a control device that controls a physical node that processes communication traffic identified by an identification condition included in the processing rule, Constructing a plurality of virtual networks using the physical nodes; Based on a predetermined condition, a set of identifiers that can be used as the identification condition is assigned to each of the plurality of virtual networks, A control device that notifies the second control device assigned to each of the plurality of virtual networks of the assigned set of identifiers.
  • a physical node control method for processing communication traffic identified by an identification condition included in the processing rule, Constructing a plurality of virtual networks using the physical nodes; Assigning a set of identifiers usable as the identification condition to each of the plurality of virtual networks based on a predetermined condition; Notifying a set of assigned identifiers to a second control device assigned to each of the plurality of virtual networks; Control method.
  • a program that is executed by a computer mounted on a control device that controls a physical node that processes communication traffic identified by an identification condition included in the processing rule, A process of constructing a plurality of virtual networks using the physical node; A process of allocating a set of identifiers usable as the identification condition to each of the plurality of virtual networks based on a predetermined condition; A process of notifying a set of assigned identifiers to a second control device assigned to each of the plurality of virtual networks; A program that executes
  • Supplementary Notes 15 to 17 can be expanded to the forms of Supplementary Note 2 to Supplementary Note 14 as in the Supplementary Note 1.

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

仮想ネットワーク間でトラフィック処理規則の衝突を事前に回避するネットワークシステムを提供する。ネットワークシステムは、物理ノードと、第一の制御装置と、第二の制御装置と、を含む。物理ノードは、通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する。第一の制御装置は、物理ノードを用いて複数の仮想ネットワークを構築する。第二の制御装置は、複数の仮想ネットワークの各々に割り当てられる。第一の制御装置は、所定の条件に基づいて、識別条件として使用可能な識別子の集合を複数の仮想ネットワークの各々に割り当て、割り当てた識別子の集合を第二の制御装置に通知する。

Description

ネットワークシステム、制御装置、制御方法及びプログラム記録媒体
 本開示は、ネットワークシステム、制御装置、制御方法及びプログラム記録媒体に関し、特に、制御装置からの指示に従ってパケットを転送する機器によって構成されるネットワークにおけるネットワークシステム、制御装置、制御方法及びプログラム記録媒体に関する。
 特許文献1及び非特許文献1、2に示すとおり、近年、オープンフロー(OpenFlow)という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散及び最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルール(FlowKey;マッチングキー)と、処理内容を定義したアクション(Action)と、フロー統計情報(Stats)との組が定義される。
 例えば、オープンフロースイッチは、最初のパケット(first packet)を受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルール(FlowKey)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送する。そして、オープンフロースイッチは、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
 また、前述のようにオープンフロースイッチはオープンフローコントローラからのフローエントリ設定によってパケットの処理方法を決定する。特に、指定されたインターフェースへパケットを出力する「OUTPUT」が処理方法として多用されるが、この時指定されるポートは物理的なインターフェースに限らない。
 このようにオープンフローは、オープンフローコントローラによるオープンフロースイッチの制御によって、トラフィックの制御をマッチ条件によって規定される処理規則の集合として定義することで実現する。
 また、オープンフローを用いて構成されるネットワークを仮想化し、多様なニーズに対応するための技術が提案されている。
 非特許文献3は複数のオープンフローコントローラによってトラフィック制御を行うスライシング技術について開示しており、共通のオープンフローネットワークを複数の運用者が独立して運用することを可能にしている。非特許文献3では、FlowVisorと呼ばれる特殊なオープンフローコントローラが一つのオープンフロースイッチと複数のオープンフローコントローラの間の仲介を行う。これにより、非特許文献3では、複数のポリシーによって一つのオープンフロースイッチを制御することが可能になっている。FlowVisorには各オープンフローコントローラが収容すべきトラフィックの識別情報が登録されている。ポリシー間の衝突は、オープンフロースイッチからの処理規則要求の振り分けや、オープンフローコントローラから指示された処理規則の排他制御をこの識別情報に従って行うことで回避できる。この技術は、共通のオープンフローネットワークから仮想的に複数のネットワークを切り出してユーザーに提供することを可能にする。
 特許文献2はオープンフローコントローラの制御負荷を削減する技術を開示しており、オープンフローネットワークを階層化する技術について記述がある。特許文献2において、一つ以上のオープンフローネットワークが存在する場合、物理的なオープンフローネットワークを制御する各オープンフローコントローラ(以降下位コントローラと記述)をさらに制御する上位のオープンフローコントローラ(以降上位コントローラと記述)を備える構成が記載されている。各下位コントローラは、自身が制御するネットワークを一つの仮想的なスイッチとして上位コントローラに通知する。各下位コントローラは、上位コントローラからのフロー制御を受け取ることによってネットワークの階層化を実現し、複数のオープンフローネットワークを一つのネットワークとして統合し、制御する。
 非特許文献4は、上記非特許文献3、特許文献2に記載のスライシング、階層化を含む複数の仮想化技術を組み合わせてオープンフローネットワークに適用するアーキテクチャーについて開示している。非特許文献4では、ネットワークの仮想化を行うコンポーネントとして、Aggregator(縮約機能)、Slicer(切り出し機能)、Federator(結合機能)が定義されている。非特許文献4は、これらを再帰的にネットワークへ適用することで、物理的なオープンフロースイッチで構成されるネットワークを多様な構成に変換し制御するアーキテクチャーを提案している。
 また、非特許文献5は、上記非特許文献4で記述されているアーキテクチャーをオープンフローネットワークだけでなく、VXLAN(Virtual eXtensible Local Area Network)など他のネットワーク制御技術上で実現する技術を開示している。
 さらに、上記仮想化技術をネットワークに適用する際に問題となる、トラフィック処理規則の検証手段についても提案がなされている。
 非特許文献6は、オープンフローネットワークに設定されたトラフィック処理規則によって対象のトラフィックが指定通り転送されることを検証する技術について開示している。非特許文献6では、トラフィック処理規則中のトラフィック識別条件に該当するパケットヘッダの集合が幾何学的に識別子空間として表現されている。そして転送経路上のオープンフロースイッチに設定されるトラフィック処理規則の識別子空間が一致するか、もしくは共通部分空間を持つかを検査することで想定通りのトラフィック制御が実現されるかの検証が行われている。また、既に設定済みの他のトラフィック処理規則と識別子空間が競合するか否かを同時に検査することによって、ネットワーク全体として意図したトラフィック制御が行われていることが検証される。
 非特許文献7には、仮想ネットワークにおいて設定されたトラフィック処理規則が意図したとおりに設定されているか、他の仮想ネットワークにおけるトラフィック処理規則と衝突を生じないかを検証する技術についての記述がある。トラフィック処理規則の有効性は、トラフィック処理規則に使用できるトラフィック識別条件を二分決定木で表現し、設定済みのトラフィック処理規則中のトラフィック識別条件が使用可能な範囲を逸脱していないかを検査することで行われる。
国際公開第2014/126094号 特表2013-522934号公報
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成26年9月17日検索]、インターネット〈URL:http://archive.openflow.org/documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01) "、[online]、[平成26年9月17日検索] 、インターネット〈URL:https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.0.0.pdf〉 Sherwood, Rob, et al. "Carving research slices out of your production networks with OpenFlow." ACM(Association for Computing Machinery) SIGCOMM Computer Communication Review 40.1 (2010): 129-130. 小出俊夫, 芦田優太, and 下西英之. "SDN コントローラ作成のシンプル化を実現するネットワーク抽象化モデル (ICT システムを高度化する SDN 特集)--(NEC SDN Solutions を支える最新技術)." NEC 技報、 日本電気株式会社、 Vol.66 No.2 (2014): p.32-35. 飯澤洋平, 森本昌治, and 下西英之. "ヘテロジニアス網統合制御基盤を実現するマルチレイヤ抽象化技術 (ICT システムを高度化する SDN 特集)--(NEC SDN Solutions を支える最新技術)." NEC 技報、 日本電気株式会社、 Vol.66 No.2 (2014): p.44-47. Kazemian, Peyman, George Varghese, and Nick McKeown. "Header Space Analysis: Static Checking for Networks." 9th USENIX Symposium on Operating Systems Design and Implementation(NSDI). 2012. Al-Shaer, Ehab, and Saeed Al-Haj. "FlowChecker: Configuration analysis and verification of federated OpenFlow infrastructures." Proceedings of the 3rd ACM workshop on Assurable and usable security configuration. ACM, 2010.
 なお、上記先行技術文献の各開示を、本明細書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
 上述の通り、オープンフローのようなネットワーク制御技術を用い、ネットワークを仮想化することで複数のユーザーの要求に応じたトラフィックの処理規則を設定することができる。しかしながら、これらのトラフィック処理規則は最終的に共通の物理ネットワークへ設定されることになるが、各仮想ネットワークの処理規則が矛盾する規則であった場合、トラフィックが意図しない制御を受けてしまうことが考えられる。非特許文献4のようにネットワークを複雑に仮想化していった場合、設定されるトラフィック処理規則が多様になるため処理規則間の矛盾が発生する確率が高まる。
 非特許文献3に記載の技術を用いることで、ユーザーごとに許可したトラフィック種別のみを制御するよう制約を付けることができる。許可範囲を逸脱するようなトラフィック処理規則の設定が指示された場合には、物理ネットワークに設定する前に修正もしくは拒否することによってトラフィック処理規則の排他制御が実現される。しかしながら、非特許文献3に記載の技術は、このトラフィック種別情報そのものの検証手段を持たず、ユーザーごとの使用可能トラフィック種別設定が衝突している場合、意図した制御が実行できない。また、トラフィック処理規則の排他制御はオープンフローコントローラからの設定指示送信を契機に行われるため、事前に他の規則と衝突を起こさない処理規則を計算することができない。
 非特許文献6、7に記載の技術を用いることで、設定されたトラフィック処理規則が仮想ネットワーク間で矛盾を発生させていないか、意図した制御が実現可能かを検証することが可能である。しかし、本技術も非特許文献3と同様に、登録情報の検証や、衝突を回避する処理規則の事前計算を行うことができない。
 以上から、本開示は、仮想ネットワーク間でトラフィック処理規則の衝突を事前に回避するために必要な、使用可能なトラフィック識別条件の計算及び情報開示手段を提供することを目的とする。
 本開示の第1の視点によれば、通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードと、前記物理ノードを用いて複数の仮想ネットワークを構築する第一の制御装置と、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置と、を含み、前記第一の制御装置は、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、割り当てた前記識別子の集合を前記第二の制御装置に通知する、ネットワークシステムが提供される。
 本開示の第2の視点によれば、通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを用いて複数の仮想ネットワークを構築し、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する、制御装置が提供される。
 本開示の第3の視点によれば、通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを用いて複数の仮想ネットワークを構築し、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する制御方法が提供される。
 本開示の第4の視点によれば、通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置に搭載されたコンピュータに、前記物理ノードを用いて複数の仮想ネットワークを構築する処理と、所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てる処理と、割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する処理と、を実行させるためのプログラムが提供される。
 なお、このプログラムは、コンピュータが読み取り可能な記録媒体に記録することができる。記録媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本開示は、コンピュータプログラム製品として具現することも可能である。
 本開示の各視点によれば、仮想ネットワーク間でトラフィック処理規則の衝突を事前に回避することに寄与するネットワークシステム、制御装置、制御方法及びプログラムが提供される。
図1は、一実施形態の概要を説明するための図である。 図2は、第一の実施形態におけるシステム構成の一例を示している。 図3は、第一の実施形態における第一の制御装置の構成例を示している。 図4は、第一の実施形態における第二の制御装置の構成例を示している。 図5は、第一の実施形態における第三の制御装置の構成例を示している。 図6は、第一の実施形態における第四の制御装置の構成例を示している。 図7は、第一の実施形態において第一の制御装置によって計算される識別子空間を例示している。 図8は、第一の実施形態における収容トラフィック条件を例示している。 図9は、第一の実施形態における収容トラフィック条件の重複を例示している。 図10は、第一の実施形態において第二の制御装置によって計算される識別子空間を例示している。 図11は、第一の実施形態において第三の制御装置に開示される二つのネットワークの識別子空間を例示している。 図12は、第一の実施形態において、第三の制御装置によって計算される識別子空間を例示している。 図13は、第二の実施形態において、第二の制御装置によって計算される識別子空間を例示している。 図14は、第二の実施形態において、第二の制御装置によって修正された識別子空間を例示している。 図15は、第二の実施形態において、第三の制御装置によって修正された識別子空間を例示している。 図16は、第三の実施形態における第一の制御装置の構成を例示している。 図17は、第三の実施形態における第二の制御装置の構成を例示している。 図18は、第三の実施形態における第三の制御装置の構成を例示している。 図19は、第三の実施形態において、第四の制御装置に開示される識別子空間を例示している。 図20は、第三の実施形態において、第四の制御装置によって設定されるトラフィック処理規則に含まれるトラフィック識別条件を例示している。 図21は、第三の実施形態において、第三の制御装置によって修正されたトラフィック識別条件を例示している。 図22は、第四の実施形態において、第三の制御装置に開示される識別子空間を例示している。 図23は、第四の実施形態において、第三の制御装置によって計算される識別子空間を例示している。 図24は、制御装置を実現するコンピュータの構成の一例を示す。
 初めに、一実施形態の概要について説明する。なお、この概要に付記した参照符号は、理解を助けるための一例として各要素に便宜上付記したものである。この概要の記載は、なんらの限定を意図するものではない。また、構成要素間に記載された矢印は、情報の流れの一例を示すにすぎず、情報の流れを特定の方向に限定することを意図するものではない。
 図1を参照すると、一実施形態に係るネットワークシステムは、物理ノード100と、第一の制御装置101と、第二の制御装置102と、を含む。物理ノード100は、通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する。第一の制御装置101は、物理ノード100を用いて複数の仮想ネットワークを構築する。第二の制御装置102は、複数の仮想ネットワークの各々に割り当てられる。第一の制御装置101は、所定の条件に基づいて、識別条件として使用可能な識別子の集合を複数の仮想ネットワークの各々に割り当て、割り当てた識別子の集合を第二の制御装置102に通知する。
 図1のネットワークシステムにおいて、第一の制御装置101は、複数の仮想ネットワークを構築すると共に、それぞれの仮想ネットワークにて使用可能な識別子の集合(後述する識別子空間)を割り当てる。当該割り当てられた識別子の集合は、各仮想ネットワークを制御する第二の制御装置102に提供される。第二の制御装置102は、提供された識別子の集合に適合するようにトラフィック制御指示(フロー設定指示)を行い、又は、識別子の集合に適合しない第二の制御装置102の上位装置から指示されたトラフィック制御指示を拒否することで、識別条件の衝突が回避できる。
 一実施形態に係るネットワークシステムは、ネットワークを多様に仮想化する場合に、それぞれの仮想ネットワークにおいて許容されるトラフィック識別条件を他の仮想ネットワークとの衝突を防止するよう計算し、トラフィック処理規則を計算する機器を提供できる。
 以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第一の実施形態]
 図2は、第一の実施形態に係るシステム全体の構成例を示す図である。図2を参照すると、ノード1-1~1-3から構成されるネットワーク3-1と、ノード1-4~1-6から構成されるネットワーク3-2と、が相互に接続されている。さらに、ノード1-1、1-2、1-5及び1-6のそれぞれには、端末2が接続されている。また、ネットワーク3-1は、制御装置10-1によって直接に管理されている。ネットワーク3-2は、制御装置10-2によって直接に管理されている。
 制御装置10-1、10-2は、自身の管理するネットワークの情報を他の制御装置に提供し、制御下に入る。制御装置20は、制御装置10-1の情報から二つの仮想ネットワークを構築し、制御装置40-1及び制御装置30に仮想ネットワーク情報を提供する。
 制御装置20は、制御装置40-1からの制御指示と制御装置30からの制御指示を制御装置10-1へ受け渡すとともに、制御装置10-1からの情報を条件によって制御装置40-1、制御装置30に振り分ける機能を持つ。
 制御装置30は、制御装置10-2及び制御装置20からのネットワーク情報を結合し、単一のネットワーク情報を制御装置40-2へ提供する。また、制御装置30は、制御装置40-2からの制御指示を分割し、制御装置10-2及び制御装置20へ分配する機能を持つ。
 制御装置40は、受け取ったネットワーク情報から該当ネットワークへ設定すべきフローを計算し、下位の制御装置へ送信する。
 次に、図3~6を用いて、制御装置10、20、30、40の構成例について説明する。
 図3を参照すると、制御装置10は、ノード通信部11と、ノード制御メッセージ処理部12と、処理規則計算部13と、ネットワーク情報管理部14と、識別子空間計算部15と、制御装置間メッセージ処理部16と、制御装置通信部17と、で構成されている。
 ノード通信部11は、ノード1と接続し通信を行う。
 ノード制御メッセージ処理部12は、ノード1から受信した情報を解析し、他の機能部へ振り分ける。ノード制御メッセージ処理部12は、他の機能部からの情報をノード1の制御用メッセージへ変換し、ノード通信部11へ送信する。
 処理規則計算部13は、ネットワーク情報管理部14からの情報に基づいてノード1に設定指示する処理規則を計算し、ノード制御メッセージ処理部12へ送信する。
 ネットワーク情報管理部14は、制御装置10の管理するネットワークの情報を管理し、ノード1からの情報や、制御装置20もしくは30からの情報に基づき情報を更新する。ネットワーク情報管理部14は、更新情報を制御装置20、30やノード1へ通知する。
 識別子空間計算部15は、ネットワーク情報管理部14の保持しているネットワーク情報に基づき、制御装置10の管理するネットワークで、フローのトラフィック識別条件として使用可能な識別子の空間を計算し、保持する。識別子空間計算部15は、フローのトラフィック識別条件として使用可能な識別子の空間をネットワーク情報管理部14に通知する。
 制御装置間メッセージ処理部16は、他の機能部からの要請に基づき、制御装置20、30へ情報を送信するメッセージを作成する。制御装置間メッセージ処理部16は、制御装置20、30から受信した情報を解析し、他の機能部へ振り分ける。
 制御装置通信部17は、制御装置20、30との通信を管理する。
 また、処理規則計算部13は、自身が計算済みの処理規則と、その計算のもとになったフロー情報を記憶するフローデータベース(フローDB;Data Base)131を含む。ネットワーク情報管理部14は、制御装置10が管理するネットワークの情報、すなわち、ネットワークトポロジやノード1の情報、ネットワークに設定すべきフローの情報などを記憶するネットワークデータベース(ネットワークDB)141を含む。識別子空間計算部15は、自身の計算した識別子空間を記憶する識別子空間データベース(識別子空間DB)151を含む。
 図4を参照すると、制御装置20は、ネットワークスライス部21と、識別子空間計算部22と、ネットワーク情報管理部23と、制御装置間メッセージ処理部24と、制御装置通信部25と、で構成されている。
 ネットワークスライス部21は、制御装置10より受信したネットワーク情報(すなわち、仮想化の基となる下位ネットワーク情報)と、仮想ネットワークに収容すべきトラフィックの識別条件と、に基づき、複数の仮想ネットワーク情報を計算する。さらに、ネットワークスライス部21は、下位ネットワークからの情報を、該当する仮想ネットワーク情報を管理するネットワーク情報管理部23に伝達する、あるいは制御装置30もしくは40からの情報を制御装置間メッセージ処理部24に伝達する。
 識別子空間計算部22は、下位ネットワーク情報とそれに含まれる識別子空間に基づき、各仮想ネットワークにおいてフローのトラフィック識別条件として使用可能な識別子空間を計算し、仮想ネットワークの識別子空間として保存する。識別子空間計算部22は、仮想ネットワークの識別子空間を、該当する仮想ネットワークの情報を管理するネットワーク情報管理部23へ通知する。
 ネットワーク情報管理部23は、下位ネットワーク情報と、仮想ネットワークに対応するネットワーク情報を管理する。
 制御装置間メッセージ処理部24は、他の機能部からの要請に基づき、制御装置10、30、40へ情報を送信するメッセージを作成する。制御装置間メッセージ処理部24は、制御装置10、30、40から受信した情報を解析し、他の機能部へ振り分ける。
 制御装置通信部25は、制御装置10、30、40との通信を管理する。
 また、ネットワークスライス部21は、情報振り分け部211と、収容トラフィック条件データベース(収容トラフィック条件DB)212と、を含む。情報振り分け部211は、収容トラフィック条件データベース212の情報に基づいて、制御装置10、30、40からの情報を該当するネットワーク情報を管理するネットワーク情報管理部23へ振り分ける。収容トラフィック条件データベース212は、仮想ネットワークに収容すべきトラフィックの識別条件を保存(記憶)する。
 さらに、識別子空間計算部22は、自身の計算した識別子空間を記憶する識別子空間データベース221を含む。ネットワーク情報管理部23は、下位のネットワーク情報や仮想ネットワーク情報を保存するネットワークデータベース231を含む。
 なお、ネットワーク情報管理部23は、下位のネットワーク及び仮想ネットワーク毎に独立に存在してもよい。また、ネットワーク情報管理部23は単一であるがネットワークデータベース231はネットワーク毎に独立に存在してもよい。あるいは、ネットワークデータベース231が単一であって、ネットワークデータベース231の内部の独立した領域にネットワーク情報を管理してもよい。さらに、ネットワーク情報管理部23は、下位ネットワーク情報を持たず、必要に応じて下位ネットワークの制御装置から取得する方法や、下位ネットワークの制御装置から通知される情報を用いる方法を採用してもよい。
 収容トラフィック条件データベース212に記憶する情報は、運用者やユーザーによって外部より登録されてもよいし、起動時に設定するなど任意の情報登録手段を用いることができる。即ち、制御装置20は、仮想ネットワークに収容すべき通信トラヒックを識別する識別条件(収容トラフィック識別条件)を予め保持し、当該予め保持する識別条件に基づいて、仮想ネットワークにおいて使用可能な識別子の集合を管理できる。
 図5を参照すると、制御装置30は、ネットワーク結合部31と、識別子空間計算部32と、ネットワーク情報管理部33と、制御装置間メッセージ処理部34と、制御装置通信部35と、で構成されている。
 ネットワーク結合部31は、複数の下位ネットワーク情報を結合して単一の仮想ネットワーク情報を計算する。詳細には、ネットワーク結合部31は、制御装置10、20より受信したネットワーク情報(仮想化の基となる下位ネットワーク情報)と、ネットワーク境界データベース312に記憶されている下位ネットワーク同士の境界情報とに基づいて計算を実行する。さらに、ネットワーク結合部31は、下位ネットワークからの情報を、該当する仮想ネットワーク情報を管理するネットワーク情報管理部33に伝達する。あるいは、ネットワーク結合部31は、制御装置40からの情報を制御装置間メッセージ処理部34に伝達する。
 識別子空間計算部32は、下位ネットワーク情報と、それに含まれる識別子空間に基づき、仮想ネットワークにおいてフローのトラフィック識別条件として使用可能な識別子空間を計算し、仮想ネットワークの識別子空間として保存する。識別子空間計算部32は、仮想ネットワークの識別子空間を、該当する仮想ネットワークの情報を管理するネットワーク情報管理部33へ通知する。
 ネットワーク情報管理部33は、下位ネットワーク情報と、仮想ネットワークに対応するネットワーク情報を管理する。
 制御装置間メッセージ処理部34は、他の機能部からの要請に基づき、制御装置10、20、40へ情報を送信するメッセージを作成する。制御装置間メッセージ処理部34は、制御装置10、20、40から受信した情報を解析し、他の機能部へ振り分ける。
 制御装置通信部35は、制御装置10、20、40との通信を管理する。
 また、ネットワーク結合部31は、制御指示分解部311と、ネットワーク境界データベース(ネットワーク境界DB)312と、を含む。制御指示分解部311は、ネットワーク境界データベース312の情報に基づいて、制御装置40からの情報を分解し、該当するネットワーク情報を管理するネットワーク情報管理部33へ分配する。ネットワーク境界データベース312は、下位ネットワークを結合する境界に関する情報、すなわちネットワーク間リンクなどの情報を保存(記憶)する。
 識別子空間計算部32は、自身の計算した識別子空間を記憶する識別子空間データベース(識別子空間DB)321を含む。ネットワーク情報管理部33は、下位のネットワーク情報や仮想ネットワーク情報を保存するネットワークデータベース(ネットワークDB)331を含む。
 ネットワーク情報管理部33は、下位ネットワーク情報を持たず、必要に応じて下位ネットワークの制御装置から取得する方法や、下位ネットワークの制御装置から通知される情報を用いる方法を採用してもよい。あるいは、ネットワーク境界データベース312に記憶する情報は、運用者やユーザーによって外部より登録されてもよいし、起動時に設定するなど任意の情報登録手段を用いることができる。
 図6を参照すると、制御装置40は、フロー計算部41と、ネットワーク情報管理部42と、制御装置間メッセージ処理部43と、制御装置通信部44と、で構成されている。
 フロー計算部41は、制御装置20、30より受信したネットワーク情報(すなわち、フロー制御の対象となる下位ネットワーク情報)をネットワーク情報管理部42より取得し、下位ネットワークに設定すべきフローを計算する。
 ネットワーク情報管理部42は、下位ネットワーク情報を管理する。
 制御装置間メッセージ処理部43は、他の機能部からの要請に基づき、制御装置20、30へ情報を送信するメッセージを作成する機能、および制御装置20、30から受信した情報を解析し、他の機能部へ振り分ける機能を持つ。
 制御装置通信部44は、制御装置20、30との通信を管理する。
 また、フロー計算部41は、自身の計算したフローを記憶するフローデータベース(フローDB)411を含む。ネットワーク情報管理部42は、下位のネットワーク情報や仮想ネットワーク情報を保存するネットワークデータベース(ネットワークDB)421を含む。
 ネットワーク情報管理部42は、下位ネットワーク情報を持たず、必要に応じて下位ネットワークの制御装置から取得する方法や、下位ネットワークの制御装置から通知される情報を用いる方法を採用してもよい。
 なお、制御装置10、20、30、40に含まれるネットワークデータベース141、231、331、421は、ネットワーク情報だけでなく端末2に関する情報を保持してもよい。また、ネットワーク情報管理部14、23、33、42は、制御装置10、20、30、40の内部でなく、任意の情報通信手段によって接続される外部装置として別個に存在してもよい。
 図3~6に記載の、制御装置10、20、30、40の接続先となる制御装置は、図2のシステム構成に従ったものであり、制御装置の接続関係を変更する場合はそれに準じた接続先となる。
 図3~6に記載の構成を持つ制御装置によって図2に示される通信システムを構成する場合、トラフィックの処理方法であるフローを計算する装置は、最上位に接続された制御装置40である。従って、制御装置40が計算し、設定を指示したフローは、制御の媒介をする各制御装置においてフローに含まれるトラフィック識別条件が許容可能であるか検査される。
 制御装置10、20、30は、それぞれ上位に接続されている制御装置20、30、40が制御指示を行うことが可能なトラフィックの識別条件の集合(以降、識別子空間と記述する)を保持しており、制御装置20、30、40へ開示(提供)している。制御装置10、20、30は、上記識別子空間に該当しないトラフィック制御指示(以降、フロー設定指示と記述する)が制御装置20、30、40より送信された場合、許容可能なフロー設定指示ではない旨を含むエラー通知を返答する。制御装置10、20、30は、エラー通知を返答することで、各制御装置からのフロー設定が衝突しないことを保証する。
 あるいは、制御装置40が、直下の制御装置である制御装置20、30により規定される識別子空間を事前に取得し、その空間に適合するようなフロー設定指示を計算し、制御装置20、30へ送信することでフロー設定衝突の回避を保証してもよい。制御装置20、30が開示する識別子空間には、それより下位の制御装置における識別子空間が反映されているため、最下位の制御装置10に至るまで許容されることが保証できる。
 以降、制御装置10、20、30における識別子空間の計算方法について説明する。
 第一の実施形態において、識別子空間は、ノードに対応する物理機器が使用可能なトラフィック識別条件に基づいて計算される。オープンフロー(スペック1.0)を例にすると、送信元MAC(Media Access Control)アドレス、宛先MACアドレス、VLAN(Virtual Local Area Network) ID、VLANプライオリティ、L2フレームタイプ、IP ToS(Internet Protocol Type of Service)、IPプロトコル番号、送信元IPアドレス、宛先IPアドレス、送信元L4ポート番号及び宛先L4ポート番号の11種のパケットヘッダ情報とパケットの入力ポートの12種のフィールドが基となる。複数の機種が混在している場合は、各機種が対応可能な識別条件から識別子空間が計算される。以降、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス、送信先IPアドレスに限定した例を説明する。
 制御装置10においては、ノードに対応する装置がトラフィック処理規則として利用可能な識別条件の集合が識別子空間となる。本実施形態では、識別子空間に入力ポート及び入力ノードの情報を含まず、場所によらずネットワーク全体で一つの識別子空間を共有する方法を示す。そのため、制御装置10における識別子空間計算は、各フィールドにおいて許容される最小値から最大値までの全ての値を含む識別子空間となる。
 図7に制御装置10によって計算される識別子空間表現の例を示す。図7では、仕様上使用可能なすべての値を「any」として表現している。なお、異種の機器が混在している場合、各機器で使用可能な識別条件の積集合を計算し、識別子空間とする。仮に、送信元MACアドレス、宛先MACアドレス、送信元IPアドレス及び送信先IPアドレスが識別可能なノードと、送信元MACアドレス及び宛先MACアドレスが識別可能なノードとが混在している場合、両者の積である送信元MACアドレス、宛先MACアドレスフィールドの任意の値集合がネットワークの識別子空間となる。
 次に、制御装置20における識別子空間の計算方法について説明する。
 制御装置20は、ネットワークを複数の仮想ネットワークに切り出すため、仮想ネットワーク間で識別子空間が独立となるように計算することで、トラフィック制御の衝突回避を保証する。
 例えば、図2の構成において、ネットワーク3-1は制御装置10-1によって等価なネットワークに仮想化され、制御装置10-1におけるネットワークデータベース141にネットワーク情報が保存される。制御装置20は、このネットワーク情報をもとに二つの仮想ネットワークを生成し、制御装置40-1と制御装置30に提供する。その際、制御装置20は、制御装置40-1及び制御装置30に提供するネットワークに収容すべきトラフィックの識別条件に基づき、識別子空間を計算する。
 トラフィック識別条件は、例えば、システム構成時に運用者やユーザーによって設定され、制御装置20における収容トラフィック条件データベース212に保存される。
 図8にトラフィック収容条件の例を示す。図8では、宛先MACアドレスが「00:00:00:00:00:01」から「00:00:00:00:00:0f」のトラフィックが制御装置40-1に提供される仮想ネットワーク1に収容されるように設定されている。また、送信先IPアドレスが「192.168.0.1」から「192.168.0.9」のトラフィックが制御装置30に提供される仮想ネットワーク2に収容されるよう設定されている。また、仮想ネットワーク1への振り分けが高優先度(1)、仮想ネットワーク2への振り分けが低優先度(2)となっている。
 制御装置20は、この収容トラフィック条件をもとに識別子空間を計算する。例えば、この収容トラフィック条件をそのまま仮想ネットワーク1、2の識別子空間にした場合、宛先MACアドレスが「00:00:00:00:00:01」から「00:00:00:00:00:0f」、且つ、送信先IPアドレスが「192.168.0.1」から「192.168.0.9」の範囲であるトラフィック識別条件は、衝突することになる。
 上記の衝突を引き起こす識別子空間の重複を図9に示す。図9において、横軸が宛先IPアドレスの値、縦軸が宛先MACアドレスの値を表しており、送信元IPアドレス、送信元MACアドレスは省略されている。黒で塗りつぶされた領域が仮想ネットワーク1の識別子空間を、白抜きの領域が仮想ネットワーク2の識別子空間を示しており、両者が重なっている部分が識別子空間の重複である。このような重複を回避するため、制御装置20は、優先度が低い仮想ネットワーク2の識別子空間を削減し、仮想ネットワーク2の識別子空間において禁止領域として表現する。
 制御装置20によって計算される識別子空間を図10に示す。なお、φは空集合を示す。仮想ネットワーク1の識別子空間は、図8の収容トラフィック条件と同一の許可領域をもち、禁止領域はすべて空集合である。仮想ネットワーク2の識別子空間は、許可空間として収容トラフィック条件と同一の範囲を持つが、禁止領域として仮想ネットワーク1と共通(重複)する部分である宛先MACアドレスが「00:00:00:00:00:01」から「00:00:00:00:00:0f」を持つ。この計算によって、互いに独立な識別子空間が制御装置40-1、30に開示される。
 最後に、制御装置30における識別子空間計算について説明する。
 制御装置30では、制御装置20と制御装置10-2に対応する下位ネットワークを結合し、一つの上位ネットワークとすることで複数のネットワークを統合して制御することを可能にする。そのため、制御装置30は、二つの下位ネットワークの識別子空間を統合して上位ネットワークの識別子空間とする。
 図11に制御装置20と10-2がそれぞれ開示する識別子空間を示す。図11において、仮想ネットワーク2の識別子空間は、許可領域として送信先IPアドレスが「192.168.0.1」から「192.168.0.9」を持つ。また、仮想ネットワーク2の識別子空間は、禁止領域として宛先MACアドレスが「00:00:00:00:00:01」から「00:00:00:00:00:0f」を持つ。仮想ネットワーク3(制御装置10-2に提供されるネットワーク)の識別子空間は、許可領域として宛先MACアドレスが「00:00:00:00:00:11」から「00:00:00:00:00:1f」を持ち、禁止領域として空集合を持つ。
 制御装置30は、これらの識別子空間を結合するため、本実施形態では二つの空間で許可領域では積を、禁止領域では和を計算して制御装置40-2に提供される仮想ネットワーク4の識別子空間とする。
 図12に仮想ネットワーク4の識別子空間を示す。図12のように許可領域として仮想ネットワーク2の許可領域と仮想ネットワーク3の許可領域の積である、送信先IPアドレスが「192.168.0.1」から「192.168.0.9」の範囲、且つ、宛先MACアドレスが「00:00:00:00:00:11」から「00:00:00:00:00:1f」の範囲が計算される。また、禁止領域として仮想ネットワーク2の禁止領域と仮想ネットワーク3の禁止領域(空集合)の和である宛先MACアドレスが「00:00:00:00:00:01」から「00:00:00:00:00:0f」の範囲が計算される。
 以上のように、第一の実施形態では、上記の識別子空間計算において、許可領域の積と禁止領域の和を取ることで、下位では別個のネットワークであるような結合ネットワークにおいてエンドツーエンドで共通して使用可能な識別子空間を計算及び開示する。これにより、第一の実施形態では、ネットワークを跨ってもフローが有効となるトラフィック識別条件の領域を示している。また、各制御装置が識別子空間を計算することによって、各仮想ネットワークにおいて他のネットワークと衝突せずに使用可能な識別子空間が定義され、各制御装置へ提供される。
 さらに、トラフィック識別条件を受け取った制御装置が、この識別子空間を用いて照合し、許容不可である場合はその旨をエラーとして通知する(拒否通知を送信する)ことで、トラフィック識別条件の衝突が最終的に回避される。より具体的には、各制御装置の制御装置間メッセージ処理部が、上位の制御装置から処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に用いる識別子が当該処理規則の識別条件として使用可能な識別子の集合に含まれないことに応じて、当該処理規則を設定できない旨を示す拒否通知を送信する。あるいは、制御装置が事前に識別子空間を取得し、それに対応するトラフィック識別条件を計算することで、トラフィック識別条件の衝突を最終的に回避してもよい。
[第二の実施形態]
 続いて、第二の実施形態について述べる。
 始めに、本実施形態における制御装置20の動作について説明する。本実施形態において、制御装置20は第一の実施形態と同様に、図8のような収容トラフィック条件を保持している。制御装置20はこの条件に基づき制御装置40-1に提供される仮想ネットワーク1、制御装置30に提供される仮想ネットワーク2に対する識別子空間を図13のように計算する。
 図13を参照すると、第二の実施形態において、制御装置20は、禁止領域を計算せず、収容トラフィック条件の重複領域である宛先MACアドレスが「00:00:00:00:00:01」から「00:00:00:00:00:0f」、且つ、送信先IPアドレスが「192.168.0.1」から「192.168.0.9」の範囲は仮想ネットワーク1、2ともに許可領域として扱われ、制御装置40-1、30に開示される。
 しかしながら、このままでは、仮想ネットワーク1と2の間でフローの衝突が発生し得る。そのため、制御装置20は先に使用されたトラフィック識別条件を他の仮想ネットワークにおける禁止領域とすることによって、使用順序に基づく衝突回避を行う。
 例えば、制御装置40-1が、送信元MACアドレス=00:00:00:00:00:21、宛先MACアドレス=00:00:00:00:00:01、送信元IPアドレス=192.168.10.1、送信先IPアドレス=192.168.0.1のトラフィック識別条件をもつフローを制御装置20へ設定指示したとする。この場合、制御装置20は、フローが重複領域に該当するか検査し、該当する場合、重複領域を構成するフィールド、すなわち宛先MACアドレスと送信先IPアドレスの値を他の仮想ネットワークである仮想ネットワーク2の禁止領域に追加する。上記禁止領域への追加の結果、図14のような識別子空間へ書き換えられることになる。
 さらに、制御装置30は、制御装置20により書き換えられた識別子空間に基づき、自身が計算し制御装置40-2へ開示済みの識別子空間を、図15のように更新する。
 以上のように、第二の実施形態では、重複する識別子空間を利用状況に応じて禁止領域として伝播させることによって、システム全体でトラフィック識別条件の衝突が発生することを回避しながら、禁止領域が必要以上に増大することを防止する。
[第三の実施形態]
 続いて、第三の実施形態について述べる。
 図16は、第三の実施形態における制御装置10の構成を例示している。図16において、制御装置10の構成は、第一及び第二の実施形態と一部を除いて同様であり、処理規則計算部13が第一、第二の実施形態と異なる。
 処理規則計算部13は、フローデータベース(フローDB)131と、識別条件修正部132と、を含む。フローデータベース131は、自身(処理規則計算部13)が計算済みの処理規則と、その計算のもとになったフロー情報を記憶する。識別条件修正部132は、識別子空間計算部15に含まれる識別子空間データベース151の情報に合わせて、制御装置20、30から指示されたフローのトラフィック識別条件を修正する。
 図17は、第三の実施形態における制御装置20の構成を例示している。図17において、制御装置20の構成は第一及び第二の実施形態と一部を除いて同様であり、ネットワークスライス部21が第一、第二の実施形態と異なる。
 ネットワークスライス部21は、情報振り分け部211と、収容トラフィック条件データベース(収容トラフィック条件DB)212と、識別条件修正部213と、を含む。情報振り分け部211は、収容トラフィック条件データベース212の情報に基づいて、制御装置10、30、40からの情報を該当するネットワーク情報を管理するネットワーク情報管理部23へ振り分ける。収容トラフィック条件データベース212は、仮想ネットワークに収容すべきトラフィックの識別条件を保存する。識別条件修正部213は、識別子空間計算部22に含まれる識別子空間データベース221の情報に合わせて、制御装置30、40から指示されたフローのトラフィック識別条件を修正する。
 図18は、第三の実施形態における制御装置30の構成を例示している。図18において、制御装置30の構成は第一及び第二の実施形態と一部を除いて同様であり、ネットワーク結合部31が第一、第二の実施形態と異なる。
 ネットワーク結合部31は、制御指示分解部311と、ネットワーク境界データベース(ネットワーク境界DB)312と、識別条件修正部213と、を含む。制御指示分解部311は、ネットワーク境界データベース312の情報に基づいて、制御装置40からの情報を分解し、該当するネットワーク情報を管理するネットワーク情報管理部33へ分配する。ネットワーク境界データベース312は、下位ネットワークを結合する境界に関する情報、すなわちネットワーク間リンクなどの情報を保存する。識別条件修正部313は、識別子空間計算部32に含まれる識別子空間データベース321の情報に合わせて、制御装置40から指示されたフローのトラフィック識別条件を修正する。
 第三の実施形態では、制御装置10、20、30は識別条件修正部132、213、313を有することにより、上位の制御装置より指示されたフローのうち、該当する識別子空間と一致しないものの一部を修正し、識別子空間と適合させる処理を行う。当該適合処理では、トラフィック識別条件を構成するフィールドに任意の値を取り得るように指定され、且つ、その部分を限定することによって識別子空間と適合するフローのみが対象となる。
 例えば、制御装置30が、制御装置40-2に提供される仮想ネットワーク4の識別子空間を図19のように提示している場合に、図20のようなトラフィック識別条件を持つフローが制御装置40-2より指定されたとする。
 図20に示すフローは、送信先IPアドレスのフィールドにおいて、図19の識別子空間と適合せず、識別子空間が指定する領域を超えた値を持っている。このようなフローに対して、制御装置30は、図19の識別子空間に従って送信先IPアドレスのフィールドを限定する。当該処理により、図20のフローは、図21のように修正される。この処理によって下位の制御装置20、10-2には識別子空間に適合したフローが指示されることになる。
 なお、図21のフローはIPアドレス値として、範囲表現を用いているが、制御装置10、20、30、40が範囲表現を許容する場合は範囲表現のまま用いればよいし、許容されない場合は範囲表現のフローを、ただ一つの値を持つ複数のフローへ分割して表現すればよい。また、制御装置10は、範囲表現であるフローを受け取った際、ノードが範囲表現を許容しない場合には、上記と同様に、一つの値を持つ複数のフローに分割して設定してもよい。あるいは、この場合、制御装置10は、いったんフローデータベース131にフローを記憶し、この範囲表現に適合する処理規則要求をノードより受信した際に、処理規則要求に含まれるパケットヘッダの値に合わせて一つずつ設定してもよい。
 以上のように、第三の実施形態では、フローのトラフィック識別条件の修正手段が提供されるため、識別子空間に適合しないフローであっても可能な限り設定可能とする運用が可能となる。
[第四の実施形態]
 続いて、第四の実施形態について述べる。
 第四の実施形態における制御装置の構成は、第一の実施形態もしくは第三の実施形態と同様の構成が可能である。第四の実施形態において、ネットワークの識別子空間は、ポートと対応付けて保持される。
 図22に、制御装置30に開示される識別子空間の例が示されている。なお、入力ポートのフィールドに記載されているp1~p14は、図2のシステム構成におけるポートのIDと一致している。
 第四の実施形態において、制御装置30が計算する識別子空間は、図23のようになり、入力ポートの値によって異なる識別子空間が指定されることになる。但し、制御装置20における識別子空間の計算は第一の実施形態と同様である。
 第四の実施形態において、フローが識別子空間に適合しているかどうかは、フロー中のトラフィック識別条件における入力ポートを含めて検証される。そのため、例えば、ポートp1から入力され、ポートp14へ出力されるようなトラフィックを制御するフローは、転送経路の途中で異なる識別子空間を通ることとなる。具体的には、ポートp1から入力され、ポートp7へ出力されるまで(すなわち、図2のシステム構成におけるネットワーク3-1内)の転送を制御するフローは、図23中の入力ポートフィールドがポートp1~p7となっている許可領域および禁止領域に従って識別条件の検証が行われる。一方、ポートp8から入力され、ポートp14に出力されるまで(すなわち、図2のネットワーク3-2内)の転送を制御するフローは、図23中の入力ポートフィールドがポートp8~p14となっている許可領域および禁止領域に従って検証される。なお、第四の実施形態では説明上、全てのポートのIDは、システム全体で一意であるという前提であるため入力ポートフィールドを識別子空間に含んでいる。一方、ポートIDが一意でない場合、ノードのIDと組み合わせて表現することで一意に識別することも可能である。
 第四の実施形態では、ポート単位で識別子空間を規定できるため、識別子空間を表現するための情報量が増加するが、トラフィック識別条件を転送経路途中で変更する余地が生じ、フロー制御の自由度が向上する。
 第一乃至第四の実施形態で説明した制御装置10、20、30及び40は、各制御装置に搭載されたコンピュータに、上記説明した各部の処理を実行させるためのコンピュータプログラムにより実現することもできる。
 図24は、本開示に係る制御装置を実現するコンピュータ400のハードウェア構成を例示するブロック図である。コンピュータ400は、CPU(Central Processing Unit)401と、ROM(Read Only Memory)402と、RAM(Random Access Memory)403と、記憶装置404と、ドライブ装置405と、通信インターフェース406と、入出力インターフェース407とを有する。本開示に係る制御装置は、図24に示される構成(又はその一部)によって実現され得る。
 CPU401は、RAM403を用いてプログラム408を実行する。プログラム408は、ROM402に記憶されていてもよい。また、プログラム408は、フラッシュメモリなどの記録媒体409に記録され、ドライブ装置405によって読み出されてもよいし、外部装置からネットワーク410を介して送信されてもよい。通信インターフェース406は、ネットワーク410を介して外部装置とデータをやり取りする。入出力インターフェース407は、周辺機器(入力装置、表示装置など)とデータをやり取りする。通信インターフェース406及び入出力インターフェース407は、データを取得又は出力する手段として機能することができる。
 なお、本開示に係る制御装置は、単一の回路(プロセッサ等)によって構成されてもよいし、複数の回路の組み合わせによって構成されてもよい。ここでいう回路(circuitry)は、専用又は汎用のいずれであってもよい。
 第一乃至四の実施形態で説明した構成及び動作は例示であって、制御装置等の構成及び動作を限定する趣旨ではない。
 例えば、制御装置20は、物理ノード1を含む少なくとも1つの通信ネットワーク(例えば、ネットワーク3-1)を管理し、管理する通信ネットワークに含まれる物理ノードの通信インターフェースのうち、管理外の通信ネットワーク(例えば、ネットワーク3-2)と接続する通信インターフェース(ノード1-3のポート7)において使用可能な識別子の集合を算出し、算出した識別子の集合を所定の通信インターフェースと関連付けて管理してもよい。即ち、制御装置20、30等は、エッジのポートにおいて使用可能な識別子空間のみを計算し、当該計算した識別子空間をエッジポートに関連付けて保持してもよい。
 制御装置20は、複数の通信ネットワークの各々に含まれる物理ノードの通信インターフェースにおいて使用可能な識別子の集合の積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な識別子の集合を算出し、算出した識別子の集合を、複数の通信ネットワークと関連付けて管理してもよい。即ち、制御装置20、30等は、通信ネットワークに含まれる全てのノードにおいて共通して使用可能な識別子空間を計算し、当該計算された識別子空間と仮想ネットワークと関連付けて保持するだけでなく、通信ネットワークと関連付けて管理してもよい。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
 通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードと、
 前記物理ノードを用いて複数の仮想ネットワークを構築する第一の制御装置(例えば、図2の制御装置20)と、
 前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置(例えば、図2の制御装置40-1、30)と、を含み、
 前記第一の制御装置は、
  所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
  割り当てた前記識別子の集合を前記第二の制御装置に通知する、ネットワークシステム。
[付記2]
 前記第一又は第二の制御装置は、
  前記物理ノードに含まれる通信インターフェースごとに、当該通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
  算出した前記識別子の集合を前記通信インターフェースに関連付けて管理する、付記1に記載のネットワークシステム。
[付記3]
 前記第一又は第二の制御装置は、
  前記物理ノードの通信インターフェースにおいて使用可能な前記識別子に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出し、
  算出した前記識別子の集合を、前記物理ノードを用いて構築された前記仮想ネットワークに関連付けて管理する、付記1又は2に記載のネットワークシステム。
[付記4]
 前記第一又は第二の制御装置は、
  前記物理ノードの通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、付記3に記載のネットワークシステム。
[付記5]
 前記第一又は第二の制御装置は、
  前記仮想ネットワークに対応する第一の通信ネットワークに含まれる物理ノードの通信インターフェースのうち、第二の通信ネットワークと接続する所定の通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
  算出した前記識別子の集合を前記所定の通信インターフェースと関連付けて管理する、付記2に記載のネットワークシステム。
[付記6]
 前記第一又は第二の制御装置は、
  前記第一の通信ネットワークに含まれる物理ノードの所定の通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、付記5に記載のネットワークシステム。
[付記7]
 前記第一の制御装置は、
  前記仮想ネットワークに収容すべき通信トラヒックを識別する前記識別条件を予め保持し、
  予め保持する前記識別条件に基づいて、前記仮想ネットワークにおいて使用可能な前記識別子の集合を管理する、付記1乃至6のいずれか一に記載のネットワークシステム。
[付記8]
 前記第一の制御装置は、
  前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する当該識別子の集合を、当該複数の仮想ネットワークの各々が当該識別子として使用できない使用禁止の識別子の集合として設定する、付記1乃至7のいずれか一に記載のネットワークシステム。
[付記9]
 前記第一の制御装置は、
  前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する集合に含まれる所定の識別子を、前記複数の仮想ネットワークのうち優先度の高い仮想ネットワークにおいて使用可能な識別子として設定する、付記1乃至8のいずれか一に記載のネットワークシステム。
[付記10]
 前記第一の制御装置は、
  前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、前記重複する集合に含まれる所定の識別子を、当該所定の識別子を含む前記処理規則が最初に割り当てられた仮想ネットワークにおいて使用可能な識別子として設定する、付記1乃至9のいずれか一に記載のネットワークシステム。
[付記11]
 前記第一の制御装置は、
  前記所定の識別子を、当該所定の識別子を含む前記処理規則が割り当てられた前記仮想ネットワーク以外の仮想ネットワークが使用できない識別子として設定する、付記9又は10に記載のネットワークシステム。
[付記12]
 前記第一の制御装置は、
  前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合を、前記複数の仮想ネットワークごとに独立するように算出する、付記1乃至11のいずれか一に記載のネットワークシステム。
[付記13]
 前記第一又は第二の制御装置は、
  前記処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に含まれる識別子が当該処理規則の識別条件として使用可能な識別子の集合に含まれないことに応じて、当該処理規則を設定できない旨を示す拒否通知を送信する、付記1乃至12のいずれか一に記載のネットワークシステム。
[付記14]
 前記第一又は第二の制御装置は、
  前記処理規則の設定の要求を受信した場合に、設定を要求された当該処理規則に含まれる識別子を、当該処理規則の識別条件として使用可能な識別子の集合に含まれる識別子に変更する、付記1乃至13のいずれか一に記載のネットワークシステム。
[付記15]
 通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置であって、
 前記物理ノードを用いて複数の仮想ネットワークを構築し、
 所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
 割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する、制御装置。
[付記16]
 通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードの制御方法であって、
 前記物理ノードを用いて複数の仮想ネットワークを構築するステップと、
 所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てるステップと、
 割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知するステップと、
 を含む制御方法。
[付記17]
 通信トラヒックを処理するための処理規則に基づいて、当該処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置に搭載されたコンピュータに実行させるプログラムであって、
 前記物理ノードを用いて複数の仮想ネットワークを構築する処理と、
 所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てる処理と、
 割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する処理と、
 を実行させるプログラム。
 なお、付記15~17の形態は、付記1の形態と同様に、付記2の形態~付記14の形態に展開することが可能である。
 なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本開示は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 この出願は、2015年3月12日に出願された日本出願特願2015-049870を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1、1-1~1-6 ノード
2 端末
3-1、3-2 ネットワーク
10-1、10-2、20、30、40-1、40-2 制御装置
11 ノード通信部
12 ノード制御メッセージ処理部
13 処理規則計算部
14、23、33、42 ネットワーク情報管理部
15、22、32 識別子空間計算部
16、24、34、43 制御装置間メッセージ処理部
17、25、35、44 制御装置通信部
21 ネットワークスライス部
31 ネットワーク結合部
41 フロー計算部
100 物理ノード
101 第一の制御装置
102 第二の制御装置
131、411 フローデータベース(フローDB)
132、213、313 識別条件修正部
141、231、331、421 ネットワークデータベース(ネットワークDB)
151、221、321 識別子空間データベース(識別子空間DB)
211 情報振り分け部
212 収容トラフィック条件データベース(収容トラフィック条件DB)
311 制御指示分解部
312 ネットワーク境界データベース(ネットワーク境界DB)

Claims (17)

  1.  通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードと、
     前記物理ノードを用いて複数の仮想ネットワークを構築する第一の制御装置と、
     前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置と、を含み、
     前記第一の制御装置は、
      所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
      割り当てた前記識別子の集合を前記第二の制御装置に通知する、ネットワークシステム。
  2.  前記第一の制御装置又は前記第二の制御装置は、
      前記物理ノードの通信インターフェースごとに、当該通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
      算出した前記識別子の集合を前記通信インターフェースに関連付けて管理する、請求項1に記載のネットワークシステム。
  3.  前記第一の制御装置又は前記第二の制御装置は、
      前記物理ノードの通信インターフェースにおいて使用可能な前記識別子に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出し、
      算出した前記識別子の集合を、前記物理ノードを用いて構築された前記仮想ネットワークに関連付けて管理する、請求項1又は2に記載のネットワークシステム。
  4.  前記第一の制御装置又は前記第二の制御装置は、
      前記物理ノードの通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、請求項3に記載のネットワークシステム。
  5.  前記第一の制御装置又は前記第二の制御装置は、
      前記仮想ネットワークに対応する第一の通信ネットワークに含まれる物理ノードの通信インターフェースのうち、第二の通信ネットワークと接続する所定の通信インターフェースにおいて使用可能な前記識別子の集合を算出し、
      算出した前記識別子の集合を前記所定の通信インターフェースと関連付けて管理する、請求項2に記載のネットワークシステム。
  6.  前記第一の制御装置又は前記第二の制御装置は、
      前記第一の通信ネットワークに含まれる物理ノードの所定の通信インターフェースにおいて使用可能な前記識別子の集合の和集合又は積集合に基づいて、当該物理ノードを用いて構築される仮想ネットワークにおいて使用可能な前記識別子の集合を算出する、請求項5に記載のネットワークシステム。
  7.  前記第一の制御装置は、
      前記仮想ネットワークに収容する通信トラヒックを識別する前記識別条件を予め保持し、
      予め保持する前記識別条件に基づいて、前記仮想ネットワークにおいて使用可能な前記識別子の集合を管理する、請求項1乃至6のいずれか一項に記載のネットワークシステム。
  8.  前記第一の制御装置は、
      前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、当該重複する識別子の集合を、当該複数の仮想ネットワークの各々が前記識別子として使用できない使用禁止の識別子の集合として設定する、請求項1乃至7のいずれか一項に記載のネットワークシステム。
  9.  前記第一の制御装置は、
      前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、当該重複する集合に含まれる所定の識別子を、前記複数の仮想ネットワークのうち優先度の高い仮想ネットワークにおいて使用可能な識別子として設定する、請求項1乃至8のいずれか一項に記載のネットワークシステム。
  10.  前記第一の制御装置は、
      前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合が互いに重複する場合に、当該重複する集合に含まれる所定の識別子を、当該所定の識別子を含む前記処理規則が最初に割り当てられた仮想ネットワークにおいて使用可能な識別子として設定する、請求項1乃至9のいずれか一項に記載のネットワークシステム。
  11.  前記第一の制御装置は、
      前記所定の識別子を、当該所定の識別子を含む前記処理規則が割り当てられた前記仮想ネットワーク以外の仮想ネットワークが使用できない識別子として設定する、請求項9又は10に記載のネットワークシステム。
  12.  前記第一の制御装置は、
      前記複数の仮想ネットワークの各々において使用可能な前記識別子の集合を、前記複数の仮想ネットワークごとに独立するように算出する、請求項1乃至11のいずれか一項に記載のネットワークシステム。
  13.  前記第一の制御装置又は前記第二の制御装置は、
      前記処理規則を設定する要求を受信した場合に、当該処理規則に含まれる識別子が当該処理規則の識別条件として使用可能な識別子の集合に含まれないことに応じて、当該処理規則を設定できない旨を示す拒否通知を送信する、請求項1乃至12のいずれか一項に記載のネットワークシステム。
  14.  前記第一の制御装置又は前記第二の制御装置は、
      前記処理規則を設定する要求を受信した場合に、当該処理規則に含まれる識別子を、当該処理規則の識別条件として使用可能な識別子の集合に含まれる識別子に変更する、請求項1乃至13のいずれか一項に記載のネットワークシステム。
  15.  通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを用いて複数の仮想ネットワークを構築し、
     所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
     割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する、制御装置。
  16.  通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを用いて複数の仮想ネットワークを構築し、
     所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当て、
     割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する、
     を含む制御方法。
  17.  通信トラヒックを処理するための処理規則に含まれる識別条件により識別される通信トラヒックを処理する物理ノードを制御する制御装置に搭載されたコンピュータに、
     前記物理ノードを用いて複数の仮想ネットワークを構築する処理と、
     所定の条件に基づいて、前記識別条件として使用可能な識別子の集合を前記複数の仮想ネットワークの各々に割り当てる処理と、
     割り当てた前記識別子の集合を、前記複数の仮想ネットワークの各々に割り当てられる第二の制御装置に通知する処理と、
     を実行させるためのプログラムを記録したプログラム記録媒体。
PCT/JP2016/001284 2015-03-12 2016-03-09 ネットワークシステム、制御装置、制御方法及びプログラム記録媒体 WO2016143338A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-049870 2015-03-12
JP2015049870A JP2018093245A (ja) 2015-03-12 2015-03-12 ネットワークシステム、制御装置、制御方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2016143338A1 true WO2016143338A1 (ja) 2016-09-15

Family

ID=56880245

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/001284 WO2016143338A1 (ja) 2015-03-12 2016-03-09 ネットワークシステム、制御装置、制御方法及びプログラム記録媒体

Country Status (2)

Country Link
JP (1) JP2018093245A (ja)
WO (1) WO2016143338A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014060803A (ja) * 2010-11-22 2014-04-03 Nec Corp 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム
WO2014126094A1 (ja) * 2013-02-13 2014-08-21 日本電気株式会社 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014060803A (ja) * 2010-11-22 2014-04-03 Nec Corp 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム
WO2014126094A1 (ja) * 2013-02-13 2014-08-21 日本電気株式会社 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム

Also Published As

Publication number Publication date
JP2018093245A (ja) 2018-06-14

Similar Documents

Publication Publication Date Title
US10671289B2 (en) Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11444868B2 (en) Systems and methods for software defined networking service function chaining
US10375121B2 (en) Micro-segmentation in virtualized computing environments
JP5943006B2 (ja) 通信システム、制御装置、通信方法およびプログラム
US8855116B2 (en) Virtual local area network state processing in a layer 2 ethernet switch
KR101572771B1 (ko) 가상 스위치를 통한 네트워크 트래픽 제어 시스템 및 방법
US10374972B2 (en) Virtual flow network in a cloud environment
US9246802B2 (en) Management of routing tables shared by logical switch partitions in a distributed network switch
US10284458B2 (en) Flow table modifying method, flow table modifying apparatus, and openflow network system
US20180191614A1 (en) Communication system, control apparatus, communication apparatus, communication control method, and program
US10122654B2 (en) Divided hierarchical network system based on software-defined networks
US20190394095A1 (en) Virtualized networking application and infrastructure
US9935834B1 (en) Automated configuration of virtual port channels
US20130275620A1 (en) Communication system, control apparatus, communication method, and program
JP2017169044A (ja) 設定装置、通信システム、通信装置の設定更新方法及びプログラム
US20170374028A1 (en) Software-defined networking controller
EP3399424B1 (en) Using unified api to program both servers and fabric for forwarding for fine-grained network optimizations
US10785103B2 (en) Method and system for managing control connections with a distributed control plane
WO2016143339A1 (ja) ネットワークシステム、制御装置、制御方法及びプログラム記録媒体
WO2016143338A1 (ja) ネットワークシステム、制御装置、制御方法及びプログラム記録媒体
US11676045B2 (en) Network node with reconfigurable rule-based routing
US20210112081A1 (en) Resolving the disparate impact of security exploits to resources within a resource group
WO2017110712A1 (ja) コントローラ、スイッチ、通信システム、フローエントリ設定方法、パケット処理方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16761311

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16761311

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP