In the present disclosure, an execution procedure for causing a system to transition to a target state is searched for. In particular, an execution procedure is searched for in the shortest time possible while using an actual system that takes time to perform execution and a pseudo-environment that is fast but not completely accurate. A system described in the present disclosure is constituted by a network device such as a router, but a method is not limited to a network device.
In artificial systems including a network, an operator executes a procedure such as a command to change settings and make a system transition to a target state. For example, a network operator may execute a command such as address and a route control protocol on a network device such as a router, and updates settings. The router generates a routing table according to settings and transfers a packet. When the settings contain an error, the packet does not reach the destination according to an operational policy, and a failure occurs. When a failure occurs, a network operator identifies the router that is the cause and executes a restoration command to update the settings (performs a transition to a target state where no failure occurs).
In recent years, many studies have been carried out on automatic restoration from a failure. Simply, a method of searching for a command sequence to realize a target state while attempting various commands in an actual system is conceivable. Although this method is accurate because an actual system is used, it takes time to actually execute the system. For example, in the case of a network, a waiting time of several tens of seconds is required for route convergence.
On the other hand, as disclosed in NPL 1, a method using a pseudo-environment (simulator) in which a system is simply modeled has also been studied. This method can be executed in a shorter period of time than in an actual system, but no errors associated with modeling are avoided. Even a command sequence that has realized a target state on a model may not realize a target state in an actual system. In contrast, a command sequence for making an actual system transition to a target state may not reach a target state on a model.
NPL 1: A. Gember-Jacobson, A. Akella, R. Mahajan, and H. H. Liu, “Automatically repairing network control planes using an abstract representation,” in Proceedings of the 26th Symposium on Operating Systems Principles, ser. SOSP '17. New York, N.Y., USA: ACM, 2017, pp. 359-373. (http://doi.acm.org/10.1145/3132747.3132753)
NPL 2: Batfish, https://www.batfish.org
An object of the present disclosure is to search for a command sequence, while preventing overlooking as much as possible, in a shorter period of time than that of searching using only an actual system.
The present disclosure aims to shorten a period of time required to obtain a candidate command sequence by using an actual network and a simulator together.
A device according to the present disclosure is an execution procedure searching device that searches for a command sequence to be set for a plurality of devices constituting a system. The execution procedure searching device performs a first step for determining whether a simulator of the system having executed a temporary update command sequence satisfies a predetermined policy, and executes, until satisfaction for the predetermined policy of the simulator, processing for: performing a second step of determining whether the simulator approaches a state where the predetermined policy is satisfied, with addition of one new candidate command of one or more new candidate commands to the temporary update command sequence on condition that the simulator does not satisfy the predetermined policy; adding the new candidate command to the temporary update command sequence on condition that the simulator approaches the state where the predetermined policy is satisfied, with the addition of the new candidate commands, or deleting a command at the end of the temporary update command sequence on condition that the simulator does not approach the state where the predetermined policy is satisfied, with addition of any one of the new candidate commands; and then returning to the first step, and performs a third step for determining whether the actual system having executed the temporary update command sequence satisfies the predetermined policy on condition that the simulator satisfies the predetermined policy, and executes processing for returning to the second step until satisfaction for the predetermined policy of the actual system, on condition that the actual system does not satisfy the predetermined policy.
A method according to the present disclosure is an execution procedure searching method executed by an execution procedure searching device that searches for a command sequence to be set for a plurality of devices constituting a system. The execution procedure searching method includes performing, by the execution procedure searching device, a first step for determining whether a simulator of the system having executed a temporary update command sequence satisfies a predetermined policy, and includes executing, until satisfaction for the predetermined policy of the simulator, processing for: performing, by the execution procedure searching device, a second step for determining whether the simulator approaches a state where the predetermined policy is satisfied, with addition of one new candidate command of one or more new candidate commands to the temporary update command sequence on condition that the simulator does not satisfy the predetermined policy; adding, by the execution procedure searching device, the new candidate command to the temporary update command sequence on condition that the simulator approaches the state where the predetermined policy is satisfied, with the addition of the new candidate command, or deleting, by the execution procedure searching device, a command at the end of the temporary update command sequence on condition that the simulator does not approach the state where the predetermined policy is satisfied, with addition of any one of the new candidate commands; and then returning, by the execution procedure searching device, to the first step, and includes: performing, by the execution procedure searching device, a third step for determining whether the actual system having executed the temporary update command sequence satisfies the predetermined policy on condition that the simulator satisfies the predetermined policy; and executing, by the execution procedure searching device, processing for returning to the second step until satisfaction for the predetermined policy of the actual system, on condition that the actual system does not satisfy the predetermined policy.
A program according to the present disclosure is a program for causing a computer to implement functions included in the execution procedure searching device according to the present disclosure, and is a program for causing the computer to execute steps included in the execution procedure searching method according to the present disclosure.
According to the present disclosure, it is possible to search for a command sequence, while preventing overlooking as much as possible, in a shorter period of time than that of searching using only an actual system is used.
Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. Note that the present disclosure is not limited to the embodiments described below. These embodiments are just illustrative examples, and the present disclosure can be implemented in forms in which various modifications and improvements are added on the basis of knowledge of those skilled in the art. Note that constituent elements with the same reference signs in the specification and the drawings are assumed to be the same constituent elements.
Network Settings Method
An operational policy to be satisfied by a network will be defined. The operational policy is defined by a set of three, that is, a packet header, a transmission source router, and a destination router. In the packet header, information of a higher layer, such as a port number, may be defined in addition to a transmission source address and a destination address. For example, in
Next, a reachability graph will be defined. This is a directed graph used to evaluate the reachability of a packet. Vertices consist of routers and interfaces. However, the interfaces are sorted into inputs and outputs, and are prepared as pairs. An edge is set between the interfaces that are connected or between a router and an interface. When the network in
In the present disclosure, a method of evaluating a reachable range is not limited. A packet may be transmitted from a router of an actual network or may be simulatively evaluated by a simulator. Note that the present disclosure is based on the advent of a high speed simulator such as Batfish (NPL 2). The high speed simulator is technically referred to as a control-plane verifier, and capable of evaluating reachability between designated interfaces using a function reachability. Because the high speed simulator can evaluate a reachability at the time of updating settings in a short period of time without waiting for convergence of a route control protocol, approaches of attempting various settings as in the proposed technology are practical.
Inputs of a network settings method are as follows.
Topology (a router, an interface, and a connection relationship between interfaces)
Settings of each router
Operational policy
In the network settings method, a reachable range of a packet described in an operational policy is evaluated in accordance with a topology and router settings, and a command sequence necessary for setting update is output in the state of inconsistency with the policy. That is, an output in the network settings method is as follows.
Settings update command sequence
Note that a setting update command is a pair constituted by a router that executes the command and the command itself (
A network setting method according to the present disclosure, which is a method for searching for a command sequence to be set for a plurality of network devices, includes performing a first step for determining whether a network having executed a temporary update command sequence satisfies a predetermined operational policy, and includes executing, until satisfaction for the predetermined operational policy, processing for: performing a second step for determining whether a reachable range of a packet expands with addition of one new candidate command of one or more new candidate commands to the temporary update command sequence on condition that the predetermined operational policy is not satisfied; adding the new candidate command to the temporary update command sequence on condition that the reachable range expands with the addition of the new candidate command, or deleting a command at the end of the temporary update command sequence on condition that the reachable range does not expand with addition of any one of the new commands; and then returning to the first step.
Preparation
In the present disclosure, the proposed technology will be described based on a network settings method. In the network settings method, a command is executed to update the settings of a router, and a reachable range of a packet is expanded. When a reachable range is expanded by some commands and an operational policy is satisfied, the command sequence is output as a response. In the network settings method, a state where a command sequence serving as a response is searched for can be represented as a search tree. Note that, in a network device setting method, an environment in which commands are attempted may be an actual network or may be a simulator. In the present disclosure, an actual network and a simulator are used together for an environment in which commands are attempted.
As described in the problem, system states (packet reachable ranges) at the time of inputting a command may not match in an actual network and a simulator. When reachable ranges drawn at nodes of a search tree are different, commands to be executed thereafter may also be different, and thus there is a possibility that final search trees and setting update command sequences will also be different.
The only way to confirm the correctness of a command sequence is to attempt the command sequence on an actual network, but it is attempted to reduce a period of time therefor by using a simulator in combination therewith. In addition, overlooking of correct command sequences is avoided as much as possible.
The execution procedure searching device according to the present disclosure is communicatively connected to an actual network and a simulator which are not illustrated in the drawings.
The candidate command generation unit 12 generates candidate commands. The commands are commands that can be used in a router constituting an actual network. A command used in the simulator may be the same command as that in the actual network, but may be any command equivalent to a command in the actual network.
The control unit 13 causes the actual network and the simulator to execute the command generated by the candidate command generation unit 12.
The actual network reachability evaluation unit 11 determines a reachable range of a packet in executing a command in the actual network.
The simulator reachability evaluation unit 16 determines a reachable range of a packet in executing a command in the simulator.
A function Goal (C) for determining whether a certain command sequence C satisfies a policy is defined. According to this function, true is returned as in the following expression when C satisfies the policy.
[Math. 11]
(11)
False is returned as in the following expression when C does not satisfy the policy.
[Math. 12]
(12)
Additionally, a function of performing determination in an actual network is defined as Goalr, and a function of performing determination in a simulator is defined as Goals.
An example in
Next, the candidate command generation unit 12 generates some candidate commands. In this specification, this generation method is not limited. The candidate command generation unit 12 may select a candidate command from a predetermined command set, or may select a command suitable for the current settings and a reachable range by machine learning. While NPL 1 limits a target command type to route information exchange, the proposed technology can handle any command
Subsequently, the control unit 13 causes the actual network to execute a command (@router B . . . ) that is given to a branch from the root T0 to the node T1. This command executes “interface e0; no ip access-group 1 out” in the router B. The actual network reachability evaluation unit 11 determines that a packet from the router B reaches the router T.
Because the router S which is a transmission source is not included in the reachable range at the contact point T1, the policy is not satisfied. Thus, when the control unit 13 gives a command sequence C1 (“interface e0; no ip access-group 1 out” is executed in the router B) with respect to the contact point T1 to Goalr, the actual network reachability evaluation unit 11 returns false.
[Math. 13]
Goalr(C1)= (13)
Subsequently, the control unit 13 executes a command (@router T . . . ) which is given to a branch from the root T0 to the node T2. This command executes “router eigrp 1; network 9.9.9.9 0.0.0.0” in the router T. The actual network reachability evaluation unit 11 determines that a packet from the router A reaches the router T. Because the router S which is a transmission source is not included in the reachable range at a contact point T2, the policy is not satisfied. Thus, the actual network reachability evaluation unit 11 also returns false for a command sequence C2 (router T . . . ) with respect to the contact point T2.
[Math. 14]
Goalr(C2)= (14)
Subsequently, the control unit 13 executes a command (@router A . . . ) which is given to a branch from the root T2 to the node T3. This command executes “router eigrp 1; no passive-interface e0” in the router A. The actual network reachability evaluation unit 11 determines that a packet from the router S reaches the destination router T. The actual network reachability evaluation unit 11 returns true only for a command sequence C3 with respect to the node T3.
[Math. 15]
Goalr(C2)= (15)
Here, it is assumed that the function Goalr and Goals satisfy the following.
[Math. 1]
∀C,Goalr(C)=⇒Goals(C)=
. (1)
This indicates that the command sequence that is true in the actual network is also true in the simulator. The converse may not be established (when the simulator is true, the actual network may be true or false). The inverse may not be established (when the actual network is false, the result in the simulator may be true or false). In other words, the simulator has false positives but no false negatives.
For example, in a simulator that does not cope with timer processing of a route control protocol, a route may be established even when a route is not established in the actual network due to an incorrect timer value. In this example,
[Math. 16]
Goalr(C)= (16)
and
[Math. 17]
Goals(C)= (17)
and thus Formula (1) is satisfied.
In addition, a simulator often may not cope with some commands, where Formula (1) is satisfied when the following is defined.
[Math. 18]
Goalr(C)= (18)
Searching Only in Actual Network
Execution procedure searching using only the actual network (
The control unit 13 starts the contact point T0, which is the root in
[Math. 19]
Goalr(C1)= (19)
It is assumed that the control unit 13 does not have a command to proceed from the contact point T1 (the reachable range can be expanded) and returns to the contact point T0.
Next, the control unit 13 proceeds to the contact point T2 to obtain the command sequence C2 from the candidate command generation unit 12, but it is assumed that the following has been returned from the actual network reachability evaluation unit 11.
[Math. 20]
Goalr(C2)= (20)
The control unit 13 further proceeds to a contact point T4 to obtain a command sequence C4 from the candidate command generation unit 12, but it is assumed that the following has been returned from the actual network reachability evaluation unit 11.
[Math. 21]
Goalr(C4)= (21)
The control unit 13 does not have a command to proceed from the contact point T4 and returns to the contact point T2. The control unit 13 proceeds to a contact point T3 to obtain a command sequence C3 from the candidate command generation unit 12, and confirms that the policy is satisfied by the following being returned from the actual network reachability evaluation unit 11.
[Math. 22]
Goalr(C2)= (22)
So far, the control unit 13 has evaluated the respective reachable ranges through five nodes including the contact point T0. When it is assumed that a period of time taken to evaluate the reachable ranges is 60 seconds, it takes 5×60=300 seconds.
In the proposed technology, an actual network and a simulator are used together. In the present section, execution procedure searching based on the proposed technology, provided that Formula (1) is satisfied, will be described.
An operational policy in the actual network, topology information of the actual network, and setting information of routers constituting the actual network are input to the input unit 14 of the execution procedure searching device. For settings, a reachable range is displayed at each node, instead of showing specific contents.
The control unit 13 evaluates a reachable range for each of the candidate commands of the candidate command generation unit 12 (F1 in
The control unit 13 searches for a setting update command sequence that satisfies the policy in accordance with the flowchart of
Specifically, the control unit 13 evaluates a reachable range of the simulator reachability evaluation unit 16 (F0 in
[Math. 23]
Goals(C1)= (23)
Here, there is no executable command, and the control unit returns to the contact point T′0.
Next, the control unit 13 proceeds to a contact point T2 to obtain a command sequence C2 (@router T . . . ), and acquires the following from the simulator reachability evaluation unit 16.
[Math. 24]
Goals(C2)= (24)
The control unit 13 further proceeds to a contact point T4 to obtain a command sequence C4, and acquires the following that satisfies the policy from the simulator reachability evaluation unit 16.
[Math. 25]
Goals(C4)= (25)
Here, the control unit 13 proceeds to F2 in
[Math. 26]
Goalr(C4)= (26)
The control unit 13 follows the contact points T2 and T′3, evaluates a reachable range of the command sequence C3 by the simulator reachability evaluation unit 16, and finds that the policy is satisfied by acquiring the following.
[Math. 27]
Goals(C3)= (27)
Subsequently, the control unit 13 executes a command C3 in the actual network and confirms that the policy is satisfied.
[Math. 28]
Goalr(C2)= (28)
Because a result in F2 in
In the search tree of the simulator, a reachable range is evaluated in each of five nodes including the contact point T′0. On the other hand, in the actual network, a reachable range is only evaluated in two nodes of the contact points T4 and T3. When a period of time for the evaluation of a reachable range in the simulator is set to 1 second, the searching can be completed in a total of 5×1+2×60=125 seconds, which is shorter than a time, namely 300 seconds, taken by searching using only the actual network.
Note that, as long as Formula (1) is satisfied, a command sequence that is true in the actual network is also true in the simulator, and thus a command sequence satisfying the policy will not be overlooked.
In the present section, execution procedure searching where Formula (1) is not satisfied will be described. In this example, even when it is evaluated that a policy is not satisfied in the simulator, there is a possibility that the policy will be satisfied in the actual network. Consequently, in evaluating a reachable range in the simulator, the reachable range is compared with a reachable range in the actual network with a fixed probability. When the range in the actual network is wider, the searching in the simulator is stopped and switched to searching in the actual network.
A system configuration is the same as that in
Then, the processing proceeds to step F3 in
Specifically, a network settings method is only required to be executed on the actual network by including a temporary update command sequence at that point in time (C2 this time) in the initial settings of the router. Finally, the following is found (“YES” in S05), and a command C3 is output to terminate the processing (S03).
[Math. 29]
Goalr(C3)= (29)
In this manner, although it is stochastic, a command sequence that satisfies the policy can be searched for while avoiding overlooking.
As described above, the present disclosure provides a method for searching for a command sequence to be set for a plurality of devices constituting a system, the method including performing a first step F0 for determining whether a simulator of the system having executed a temporary update command sequence satisfies a predetermined policy, and including executing, until satisfaction for the predetermined policy of the simulator, processing for: performing a second step F1 for determining whether the simulator approaches a state where the predetermined policy is satisfied, with addition of one new candidate command of one or more new candidate commands to the temporary update command sequence on condition that the simulator does not satisfy the predetermined policy;
adding the new candidate command to the temporary update command sequence on condition that the simulator approaches the state where the predetermined policy is satisfied, with the addition of the new candidate command (S01), or deleting a command at the end of the temporary update command sequence (S02) on condition that the simulator does not approach the state where the predetermined policy is satisfied, with addition of any one of the new commands; and then
returning to the first step F0, and including:
performing a third step F2 for determining whether the actual system having executed the temporary update command sequence satisfies the predetermined policy on condition that the simulator satisfies the predetermined policy (“YES” in F0); and
executing processing for returning to the second step F1 until satisfaction for the predetermined policy of the actual system (“YES” in F2), on condition that the actual system does not satisfy the predetermined policy.
An execution procedure (setting update command sequence) is searched for, while preventing overlooking as much as possible, in a shorter period of time than that of searching using only an actual system. While examples of an actual network constituted by a plurality of routers and a simulator thereof have been described in the above-described embodiments, the present disclosure can be applied to any system constituted by a plurality of devices and a simulator thereof. Here, the plurality of devices may be a plurality of virtual devices constructed on one physical resource.
When there is an evaluation environment in which a trade-off occurs between accuracy and an execution speed as in an actual network and a simulator, and the simulator has no false negatives, the simulator proceeds with searching first, and the actual network performs a final check, whereby it is possible to reduce a searching time while avoiding overlooking. Even when the simulator has false negatives, evaluation is stochastically performed in the actual network, and thus it is possible to reduce a searching time while avoiding overlooking.
The present disclosure can be applied in the information communication industry.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2020/017124 | 4/21/2020 | WO |