The present invention is based upon and claims the benefit of the priority of Japanese patent application No. 2011-034407, filed on Feb. 21, 2011, the disclosure of which is incorporated herein in its entirety by reference thereto.
The present invention relates to a communication system, a data base, a control apparatus, a communication method, and a program. In particular, it relates to a communication system, a data base, a control apparatus, a communication method, and a program for realizing communication in which a forwarding node arranged in a network forwards a packet.
In recent years, a technique referred to as OpenFlow has been proposed (see Patent Literature 1 and Non Patent Literatures 1 and 2). OpenFlow recognizes communications as end-to-end flows and performs path control, failure recovery, load balancing, and optimization on a per-flow basis. An OpenFlow switch according to Non Patent Literature 2 has a secure channel for communication with an OpenFlow controller that serves as a control apparatus. In addition, the OpenFlow switch operates according to a flow table suitably added or rewritten by the OpenFlow controller. In a flow table, a set of the following three is defined for each flow: matching rules (Header Fields) against which a packet header is matched; flow statistical information (Counters); and Actions that define processing contents (see
For example, if the OpenFlow switch receives a packet, the OpenFlow switch searches the flow table for an entry having a matching rule (see Header Fields in
The following analysis has been given by the present invention.
When a new flow is generated, the OpenFlow controller in Patent Literature 1 executes access control by referring to a policy file, executing a permission check, and calculating a path (see [0052] in Patent Literature 1). Thus, with the configuration in Patent Literature 1, access control is executed only on a terminal basis, not on a user basis, which is counted as a problem. For example, when a plurality of users share a single terminal, if one user is permitted to access a certain network resource, the other users subsequently using this terminal can access the network resource, causing inconvenience.
It is possible to execute access control on a user basis, by providing an authentication result obtained by an existing user authentication apparatus or the like to the OpenFlow controller. However, since the OpenFlow controller does not grasp what access authority is given to a user who has succeeded in the authentication, detailed access control based on a policy or the like defined per user cannot be executed, which is counted as a problem. In addition, if the OpenFlow controller is provided with access authority information for each user, problems with the resource and load and a problem with management of access authorities of many users will be caused.
In addition, if each of a plurality of OpenFlow controllers controls a different region or traffic in a centralized manner, it is necessary to solve various problems, including how access authority information needs to be distributed to these OpenFlow controllers and how access authority information needs to be synchronized among these OpenFlow controllers.
It is an object of the present invention is to provide: a communication system which includes a control apparatus as in the above OpenFlow that controls forwarding nodes in a centralized manner and which is capable of executing detailed access control based on an access authority given to each user with a simple configuration; a control apparatus; a policy management apparatus; a communication method; and a program.
According to a first aspect, there is provided a communication system, comprising: a plurality of forwarding nodes each of which processes an incoming packet in accordance with a processing rule (packet handling operation) in which a matching rule that determines a flow and a processing content that is applied to a packet matching the matching rule are associated with each other; a data base which stores a first table for determining a role of a user of a source node from information about the source node and a second table for defining an accessible or inaccessible resource for each role and which transmits a response about a resource accessible or inaccessible by the user of the source node in response to a request from a control apparatus; and a control apparatus which uses, when receiving a request for setting the processing rule (packet handling operation) from any one of the forwarding nodes, information about the source node included in the request for setting the processing rule (packet handling operation), querying the data base for a resource accessible or inaccessible by the user of the source node, creating the processing rule (packet handling operation) based on the response from the data base, and setting the processing rule (packet handling operation) in the forwarding node.
According to a second aspect of the present invention, there is provided a data base, connected to a control apparatus setting a processing rule (packet handling operation) in a plurality of forwarding nodes each of which processes an incoming packet in accordance with the processing rule (packet handling operation) in which a matching rule that determines a flow and a processing content that is applied to a packet matching the matching rule are associated with each other; storing a first table for determining a role of a user of a source node from information about the source node and a second table for defining an accessible or inaccessible resource for each role; and transmitting a response about a resource accessible or inaccessible by the user of the source node in response to a request from the control apparatus.
According to a third aspect, there is provided a control apparatus, connected to a plurality of forwarding nodes each of which processes an incoming packet in accordance with a processing rule (packet handling operation) in which a matching rule that determines a flow and a processing content that is applied to a packet matching the matching rule are associated with each other; connected to a data base which stores a first table for determining a role of a user of a source node from information about the source node and a second table for defining an accessible or inaccessible resource for each role and which transmits a response about a resource accessible or inaccessible by the user of the source node in response to a request from a control apparatus; and using, when receiving a request for setting the processing rule (packet handling operation) from any one of the forwarding nodes, information about the source node included in the request for setting the processing rule (packet handling operation), querying the data base for a resource accessible or inaccessible by the user of the source node, creating the processing rule (packet handling operation) based on the response from the data base, and setting the processing rule (packet handling operation) in the forwarding node.
According to a fourth aspect, there is provided a communication method for a communication system comprising: a plurality of forwarding nodes each of which processes an incoming packet in accordance with a processing rule (packet handling operation) in which a matching rule that determines a flow and a processing content that is applied to a packet matching the matching rule are associated with each other; a data base which stores a first table for determining a role of a user of a source node from information about the source node and a second table for defining an accessible or inaccessible resource for each role and which transmits a response about a resource accessible or inaccessible by the user of the source node in response to a request from a control apparatus; and a control apparatus which sets the processing rule (packet handling operation) in the forwarding nodes, the communication method comprising: causing the control apparatus to query the data base, when receiving a request for setting the processing rule (packet handling operation) from any one of the forwarding nodes, for a resource accessible or inaccessible by the user of the source node; and causing the control apparatus to create the processing rule (packet handling operation) based on the response from the data base and setting the processing rule (packet handling operation) in the forwarding node. This method is associated with a certain machine, that is, with the control apparatus controlling a plurality of forwarding nodes processing an incoming packet.
According to a fifth aspect, there is provided a program causing a computer included in a control apparatus, which is connected to a plurality of forwarding nodes each of which processes an incoming packet in accordance with a processing rule (packet handling operation) in which a matching rule that determines a flow and a processing content that is applied to a packet matching the matching rule are associated with each other and to a data base which stores a first table for determining a role of a user of a source node from information about the source node and a second table for defining an accessible or inaccessible resource for each role and which transmits a response about a resource accessible or inaccessible by the user of the source node in response to a request from the control apparatus and which sets the processing rule (packet handling operation) in the forwarding nodes, to execute processes of: causing the control apparatus to query the data base, when receiving a request for setting the processing rule (packet handling operation) from any one of the forwarding nodes, for a resource accessible or inaccessible by the user of the source node; and causing the control apparatus to create the processing rule (packet handling operation) based on the response from the data base and setting the processing rule (packet handling operation) in the forwarding node. This program can be recorded in a computer-readable storage medium. Namely, the present invention can be embodied as a computer program product.
The meritorious effects of the present invention are summarized as follows. According to the present invention, not only path control based on a flow, but also detailed access control based on a role given to each user can be executed.
First, the present disclosure will be summarized with reference to the drawings. As illustrated in
An authentication apparatus 310 executes a user authentication operation on users. The first table 331 of the data base 330A stores an entry group used for determining a role of a user based on information about the source node corresponding to the user who has succeeded in the authentication procedure. It is desirable that an entry in the first table 331 be added after a user logs in or a predetermined authentication procedure is executed and be deleted after a user logs out or a certain period of time elapses.
The second table 332 of the data base 330A stores an entry group (access control policies) in which an accessible or inaccessible resource is defined for each role by a policy management terminal 340 that receives input of access control policy information from a network administrator or the like.
When the forwarding node 200A receives a packet from a user terminal 100, the forwarding node 200A searches for a processing rule having a matching rule matching the packet. If the forwarding node 200A does not store a processing rule having a matching rule matching the incoming packet, the forwarding node 200A transmits a message as a processing rule setting request to the control apparatus 300 (see (1) processing rule setting request in
When the control apparatus 300 receives a processing rule setting request from the forwarding node 200A or 200B managed by the control apparatus 300, the control apparatus 300 extracts information about the source node, such as an IP address or a MAC (Media Access Control) address included in the processing rule setting request. The control apparatus 300 queries the data base 330A for a list of resources that are accessible or inaccessible from the source node (see query (2) in
After receiving the query, the data base 330A first refers to the first table 331 and determines the role of the user of the source node to which the query from the control apparatus 300 is directed. Next, the data base 330A refers to the second table 332, extracts a list of resources that are accessible or inaccessible by the determined role, and transmits the list to the control apparatus 300.
After receiving the list, the control apparatus 300 checks the destination included in the processing rule setting request against the list, to determine whether the control apparatus 300 can create a path to the destination included in the processing rule setting request. For example, if the processing rule setting request requests creation of a path from the user of the source node to a destination within the access authority of the user (for example, a network resource 600) and setting of a processing rule realizing the path, the control apparatus 300 creates a path between the user terminal 100 of the user corresponding to the source node and the network resource 600 and sets processing rules in forwarding nodes on the path (see (3A) and (3B) setting processing rules in
In this way, when receiving a processing rule setting request, the control apparatus 300 can determine the role of the user corresponding to the source node and determine whether access to the network resource 600 is allowed in accordance with an access control policy separately set by the policy management terminal 340. A validity period may be set in a processing rule. In this case, if the validity period elapses after the processing rule is set in the forwarding node 200A or 200B or after the forwarding node 200A or 200B receives a packet matching the matching rule last, the forwarding node 200A or 200B deletes the processing rule.
If the list transmitted from the data base 330A indicates a resource inaccessible from the user, the control apparatus 300 may set a processing rule for discarding packets from the user in the forwarding node 200A or 200B. In this way, even when receiving subsequent packets from the user, since the forwarding node 200A or 200B does not transmit a processing rule setting request, load on the control apparatus 300 can be reduced.
Next, a first exemplary embodiment of the present disclosure will be described in detail with reference to the drawings.
These forwarding nodes 200A to 200C are switching apparatuses each processing an incoming packet in accordance with a processing rule in which a matching rule that determines a flow and a processing content that is applied to the matching rule are associated with each other. An OpenFlow switch in Non Patent Literature 2 that operates in accordance with a flow entry illustrated in
In addition, the business servers 600A and the management tools 600B are connected to the forwarding node 200C. The business servers 600A provide users of the Tokyo headquarters and the Osaka branch with services used for daily duties. The management tools 600B provide management tools for setting these business servers or updating each table in the ACL data base. In the following description, the business servers 600A are provided with resource_group—0001 as a resource group ID, and the management tools 600B are provided with resource_group—0002 as a resource group ID.
The authentication apparatus 310 is an authentication server or the like executing a user authentication procedure on the user terminals 100A and 100B by using passwords, biometric authentication information, or the like. The authentication apparatus 310 transmits authentication information indicating results of the user authentication procedure executed on the user terminals 100A and 100B to the ACL data base 330. Such authentication apparatus 310 can be realized by using an apparatus referred to as an LDAP (Lightweight Directory Access Protocol) server or a RADIUS authentication server.
The access control policy management unit 323 receives data from the policy management terminal 340 operated by a network administrator or the like and registers the data in the access control policy storage unit 321 or the resource information storage unit 322.
In addition, if the content of the access control policy storage unit 321 or the resource information storage unit 322 is updated, the access control policy management unit 323 extracts entries that need to be reflected based on the updated content from the access control policy information table 332 (see
Likewise, for example, if a new resource is added to resource group ID “resource_group—0002,” first, the access control policy management unit 323 refers to the access control policy storage unit 321 to determine roles permitted or prohibited to access resource group ID “resource_group—0002.” Next, the access control policy management unit 323 adds an entry in which the new resource is defined in the access control policy information table 332 in
When the ACL data base 330 receives a request from the control apparatus 300 for a list of resources accessible or inaccessible by an arbitrary source node, the ACL data base 330 determines whether a user corresponding to the source node information is registered in the authentication information table 331 (more correctly, whether the user has been authenticated). If the source node is registered in the authentication information table 331, by using the role ID associated with the source node as a key, the ACL data base 330 searches the access control policy information table 332 for resources set to be accessible or inaccessible by the user of the source node and a list of the corresponding conditions. The ACL data base 330 transmits the resources and the list to the control apparatus 300.
When the control apparatus 300 receives processing rule setting requests from the forwarding nodes 200A to 200C, the control apparatus 300 queries the ACL data base 330 for resources accessible or inaccessible by the user corresponding to the source node, creates processing rules based on the query results, and sets the processing rules in the forwarding nodes 200A to 200C.
The control message processing unit 12 analyzes control messages supplied from the forwarding nodes 200A to 200C and transmits control message information to relevant processing means in the control apparatus 300.
The processing rule management unit 13 manages what processing rules are set in which forwarding nodes. More specifically, the processing rule management unit 13 registers processing rules created by the processing rule creation unit 16 in the processing rule storage unit 14 and sets such processing rules in forwarding nodes. In addition, when a forwarding node notifies the processing rule management unit 13 of deletion of a processing rule, for example, when the processing rules set in the forwarding node is changed, the processing rule management unit 13 updates the information registered in the processing rule storage unit 14.
The forwarding node management unit 15 manages capabilities of each forwarding node controlled by the control apparatus 300 (for example, the number of ports, the types of the ports, the types of the actions supported, etc.).
Via the ACL information query unit 19, the processing rule creation unit 16 queries the ACL data base 330 for entries in the access control policy information table 332 that correspond to the user role corresponding to the source node that has transmitted a predetermined rule setting request. Based on the transmitted content, the processing rule creation unit 16 determines whether to set a processing rule. As a result of the determination, if the processing rule creation unit 16 determines that a processing rule can be set, based on the content, the processing rule creation unit 16 creates a path and a processing rule realizing the path.
More specifically, based on the communication terminal position information managed by the terminal position management unit 18 and the network topology information established by the topology management unit 17, the processing rule creation unit 16 calculates a packet forwarding path from the user terminal to a resource accessible by the user terminal. Next, the processing rule creation unit 16 acquires port information or the like of the forwarding nodes on the forwarding path from the forwarding node management unit 15 and determines actions executed by the forwarding nodes on the calculated forwarding path and matching rules determining flows to which the actions are applied. A matching rule can be created by using a source node IP address, a destination IP address, a condition (option), etc. included in a processing rule setting request.
For example, when a user having role ID “role—0001” in
If a user does not have authority for accessing a resource, based on user terminal position information managed by the terminal position management unit 18, the processing rule creation unit 16 creates a processing rule defining an action for discarding packets addressed to the resource for which the user terminal does not have an access authority and a matching rule for a forwarding node to which the user terminal is connected. For example, in the case of the user having role ID “role—0001,” the access authority to IP address “192.168.0.3” is set to “deny.” Thus, the processing rule creation unit 16 creates and sets a processing rule for discarding packets addressed to IP address “192.168.0.3.”
The topology management unit 17 establishes network topology information based on a connection relationship among the forwarding nodes 200A to 200C collected via the node communication unit 11.
The terminal position management unit 18 manages information for determining the positions of the user terminals connected to the communication system. In the present exemplary embodiment, an IP address is used as information determining a user terminal, and a forwarding node identifier and port information of a forwarding node connected to the user terminal are used as information determining the position of the user terminal. Of course, instead of such information, a terminal and the position thereof may be determined by using information supplied from the authentication apparatus 310, for example.
The ACL information query unit 19 queries the ACL data base 330 for a list of destinations accessible or inaccessible by the user of the source node for which the predetermined rule setting request is transmitted, based on the request from the processing rule creation unit 16.
The control apparatus 300 as described above can be realized by adding the above ACL information query unit 19 and a processing rule (flow entry) creation function based on response results from the ACL information query unit 19 to the OpenFlow controller in Non Patent Literatures 1 and 2.
In addition, each unit (processing means) of the control apparatus 300 illustrated in
Next, an operation according to the present exemplary embodiment will be described in detail with reference to the drawings. First, an updating process of the authentication information table 331 by the authentication apparatus 310 and an updating process of the access control policy information table 332 by the IAM 320 will be described with reference to
When the authentication apparatus 310 receives a log-in request from the user terminal 100 (S001 in
The following description will be made assuming that the authentication apparatus 310 authenticates the user. In this case, the authentication apparatus 310 creates an entry to be registered in the authentication information table 331 illustrated in
Separately from the above user authentication procedure, data stored in the access control policy storage unit 321 and the resource information storage unit 322 in the IAM 320 is updated by a network administrator or the like via the policy management terminal 340 (S005 in
When notified of updating of the data, the IAM 320 determines the content to be updated in the access control policy information table 332 in
Next, the IAM 320 updates the access control policy information table 332 of the ACL data base 330 in accordance with the determined content (S007 and S008 in
Next, a flow of a processing rule setting process by using the content of the ACL data base 330 updated as described above will be described in detail with reference to
In this example, since no processing rule matching the packet is set in the forwarding node 200A, the forwarding node 200A requests the control apparatus 300 to set a processing rule (S102 in
After receiving the processing rule setting request, the control apparatus 300 determines a source node, based on an IP address or a MAC address included in the processing rule setting request (S103 in
The control apparatus 300 determines whether to create a path by matching the destination, for which the processing rule setting request is created, against the entries in the access control policy information table 332. If the control apparatus 300 determines that a path can be created, the control apparatus 300 calculates a path and creates processing rules defining packet processing contents for relevant forwarding nodes (S 105 in
After the control apparatus 300 sets such processing rules in the forwarding nodes on the path (S106-1 and S106-2 in
As described above, the ACL data base integrally manages the content managed by the IAM 320 and the authentication process result obtained by the authentication apparatus 310, and as needed, the control apparatus 300 refers to the ACL data base and creates a processing rule. In this way, for example, in the case of a manager and a regular employee having role IDs “role—0001” and “role—0002,” respectively, accurate access control can be executed only by managing the two role IDs, as illustrated in
In addition, an information field representing a position where access is permitted may be added in the access control policy information table 332 in
In addition, for example, as illustrated in
In addition, the control apparatus 300 may be configured to access the ACL data base 330 at predetermined time intervals to determine whether to set a processing rule or to determine validity of an existing processing rule. In this way, access can be controlled in various ways. For example, access to the management tools 600B can be permitted within a certain period (for example, 2011/04/01 to 2011/06/01) or within a certain time period (for example, 10:00 to 17:30) while prohibited in any other period or time period. If the access authority is temporarily modified in the above period, the content of the changed access authority can be reflected in the processing rule. Of course, it is possible to realize access control in which the above position, time, and period are combined.
Next, a second exemplary embodiment of the present disclosure will be described in detail with reference to the drawings. In the second exemplary embodiment, a plurality of control apparatuses are arranged.
In
Basic functions of the authentication apparatus 310 and the IAM 320 are the same as those of the authentication apparatus and the IAM according to the above first exemplary embodiment. The difference is that the authentication apparatus 310 according to the present exemplary embodiment executes an authentication procedure with users using the Kanto data center, the Hokkaido data center, and the Okinawa data center and registers the results in the authentication information table 331 of the ACL data base 330.
The control apparatuses 300D to 300F can access the ACL data base 330. When any one of the control apparatuses 300D to 300F receives a processing rule setting request from the corresponding one of the forwarding nodes 200D to 200F, the one of the control apparatuses 300D to 300F queries the ACL data base 330 for the access authority of a user of the corresponding source node and sets a processing rule based on the access authority. In
As described in the above present exemplary embodiment, the present disclosure can easily be accommodated to an increase in the number of forwarding nodes or users or to scale-out of control apparatuses along with such increase.
While exemplary embodiments of the present disclosure have thus been described, the present disclosure is not limited thereto. Further variations, substitutions, and modifications can be made without departing from the basic technical concept of the present disclosure. For example, while the control apparatus 300, the authentication apparatus 310, and the IAM 320 are separately arranged in the above exemplary embodiments, these components may be suitably integrated.
In addition, while the user terminal 100A (100B) directly executes an authentication procedure with the authentication apparatus 310 in the above exemplary embodiments, a forwarding node may forward an authentication packet relating to the authentication procedure to the authentication apparatus so that the authentication procedure is executed. For example, this can be realized by setting a processing rule, in which a matching rule determining the authentication packet and an action for forwarding the packet to the authentication apparatus 310 are defined, in a forwarding node connected to the user terminal 100A (100B).
Finally, preferable modes of the present disclosure will be summarized.
(See the communication system according to the first aspect)
In the communication system according to mode 1, it is preferable that an entry in the second table be created by using access control policy information in which an accessible or inaccessible resource group is defined for each role given to a user and resource information in which details of a resource belonging to each of the groups is defined.
In the communication system according to mode 2, it is preferable that the communication system include an access policy management unit which updates, when data in at least one of the access control policy information and the resource information is updated, an entry corresponding to the updated data in the second table.
In the communication system according to any one of modes 1 to 3, it is preferable that an entry of an authenticated user be registered in the first table, and when the user logs out, the entry of the user be deleted from the first table.
In the communication system according to any one of modes 1 to 4, it is preferable that a validity period be set in each entry in the first table, and if the validity period in an entry elapses, the data base delete the entry from the first table.
In the communication system according to any one of modes 1 to 5, it is preferable that the communication system include: an authentication apparatus which executes user authentication and updates the first table; and a policy management terminal which receives input of an update content of the second table and updates the second table.
In the communication system according to any one of modes 1 to 6, it is preferable that the control apparatus set, based on the response from the data base, a processing rule for causing a predetermined forwarding node to discard a packet addressed to a resource that the user of the source node is prohibited to access.
In the communication system according to any one of modes 1 to 7, it is preferable that the response from the data base include information about a position where the user of the source node can or cannot access the resource. In addition, it is preferable that, if the control apparatus receives a request for setting the processing rule from any one of the forwarding nodes, the control apparatus set a processing rule for permitting or prohibiting access to the resource in forwarding nodes corresponding to the position information, in addition to the forwarding node from which the control apparatus has received the request for setting the processing rule.
(See the data base according to the second aspect)
(See the control apparatus according to the third aspect)
(See the communication method according to the fourth aspect)
(See the program according to the fifth aspect)
The data base, the control apparatus, the communication method, and the program can be similarly extended to modes 2 to 8, as in the communication system according to mode 1.
The entire disclosures of the above Patent Literature and Non Patent Literatures are incorporated herein by reference thereto. Modifications and adjustments of the exemplary embodiments are possible within the scope of the overall disclosure (including the claims) of the present invention and based on the basic technical concept of the present invention. Various combinations and selections of various disclosed elements (including the elements in each of the claims, examples, drawings, etc.) are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept.
Number | Date | Country | Kind |
---|---|---|---|
2011-034407 | Feb 2011 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2012/054013 | 2/20/2012 | WO | 00 | 8/20/2013 |