WO2014115759A1 - ネットワーク検証装置、ネットワーク検証方法及びプログラム - Google Patents

ネットワーク検証装置、ネットワーク検証方法及びプログラム Download PDF

Info

Publication number
WO2014115759A1
WO2014115759A1 PCT/JP2014/051240 JP2014051240W WO2014115759A1 WO 2014115759 A1 WO2014115759 A1 WO 2014115759A1 JP 2014051240 W JP2014051240 W JP 2014051240W WO 2014115759 A1 WO2014115759 A1 WO 2014115759A1
Authority
WO
WIPO (PCT)
Prior art keywords
verification
network
model
unit
counterexample
Prior art date
Application number
PCT/JP2014/051240
Other languages
English (en)
French (fr)
Inventor
豊 八鍬
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US14/761,993 priority Critical patent/US20150365290A1/en
Priority to JP2014558591A priority patent/JP6295965B2/ja
Publication of WO2014115759A1 publication Critical patent/WO2014115759A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0873Checking configuration conflicts between network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0869Validating the configuration within one network element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Definitions

  • the present invention is based on the priority claim of Japanese Patent Application No. 2013-009866 (filed on Jan. 23, 2013), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a network verification device, a network verification method, and a program, and more particularly, to a network verification device, a network verification method, and a program that perform verification by modeling a verification target network.
  • OpenFlow is also attracting attention as a technology that realizes the concept of Software-Defined Network (hereinafter “SDN”).
  • SDN is a new paradigm in the field of networking that centrally manages network control in a programmable manner.
  • OpenFlow is attracting various expectations such as automation, efficiency and power saving of network operation.
  • Non-Patent Document 3 discloses a tool called “NICE” for searching the state of an OpenFlow network by model checking. According to Non-Patent Document 3, “NICE” symbolically executes an OpenFlow controller program, obtains a set of representative values of packets for executing all code paths, and performs a state search using the set.
  • Non-Patent Document 3 The problem of the technique represented by Non-Patent Document 3 is that the actual operation (time and machine resources) cannot comprehensively verify the main operation of the OpenFlow network, or (because it cannot be performed at a realistic cost). ) Do not exhaustively verify.
  • Non-Patent Document 3 verification is performed covering all code paths of the program of the OpenFlow controller, but the operation of the OpenFlow network affected by the program (the operation of transferring the communication packet by the OpenFlow switch) Etc.) are not covered. For this reason, there is a possibility that a failure related to the main operation of the OpenFlow network cannot be detected.
  • Non-Patent Documents 1 and 2 are not unique to OpenFlow in Non-Patent Documents 1 and 2, but can be said to be common to a network called SDN.
  • An object of the present invention is to provide a network verification apparatus, program, and method that can contribute to the efficiency of comprehensive verification of a network represented by SDN.
  • a verification information input unit that receives input of verification information that defines a configuration of a network to be verified and an operation model of a device included in the network, and a communication packet in the network from the verification information.
  • a verification code generation unit that generates a verification code for verifying an over-approximation model in which the behavior model is corrected so as not to depend on a matching condition to be identified; a model check execution unit that performs model checking using the verification code; and Based on the outputs of the counterexample validity checking unit for checking whether the counterexample obtained in the model checking also exists in the original operation of the network, the model checking execution unit, and the counterexample validity checking unit
  • a network verification apparatus including a verification result output unit that outputs
  • a step of generating a verification code for verifying an overapproximation model in which the behavior model is corrected so as not to depend on a condition, a step of executing a model check using the verification code, and a counter example obtained in the model check include
  • a network verification method including a step of confirming whether or not an original operation of the network exists, and a step of outputting a verification result based on outputs of the model check execution unit and the counterexample validity check unit Is done. The method is tied to a specific machine, a computer that performs network model checking.
  • a process for confirming whether a counterexample obtained in model checking also exists in the original operation of the network and a process for outputting a verification result based on the outputs of the model checking execution unit and the counterexample validity checking unit
  • This program can be recorded on a computer-readable (non-transient) storage medium. That is, the present invention can be embodied as a computer program product.
  • the present invention includes a verification information input unit 11, a verification code generation unit 12, a model check execution unit 13, a counterexample validity check unit 14, and a verification result output unit. 15 can be realized by the network verification apparatus 1A.
  • the verification information input unit 11 receives input of verification information that defines the configuration of the network to be verified and the operation model of the devices included in the network.
  • the verification code generation unit 12 generates, from the verification information, a verification code for verifying an over-approximation model in which the behavior model is corrected so as not to depend on a match condition for specifying a communication packet in the network.
  • the model checking execution unit 13 executes model checking using the verification code. As a result of the model checking, when the evidence indicating that there is a state that does not satisfy the property (required specification) is found, the model checking execution unit 13 outputs a counter-example.
  • the counterexample validity checking unit 14 checks whether the counterexample also exists in the original operation of the network. Then, the verification result output unit 15 outputs a verification result based on the outputs of the model checking execution unit and the counterexample validity checking unit 14.
  • the model checking execution unit 13 performs comprehensive model checking.
  • the counterexample validity checking unit 14 checks the counterexample obtained in the model check, the defect can be detected.
  • FIG. 2 is a diagram illustrating the configuration of the network verification device according to the first embodiment of this invention.
  • the network verification apparatus according to the first embodiment of the present invention includes a verification information input unit 11, a verification code generation unit 12, a model check execution unit 13, a counterexample validity check unit 14, A configuration including a verification result output unit 15 is shown.
  • Reference numerals D11 to D17 used in the following description represent input / output information and intermediate codes of the network verification device (see FIG. 5).
  • the verification code generation unit 12 includes an over-approximation model generation unit 121 and an over-approximation model conversion unit 122, as will be described later.
  • the counterexample validity checking unit 14 includes a constraint satisfaction problem generating unit 141 and a constraint satisfaction problem solving unit 142 as described later.
  • the verification information input unit 11 is connected to the verification code generation unit 12.
  • the verification code generation unit 12 is connected to the model check execution unit 13.
  • the model checking execution unit 13 is connected to the counterexample validity checking unit 14 and the verification result output unit 15.
  • the counterexample validity checking unit 14 is connected to the verification result output unit 15.
  • the verification information input unit 11 receives, as an input, verification information D11 that defines the operation models of all terminals, switches, and controllers constituting the network to be verified, their connection relations, and properties that the network should satisfy.
  • the behavior model is defined as a state machine that performs a transition while executing an operation step that is a primitive operation unit.
  • the operation model is individually defined for each terminal, switch, and controller constituting the network. However, individual definitions of those performing the same operation may be omitted by referring to the same operation model.
  • the operation model of the entire network is defined as an operation model obtained by synthesizing all operation models of individual terminals, switches, and controllers constituting the network. Further, in the present embodiment, it is assumed that the operation model of the switch and the controller and the connection relationship thereof are in accordance with the OpenFlow specification of Non-Patent Document 2.
  • FIG. 3 is an example of the minimum operation model of the OpenFlow switch of Non-Patent Document 2.
  • the OpenFlow switch waits for reception of the communication packet P (step SS1), and when the packet is received, a matching condition that matches the received packet P is selected from the entries (flow entries) received from the controller. If there is an entry having a matching condition that matches the received packet (step SS3), the content of the action field is executed (step SS3). If there is no entry having a matching condition that matches the received packet P, the OpenFlow switch transfers the communication packet P to the controller and requests transmission of the entry (step SS4). The OpenFlow switch waits for a controller response (step SS5), executes a process according to the response content (step SS6), and repeats the operation (step 3 of Non-Patent Document 2). See also 4 Matching).
  • FIG. 4 is an example of the minimum operation model of the OpenFlow controller of Non-Patent Document 2.
  • the OpenFlow controller waits for an entry request from the switch (step SC1), and upon receiving the entry request from the switch, determines the processing content of the transferred communication packet P (step SC2). Then, the OpenFlow controller returns the determined processing content (including the flow entry) as a response to the OpenFlow switch (step SC3) and includes at least the operation of repeating the above processing.
  • 3 and 4 are models of the operation defined in OpenFlow Switch Specification Version 1.0.0 of Non-Patent Document 2, but if the network verification device 1 can appropriately cope with it, There is no problem even if other versions of the OpenFlow specification are followed.
  • the verification information D11 the property need not be defined. If the property is not defined, the typical property is verified. After that, the typical property including other devices operates as if it is defined in the verification information D11. Good.
  • the verification code generation unit 12 includes an over-approximation model generation unit 121 and an over-approximation model conversion unit 122.
  • the over-approximation model generation unit 121 generates an over-approximation model D12 of the network operation from the verification information D11.
  • the over-approximation model conversion unit 122 generates a verification code D13 for verifying whether the over-approximation model D12 satisfies the property.
  • the over-approximation model D12 over-approximates the operation of the network by modifying the operation model so as not to handle the specific value of the field of the communication packet inside, that is, not depending on the matching condition for specifying the communication packet.
  • Model In the present embodiment, an over-approximation model D12 that performs an operation of applying a flow entry to the communication packet is generated for the switch and the controller without depending on the matching condition for specifying the communication packet.
  • the over-approximation model D12 is defined as a state machine that performs a transition while executing an operation step that is a primitive operation unit, as in the above-described operation model.
  • the over-approximation model D12 is individually defined for each terminal, switch, and controller constituting the network. However, individual definitions of those performing the same operation may be omitted by referring to the same over-approximation model.
  • the over-approximation model of the entire network is defined as an over-approximation model obtained by synthesizing all over-approximation models of individual terminals, switches, and controllers constituting the network.
  • the over-approximation model conversion unit 122 generates the verification code D13 using the over-approximation model of the entire network.
  • the “over-approximation model” will be described in more detail later with an example of operation.
  • the verification code D13 describes the over-approximation model D12 in the input language of the model check execution unit 13.
  • the verification code D13 describes the over-approximation model D12 in the Spin input language Promela.
  • the over-approximation model D12 may itself be the verification code D13.
  • the behavior model defined by the verification information D11 is described in the input language of the model check execution unit 13, and the verification code D13 is generated directly by converting the behavior model into the over-approximation model D12. It may be.
  • the over-approximation model conversion unit 122 is unnecessary from the configuration of FIG. 2 and can be excluded from the verification code generation unit 12.
  • the over-approximation model generation unit 121 passes the generated over-approximation model D12 directly to the model checking execution unit 13.
  • the model check execution unit 13 executes model check using the verification code D13 and outputs a property success / failure D14.
  • the model check execution unit 13 outputs a counterexample D15 that is an example of the operation. This model check is continued until all counterexamples D15 are obtained.
  • the over-approximation model D12 that is the basis of the verification code D13 does not handle the specific value of the field of the communication packet, and therefore it is possible to efficiently execute the model check.
  • the counterexample validity checking unit 14 includes a constraint satisfaction problem generating unit 141 and a constraint satisfaction problem solving unit 142.
  • the constraint satisfaction problem generation unit 141 generates a constraint satisfaction problem D16 for confirming whether the counterexample D15 also exists in the original operation of the network from the counterexample D15 obtained by the model check.
  • the constraint satisfaction problem solving unit 142 solves the constraint satisfaction problem D16 and obtains one solution D17. If the counterexample D15 also exists in the original operation of the network, the solution D17 is obtained, and if it does not exist, the solution D17 is not obtained (no solution).
  • the constraint satisfaction problem generating unit 141 and the constraint satisfaction problem solving unit 142 individually execute the above-described processing for each counter example D15. For example, when n counterexamples D15 are obtained, a maximum of n solutions D17 are obtained. When the solution D17 is obtained, it is passed to the verification result output unit 15 in combination with the counter example D15 for which the solution D17 is obtained.
  • the counterexample validity checking unit 14 is provided for that purpose, and provides a specific value indicating what kind of communication packet the counterexample D15 expresses. If there is no specific value of the communication packet that causes counterexample D15 to appear, it indicates that counterexample D15 does not occur in the original operation of the network.
  • the verification result output unit 15 outputs a result that the network satisfies the property. Even when no solution D17 is obtained, the verification result output unit 15 outputs a result that the network satisfies the property.
  • each unit (processing means) of the network verification device 1 shown in FIG. 2 can be realized by a computer program that causes a computer constituting the network verification device to execute the above-described processes using the hardware thereof. .
  • FIG. 5 is a sequence diagram illustrating an operation of the network verification device according to the first embodiment of this invention.
  • the user creates verification information D11 and inputs it to verification information input unit 11 (step S11).
  • the over-approximation model generation unit 121 first generates an over-approximation model D12 from the verification information D11 (step S12), and then the over-approximation model conversion unit 122 converts the over-approximation model D12 into the verification code D13. (Step S13).
  • the over-approximation model D12 is generated by referring to each of the operation models of the terminal, the switch, and the controller defined in the verification information D11.
  • the operation in which the over-approximation model conversion unit 122 generates the verification code D13 depends on the input language of the model check execution unit 13, but the conversion-source over-approximation model D12 is defined in a form like a state machine. Even if the input languages are different, there is no essential difference in the conversion method. This is because the behavior model defined by the verification information D11 is described in the input language of the model check execution unit 13, and the verification code D13 is directly generated by converting the behavior model into the over-approximation model D12. The same applies to the configuration.
  • FIG. 6 is a flowchart showing the operation of the over-approximation model generation unit of this embodiment (generation of an over-approximation model from the operation model of the terminal).
  • the over-approximation model generation unit 121 extracts all operation steps AS11 for generating (declaring) a communication packet to be transferred from the operation model of the terminal (step S1211).
  • the over-approximation model generation unit 121 assigns an ID for uniquely identifying the communication packet and a field for holding the number of transfers, and sets an initial value with an appropriate value.
  • An operation step to be converted is inserted (step S1212).
  • the ID is initialized with the serial number of each communication packet and the transfer count is initialized to 0.
  • the excessive approximation model generation unit 121 executes the process of step S1212 for all the operation steps AS11 extracted in step S1211.
  • the over-approximation model generation unit 121 extracts all the operation steps for designating (substituting) the field value of the communication packet from the operation model of the terminal (step S1213).
  • the over-approximation model generation unit 121 replaces the extracted operation step with an operation step that displays what value is assigned to the communication packet as constraint information together with the ID and the number of transfers (step S1214). ).
  • This constraint information is used in the counterexample validity checking unit 14 described later, as is the case with the constraint information that appears later. It should be noted that in step S1214, the operation step to be substituted is replaced with the (only) operation step to be displayed, and as a result, the substitution is not actually performed.
  • the excessive approximation model generation unit 121 executes the process of step S1214 for all the operation steps extracted in step S1213.
  • the over-approximation model generation unit 121 extracts all operation steps for transferring a communication packet from the operation model of the terminal (step S1215).
  • the over-approximation model generation unit 121 inserts an operation step for increasing the number of times of transfer of the communication packet by 1 immediately before the operation step (step S1216). Then, the over-approximation model generation unit 121 executes the process of step S1216 for all the operation steps extracted in step S1215. When a plurality of terminal operation models are individually defined, the over-approximation model generation unit 121 executes the above-described processing for each terminal operation model.
  • FIG. 7 is a flowchart showing the operation of the over-approximation model generation unit of this embodiment (generation of an over-approximation model from the switch operation model).
  • the over-approximation model generation unit 121 extracts an operation step (corresponding to SS2 in FIG. 3) for searching for an entry having a matching condition that matches the received communication packet P from the switch operation model. (Step S1220).
  • the over-approximation model generation unit 121 replaces the extracted operation step with an operation step of selecting an arbitrary entry regardless of the match condition or an operation step of determining that there is no entry that matches the match condition (step S1221). . Further, immediately after the replaced operation step, the over-approximation model generation unit 121 inserts an operation step that displays constraint information together with the ID and transfer count of the communication packet (step S1222). When the previous step S1221 is replaced with an operation step of selecting an arbitrary processing rule regardless of the match condition, an operation step for displaying the match condition of the entry is inserted as constraint information. In addition, when the previous step S1221 is replaced with an operation step that determines that there is no processing rule that matches the match condition, an operation step that displays the match condition that is determined not to match the match conditions of all the entries as constraint information. Inserted.
  • the over-approximation model generation unit 121 extracts an operation step sequence ASS21 that requests an entry from the controller from the switch operation model (step S1223). Then, the over-approximation model generation unit 121 displays, as constraint information, at the head of the extracted operation step sequence that the header field of the communication packet transferred at the time of the request from the controller has the same value as the previous transfer. An operation step is inserted (step S1224).
  • the over-approximation model generation unit 121 extracts an operation step sequence ASS22 that applies the action set in the entry to the communication packet P from the operation model of the switch (S1225).
  • the excessive approximation model generation unit 121 extracts all operation steps for rewriting (substituting) the values of the header field from the extracted operation step sequence (step S1226).
  • the over-approximation model generation unit 121 replaces the extracted operation step with an operation step that displays constraint information together with the ID of the communication packet and the number of transfers (step S1227).
  • the constraint information here is a value that is substituted into the communication packet P by the rewriting (substitution) action of the header field value.
  • the over-approximation model generation unit 121 executes the process of step S1227 for all the operation steps extracted in step S1226. Note that in step S1227, the operation step for rewriting (assigning) the value of the header field is replaced with an operation step for displaying (only) the constraint information, and as a result, no assignment is actually performed. .
  • the over-approximation model generation unit 121 performs an operation step of displaying the constraint information immediately before the operation of transferring the communication packet in the operation step sequence extracted in step S1225 (or the end of the operation step sequence if it does not exist). It is inserted (step S1228).
  • the constraint information here is that each of the header fields whose value is not rewritten (assigned) when the header field value is rewritten (assigned), the field has the same value as the previous transfer of the communication packet. It becomes contents.
  • the over-approximation model generation unit 121 extracts all operation steps for transferring communication packets from the switch operation model (step S1229). Further, the over-approximation model generation unit 121 inserts an operation step for increasing the number of times of transfer of the communication packet by 1 immediately before the extracted operation step (step S122A). The excessive approximation model generation unit 121 executes the process of step S122A for all the operation steps extracted in step S1229. When a plurality of switch operation models are individually defined, the over-approximation model generation unit 121 executes the above-described process for each operation model.
  • FIG. 8 is a flowchart showing the operation of the over-approximation model generation unit of this embodiment (generation of an over-approximation model from the operation model of the controller).
  • the over-approximation model generation unit 121 extracts an operation step sequence ASS31 that performs a process corresponding to an entry request from the switch from the operation model of the controller (step S1230).
  • the over-approximation model generation unit 121 selects one of the extracted operation step sequences, and extracts all operation steps (assignment statements) for assigning variables according to the execution order (step S1231). Then, the over-approximation model generating unit 121 refers to the assignment source (the right side of the assignment statement) of the extracted operation step, and when a variable is used, the number of substitutions of the variable is added to the end of the variable name. The new variable name is substituted (step S1232).
  • variable assignment count is always stored for each variable throughout this process.
  • the over-approximation model generation unit 121 refers to the assignment destination of the operation step (the left side of the assignment statement), increments the number of substitutions of the used variable by 1, and sets the number of substitutions of the variable at the end of the variable name
  • the new variable name is substituted (step S1233).
  • the over-approximation model generation unit 121 inserts an operation step for displaying the contents as constraint information immediately after the operation step (replaced assignment statement) obtained in step S1233 (step S1234).
  • the over-approximation model generation unit 121 executes the processing of steps S1232 to 1234 for all the operation steps extracted in step S1231.
  • the over-approximation model generation unit 121 extracts an operation step for receiving the communication packet P transferred from the switch from the operation step sequence selected in Step S1231 (Step S1235). Then, the over-approximation model generation unit 121 sets the field of which communication packet in the operation step sequence as the constraint information together with the ID and the transfer count of the communication packet transferred from the switch immediately after the extracted operation step. An operation step for displaying whether or not is referred is inserted (step S1236).
  • the over-approximation model generation unit 121 extracts an operation step that returns a response to the switch from the operation step sequence selected in Step S1231 (Step S1237). Then, the over-approximation model generation unit 121 inserts an operation step of increasing the number of times of transfer of the communication packet transferred from the switch by 1 immediately before the extracted operation step (step S1238). In addition, immediately after the operation step inserted in step S1238, the over-approximate model generation unit 121 uses any value in the header field as a response to the switch as constraint information together with the ID and the transfer count of the communication packet. An operation step for displaying whether to transfer a packet is inserted (S1239).
  • the over-approximation model generation unit 121 executes the processing of steps S1231 to 1239 for all the operation step sequences extracted in step S1230. In addition, when a plurality of controller operation models are individually defined, the over-approximation model generation unit 121 executes the above-described process for each operation model.
  • the over-approximation model generation unit 121 generates the over-approximation model D12 of the entire network by performing the above-described processing on the operation models of all terminals, switches, and controllers.
  • the model checking execution unit 13 performs model checking on the verification code D13 generated by the verification code generating unit 12, and generates a success / failure property D14 and a counterexample D15 when the property is not satisfied ( Step S14).
  • model checking is often terminated when one counterexample is detected, but the model checking execution unit 13 of this embodiment does not end model checking even if one counterexample is detected. Perform model checking until a counterexample is detected.
  • the constraint satisfaction problem generating unit 141 of the counterexample validity checking unit 14 first generates the constraint satisfaction problem D16 from the counterexample D15 (step S15).
  • the constraint satisfaction problem solving unit 142 finds the solution D17 by solving the constraint satisfaction problem D16 (step S16).
  • the constraint satisfaction problem generation unit 141 extracts all the contents displayed as constraint information by the processing of the verification code generation unit 12 in the counterexample D15, and converts them into expressions of constraint satisfaction problems, respectively. Thus, the constraint satisfaction problem D16 is generated.
  • the constraint satisfaction problem solving unit 142 passes the result to the verification result output unit 15 in combination with the counter example D15 obtained from the solution D17.
  • the verification result output unit 15 states that the network satisfies the property. Output the result.
  • step S17 The user confirms the result output in step S17 (step S18).
  • the verification code generation unit 12 generates a model in which the operation of the OpenFlow network is excessively approximated so as not to handle the specific value of the field of the communication packet. Generate verification code to verify that the model meets the properties. Then, the model checking execution unit 13 executes model checking using the verification code, so that efficient model checking is performed without having to consider the difference in the contents of the packets transmitted by the terminals in the OpenFlow network. Is done. Further, when the result of the model check indicates that the over-approximation model does not satisfy the property, the counter-example validity checking unit 14 determines whether the counter-example obtained is also present in the original operation of the OpenFlow network. It can be confirmed efficiently. As a result, exhaustive verification of the OpenFlow network can be performed efficiently, and defects can be detected without omission.
  • the verification information input unit 11 includes verification information D11 that defines operation models of all terminals and network devices constituting the network and their connection relations, and properties that the network should satisfy. Is accepted as input.
  • the behavior model is composed of a plurality of sequential operation steps.
  • FIG. 9 is an example of the minimum operation model of the network device assumed in the second embodiment of the present invention.
  • the network device waits for reception of the communication packet P (step SN1). When the network device receives the packet, the entry that matches the destination of the received packet P from the entries that have been set and installed in the own device.
  • Step SN2 if there is an entry that matches the destination of the received packet, the processing content defined in the entry is executed (step SN3). On the other hand, if there is no entry that matches the destination of the received packet P, the network device executes processing set and implemented as a default operation (step SN4).
  • the network device includes at least the operation of repeating the above.
  • the over-approximation model generation unit 121 first generates an over-approximation model D12 from the verification information D11 (step S12), and then the over-approximation model conversion unit 122 converts the over-approximation model D12 into the verification code D13. (Step S13).
  • the over-approximation model D12 is generated by referring to each of the operation models of the terminal and the network device defined by the verification information D11. Since the generation process of the over-approximation model D12 from the operation model of the terminal is the same as that of the first embodiment of the present invention, the description thereof is omitted.
  • FIG. 10 is a flowchart showing the operation of the over-approximation model generation unit of this embodiment (generation of an over-approximation model from the operation model of the network device).
  • the over-approximation model generation unit 121 extracts an operation step (corresponding to SN2 in FIG. 9) for searching for an entry that matches the destination of the received communication packet P from the operation model of the network device. (Step S2220).
  • the over-approximation model generation unit 121 selects the extracted operation step as an operation step of selecting an entry regardless of the destination or the like of the communication packet P or an operation step of determining that there is no entry that matches the destination or the like of the communication packet P. Replace (step S2221). Furthermore, immediately after the replaced operation step, the over-approximation model generation unit 121 inserts an operation step that displays constraint information together with the ID and transfer count of the communication packet (step S2222).
  • an operation step for displaying conditions such as the destination of the entry is inserted as constraint information.
  • the over-approximation model generation unit 121 extracts an operation step sequence ASS41 for executing the processing content set in the entry in the communication packet P from the operation model of the network device (S2223).
  • the over-approximation model generation unit 121 extracts all operation steps for rewriting (substituting) the values of the header field from the extracted operation step sequence (step S2224).
  • the over-approximation model generation unit 121 replaces the extracted operation step with an operation step that displays constraint information together with the ID of the communication packet and the number of transfers (step S2225).
  • the constraint information here is a value that is substituted into the communication packet P by rewriting (substituting) the value of the header field.
  • the over-approximation model generation unit 121 executes the process of step S2225 for all the operation steps extracted in step S2224. Note that in step S2225, the operation step for rewriting (substitution) of the header field value is replaced with the operation step for displaying (only) the constraint information, and as a result, the assignment is not actually performed. .
  • the over-approximation model generation unit 121 is constrained to immediately before the operation of transferring the communication packet in the operation step sequence extracted in step S1225 (or to the end of the operation step sequence if there is no operation to transfer the communication packet).
  • An operation step for displaying information is inserted (step S2226).
  • the constraint information here is the same value for each header field that is not rewritten (assigned) when the value of the header field is rewritten (assigned). It becomes the contents.
  • the over-approximation model generation unit 121 executes the processing of steps S2224 to S2226 for all the operation step sequences extracted in step S2223.
  • the over-approximation model generation unit 121 extracts all operation steps for transferring communication packets from the operation model of the network device (step S2227). Further, the over-approximation model generation unit 121 inserts an operation step for increasing the number of times of transfer of the communication packet by 1 immediately before the extracted operation step (step S2228). The excessive approximation model generation unit 121 executes the process of step S2228 for all the operation steps extracted in step S2227. When a plurality of operation models of network devices are individually defined, the over-approximation model generation unit 121 executes the above-described process for each operation model.
  • the verification code generation unit 12 of the network verification device 1 generates a model that approximates the network operation so as not to handle the specific value of the field of the communication packet. Generate verification code to verify whether the approximate model satisfies the properties. Then, the model checking execution unit 13 executes model checking using the verification code, thereby performing efficient model checking that does not need to consider the difference in the contents of packets transmitted by the terminals in the network. . In the model check, if a result that the over-approximation model does not satisfy the property is obtained, the counterexample validity checking unit 14 checks whether the counterexample also exists in the original operation of the target network.
  • FIG. 11 is a diagram showing a configuration of a network verification device according to the third exemplary embodiment of the present invention.
  • the verification information input unit 31 of the present embodiment includes a verification information receiving unit 311 and a verification information template providing unit 312.
  • the verification information receiving unit 311 receives, as an input, verification information D11 that defines operation models of all terminals, switches, controllers, network devices, and the like constituting the network and their connection relations and properties to be satisfied by the network. .
  • the verification information template providing unit 312 When the verification information template providing unit 312 accepts input of verification information from the user, the verification information template providing unit 312 provides a typical template (template) for a part or all of the verification information D11, and the user selects the template, It has a function that can be used as part or all of the verification information D11 and input to the verification information receiving unit 311.
  • template template
  • step S11 of FIG. 5 the user selects some desired templates from the verification information template providing unit 312 and completes the verification information D11 using them, and the verification information receiving unit 311 To enter.
  • the user may create and input verification information D11 without using any template.
  • the other operations are the same as those in the first embodiment of the present invention, and will be omitted.
  • the present embodiment it is possible to reduce the burden required for creating the user verification information D11 when using the network verification device. Furthermore, according to the present embodiment, the efficiency of the entire verification can be improved as a result of reducing the burden on the user.
  • the counterexample validation unit is From the counterexample, a constraint satisfaction problem generating unit that acquires constraint information regarding a constraint to be satisfied when the counterexample is actually executed, and generates a constraint satisfaction problem from the constraint information; By obtaining a solution to the constraint satisfaction problem, a constraint satisfaction problem solving unit that determines whether the counterexample can be executed even in an original operation of the network;
  • a network verification device comprising: [Fourth form]
  • the verification information input unit includes: A network verification apparatus that receives an input of a property of a network to be verified as a part of the verification information from a user.
  • the verification information input unit includes: Provide users with a template that defines typical content for some or all of the verification information, A network verification apparatus that accepts at least a part of the verification information by selecting the template.
  • a network verification apparatus that accepts at least a part of the verification information by selecting the template.

Abstract

 本発明は、ネットワークの網羅的な検証の効率化に貢献する。ネットワーク検証装置は、検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付ける検証情報入力部と、前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成する検証コード生成部と、前記検証コードを用いてモデル検査を実行するモデル検査実行部と、前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認する反例妥当性確認部と、前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力する検証結果出力部と、を含む。

Description

ネットワーク検証装置、ネットワーク検証方法及びプログラム
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2013-009866号(2013年1月23日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、ネットワーク検証装置、ネットワーク検証方法及びプログラムに関し、特に、検証対象のネットワークをモデル化して検証を行うネットワーク検証装置、ネットワーク検証方法及びプログラムに関する。
 ネットワークの運用管理に関して、OpenFlowという技術が注目されている(非特許文献1、2参照)。OpenFlowは、Software-Defined Network(以下、「SDN」)の概念を実現する技術としても注目されている。SDNは、ネットワーク制御をプログラマブルな方法で一元管理するという、ネットワークの分野の新たなパラダイムであり、特にOpenFlowは、ネットワーク運用の自動化・効率化・省電力化等、様々な期待を集めている。
 一方で、OpenFlowでは、ネットワーク制御の柔軟性が増す分、それに伴う不具合の発生が懸念されている。例えば開発者の考慮漏れや、複数のプログラムを組み合わせたことによる不具合が多くなる。そのためOpenFlowネットワークの安定運用には、そのネットワークが安全なものかを事前に検証することが重要となる。例えば、非特許文献3には、モデル検査によりOpenFlowネットワークの状態探索を行う“NICE”というツールが開示されている。非特許文献3によると、“NICE”は、OpenFlowコントローラのプログラムを記号実行し、すべてのコードパスを実行するためのパケットの代表値の集合を求め、それを用いて状態探索を行っている。
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成24(2012)年12月26日検索]、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01)、[online]、[平成24年12月26日検索]、インターネット〈URL:https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.0.0.pdf〉 Marco Caniniほか4名、"A NICE Way to Test OpenFlow Applications"、[online]、[平成25(2013)年1月4日検索]、インターネット〈URL: http://infoscience.epfl.ch/record/170618/files/nsdi-final.pdf〉
 以下の分析は、本発明によって与えられたものである。非特許文献3に代表される手法の問題点は、現実的なコスト(時間及びマシンリソース)で、OpenFlowネットワークの主要な動作を網羅的に検証できないこと、あるいは、(現実的なコストでできないため)網羅的な検証をしないことである。
 例えば、非特許文献3が開示している技術では、OpenFlowコントローラのプログラムのすべてのコードパスを網羅する検証を行うが、前記プログラムが影響を与えるOpenFlowネットワークの動作(OpenFlowスイッチによる通信パケットの転送動作等)を網羅する検証は行われない。そのため、OpenFlowネットワークの主要な動作に関わる不具合が検出できない可能性がある。
 上記の問題点は、非特許文献1、2のOpenFlowに固有のものではなく、SDNと呼ばれるネットワークに共通するものといえる。
 本発明は、SDNに代表されるネットワークの網羅的な検証の効率化に貢献できるネットワーク検証装置、プログラム及び方法を提供することを目的とする。
 第1の視点によれば、検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付ける検証情報入力部と、前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成する検証コード生成部と、前記検証コードを用いてモデル検査を実行するモデル検査実行部と、前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認する反例妥当性確認部と、前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力する検証結果出力部と、を含むネットワーク検証装置が提供される。
 第2の視点によれば、検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付けるステップと、前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成するステップと、前記検証コードを用いてモデル検査を実行するステップと、前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認するステップと、前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力するステップと、を含むネットワーク検証方法が提供される。本方法は、ネットワークのモデル検査を実行するコンピュータという、特定の機械に結びつけられている。
 第3の視点によれば、ネットワークの動作検証を行うコンピュータに、検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付ける処理と、前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成する処理と、前記検証コードを用いてモデル検査を実行する処理と、前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認する処理と、前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、SDNに代表されるネットワークの網羅的な検証の効率化に貢献することが可能となる。
本発明の一実施形態の構成を示す図である。 本発明の第1の実施形態のネットワーク検証装置の構成を示す図である。 非特許文献2のOpenFlowスイッチの最小の動作モデルの一例である。 非特許文献2のOpenFlowコントローラの最小の動作モデルの一例である。 本発明の第1の実施形態のネットワーク検証装置の動作を示すシーケンス図である。 本発明の第1の実施形態のネットワーク検証装置の過大近似モデル生成部の動作(端末の動作モデルからの過大近似モデルの生成)を示す流れ図である。 本発明の第1の実施形態のネットワーク検証装置の過大近似モデル生成部の動作(スイッチの動作モデルからの過大近似モデルの生成)示す流れ図である。 本発明の第1の実施形態のネットワーク検証装置の過大近似モデル生成部の動作(コントローラの動作モデルからの過大近似モデルの生成)を示す流れ図である。 本発明の第2の実施形態において想定するネットワーク機器の最小の動作モデルの一例である。 本発明の第2の実施形態のネットワーク検証装置の過大近似モデル生成部の動作(ネットワーク機器の動作モデルからの過大近似モデルの生成)を示す流れ図である。 本発明の第3の実施形態のネットワーク検証装置の構成を示す図である。
 はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
 本発明は、その一実施形態において、図1に示すように、検証情報入力部11と、検証コード生成部12と、モデル検査実行部13と、反例妥当性確認部14と、検証結果出力部15と、を含むネットワーク検証装置1Aにて実現できる。
 より具体的には、検証情報入力部11は、検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付ける。検証コード生成部12は、前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成する。モデル検査実行部13は、前記検証コードを用いてモデル検査を実行する。前記モデル検査の結果、プロパティ(要求仕様)を満たさない状態があることを示す証拠が見つかった場合、モデル検査実行部13は、反例(counter-example)を出力する。反例妥当性確認部14は、前記反例が、前記ネットワークの本来の動作にも存在するか否かを確認する。そして、検証結果出力部15は、前記モデル検査実行部及び前記反例妥当性確認部14の出力に基づき、検証の結果を出力する。
 上記構成によれば、モデル検査実行部13にて網羅的なモデル検査が行われる。また、反例妥当性確認部14が、モデル検査にて得られた反例の妥当性確認が行われるため、不具合の検出が可能となる。
[第1の実施形態]
 [構成の説明]
 続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態のネットワーク検証装置の構成を示す図である。図2を参照すると、本発明の第1の実施の形態におけるネットワーク検証装置は、検証情報入力部11と、検証コード生成部12と、モデル検査実行部13と、反例妥当性確認部14と、検証結果出力部15と、を含む構成が示されている。また、以下の説明で用いる符号D11~D17は、ネットワーク検証装置の入出力情報や中間コード等を表している(図5参照)。
 また、検証コード生成部12は、後述のように、過大近似モデル生成部121と、過大近似モデル変換部122と、を含む。また、反例妥当性確認部14は、後述のように、制約充足問題生成部141と、制約充足問題解決部142と、を含む。
 検証情報入力部11は検証コード生成部12と接続されている。検証コード生成部12はモデル検査実行部13と接続されている。モデル検査実行部13は反例妥当性確認部14及び検証結果出力部15と接続されている。反例妥当性確認部14は検証結果出力部15と接続されている。
 検証情報入力部11は、検証対象のネットワークを構成するすべての端末、スイッチ及びコントローラの動作モデル並びにこれらの接続関係と、前記ネットワークが満たすべきプロパティと、を定義した検証情報D11を入力として受け付ける。
 ここで、「動作モデル」について説明する。動作モデルは、プリミティブな動作単位である動作ステップを実行しながら遷移を行う状態機械として定義されるものとする。前記動作モデルは、ネットワークを構成する個々の端末、スイッチ及びコントローラについてそれぞれ個別に定義される。ただし、同一の動作を行うもの同士については、同一の動作モデルを参照することで個別の定義を省略してもよい。ネットワーク全体の動作モデルは、前記ネットワークを構成する個々の端末、スイッチ及びコントローラの全動作モデルを合成した動作モデルとして定義される。また、本実施形態では、前記スイッチ及びコントローラの動作モデル並びにこれらの接続関係は非特許文献2のOpenFlowの仕様に則っていることを前提とする。
 図3は、非特許文献2のOpenFlowスイッチの最小の動作モデルの一例である。図3の例では、OpenFlowスイッチは、通信パケットPの受信を待ち(ステップSS1)、パケットを受信すると、コントローラから受信済みのエントリ(フローエントリ)の中から、受信パケットPに適合するマッチ条件を持つエントリを探し(ステップSS2)、受信パケットに適合するマッチ条件を持つエントリがあれば、そのアクションフィールドの内容を実行する(ステップSS3)。ここで、受信パケットPに適合するマッチ条件を持つエントリがない場合、OpenFlowスイッチは、通信パケットPをコントローラに転送すると共にエントリの送信を要求する(ステップSS4)。そして、OpenFlowスイッチは、コントローラの応答を待ち(ステップSS5)、応答内容に応じて処理を実行し(ステップSS6)、それを繰り返す、という動作を最低限包含する(非特許文献2の「3.4 Matching」も参照)。
 図4は、非特許文献2のOpenFlowコントローラの最小の動作モデルの一例である。図4の例では、OpenFlowコントローラは、スイッチからのエントリ要求を待ち(ステップSC1)、スイッチからエントリ要求を受けると、転送されてきた通信パケットPの処理内容を決定する(ステップSC2)。そして、OpenFlowコントローラは、OpenFlowスイッチに、応答として、前記決定した処理内容(フローエントリも含む)を返し(ステップSC3)、以上の処理を繰り返す、という動作を最低限包含する。
 なお、図3、図4は、非特許文献2のOpenFlow Switch Specification Version 1.0.0に規定された動作をモデル化したものであるが、ネットワーク検証装置1が適切に対応できるのであれば、その他のバージョンのOpenFlow仕様に則っていても問題ない。また、検証情報D11において、前記プロパティは必ずしも定義されていなくてもよい。前記プロパティが定義されていない場合、典型的なプロパティを検証することとし、以降はその他の装置も含めて前記典型的なプロパティが検証情報D11に定義されているかのように動作することとすればよい。
 検証コード生成部12は、過大近似モデル生成部121と、過大近似モデル変換部122と、を含む。過大近似モデル生成部121は、検証情報D11から前記ネットワークの動作の過大近似モデルD12を生成する。過大近似モデル変換部122は、過大近似モデルD12が前記プロパティを満たすかを検証する検証コードD13を生成する。
 ここで、「過大近似モデル(Over approximate model)」について説明する。過大近似モデルD12は、その内部において通信パケットのフィールドの具体値を取り扱わないように、即ち、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正することにより、ネットワークの動作を過大近似したモデルである。本実施形態では、スイッチ及びコントローラについて、通信パケットを特定するマッチ条件に依存せずフローエントリを前記通信パケットに適用する動作を行う過大近似モデルD12を生成することになる。
 過大近似モデルD12は、前記動作モデルと同様、プリミティブな動作単位である動作ステップを実行しながら遷移を行う状態機械として定義されるものとする。過大近似モデルD12は、ネットワークを構成する個々の端末、スイッチ及びコントローラについてそれぞれ個別に定義される。ただし、同一の動作を行うもの同士については、同一の過大近似モデルを参照することで個別の定義を省略してもよい。ネットワーク全体の過大近似モデルは、前記ネットワークを構成する個々の端末・スイッチ・コントローラの全過大近似モデルを合成した過大近似モデルとして定義される。本実施形態では、過大近似モデル変換部122は、前記ネットワーク全体の過大近似モデルを用いて検証コードD13を生成する。なお、「過大近似モデル」については、後に動作例を示してより具体的に説明する。
 ここで、「検証コード」について説明する。検証コードD13は、過大近似モデルD12をモデル検査実行部13の入力言語で記述したものである。モデル検査実行部13として、例えばモデル検査ツールSpinを利用するのであれば、検証コードD13は、Spinの入力言語Promelaで過大近似モデルD12を記述したものとなる。
 また、過大近似モデルD12は、それそのものが検証コードD13であってもよい。例えば検証情報D11で定義されている動作モデルがモデル検査実行部13の入力言語で記述されており、前記動作モデルを過大近似モデルD12に変換することで直接的に検証コードD13を生成する構成になっていてもよい。その場合、図2の構成から、過大近似モデル変換部122は不要となるため検証コード生成部12から除外することができる。この場合、過大近似モデル生成部121は生成した過大近似モデルD12を直接モデル検査実行部13に渡すことになる。
 モデル検査実行部13は、検証コードD13を用いてモデル検査を実行し、プロパティの成否D14を出力する。また、前記モデル検査の結果、過大近似モデルD12が前記プロパティを満たさないことが判明した場合、モデル検査実行部13は、その動作の例である反例D15を出力する。なお、このモデル検査は、すべての反例D15が得られるまで実行を続ける。前記のとおり、検証コードD13の元になっている過大近似モデルD12は、通信パケットのフィールドの具体値を取り扱わないので、効率的にモデル検査を実行することが可能である。
 反例妥当性確認部14は、制約充足問題生成部141と、制約充足問題解決部142と、を含む。制約充足問題生成部141は、前記モデル検査により得られた反例D15から、反例D15が前記ネットワークの本来の動作にも存在するかどうか確認するための制約充足問題D16を生成する。
 制約充足問題解決部142は、制約充足問題(Constraint satisfaction problem)D16を解き、解D17を1つ求める。反例D15が前記ネットワークの本来の動作にも存在する場合には解D17が求まり、存在しない場合には解D17は求まらない(解なし)。
 前記モデル検査により反例D15が複数得られた場合、制約充足問題生成部141及び制約充足問題解決部142は、それぞれの反例D15について前述の処理を個別に実行する。例えば反例D15がn個得られた場合、解D17は最大でn個得られる。解D17が求まった場合、解D17が求まった反例D15と組み合わせて検証結果出力部15に渡す。
 モデル検査により反例D15が検出された検証コードD13の元になっている過大近似モデルD12は通信パケットのフィールドの具体値を取り扱わないので、反例D15がどのような通信パケットにより発現するかは、反例D15から直接的には知ることができない。反例妥当性確認部14は、そのために設けられたものであり、反例D15がどのような通信パケットにより発現するか示す具体値を提供する。反例D15を発現させる通信パケットの具体値が存在しない場合、前記ネットワークの本来の動作では反例D15が発現しないことを示している。
 検証結果出力部15は、モデル検査実行部13の出力であるプロパティの成否D14と、反例妥当性確認部14の出力である反例D15及び解D17に基づき、検証の結果を出力する。プロパティの成否D14が偽であり(=過大近似モデルD12が前記プロパティを満たさない)、解D17が1個でも得られた場合、検証結果出力部15は、前記ネットワークが前記プロパティを満たさないという結果を出力すると共に反例D15と及び解D17の組み合わせをすべて出力する。一方、プロパティの成否D14が真である(=過大近似モデルD12が前記プロパティを満たす)場合、検証結果出力部15は、前記ネットワークが前記プロパティを満たすという結果を出力する。また、解D17が1個も得られなかった場合も、検証結果出力部15は、前記ネットワークが前記プロパティを満たすという結果を出力する。
 なお、図2に示したネットワーク検証装置1の各部(処理手段)は、ネットワーク検証装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することができる。
 [動作の説明]
 続いて、本発明の第1の実施形態の動作について詳細に説明する。図5は、本発明の第1の実施形態のネットワーク検証装置の動作を示すシーケンス図である。図5を参照すると、ユーザは、検証情報D11を作成し、検証情報入力部11に入力する(ステップS11)。
 検証コード生成部12では、まず過大近似モデル生成部121が検証情報D11から過大近似モデルD12を生成し(ステップS12)、次に過大近似モデル変換部122が過大近似モデルD12を検証コードD13に変換する(ステップS13)。
 過大近似モデルD12の生成ステップ(ステップS12)では、検証情報D11で定義されている端末、スイッチ及びコントローラの動作モデルのそれぞれを参照し処理を行うことで過大近似モデルD12を生成する。過大近似モデル変換部122が検証コードD13を生成する動作は、モデル検査実行部13の入力言語に依存するが、変換元の過大近似モデルD12は状態機械のような形式で定義されているため、前記入力言語が異なる場合でもその変換方法に本質的な違いは生じない。これは、検証情報D11で定義されている動作モデルがモデル検査実行部13の入力言語で記述されており、前記動作モデルを過大近似モデルD12に変換することで直接的に検証コードD13を生成する構成になっている場合でも同様である。
 ここで、過大近似モデルD12の生成ステップ(ステップS12)における端末の動作モデルの処理に関わる部分について詳細に説明する。図6は、本実施形態の過大近似モデル生成部の動作(端末の動作モデルからの過大近似モデルの生成)を示す流れ図である。図6を参照すると、まず、過大近似モデル生成部121が、端末の動作モデルから、転送する通信パケットを生成(宣言)する動作ステップAS11をすべて抽出する(ステップS1211)。
 そして、過大近似モデル生成部121は、前記抽出した動作ステップの直後に、前記通信パケットにそれを一意に特定するためのIDと転送回数を保持するためのフィールドを付与し、適切な値で初期化する動作ステップを挿入する(ステップS1212)。ここでは前記IDを各通信パケットの通し番号で、転送回数を0で初期化することとするが、前記通信パケットを一意に特定できるのであればこれに限られるものではない。過大近似モデル生成部121は、ステップS1211で抽出したすべての動作ステップAS11について、ステップS1212の処理を実行する。
 次に、過大近似モデル生成部121は、前記端末の動作モデルから、通信パケットのフィールドの値を指定(代入)する動作ステップをすべて抽出する(ステップS1213)。
 そして、過大近似モデル生成部121は、前記抽出した動作ステップを、前記通信パケットにどのような値が代入されるかを前記ID及び前記転送回数と共に制約情報として表示する動作ステップに置き換える(ステップS1214)。この制約情報は、以降登場する制約情報と同様、後述する反例妥当性確認部14において利用される。ステップS1214では、代入する動作ステップを、表示する(だけの)動作ステップに置き換えるので、結果として代入は実際には行われなくなることに注意されたい。過大近似モデル生成部121は、ステップS1213で抽出したすべての動作ステップについて、ステップS1214の処理を実行する。
 最後に、過大近似モデル生成部121は、前記端末の動作モデルから、通信パケットを転送する動作ステップをすべて抽出する(ステップS1215)。
 そして、過大近似モデル生成部121は、前記動作ステップの直前に、前記通信パケットの転送回数を1増やす動作ステップを挿入する(ステップS1216)。そして、過大近似モデル生成部121は、ステップS1215で抽出したすべての動作ステップについて、ステップS1216の処理を実行する。端末の動作モデルが個別に複数定義されている場合は、それぞれ端末の動作モデルについて、過大近似モデル生成部121は、上記処理を実行する。
 続いて、過大近似モデルD12の生成ステップ(ステップS12)におけるスイッチの動作モデルの処理に関わる部分について詳細に説明する。図7は、本実施形態の過大近似モデル生成部の動作(スイッチの動作モデルからの過大近似モデルの生成)を示す流れ図である。図7を参照すると、まず、過大近似モデル生成部121が、スイッチの動作モデルから、受信した通信パケットPに合うマッチ条件を持つエントリを探す動作ステップ(図3のSS2に相当するもの)を抽出する(ステップS1220)。
 過大近似モデル生成部121は、抽出した動作ステップを、前記マッチ条件に拘らず任意のエントリを選択するという動作ステップ又は、前記マッチ条件に合うエントリがないと判断する動作ステップに置き換える(ステップS1221)。さらに、過大近似モデル生成部121は、置き換えた前記動作ステップの直後に、前記通信パケットのID及び転送回数と共に制約情報を表示する動作ステップを挿入する(ステップS1222)。前ステップS1221において、前記マッチ条件に拘らず任意の処理ルールを選択するという動作ステップに置き換えた場合、制約情報として、そのエントリのマッチ条件を表示する動作ステップが挿入される。また、前ステップS1221において、マッチ条件に合う処理ルールがないと判断する動作ステップに置き換えた場合、制約情報として、すべてのエントリのマッチ条件に合わないとされたそのマッチ条件を表示する動作ステップが挿入される。
 次に、過大近似モデル生成部121は、前記スイッチの動作モデルから、コントローラにエントリを要求する動作ステップ列ASS21を抽出する(ステップS1223)。そして、過大近似モデル生成部121は、前記抽出した動作ステップ列の先頭に、制約情報として、コントローラの前記要求の際に転送する通信パケットのヘッダフィールドが前回転送時と同じ値であることを表示する動作ステップを挿入する(ステップS1224)。
 さらに、過大近似モデル生成部121は、前記スイッチの動作モデルから、通信パケットPにエントリに設定されたアクションを適用する動作ステップ列ASS22を抽出する(S1225)。次に、過大近似モデル生成部121は、前記抽出した動作ステップ列から、ヘッダフィールドの値の書き換え(代入)を行う動作ステップをすべて抽出する(ステップS1226)。さらに、過大近似モデル生成部121は、前記抽出した前記動作ステップを、前記通信パケットのID及び前記転送回数と共に制約情報を表示する動作ステップに置き換える(ステップS1227)。ここでの制約情報は、ヘッダフィールドの値の書き換え(代入)アクションによって、通信パケットPに代入される値となる。
 過大近似モデル生成部121は、ステップS1226で抽出したすべての動作ステップについて、ステップS1227の処理を実行する。上記ステップS1227では、ヘッダフィールドの値の書き換え(代入)を行う動作ステップを、制約情報を表示する(だけの)動作ステップに置き換えるので、結果として代入は実際には行われなくなることに注意されたい。
 次に、過大近似モデル生成部121は、ステップS1225で抽出した動作ステップ列内で通信パケットを転送する動作の直前(存在しない場合は前記動作ステップ列の最後)に制約情報を表示する動作ステップを挿入する(ステップS1228)。ここでの制約情報は、上記ヘッダフィールドの値の書き換え(代入)時に値の書き換え(代入)が行われないヘッダフィールドのそれぞれについて、そのフィールドが前記通信パケットの前回転送時と同じ値であるという内容となる。
 次に、過大近似モデル生成部121は、前記スイッチの動作モデルから、通信パケットを転送する動作ステップをすべて抽出する(ステップS1229)。さらに、過大近似モデル生成部121は、前記抽出した動作ステップの直前に、前記通信パケットの転送回数を1増やす動作ステップを挿入する(ステップS122A)。過大近似モデル生成部121は、ステップS1229で抽出したすべての動作ステップについて、ステップS122Aの処理を実行する。また、スイッチの動作モデルが個別に複数定義されている場合、過大近似モデル生成部121は、各動作モデルについて、上述の処理を実行する。
 続いて、過大近似モデルD12の生成ステップ(ステップS12)におけるコントローラの動作モデルの処理に関わる部分について詳細に説明する。図8は、本実施形態の過大近似モデル生成部の動作(コントローラの動作モデルからの過大近似モデルの生成)を示す流れ図である。図8を参照すると、まず、過大近似モデル生成部121が、コントローラの動作モデルから、スイッチからのエントリ要求への対応処理を行う動作ステップ列ASS31を抽出する(ステップS1230)。
 次に、過大近似モデル生成部121は、前記抽出した動作ステップ列を1つ選択し、その実行順序に従い、変数に代入を行う動作ステップ(代入文)をすべて抽出する(ステップS1231)。そして、過大近似モデル生成部121は、前記抽出した動作ステップの代入元(代入文の右辺)を参照し、変数が用いられている場合には、その変数の代入回数を、変数名の最後に付与した新たな変数名に置き換える(ステップS1232)。
 なお、変数の代入回数はこの処理全体を通して変数毎に常に記憶しておくものとする。ここでは変数の代入回数の初期値は0であるとするが、一意に特定できるのであればこれに限定されるものではない。例えばx=x+1という動作ステップが抽出され、xの代入回数がその時点で0回であれば、過大近似モデル生成部121は、x=x+1という動作ステップをx=x0+1と置き換える。
 次に、過大近似モデル生成部121は、動作ステップの代入先(代入文の左辺)を参照し、用いられている変数の代入回数を1増加し、その変数の代入回数を変数名の最後に付与した新たな変数名に置き換える(ステップS1233)。例えば先程の例でx=x0+1に置き換えた動作ステップは、x1=x0+1とさらに置き換えられる。
 さらに、過大近似モデル生成部121は、ステップS1233で得られた動作ステップ(置き換えた代入文)の直後に、制約情報としてその内容を表示する動作ステップを挿入する(ステップS1234)。
 過大近似モデル生成部121は、ステップS1231で抽出したすべての動作ステップについて、ステップS1232~1234の処理を実行する。
 次に、過大近似モデル生成部121は、ステップS1231で選択した動作ステップ列からスイッチから転送されてきた通信パケットPを受信する動作ステップを抽出する(ステップS1235)。そして、過大近似モデル生成部121は、前記抽出した動作ステップの直後に、スイッチから転送されてきた通信パケットのID及び転送回数と共に、制約情報として、前記動作ステップ列内において、どの通信パケットのフィールドが参照されるかを表示する動作ステップを挿入する(ステップS1236)。
 さらに、過大近似モデル生成部121は、ステップS1231で選択した動作ステップ列から、スイッチに応答を返す動作ステップを抽出する(ステップS1237)。そして、過大近似モデル生成部121は、前記抽出した動作ステップの直前に、スイッチから転送されてきた通信パケットの転送回数を1増やす動作ステップを挿入する(ステップS1238)。加えて、過大近似モデル生成部121は、ステップS1238で挿入した動作ステップの直後に、前記通信パケットのID及び転送回数と共に制約情報として、スイッチへの応答としてヘッダフィールドにどのような値を持つ通信パケットを転送するかを表示する動作ステップを挿入する(S1239)。
 過大近似モデル生成部121は、ステップS1230で抽出したすべての動作ステップ列について、ステップS1231~1239の処理を実行する。また、コントローラの動作モデルが個別に複数定義されている場合、過大近似モデル生成部121は、各動作モデルについて、上述の処理を実行する。
 なお、上述した端末、スイッチ及びコントローラの各動作モデルに実施する処理の順序には特に制限はない。検証情報D11で定義されている順序に従って処理を実施してもよいし、特定の順序に並び替えてから処理を実施してもよい。すべての端末、スイッチ及びコントローラの動作モデルについて前記処理を実施することで、過大近似モデル生成部121は、ネットワーク全体の過大近似モデルD12を生成する。
 モデル検査実行部13は、検証コード生成部12で生成された検証コードD13に対してモデル検査を実行し、プロパティの成否D14と、前記プロパティが満たされない場合には反例D15と、を生成する(ステップS14)。
 通常のモデル検査では反例を1つ検出した時点でモデル検査を終了する場合が多いが、本実施形態のモデル検査実行部13は、反例を1つ検出してもモデル検査を終了せず、すべての反例を検出するまでモデル検査を実行する。
 反例D15が検出されると、まず反例妥当性確認部14の制約充足問題生成部141が反例D15から制約充足問題D16を生成する(ステップS15)。次に、制約充足問題解決部142が、制約充足問題D16を解くことでその解D17を求める(ステップS16)。
 より具体的には、制約充足問題生成部141は、反例D15内の、検証コード生成部12の処理により制約情報として表示されている内容をすべて抽出し、それぞれ制約充足問題の式に変換することで、制約充足問題D16を生成する。制約充足問題解決部142は、その解D17が求まった場合、解D17が求まった反例D15と組み合わせて検証結果出力部15に渡す。
 検証結果出力部15は、モデル検査実行部13の出力であるプロパティの成否D14と、反例妥当性確認部14の出力である反例D15及び解D17に基づき、検証の結果を出力する(ステップS17)。プロパティの成否D14が偽であり(=過大近似モデルD12が前記プロパティを満たさない)、解D17が1個でも得られた場合、検証結果出力部15は、前記ネットワークが前記プロパティを満たさないという結果を出力すると共に反例D15と及び解D17の組み合わせをすべて出力する。
 プロパティの成否D14が真である(=過大近似モデルD12が前記プロパティを満たす)場合か、解D17が1個も得られなかった場合、検証結果出力部15は、前記ネットワークが前記プロパティを満たすという結果を出力する。
 ユーザは、ステップS17で出力された結果を確認する(ステップS18)。
 以上説明したように、本実施形態のネットワーク検証装置1は、検証コード生成部12で、通信パケットのフィールドの具体値を取り扱わないようOpenFlowネットワークの動作を過大近似したモデルを生成し、前記過大近似モデルがプロパティを満たすか検証する検証コードを生成する。そして、そのモデル検査実行部13が前記検証コードを用いてモデル検査を実行することで、前記OpenFlowネットワーク内の端末が送信するパケットの内容の違いを考慮する必要のない効率的なモデル検査が実施される。また、前記モデル検査において前記過大近似モデルが前記プロパティを満たさないという結果が出た場合、反例妥当性確認部14により、得られた反例が前記OpenFlowネットワークの本来の動作にも存在するかどうかを効率よく確認できる。これにより、OpenFlowネットワークの網羅的な検証が効率的に実施可能になり、不具合を漏れなく検出することができる。
[第2の実施形態]
 続いて、OpenFlowネットワーク以外のネットワークの検証動作を行う本発明の第2の実施形態について図面を参照して詳細に説明する。以下、前記第1の実施形態と同様の部分は省略し、異なる部分についてのみ説明する。
 [構成の説明]
 再度、図2を参照して、本発明の第2の実施形態の構成について詳細に説明する。本発明の第2の実施形態の検証情報入力部11は、ネットワークを構成するすべての端末・ネットワーク機器の動作モデル及びそれらの接続関係と、前記ネットワークが満たすべきプロパティと、を定義した検証情報D11を入力として受け付ける。前記動作モデルは、複数の逐次的な動作ステップにより構成されるものとする。図9は、本発明の第2の実施形態において想定するネットワーク機器の最小の動作モデルの一例である。図9の例では、ネットワーク機器は、通信パケットPの受信を待ち(ステップSN1)、パケットを受信すると、自装置に設定・実装済みのエントリの中から、受信パケットPの宛先等に適合するエントリを探し(ステップSN2)、受信パケットの宛先等に適合するエントリがあれば、そのエントリに定められた処理内容を実行する(ステップSN3)。一方、受信パケットPの宛先等に適合するエントリがない場合、ネットワーク機器は、デフォルトの動作として設定・実装されている処理を実行する(ステップSN4)。ネットワーク機器は、以上を繰り返す、という動作を最低限包含する。
 [動作の説明]
 次に、図2及び図5を参照して、本発明の第2の実施形態の動作について詳細に説明する。検証コード生成部12では、まず過大近似モデル生成部121が検証情報D11から過大近似モデルD12を生成し(ステップS12)、次に過大近似モデル変換部122が過大近似モデルD12を検証コードD13に変換する(ステップS13)。
 過大近似モデルD12の生成ステップ(ステップS12)では、検証情報D11で定義されている端末及びネットワーク機器の動作モデルのそれぞれを参照し処理を行うことで過大近似モデルD12を生成する。前記端末の動作モデルからの過大近似モデルD12の生成処理は本発明の第1の実施形態と同様のため省略する。
 続いて、過大近似モデルD12の生成ステップ(ステップS12)におけるネットワーク機器の動作モデルの処理に関わる部分について詳細に説明する。図10は、本実施形態の過大近似モデル生成部の動作(ネットワーク機器の動作モデルからの過大近似モデルの生成)を示す流れ図である。図10を参照すると、まず、過大近似モデル生成部121が、ネットワーク機器の動作モデルから、受信した通信パケットPの宛先等に合うエントリを探す動作ステップ(図9のSN2に相当するもの)を抽出する(ステップS2220)。
 過大近似モデル生成部121は、抽出した動作ステップを、通信パケットPの宛先等に拘らずエントリを選択するという動作ステップ又は、前記通信パケットPの宛先等に合うエントリがないと判断する動作ステップに置き換える(ステップS2221)。さらに、過大近似モデル生成部121は、置き換えた前記動作ステップの直後に、前記通信パケットのID及び転送回数と共に制約情報を表示する動作ステップを挿入する(ステップS2222)。前ステップS2221において、前記通信パケットPの宛先等に拘らず任意のエントリを選択するという動作ステップに置き換えた場合、制約情報として、そのエントリの宛先等の条件を表示する動作ステップが挿入される。また、前ステップS2221において、通信パケットPの宛先等に合うエントリがないと判断する動作ステップに置き換えた場合、制約情報として、すべてのエントリの条件に合わないとされたその条件を表示する動作ステップが挿入される。
 次に、過大近似モデル生成部121は、前記ネットワーク機器の動作モデルから、通信パケットPにエントリに設定された処理内容を実行する動作ステップ列ASS41を抽出する(S2223)。次に、過大近似モデル生成部121は、前記抽出した動作ステップ列から、ヘッダフィールドの値の書き換え(代入)を行う動作ステップをすべて抽出する(ステップS2224)。さらに、過大近似モデル生成部121は、前記抽出した前記動作ステップを、前記通信パケットのID及び前記転送回数と共に制約情報を表示する動作ステップに置き換える(ステップS2225)。ここでの制約情報は、ヘッダフィールドの値の書き換え(代入)によって、通信パケットPに代入される値となる。
 過大近似モデル生成部121は、ステップS2224で抽出したすべての動作ステップについて、ステップS2225の処理を実行する。上記ステップS2225では、ヘッダフィールドの値の書き換え(代入)を行う動作ステップを、制約情報を表示する(だけの)動作ステップに置き換えるので、結果として代入は実際には行われなくなることに注意されたい。
 次に、過大近似モデル生成部121は、ステップS1225で抽出した動作ステップ列内で通信パケットを転送する動作の直前(通信パケットを転送する動作が存在しない場合は前記動作ステップ列の最後)に制約情報を表示する動作ステップを挿入する(ステップS2226)。ここでの制約情報は、上記ヘッダフィールドの値の書き換え(代入)時に値の書き換え(代入)が行われないヘッダフィールドのそれぞれについて、そのフィールドが前記通信パケットの前回の転送時と同じ値であるという内容となる。
 過大近似モデル生成部121は、ステップS2223で抽出したすべての動作ステップ列について、ステップS2224~S2226の処理を実行する。
 次に、過大近似モデル生成部121は、前記ネットワーク機器の動作モデルから、通信パケットを転送する動作ステップをすべて抽出する(ステップS2227)。さらに、過大近似モデル生成部121は、前記抽出した動作ステップの直前に、前記通信パケットの転送回数を1増やす動作ステップを挿入する(ステップS2228)。過大近似モデル生成部121は、ステップS2227で抽出したすべての動作ステップについて、ステップS2228の処理を実行する。また、ネットワーク機器の動作モデルが個別に複数定義されている場合、過大近似モデル生成部121は、各動作モデルについて、上述の処理を実行する。
 以上のように、第2の実施形態においても、ネットワーク検証装置1の検証コード生成部12が、通信パケットのフィールドの具体値を取り扱わないようネットワークの動作を過大近似したモデルを生成し、前記過大近似モデルがプロパティを満たすか検証する検証コードを生成する。そして、モデル検査実行部13が、前記検証コードを用いてモデル検査を実行することで、前記ネットワーク内の端末が送信するパケットの内容の違いを考慮する必要のない効率的なモデル検査を実施する。前記モデル検査において、前記過大近似モデルが前記プロパティを満たさないという結果が出た場合、反例妥当性確認部14が、反例が対象ネットワークの本来の動作にも存在するかどうかを確認する。
 従って、本実施形態によれば、OpenFlowネットワーク以外のネットワークについても、効率的に網羅的な検証を実施し、不具合を漏れなく検出することができる。
[第3の実施形態]
 続いて、上記第1、第2の実施形態のユーザインタフェースに改良を加えた本発明の第3の実施形態について図面を参照して詳細に説明する。以下、前記第1の実施形態と同様の部分は省略し、異なる部分についてのみ説明する。
 [構成の説明]
 図11は、本発明の第3の実施形態のネットワーク検証装置の構成を示す図である。本実施形態の検証情報入力部31は、検証情報受付部311と、検証情報雛形提供部312と、を含む。検証情報受付部311は、ネットワークを構成するすべての端末、スイッチ、コントローラ、ネットワーク機器等の動作モデル及びそれらの接続関係と、前記ネットワークが満たすべきプロパティと、を定義した検証情報D11を入力として受け付ける。
 検証情報雛形提供部312は、ユーザから検証情報の入力を受け付ける際、検証情報D11の一部あるいは全部について典型的な雛形(テンプレート)を提供し、ユーザが前記雛形を選択することで、それを検証情報D11の一部あるいは全部として利用し、検証情報受付部311に入力することが可能な機能を備える。
 [動作の説明]
 ユーザは、図5のステップS11において、検証情報D11を作成する際、検証情報雛形提供部312から所望の雛形をいくつか選択し、それらを用いて検証情報D11を完成させ、検証情報受付部311に入力する。もちろん、第1の実施形態と同様に、ユーザが雛形を全く用いずに検証情報D11を作成して入力してもよい。その他の動作は、本発明の第1の実施形態と同様のため省略する。
 以上のように、本実施形態によれば、ネットワーク検証装置を利用する際の、ユーザの検証情報D11の作成に要する負担を軽減することができる。さらに、本実施形態によれば、前記ユーザの負担軽減の結果として、検証全体の効率を向上させることもできる。
 以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示した装置の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
 最後に、本発明の好ましい形態を要約する。
[第1の形態]
 (上記第1の視点によるネットワーク検証装置参照)
[第2の形態]
 第1の形態のネットワーク検証装置において、
 前記検証対象のネットワークに、OpenFlowスイッチと、OpenFlowコントローラとが含まれ、前記検証情報には、OpenFlowスイッチとOpenFlowコントローラの動作モデルが定義されているネットワーク検証装置。
[第3の形態]
 第1又は第2の形態のネットワーク検証装置において、
 前記反例妥当性確認部は、
 前記反例から、前記反例が実際に実行される際に満たされるべき制約に関する制約情報を取得して、前記制約情報から制約充足問題を生成する制約充足問題生成部と、
 前記制約充足問題の解を求めることで、前記反例がネットワークの本来の動作でも実行可能かどうか判断する制約充足問題解決部と、
 を備えるネットワーク検証装置。
[第4の形態]
 第1から第3いずれか一の形態のネットワーク検証装置において、
 前記検証情報入力部は、
 ユーザから、前記検証情報の一部として、検証対象のネットワークのプロパティの入力を受け付けるネットワーク検証装置。
[第5の形態]
 第1から第4いずれか一の形態のネットワーク検証装置において、
 前記検証情報入力部は、
 ユーザに対し、前記検証情報の一部あるいは全部について典型的な内容を定めた雛形を提供し、
 前記雛形の選択により、前記検証情報の少なくとも一部の入力を受け付けるネットワーク検証装置。
[第6の形態]
 (上記第2の視点によるネットワーク検証方法参照)
[第7の形態]
 (上記第3の視点によるプログラム参照)
 なお、上記第6、第7の形態は、第1の形態と同様に、第2~第5の形態に展開することが可能である。
 なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
 1、1A、3 ネットワーク検証装置
 11、31 検証情報入力部
 12 検証コード生成部
 13 モデル検査実行部
 14 反例妥当性確認部
 15 検証結果出力部
 121 過大近似モデル生成部
 122 過大近似モデル変換部 
 141 制約充足問題生成部
 142 制約充足問題解決部
 311 検証情報受付部
 312 検証情報雛形提供部

Claims (7)

  1.  検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付ける検証情報入力部と、
     前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成する検証コード生成部と、
     前記検証コードを用いてモデル検査を実行するモデル検査実行部と、
     前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認する反例妥当性確認部と、
     前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力する検証結果出力部と、
     を含むネットワーク検証装置。
  2.  前記検証対象のネットワークに、OpenFlowスイッチと、OpenFlowコントローラとが含まれ、前記検証情報には、OpenFlowスイッチとOpenFlowコントローラの動作モデルが定義されている請求項1のネットワーク検証装置。
  3.  前記反例妥当性確認部は、
     前記反例から、前記反例が実際に実行される際に満たされるべき制約に関する制約情報を取得して、前記制約情報から制約充足問題を生成する制約充足問題生成部と、
     前記制約充足問題の解を求めることで、前記反例がネットワークの本来の動作でも実行可能かどうか判断する制約充足問題解決部と、
     を備える請求項1又は2のネットワーク検証装置。
  4.  前記検証情報入力部は、
     ユーザから、前記検証情報の一部として、検証対象のネットワークのプロパティの入力を受け付ける請求項1から3のいずれか一のネットワーク検証装置。
  5.  前記検証情報入力部は、
     ユーザに対し、前記検証情報の一部あるいは全部について典型的な内容を定めた雛形を提供し、
     前記雛形の選択により、前記検証情報の少なくとも一部の入力を受け付ける請求項1から4のいずれか一のネットワーク検証装置。
  6.  検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付けるステップと、
     前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成するステップと、
     前記検証コードを用いてモデル検査を実行するステップと、
     前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認するステップと、
     前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力するステップと、
     を含むネットワーク検証方法。
  7.  ネットワークの動作検証を行うコンピュータに、
     検証対象のネットワークの構成及びネットワークに含まれる機器の動作モデルを定義した検証情報の入力を受け付ける処理と、
     前記検証情報から、前記ネットワークにおいて、通信パケットを特定するマッチ条件に依存しないよう前記動作モデルを修正した過大近似モデルの検証を行う検証コードを生成する処理と、
     前記検証コードを用いてモデル検査を実行する処理と、
     前記モデル検査において得られる反例が、前記ネットワークの本来の動作にも存在するか否か確認する処理と、
     前記モデル検査実行部及び前記反例妥当性確認部の出力に基づき、検証の結果を出力する処理と、
     を実行させるプログラム。
PCT/JP2014/051240 2013-01-23 2014-01-22 ネットワーク検証装置、ネットワーク検証方法及びプログラム WO2014115759A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/761,993 US20150365290A1 (en) 2013-01-23 2014-01-22 Network verification apparatus, network verification method and program
JP2014558591A JP6295965B2 (ja) 2013-01-23 2014-01-22 ネットワーク検証装置、ネットワーク検証方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013009866 2013-01-23
JP2013-009866 2013-01-23

Publications (1)

Publication Number Publication Date
WO2014115759A1 true WO2014115759A1 (ja) 2014-07-31

Family

ID=51227550

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/051240 WO2014115759A1 (ja) 2013-01-23 2014-01-22 ネットワーク検証装置、ネットワーク検証方法及びプログラム

Country Status (3)

Country Link
US (1) US20150365290A1 (ja)
JP (1) JP6295965B2 (ja)
WO (1) WO2014115759A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018137668A (ja) * 2017-02-23 2018-08-30 Kddi株式会社 ネットワークの検証最適化方法、プログラムおよび装置
CN114860604A (zh) * 2022-05-24 2022-08-05 广州掌动智能科技有限公司 自动识别动态验证码的自动测试方法、系统和存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991588B (zh) * 2015-02-13 2019-05-28 华为技术有限公司 一种防御消息攻击的方法及装置
US10673702B2 (en) * 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers in a network
CN113923143B (zh) * 2020-07-07 2023-04-07 中移(苏州)软件技术有限公司 一种云网络的调整方法、装置以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005218038A (ja) * 2004-02-02 2005-08-11 Nippon Telegr & Teleph Corp <Ntt> ネットワーク検証方法および装置
JP2011232814A (ja) * 2010-04-23 2011-11-17 Nec Corp プログラム検証装置、方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487073B2 (en) * 2003-05-21 2009-02-03 At&T Corp. Using symbolic evaluation to validate models that have incomplete information
EP2408155A4 (en) * 2009-03-09 2015-01-28 Nec Corp OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD
US20120099591A1 (en) * 2010-10-26 2012-04-26 Dell Products, Lp System and Method for Scalable Flow Aware Network Architecture for Openflow Based Network Virtualization
US8964563B2 (en) * 2011-07-08 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Controller driven OAM for OpenFlow
US20140075557A1 (en) * 2012-09-11 2014-03-13 Netflow Logic Corporation Streaming Method and System for Processing Network Metadata
US9036469B2 (en) * 2012-04-26 2015-05-19 Hewlett-Packard Development Company, L.P. Data communication in openflow networks
US9319264B1 (en) * 2012-07-12 2016-04-19 Google Inc. Networking systems with dynamically changing topologies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005218038A (ja) * 2004-02-02 2005-08-11 Nippon Telegr & Teleph Corp <Ntt> ネットワーク検証方法および装置
JP2011232814A (ja) * 2010-04-23 2011-11-17 Nec Corp プログラム検証装置、方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUSUKE HASHIMOTO ET AL.: "Combining Software Model Checking and Test Case Generation", IPSJ JOURNAL, vol. 53, no. 2, 15 February 2012 (2012-02-15), pages 548 - 556 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018137668A (ja) * 2017-02-23 2018-08-30 Kddi株式会社 ネットワークの検証最適化方法、プログラムおよび装置
CN114860604A (zh) * 2022-05-24 2022-08-05 广州掌动智能科技有限公司 自动识别动态验证码的自动测试方法、系统和存储介质

Also Published As

Publication number Publication date
US20150365290A1 (en) 2015-12-17
JP6295965B2 (ja) 2018-03-20
JPWO2014115759A1 (ja) 2017-01-26

Similar Documents

Publication Publication Date Title
JP6295965B2 (ja) ネットワーク検証装置、ネットワーク検証方法及びプログラム
US10574523B2 (en) Systems and methods for cloud-deployments with imperatives
US20140351801A1 (en) Formal verification apparatus and method for software-defined networking
US9405758B2 (en) Method and system for identifying file type
JP6937659B2 (ja) ソフトウェアテスト装置および方法
WO2017017937A1 (ja) 配備装置、配備方法、及び、記録媒体
US7835894B2 (en) System and method for simulating home network
CN104572182A (zh) 一种流应用的配置方法、节点及流计算系统
CN110098959B (zh) 工控协议交互行为的建模方法、装置、系统及存储介质
WO2014168164A1 (ja) ネットワーク検証装置、ネットワーク検証方法及びプログラム
JP2008511898A (ja) ネットワーク管理システムのコンフィギュレーション
WO2017195369A1 (ja) プログラム開発支援装置、列車監視制御装置およびプログラム開発支援方法
JP2016116087A (ja) ネットワーク設計装置及びプログラム
CN116670660A (zh) 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质
JPWO2015107711A1 (ja) 分散環境モデル用モデル検査装置、分散環境モデル用モデル検査方法及びプログラム
US7839849B1 (en) Formatting fields of communication packets
KR20190069637A (ko) 멀티 클라우드 환경에서 동일 방식의 과금 부과 방법 및 시스템
CN109446146B (zh) 一种应用层通信协议的状态转换序列生成方法
KR101690948B1 (ko) 타임라인 기반 항공기 장치의 입출력 이벤트 시나리오를 사용한 소프트웨어 검증 방법 및 이의 시스템
JP7096103B2 (ja) モデル検査用スクリプト変換プログラム、モデル検査プログラム、モデル検査用スクリプト変換装置及びモデル検査装置
JP6367721B2 (ja) テストシナリオを用いたテスト装置および方法
US10210070B2 (en) Model checking apparatus, model checking method, and storage medium
CN110971716A (zh) 地址配置方法、装置、系统和计算机可读存储介质
JP6428768B2 (ja) モデル検査装置、方法及びプログラムを記憶した記憶媒体
CN105683938A (zh) 记录应用测试

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: 14743404

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014558591

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14761993

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14743404

Country of ref document: EP

Kind code of ref document: A1