This application is based upon and claims the benefit of the priority of Japanese patent application No. 2011-125954, filed on Jun. 6, 2011, the disclosure of which is incorporated herein in its entirety by reference thereto. This invention relates to a communication system, a control device, and a method and computer program for setting a processing rule, and in particular to a communication system, a control device, and a method and computer program for setting a processing rule, in which the control device centrally controls forwarding nodes disposed in a network.
Recently, technology referred to as OpenFlow has been proposed (refer to Patent Literature 1, and Non-Patent Literatures 1 and 2). In OpenFlow, communication is treated as end-to-end flow, and path control, recovery from failure, load balancing and optimization are performed in flow units. An OpenFlow switch as specified in Non-Patent Literature 2 is provided with a secure channel for communication with an OpenFlow controller positioned as a control device, and operates according to a flow table in which appropriate addition or rewriting is instructed by the OpenFlow controller. In the flow table are definitions of sets of matching rules (Header fields) for collation with packet headers, flow statistical information (Counters), and actions (Actions) defining processing content, for each flow (refer to FIG. 13).
For example, when an OpenFlow switch receives a packet, an entry is searched for that has a matching rule (refer to header fields in FIG. 13) that matches header information of the received packet, from the flow table. As a result of the search, in a case where an entry matching the received packet is found, the OpenFlow switch updates the flow statistical information (Counters) and also implements processing content (packet transmission from a specified port, flooding, dropping, and the like) described in an Actions field of the entry in question, for the received packet. On the other hand, as a result of the search, in a case where an entry matching the received packet is not found, the OpenFlow switch forwards the received packet to the OpenFlow controller via a secure channel, requests determination of a path of the packet based on source and destination of the received packet, receives a flow entry realizing this, and updates the flow table. In this way, the OpenFlow switch uses the entry stored in the flow table as a processing rule to perform packet forwarding.
The entire disclosures of the abovementioned Patent Literature 1 and Non-Patent Literatures 1 and 2 are incorporated herein by reference thereto. The following analysis is given according to the present disclosure. An OpenFlow controller as described in Patent Literature 1 refers to a policy file when a new flow is generated, to perform a permission check, and thereafter performs access control by calculating a path (Patent Literature 1, [0052]).
In a case of a configuration of Patent Literature 1, assuming that several thousand user terminals, servers and databases are connected in a network of relatively large scale configured by several dozen to several hundred forwarding nodes, such as OpenFlow switches and the like, a large quantity of flow entries (processing rules) realizing communication between these user terminals and various types of resources is necessary. At this time, there is a possibility that the number of flow entries (processing rules) that are set in some of the forwarding nodes will exceed the quantity allowed in the relevant forwarding nodes. Furthermore, in the case of a configuration of Patent Literature 1, there is a possibility that processing load of each of the forwarding nodes will increase, and a problem will occur in operation of the network.
That is, in the configuration of Patent Literature 1 there is a problem in that management of setting destinations of the flow entries (processing rules) is not realized. Furthermore, much time and troubles will be involved when a human network manager sets this large quantity of flow entries (processing rules) in the forwarding nodes.
It is an object of the present disclosure to provide a communication system, method and computer program for setting a flow entry (processing rule) in an appropriate forwarding node, such that processing rules are not excessively concentrated in the respective forwarding nodes.
According to a first aspect of the present disclosure there is provided a communication system, comprising: a plurality of forwarding nodes that process a packet(s) transmitted from a user terminal, in accordance with a processing rule(s) that has been set; and at least one control device which, when a processing rule that can be set in any among the plurality of forwarding nodes is set, selects a forwarding node in which the processing rule is to be set, from among the plurality of forwarding nodes, such that processing rules are not concentrated in a specific forwarding node, based on the number of processing rules that are set in each of the forwarding nodes.
According to a second aspect of the present disclosure there is provided a control device, adapted to be connected to a plurality of forwarding nodes that process a packet(s) transmitted from a user terminal, in accordance with a processing rule(s) that has been set. When a processing rule(s) that can be set in any among the plurality of forwarding nodes is set, a selection is made of a forwarding node(s) in which the processing rule is to be set, from among the plurality of forwarding nodes, such that processing rules are not concentrated in a specific forwarding node(s), based on the number of processing rules that are set in the respective forwarding nodes.
According to a third aspect of the present disclosure there is provided a processing rule setting method, comprising: a step wherein a control device, adapted to be connected to a plurality of forwarding nodes that process a packet(s) transmitted from a user terminal, in accordance with a processing rule(s) that has been set, confirms the number of processing rules that are set in the respective forwarding nodes, when a processing rule(s) that can be set in any among the plurality of forwarding nodes is set; and a step wherein the control device selects a forwarding node in which the processing rule(s) is to be set, from among the plurality of forwarding nodes, such that processing rules are not concentrated in a specific forwarding node(s), based on the number of processing rules that are set in the respective forwarding nodes, and sets the processing rule in the forwarding node(s). The present method is linked with a specific apparatus, known as a control device that controls the forwarding nodes.
According to a fourth aspect of the present disclosure there is provided a program for executing in a computer consisting a control device, adapted to be connected to a plurality of forwarding nodes that process a packet(s) transmitted from a user terminal, in accordance with a processing rule(s) that has been set, the program executing: a process of confirming the number of processing rules that are set in the respective forwarding nodes, when a processing rule(s) that can be set in any among the plurality of forwarding nodes is set; and a process of selecting a forwarding node in which the processing rule(s) is to be set, from among the plurality of forwarding nodes, such that processing rules are not concentrated in a specific forwarding node(s), based on the number of processing rules that are set in the respective forwarding nodes, and setting the processing rule in the forwarding node(s). It is to be noted that that this program can be recorded on a computer-readable storage medium which may be non-transient. That is, the present disclosure can be embodied as a computer program product.
According to the present disclosure, it is possible to arrange such that processing rules are not concentrated in a specific forwarding node or nodes, among a plurality of forwarding nodes.
First, a description is given of an outline of an exemplary embodiment of the present disclosure, making reference to the drawings. It is to be noted that drawing reference symbols included in this outline are added for convenience to respective elements as an example in order to aid understanding and are not intended to limit the invention to modes of the drawings shown. The present disclosure, as shown in
More specifically, the control device 400 is provided with a path control unit 410 that, with reception of a communication policy from the policy management device 300 as a trigger, creates a processing rule implementing whether or not access is allowed as far as the device (the network resource 500) that is an access destination from the user terminal 100, and a forwarding node selecting unit 420 that, with regard to a processing rule that can be set in a plurality of forwarding nodes of the forwarding node group 200, among processing rules created by the path control unit 410, selects a forwarding node to be set such that processing rules are not concentrated in a specific forwarding node based on the number of processing rules that are set in each forwarding node, and sets the processing rule in the forwarding node in question.
For example, in a case where access to the network resource 500 from the user terminal 100 is denied based on a communication policy notified from the policy management device 300, the control device 400 sets a processing rule to drop packets destined for the network resource 500 from the user terminal 100, in a forwarding node with fewer processing rules set, among forwarding node A and forwarding node D.
In the same way, for example, in a case where access to the network resource 500 from the user terminal 100 is allowed based on a communication policy notified from the policy management device 300, the control device 400 sets a packet forwarding path via a forwarding node with fewer processing rules set, among forwarding node B and forwarding node C, and sets a processing rule to forward a packet destined for the network resource 500 from the user terminal 100, in a forwarding node in the path in question.
From the above, it is possible to set a processing rule such that setting destinations of the processing rules are not biased to a node in one place.
It is to be noted that in the example of
Furthermore, a period of validity may be provided in processing rule, and after the period of validity has passed from being set in forwarding nodes 201 to 204, or from reception of a final packet conforming with a matching rule, the processing rule in question may be deleted.
Next, a detailed description is given concerning a first exemplary embodiment of the present disclosure, making reference to the drawings.
The forwarding nodes 201 to 204 are switching devices that process a received packet in accordance with a processing rule that associates a matching rule matching a received packet and processing content to be applied to a packet conforming with the matching rule. OpenFlow switches of Non-Patent Literature 2, which operate using a flow entry shown in
Furthermore, network resources 500A and 500B are connected to the forwarding node 204, and a user terminal 100 can communicate with the network resources 500A and 500B via the forwarding nodes 201 to 204. In the following exemplary embodiment, the network resource 500A and the network resource 500B each belong to different resource groups, and resource_group—0001 and resource_group—0002 are assigned as respective resource group IDs.
The authentication device 330 is an authentication server or the like, that performs a user authentication procedure with the user terminal 100, using a password, biometric authentication information, or the like. The authentication device 330 transmits authentication information indicating a result of the user authentication procedure with the user terminal 100 to the policy management device 300.
It is to be noted that the authentication information is not limited to the example in
The policy management device 300 is connected to a communication policy storage unit 310 and a resource information storage unit 320, and is a device for determining a communication policy corresponding to authentication information received from the authentication device 330 and for transmitting to the control device 400.
The control device 400 uses the communication policy as described above transmitted from the policy management device 300 to create a processing rule that implements an access range corresponding to the access rights assigned to a user, and sets a processing rule in a forwarding node.
The control message processing unit 12 analyzes a control message received from a forwarding node and delivers control message information to a relevant processing means inside the control device 400.
The processing rule management unit 13 manages what type of processing rule is set in which forwarding node. Specifically, a processing rule created by the path-action calculation unit 16 is registered in the processing rule storage unit 14 and set in a forwarding node, and registration information of the processing rule storage unit 14 is updated in response to a case where a change has occurred in a processing rule set in the forwarding node, by a processing rule deletion notification or the like from a forwarding node.
The forwarding node management unit 15 manages capability (for example, the number and type of ports, the type of actions supported, and the like) of forwarding nodes controlled by the control device 400. Furthermore, the forwarding node management unit 15 holds a threshold for selection of a setting destination of a processing rule that is set for each respective forwarding node.
The path-action calculation unit 16 operates as the abovementioned path control unit 410, and on receiving a communication policy from the communication policy management unit 19, first, refers to the network topology held by the topology management unit 17, in accordance with the communication policy in question, creates a path to a network resource in a range accessible by the user in question, and creates a processing rule implementing packet forwarding along the path. The path-action calculation unit 16 sets the created processing rule in a forwarding node in the path, via the processing rule management unit 13.
Specifically, based on location information of a user terminal managed by the terminal location management unit 18 and the network topology information constructed by the topology management unit 17, the path-action calculation unit 16 calculates a forwarding path for a packet. Next, the path-action calculation unit 16 obtains port information and the like of a forwarding node in the forwarding path from the forwarding node management unit 15, and requests an action to be executed in the forwarding node in the path for realizing the calculated forwarding path, and a matching rule for identifying flow in which the action is to be applied. It is to be noted that the matching rule can be created using a source IP address, a destination IP address, a condition (option) or the like of the communication policy in
Moreover, the path-action calculation unit 16 of the present exemplary embodiment operates as the forwarding node selection unit 420 described above, and, for a processing rule that does not need to be set in a specific forwarding node among the created processing rules, namely, for a processing rule that can be set in a plurality of forwarding nodes, a setting destination of the processing rule in question is selected. Specifically, the path-action calculation unit 16 selects a forwarding node where a processing rule is to be set, such that processing rules are not concentrated in a specific forwarding node, based on distance from the user terminal and the number of processing rule set in each forwarding node, and sets the processing rule via the processing rule management unit 13, in the selected forwarding node. A specific example thereof is described later, making reference to
The topology management unit 17 constructs network topology information based on connection relationships of the forwarding nodes 201 to 204 collected via the node communication unit 11.
The terminal location management unit 18 manages information for identifying the location of a user terminal connected to a communication system. In the present exemplary embodiment, a description is given using an IP address as information for distinguishing a user terminal, and a forwarding node identifier of a forwarding node to which the user terminal is connected and information of a port thereof, as information for identifying the location of the user terminal. Clearly, instead of this information, information provided by the authentication device 330, for example, may be used to identify a terminal and its location.
On receiving the communication policy information from the policy management device 300, the communication policy management unit 19 stores the information in the communication policy storage unit 20, and transmits to the path-action calculation unit 16.
The control device 400 as described above can also be realized by adding a creation function for a processing rule (flow entry) and a selection function for a setting destination (forwarding node) of a processing rule, with reception of the abovementioned communication policy as a trigger, based on an OpenFlow controller of Non-Patent Literatures 1 and 2.
It is to be noted that respective parts (processing means) of the control device 400 shown in
Next, a detailed description is given concerning operations of the present exemplary embodiment, making reference to the drawings.
The policy management device 300 refers to the communication policy storage unit 310 and the resource information storage unit 320 based on received authentication information, to determine a communication policy (S104 in
In addition, with regard to a processing rule that can be set in a plurality of forwarding nodes, among the generated processing rules, the control device 400 selects a forwarding node as a setting destination (S107 in
Thereafter, when the user terminal 100 transmits a packet to the forwarding node where the processing rule is set, respective forwarding nodes make a judgment regarding packet forwarding in accordance with the processing rule set by the control device 400. In a case where access is allowed to a network resource, the forwarding node forwards the packet to the network resource in question. On the other hand, in a case where access to the network resource is denied in accordance with the set processing rule, the forwarding node drops the packet in question (not shown in
Here, a detailed description is given concerning processing to select a forwarding node as a setting destination of a processing rule in the abovementioned step S107, making reference to the drawings. In addition, in the following, a description is given citing an example of selecting a setting destination of a processing rule that drops a packet from the user terminal 100, from among forwarding nodes A to E that are connected as shown in
Next, a description is given of flow in which the path-action calculation unit 16 that operates as the forwarding node selection unit 420 selects a setting destination of a processing rule, from among the forwarding nodes A to E shown in
Referring to
Next, the path-action calculation unit 16 confirms whether or not the number of processing rules currently set in a selected forwarding node is greater than or equal to a fixed threshold for the forwarding node in question (S002 in
On the other hand, in a case where the number of processing rules currently set in the selected forwarding node is greater than or equal to the threshold (YES in S002 in
In a case where there is one forwarding node selected in the search, the path-action calculation unit 16 returns to step S002 and compares the number of processing rules currently set in the forwarding nodes in question, and the threshold of the forwarding nodes (NO in step S004).
On the other hand, in a case where there are two or more forwarding nodes selected in the search (YES in step S004), the path-action calculation unit 16 selects the forwarding node with fewer processing rules currently set (step S005), returns to step S002, and compares the number of processing rules currently set in the forwarding nodes in question and the threshold of the forwarding nodes (to step S002).
In the example of
However, since the number of processing rules is greater than or equal to the threshold in
As a result of the comparison, since the number of processing rules set in forwarding node C is less than the threshold in
As described above, each time a communication policy of each user is notified, the path-action calculation unit 16 creates a processing rule implementing the communication policy in question, and selects among these, a setting destination of a processing rule that drops a packet from the user in question. In this way, for example, from among the plural forwarding nodes of
In this way, according to the present exemplary embodiment it is possible to prevent processing rules from being set in a concentrated fashion in a specific forwarding node. Thus, it is possible to prevent a problem such as where processing load in a specific forwarding node becomes too large.
Furthermore, a description has been given in which, in step S005 of the flowchart of
Next, a description is given concerning a second exemplary embodiment of the present disclosure in which a setting destination of a processing rule is selected giving consideration not only to the number of processing rules that are set in each forwarding node, but also to a load thereon. Since the second exemplary embodiment of the invention as below can be realized by a configuration approximately the same as the first exemplary embodiment described above, the description below is centered on points of difference therefrom.
A forwarding node management unit 15 of a control device of the present exemplary embodiment holds load states reported from each forwarding node, and a path-action calculation unit 16 refers to the load state of each of these forwarding nodes to select a setting destination of a processing rule. It is to be noted that with regard to the load state of each forwarding node, a load state measuring unit may be provided and a report made at prescribed time intervals, or a control device 400 may provide an estimate from the capability of each forwarding node or traffic volume flowing in each forwarding node.
For example, a case is considered in which the number of processing rules currently set in forwarding nodes A to E, and the load state (processing load ratio) are obtained, as in
By having this situation, it is possible to select a setting destination of the processing rule, giving consideration not only to simply the number of processing rules that are set, but also the load state of each of the forwarding nodes.
Descriptions have been given above of respective exemplary embodiments of the present disclosure, but the present disclosure is not limited to the abovementioned exemplary embodiments, and further modifications, substitutions, and adjustments may be added within a scope that does not depart from a fundamental technical concept of the present disclosure. For example, in the abovementioned exemplary embodiments a description was given in which the control device 400, the authentication device 330, the policy management device 300, the communication policy storage unit 310, and the resource information storage unit 320 are each provided independently, but it is also possible to use a configuration in which these are integrated as appropriate.
In addition, in the abovementioned exemplary embodiments a description was given in which access control is performed by assigning a role ID to a user as shown in
Furthermore, in the abovementioned exemplary embodiments a description was given in which the user terminal 100 performs an authentication procedure with the authentication device 330 via the forwarding node 200, but it is also possible to use a configuration in which the user terminal 100 communicates directly with the authentication device 330 to implement an authentication procedure. In this case, creation and setting of a processing rule may be performed, with a request for setting the processing rule from the forwarding node 201 or the like, which has received a packet from the user terminal 100, as a trigger. On this occasion, a configuration is also possible in which the control device 400 requests a communication policy for the user in question, with respect to the policy management device 300.
In each of the abovementioned exemplary embodiments a description was given in which a threshold for selection of a setting destination of a processing rule is held in the forwarding node management unit 15, but a configuration is also possible in which a threshold for selection of a setting destination of a processing rule is stored in another device (for example, a setting information storage device or the like), and the control device 400 receives the a threshold for selection of a setting destination of the processing rule from the setting information storage device and selects a forwarding destination node based on this.
Furthermore, in each of the abovementioned exemplary embodiments a description was given in which a threshold is set for each forwarding node, but in a situation where there is little variation in capability of the respective forwarding nodes, a common threshold may be applied to all the forwarding nodes.
In each of the abovementioned exemplary embodiments, a description was given in which, first, the control device 400 sets a processing rule giving priority to a forwarding node nearest to the user terminal 100, but it is also possible to use a setting destination selection rule for a setting destination of a processing rule giving priority to a forwarding node with the fewest processing rules set, or a setting destination selection rule for a setting destination of a processing rule giving priority to a forwarding node with the least load. In the example of
In the abovementioned exemplary embodiments a description was given in which a processing rule for dropping a packet to a certain network resource from a certain user terminal 100 is set in the selected forwarding node, but a similar processing rule may also be set in a forwarding node to which there is a possibility of another user terminal 100 being connected.
The control device 400 may use a setting destination selection rule so as to select a setting destination of a processing rule such that the number of processing rules set in each forwarding node is equalized. In the example of
15,000+6,000+7,000+9,000+1,000/5≈7,600
As a setting destination of a processing rule, a selection may be made of the forwarding node B or C, or the forwarding node E, in which the number of processing rules that are set is less than the average.
Furthermore, the control device 400 may transfer some processing rules registered in the forwarding nodes A and D, in which the number of processing rules currently set is larger than the average, to the forwarding nodes B, C, and E. In this way, it is possible to equalize the number of processing rules held in the respective forwarding nodes.
For example, as a setting destination of the processing rule, the control device 400 may use a setting destination selection rule that makes a selection giving priority to a forwarding node in the shortest path between the user terminal and a device that is an access destination. In the example of
The control device 400 may set a processing rule (a processing rule for dropping a packet to the network resource from the user terminal) that denies access to both the forwarding node A and the forwarding node B in the abovementioned shortest path. In this way, by setting a processing rule to deny access to a plurality of forwarding nodes going between the user terminal and the network resource, it is possible to realize more strict access control.
Furthermore, for example, the control device 400 may use a setting destination selection rule to set a processing rule in a forwarding node that is nearest to any forwarding node in the shortest path between the user terminal and the network resource, and that has the least number of processing rules set. In the example of
In addition, the user can give an instruction to the control device 400 to freely select, or to combine, various types of setting destination selection rules for processing rules, as described above.
It is to be noted that that each disclosure of the abovementioned Patent Literature and non-Patent Literatures is incorporated herein by reference thereto. Modifications and adjustments of exemplary embodiments are possible within the bounds of the entire disclosure (including the scope of the claims) of the present disclosure, based on fundamental technological concepts thereof. Furthermore, a wide variety of combinations and selections of various disclosed elements is possible within the scope of the claims of the present disclosure. That is, the present disclosure clearly includes every type of transformation and modification that a person skilled in the art can realize according to the entire disclosure including the scope of the claims and to technological concepts thereof.
Number | Date | Country | Kind |
---|---|---|---|
2011-125954 | Jun 2011 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2012/003632 | 6/1/2012 | WO | 00 | 12/5/2013 |