The embodiments discussed herein are related to a control apparatus, a testing method, a communication system, and a non-transitory computer-readable storage medium.
To determine whether a network is operating normally, a connectivity check may be conducted on a determination target area by causing devices in the network to transmit and receive a test packet.
To check the connectivity of a route from the switch SW1 to the switch SW2, a test control apparatus 2 sets a virtual port used for testing (port test, PT) at the switch SW2. After that, the test control apparatus 2 outputs a test packet P1 to the port 1 of the switch SW1 and determines whether the test control apparatus 2 receives the test packet P1 back from the test port. By receiving the test packet P1 from the test port, the test control apparatus 2 is able to confirm the connectivity from the switch SW1 to the switch SW2, but there is more than one possible forwarding route that the test packet could have taken. In other words, the test packet could have been forwarded via the route denoted by arrow A in the case C1, or could have been forwarded via a different route. For example, assume that filters (test packet filters) are applied to the port 1 of the switch SW1 and the port 18 of the switch SW6 to block output of a test packet through those ports. In such a case, the test packet P1 could have been forwarded via the route denoted by arrow B in a case C2. Thus, the test packet inputted to the switch SW1 through the port 1 and then to the switch SW0 through the port 3 could have been outputted from the switch SW0 through the port 10, and then outputted to the switch SW2 via the switch SW4, the processing device 5b, the switch SW5, and then the switch SW0. Hence, when it is requested to check whether a packet traverses multiple switches in an assumed order, the connectivity check is insufficient, as described with reference to
As a related art, a test control apparatus is known, which controls testing devices distributed in a network and thereby tests the connectivity of a flow of communication that passes through a processing device configured to perform processing designated by a user. The test control apparatus causes a first testing device to transmit a test packet to a first communication device, which is connected to the testing device and upstream of the processing device, and through which the flow passes. Then, from a second communication device which is downstream of the processing device and through which the flow passes, the test control apparatus acquires information on whether the test packet has been received by the second communication device. Examples of the related art include Japanese Laid-open Patent Publication No. 2015-154252.
According to an aspect of the invention, a control apparatus that controls a plurality of packet forwarding devices includes: a communication circuit configured to communicatively couple to the packet forwarding devices over a network; and a processor coupled to the communication circuit and configured to execute configuration processing that includes applying filters for blocking input and output of a test packet to ports associated with the packet forwarding devices, except for one or more ports on an assumed forwarding route in a section targeted for a forwarding status determination, the section starting at a start port which is the port of the packet forwarding device located at a start of the section and ending at an end port which is the port of the packet forwarding device located at an end of the section, and configuring the packet forwarding device located at the end port so that the test packet that arrives at the end port is forwarded to the control apparatus, execute communication processing that includes transmitting the test packet from the communication circuit to the start port, and execute determination processing that includes determining that packet forwarding is performed normally in the section, upon receipt of the test packet via the communication circuit after the transmission of the test packet.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
As explained in the BACKGROUND section, it is difficult to confirm if a packet has traversed multiple switches in an assumed order. A conceivable way to confirm that a test packet is forwarded via an assumed route is to collect trace logs at the respective switches in the network and analyze the trace logs, in addition to conducting the connectivity check using a test packet. However, time stamps on trace logs are not accurate enough to help find out the order in which the test packet has traversed the switches. Such a problem occurs not only when the switches used for packet exchange are physical switches, but also when they are virtual ones.
As one aspect of the present embodiments, provided are solutions for being able to determine whether a packet traverses switches in an assumed order.
In a network depicted in a case C11, switches SW0 to SW6, a communication device 10a, a communication device 10b, a processing device 5a, and a processing device 5b are connected in a manner similar to the network described with reference to the case C1 in
The following describes an example of checking the connectivity of a test-packet forwarding route in the area from the switch SW1 to the switch SW2 in the network of the case C11. Assume that, on the forwarding route expected in this example, a packet is inputted to the switch SW1 through a port 1, outputted from the switch SW1 through a port 2, inputted to the switch SW0 through a port 3, outputted from the switch SW0 through a port 4, and then inputted to the switch SW2 through a port 5. If the test packet is forwarded via this assumed forwarding route, ports 9, 10, 15, and 16 of the switch SW0 are used for neither input nor output of the test packet. In other words, these ports are not on the assumed forwarding route.
Thus, as depicted in a case C12, the control apparatus 20 applies filters to the ports 9, 10, 15, and 16 of the switch SW0 to block both input and output of a test packet through these ports. If a test packet is forwarded via the assumed forwarding route, the test packet is not to be outputted from the port 3 of the switch SW0 and not to be inputted into the port 4 of the switch SW0. Thus, the control apparatus 20 also applies a filter to the port 3 of the switch SW0 to block output of a test packet through the port 3, and also applies a filter to the port 4 of the switch SW0 to block input of a test packet through the port 4. Additionally, as depicted in the case C12, the control apparatus 20 may apply a filter to the port 1 of the switch SW1 to block output of a test packet through the port 1 and a filter to a port 18 of the switch SW6 to block output of a test packet through the port 18.
After thus applying the filters, the control apparatus 20 outputs a test packet to the port 1 of the switch SW1 (see arrow A1). In the example in
When a test packet is to be inputted to or outputted from a port to which a filter is applied to block the input or output, the test packet is dropped at the port. For example, if a test packet is to be outputted from the switch SW0 through the port 3, the test packet is dropped by the effect of the test-packet filter applied to the port 3. A test packet is dropped similarly at the other ports with the filters, so that the test packet will not reach the test port by traversing a device not on the assumed forwarding route.
Hence, upon receipt of the test packet as indicated by arrow A3, the control apparatus 20 determines that the test packet has been forwarded in the expected forwarding route in the area from the switch SW1 to the switch SW2 (see arrow A2).
In the method according to the embodiments, a test packet to be forwarded via an expected forwarding route from the start port to the end port of an area to be checked for connectivity is blocked from being inputted to or outputted from the ports not on the expected forwarding route. Thus, in addition to being able to check connectivity, the method is able to determine if the test packet has been forwarded via the expected forwarding route. In the method according to the methods, the switches on the routes may be physical switches or virtual switches, and the ports of the switches to which filters are applied may be physical ports or virtual ports, although they are not distinguished as to whether they are virtual or physical in the example in
<Configuration of the Apparatus>
The switch configuration table 41 associates the input port and the output port of each switch which are used to forward a packet. The port configuration table 42 identifies a source device and its one-hop destination device to which a packet from the source device is forwarded. Thus, using both the switch configuration table 41 and the port configuration table 42, information on an assumed route to the destination to forward a test packet is identifiable. The assumed route is stored as the route information 43. Specific examples of the switch configuration table 41 and the port configuration table 42 will be given later. The topology information 46 provides information on the connections among the devices in the network.
The transmitter 22 transmits a packet to a device such as a switch. The receiver 23 receives a packet from a device such as a switch. The test controller 31 controls the processing performed by the determiner 32 and the configurer 33 to make a determination on the entire route by conducting a test on each divided area of the route. The configurer 33 applies the test-packet filters using the switch configuration table 41 and the port configuration table 42 as appropriate. The configurer 33 stores information on the applied filters in the storage part 40, as the filter table 44. The route controller 34 determines a packet forwarding route using the topology information 46 and generates the route information 43 indicative of the packet forwarding route. The determiner 32 determines whether forwarding processing has been performed normally in the tested area, and stores the obtained determination result as the test result 45.
When the determination result on connectivity indicates that the network has a failure, the failure location specifier 35 performs processing for specifying the location of the failure. When specifying the location of the failure, the failure location specifier 35 generates an analysis result containing information on the location of the failure, and outputs the result so that the operator may be aware of the result.
Optionally, the control apparatus 20 may have at least one of an input device, an output device, and a portable storage-medium drive device. The input device is any device used to input information, such as a keyboard, and the output device is any device used to output data, such as a display. The portable storage-medium drive device is capable of outputting data in the memory 102 to a portable storage medium and of reading programs, data, and the like from a portable storage medium. The portable storage medium is any storage medium which is portable.
An example of processing performed in a first embodiment is described below, in order of “Descriptions about Example Network and Assumed Forwarding Route”, “Tests for Checking Connectivity”, “Evaluation of Test Results”, and “Test Ending Processing”.
(1) Descriptions about Example Network and Assumed Forwarding Route
The physical switch 50b is connected to the communication device 10b via a physical port 5. The physical switch 50b is connected to the processing device 5a via a physical port 6 and to the processing device 5b via a physical port 10. The physical switch 50c is connected to the communication device 10a via a physical port 8. The physical switch 50c is connected to the processing device 5a via a physical port 7 and to the processing device 5b via a physical port 9.
In the first embodiment, the switch SW0 is implemented by the physical switch 50a. The switches SW1, SW3, and SW5 are implemented by the physical switch 50c, and the switches SW2, SW4, and SW6 are implemented by the physical switch 50b. Thus, the physical port 1 of the switch SW0 operates as a logical port 4, a logical port 10, and a logical port 16, while the physical port 2 of the switch SW0 operates as a logical port 3, a logical port 9, and a logical port 15. Similarly, the physical port 3 of the physical switch 50b operates as a logical port 5, a logical port 11, and logical port 17, while the physical port 4 of the physical switch 50c operates as a logical port 2, a logical port 8, and a logical port 14. As to the physical switch 50c, the physical port 8 operates as a logical port 1, the physical port 7 operates as a logical port 7, and the physical port 9 operates as a logical port 13. As to the physical switch 50b, the physical port 5 operates as a logical port 18, the physical port 6 operates as a logical port 6, and the physical port 10 operates as a logical port 12. Hereinbelow, the logical ports may be simply called “ports”.
In the example described below, the switch SW0 operates as a flow switch, and the switches SW1 to SW6 operate as fabric switches. The flow switch forwards packets between the virtual switches operating as the fabric switches. Each fabric switch forwards packets between the flow switch and the communication device 10 or the processing device 5 connected to the fabric switch. In the example in
In the network in
In the case described below, the route controller 34 configures the switches SW0 to SW6 so that the switches SW0 to SW6 will forward a packet either via the route R1 or in the reverse direction of the route R1, irrespective of the destination or source of the packet. For example, assume that the control apparatus 20 configures the switches using OpenFlow. Then, as a match condition, an input port is designated, but address information is not. To be more specific, as the match condition, wildcards are used for a packet's destination internet protocol (IP) address, source IP address, source media access control (MAC) address, and destination MAC address. As an action for the match condition, an action of outputting a packet and a port used for the output are designated. For example, packet processing rules defined by the route controller 34 for the switch SW1 are as follows.
Processing Rule 1
input port=virtual port 1 Match Condition 1:
Action: Output packet that satisfies Match Condition 1 through virtual port 2.
Processing Rule 2
input port=virtual port 2 Match Condition 2:
Action: Output packet that satisfies Match Condition 2 through virtual port 1.
Route information set by the route controller 34, such as information on the route R1, is stored in the storage part 40 as the route information 43 as appropriate.
The switch configuration table 41 in
For example, in the first entry of the switch configuration table 41, the output destination of a packet inputted to the virtual switch SW1 through the virtual port 1 is set to the virtual port 2. Thus, if the switch SW1 is operating according to the configured setting, a packet inputted to the virtual switch SW1 through the virtual port 1 is outputted from the virtual switch SW1 through the virtual port 2. The isFlowSW flag is set to “false” for this entry because the virtual switch SW1 does not operate as a flow switch. In the second entry, it is recorded that a packet inputted to the virtual switch SW0 through the virtual port 3 is outputted from the virtual switch SW0 through the virtual port 4. Thus, if the switch SW0 is operating according to the configured setting, a packet inputted to the virtual switch SW0 through the virtual port 3 is outputted from the switch SW0 through the virtual port 4. The isFlowSW flag is set to “true” for the second entry because the virtual switch SW0 operates as a flow switch.
The port configuration table 42 in
For example, in the first entry of the port configuration table 42, it is recorded that a packet is forwarded from a port X of the communication device 10a to the virtual port 1 of the virtual switch SW1. Thus, if the forwarding processing is performed according to the configured setting, a packet outputted from the communication device 10a through the port X arrives at the virtual port 1 of the virtual switch SW1. Similarly, in the second entry, it is recorded that a packet is forwarded from the virtual port 2 of the virtual switch SW1 to the virtual port 3 of the virtual switch SW0. Thus, if the forward processing is performed according to the configured setting, a packet outputted from the virtual switch SW1 through the virtual port 2 arrives at the virtual port 3 of the virtual switch SW0.
(2) Tests for Checking Connectivity
Next, a description is given of an example of how connectivity tests are performed using the switch configuration table 41 and the port configuration table 42 having information as depicted in
The test controller 31 identifies the route for which the connectivity check test is requested, and then defines a tested area in the route by applying filters to the flow switch, so that only one route is possible in the tested area. In this regard, the test controller 31 sets the start port of the tested area to the port that receives a packet from the communication device 10 where the route starts. The test controller 31 sets the end port of the tested area so that forwarding processing at the flow switch for which it is yet to be determined whether the forwarding processing is performed according to the configured setting may not be performed more than once. When the end port is set in such a manner, it is possible to determine whether the flow switch performs the assumed forwarding processing and to keep a packet from being forwarded via an unexpected route.
For example, to test the route R1 depicted in
Upon acquisition of the information indicating the area for the packet connectivity test, the configurer 33 determines, using the switch configuration table 41 and the port configuration table 42, ports to apply filters for the connectivity test and the directions (input or output) blocked by the filters on the ports. In this regard, the configurer 33 determines to block all the input and output which are not to be performed if a test packet is forwarded from the start port to the end port of the tested area via the forwarding route to be checked for the connectivity. The configurer 33 records the thus-determined filtering information on the filter table 44. Each entry of the filter table 44 has a virtual port to which a filter for a test packet is applied and the direction in which the test packet is filtered.
The filter table 44 depicted in
Moreover, the configurer 33 sets a test port through which a test packet arriving at the end port is to be forwarded from the end port to the control apparatus 20. The test port is set at the switch having the end port. Since the port 5 is the end port in
The configurer 33 configures the test-packet filtering settings and test-packet forwarding setting described above with reference to
In the IP header, a source IP address and a destination IP address are set. The destination IP address is the IP address allocated to the test port. The source IP address is the IP address used by the control apparatus 20 for transmission of the test packet. The TCP header contains a source port number, a destination port number, and a TCP payload. Any preset fixed values are used as the source port number and the destination port number. The TCP payload contains data of four bites or more, in which padding may be used according to the implementation.
Since the switches and the control apparatus 20 identify a packet as a test packet based on its destination MAC address, the configurer 33 uses the destination MAC address to apply test-packet filters. For instance, if “MACtest” is used as the MAC address for test packets, the configurer 33 may configure the switch SW0 as follows.
Processing Rule 1
destination MAC address=MACtest, and input port=virtual port 3 Condition 1:
Action: Output packet that satisfies Condition 1 through virtual port 4.
Processing Rule 2
destination MAC address=MACtest, and input port=virtual port 4, 9, 10, 15, or 16 Condition 2:
Action: Not receive but drop packet that satisfies Condition 2.
Processing Rule 3
destination MAC address=MACtest, and output port=virtual port 3, 9, 10, 15, or 16 Condition 3:
Action: Not transmit but drop packet that satisfies Condition 3.
The setting for forwarding a test packet from the end port to the test port (hereinafter referred to as test-packet forwarding setting) is also configured using the value of the destination MAC address of the test packet. For instance, the configurer 33 configures the switch SW2 as follows.
destination MAC address=MACtest, and input port=virtual port 5 Condition:
Action: Output packet that satisfies the above condition through the test port TP.
The test port TP is connected to the control apparatus 20 in this example. The example processing rules 1 to 3 defined by the configurer 33 for the switch SW0 concern test packets only, and do not apply to packets other than test packets. Thus, during a connectivity test, packets other than test packets are forwarded via the route defined in the switch configuration table 41 and the port configuration table 42 in
After configuring the test-packet filter settings and the test-port settings, the configurer 33 notifies the determiner 32 of the completion of the settings configuration. Then, the determiner 32 generates a test packet and forwards the test packet to the start port via the transmitter 22. In the example in
If the switch SW1 processes a packet according to the configured setting, a packet inputted to the switch SW1 through the port 1 is outputted from the switch SW1 through the port 2 and arrives at the port 3 of the switch SW0. Since no filter is applied to the port 3 of the switch SW0 to block input of test packets, the switch SW0 receives the test packet and passes it to the port 4. Since no filter is applied to the port 4 to block output of test packets, the test packet is outputted through the port 4 and arrives at the port 5 of the switch SW2. The switch SW2 receives the test packet inputted through the port 5 and outputs the test packet through the test port TP. In this way, if the switch SW1, the switch SW2, and the ports 3 and 4 of the switch SW0 forward the test packet according to their configured settings, the test packet arrives at the test port TP via the forwarding route denoted by arrow A11 and arrow A12 in
Upon receipt of the test packet, the receiver 23 of the control apparatus 20 outputs the test packet to the determiner 32. If receiving the test packet within a predetermined period of time after the transmission of the test packet, the determiner 32 determines that the switches in the tested area are forwarding packets via the assumed route. In the example in
When notified that the forwarding processing is not performed according to the configured settings, the test controller 31 ends the test and transmits, via the transmitter 22, the test result to the terminal manipulated by the operator. Descriptions of the test ending processing and the like will be given later.
On the other hand, when notified that the forwarding processing is performed according to the configured settings, the test controller 31 determines the next tested area. Specifically, the test controller 31 determines the next tested area so that the next tested area may include the area for which it has been determined that packets are forwarded according to the configured settings and so that forwarding processing at the flow switch for which it is yet to be determined whether the forwarding processing is performed according to the configured settings may not be performed more than once. For instance, if it is determined as a result of the test in
Processing Rule 1
destination MAC address=MACtest, and input port=virtual port 3 Condition 1:
Action: Output packet that satisfies Condition 1 through virtual port 4.
Processing Rule 2
destination MAC address=MACtest, and input port=virtual port 9 Condition 2:
Action: Output packet that satisfies Condition 2 through virtual port 10.
Processing Rule 3
destination MAC address=MACtest, and input port=virtual port 4, 10, 15, or 16 Condition 3:
Action: Not receive but drop packet that satisfies Condition 3
Processing Rule 4.
destination MAC address=MACtest, and output port=virtual port 3, 9, 15, or 16 Condition 4:
Action: Not transmit but drop packet that satisfies Condition 4.
The configurer 33 updates the filter table 44 in accordance with the changes on the filters applied to the switch SW0. Also in this case, packets other than test packets are forwarded via the route defined in the switch configuration table 41 and the port configuration table 42 in
In
destination MAC address=MACtest, and input port=virtual port 11 Condition:
Action: Output packet that satisfies the above condition through test port TP.
Arrow A22 denotes the route via which the test packet is forwarded from the port 11 to the test port.
After configuring the test-packet filter settings and the test-port settings, the configurer 33 notifies the determiner 32 of the completion of the settings configuration. Then, the determiner 32 generates a test packet, transmits the test packet to the port 1 of the switch SW1 via the transmitter 22, and records the time of the transmission of the test packet.
By the time the test in
If the test packet is forwarded according to the configured settings after the confirmed route, the test packet inputted to the switch SW2 through the port 5 is outputted from the switch SW2 through the port 6 and arrives at the port 7 of the switch SW3 via the processing device 5a. The test packet inputted to the switch SW3 through the port 7 is outputted from the switch SW3 through the port 8 and arrives at the port 9 of the switch SW0. Since no filter is applied to the port 9 of the switch SW0 to block input of test packets, the switch SW0 receives the test packet and passes it to the port 10. Since no filter is applied to the port 10 to block output of test packets, the test packet is outputted through the port 10 and arrives at the port 11 of the switch SW4.
The switch SW4 receives the test packet inputted thereto through the port 11 and outputs the test packet through the test port TP. In this way, if the switches SW1 to SW4 and the ports 3, 4, 9, and 10 of the switch SW0 forward the test packet according to their configured settings, the test packet arrives at the test port TP via the forwarding route denoted by arrows A21 and A22 in
Upon receipt of the test packet, the receiver 23 of the control apparatus 20 outputs the test packet to the determiner 32. If receiving the test packet within the predetermined period of time after the transmission of the test packet, the determiner 32 determines that the switches SW1 to SW4 and the ports 3, 4, 9, and 10 of the switch SW0 forward packets according to the configured settings. The determiner 32 records the determination result as the test result 45 and notifies the test controller 31 of the determination result.
When notified that the forwarding processing is performed according to the configured settings, the test controller 31 sets the next tested area so that forwarding processing at the flow switch for which it is yet to be determined whether the forwarding processing is performed according to the configured settings may not be performed more than once. For instance, if it is determined as a result of the test in
Processing Rule 1
destination MAC address=MACtest, and input port=virtual port 3 Condition 1:
Action: Output packet that satisfies Condition 1 through virtual port 4.
Processing Rule 2
destination MAC address=MACtest, and input port=virtual port 9 Condition 2:
Action: Output packet that satisfies Condition 2 through virtual port 10.
Processing Rule 3
destination MAC address is MACtest, and input port=virtual port 15 Condition 3:
Action: Output packet that satisfies Condition 3 through virtual port 16.
Processing Rule 4
destination MAC address=MACtest, and input port=virtual port 4, 10, or 16 Condition 4:
Action: Not receive but drop packet that satisfies Condition 4.
Processing Rule 5
destination MAC address=MACtest, and output port=virtual port 3, 9, or 15 Condition 5:
Action: Not transmit but drop packet that satisfies Condition 5.
The configurer 33 updates the filter table 44 in accordance with the changes on the filters applied to the switch SW0.
In
destination MAC address=MACtest, and input port=virtual port 17 Condition:
Action: Output packet that satisfies the above condition through test port TP.
Arrow A32 denotes the route via which the test packet is forwarded from the port 17 to the test port.
By the time the test in
If the test packet is forwarded according to the configured settings after the confirmed route, a packet inputted to the switch SW4 through the port 11 is outputted from the switch SW4 through the port 12 and arrives at the port 13 of the switch SW5 via the processing device 5b. The packet inputted to the switch SW5 through the port 13 is outputted from the switch SW5 through the port 14 and arrives at the port 15 of the switch SW0. Since no filter is applied to the port 15 of the switch SW0 to block input of test packets, the switch SW0 receives the test packet and passes it to the port 16. Since no filter is applied to the port 16 to block output of test packets, the test packet is outputted through the port 16, and arrives at the port 17 of the switch SW6.
The switch SW6 receives the test packet inputted thereto through the port 17 and outputs the test packet through the test port TP. In this way, if the switches SW1 to SW6 and all the ports of the switch SW0 forward the test packet according to their configured settings, the test packet arrives at the test port TP via the forwarding route denoted by arrows A31 and A32 in
Upon receipt of the test packet, the receiver 23 of the control apparatus 20 outputs the test packet to the determiner 32. If receiving the test packet within a predetermined period of time after the transmission of the test packet, the determiner 32 determines that the switches SW0 to SW6 forward packets according to the configured settings. The determiner 32 records the determination result as the test result 45 and notifies the test controller 31 of the determination result.
The test controller 31 determines whether the flow switch has ports for which it is yet to be determined whether forwarding processing is performed at the ports according to the configured setting. After the test in
When notified by the test controller 31 of a tested area of a tested route, the configurer 33 determines whether the variable i, indicative of the number of tests performed on the tested route, is 1 (Step S1). If the variable i is 1 (Yes in Step S1), meaning that it is the first test, the configurer 33 applies filters to all the ports of the flow switch to block input and output of test packets (Step S2). If the variable i is not 1 (No in Step S1), meaning that it is the second or subsequent test, the configurer 33 cancels the current test-port forwarding setting (Step S3) and removes the current test port (Step S4). The processing in Steps S3 and S4 are implemented when the configurer 33 sends a control message to the switch having the test port, so that the switch may change the settings. After the processing in Step S2 or Step S4, the configurer 33 sets a test port at the switch having the end port of the tested area (Step S5). The configurer 33 removes the filters that block input and output performed to forward a test packet from the start port to the end port (Step S6). The configurer 33 also configures the test-port forwarding setting so that a test packet may be forwarded from the end port to the test port (Step S7).
In the procedure illustrated in
Before the test is started, the configurer 33 applies input/output blocking filters to all the ports of the flow switch as the default network settings (Step S11). Then, the test controller 31 sets the variable i to 1 (Step S12). The configurer 33 applies filters to determine the connectivity of the area from the switch having the start port to the (i+1)-th fabric switch (Step S13). Specifically, in Step S13, out of the filters applied in Step S11, the configurer 33 removes the ones which are applied to the ports on the forwarding route in the area from the switch having the start port to the (i+1)-th fabric switch and which would otherwise block a test packet forwarded in the forwarding route.
After that, the determiner 32 transmits a test packet to the start port and then receives the test packet back from the test port if the test packet is inputted thereto from the test port (Step S14). If the test packet is not inputted to the determiner 32 from the test port within a predetermined period of time, the determiner 32 waits for the test packet until a timeout. The determiner 32 determines whether the test packet has flowed through the tested area (the connectivity) based on whether the determiner 32 receives the test packet, and records the obtained determination result in the test result 45 (Step S15). The test controller 31 determines whether the determiner 32 successfully receives the test packet in Step S14 (Step S16). If the determiner 32 successfully receives the test packet (YES in Step S16), the test controller 31 determines that the test packet has flowed through the tested area. Then, the test controller 31 increments the variable i twice (Step S17) and determines whether or not the variable i is equal to or larger than the constant N (Step S18). If the variable i is not equal to or larger than the constant N (No in Step S18), the test controller 31 proceeds back to Step S13 to repeat the processing from there. If the variable i is equal to or larger than the constant N (Yes in Step S18), the test controller 31 determines that connectivity has been confirmed for the entire tested route, and transmits the test result to the terminal manipulated by the operator (Step S19). The configurer 33 cancels the network settings configured for testing (Step S20), and the processing ends.
If, on the other hand, the determiner 32 does not successfully receives the test packet (No in Step S16), it represents that the test packet has not flowed through the tested area (No in Step S16). Thus, the test controller 31 ends the test and transmits the test result 45 to the operator's terminal (Step S19). In this regard, among the tested areas, the failure location specifier 35 specifies the area the connectivity of which has not been confirmed by the tests, as a possible location of failure, and transmits the failure information to the operator's terminal along with the test result 45. After that, the configurer 33 cancels the network settings for testing (Step S20), and the processing is ended.
(3) Evaluation of Test Results
A test result 45b, on the other hand, is an example of the test result 45 in a case where the test in
The test controller 31 transmits, via the transmitter 22, the obtained test result 45 to the terminal used by the operator. This allows the operator to determine, using the test result 45 transmitted to the terminal, whether packets are forwarded in the assumed route. Further, notifying the operator that packets are not forwarded in the assumed route with information such as the test result 45b allows the operator to check the settings for the section specified in the test result 45b as a possible section of failure.
(4) Test Ending Processing
As described above, the method according to the first embodiment conducts the connectivity check by blocking input and output of a test packet which are not performed if the test packet is forwarded from the start port to the end port of the connectivity check area via the expected forwarding route. It is therefore possible to determine whether the test packet has been forwarded via the expected forwarding route. Not only connectivity but also the order of the switches traversed by a test packet is checkable only by applying test-packet filters to the flow switch and setting a test port at a fabric switch. Hence, the test according to the first embodiment is simple and easy. The method according to the first embodiment is advantageous in terms of testing cost because the connectivity check does not use any hardware specific for the testing.
In the first embodiment, when it is determined that a test packet has not been forwarded via the expected forwarding route, information on a location causing the test packet not to be forwarded via the expected route is transmitted as the test result 45 to the terminal used by the operator. When notified that packets are not forwarded via the assumed route, the operator may check, for example, the settings for the section notified of by the test result 45 as a possible section of failure. This facilitates and simplifies network maintenance.
<Modification>
As a modification of the first embodiment, a case is described in which connectivity of the reversed route of the route R1 (
After the configurer 33 completes the configuration processing, the determiner 32 transmits a test packet to the port 18, which is the start port, and determines whether the test packet is received back from the test port. If the determiner 32 successfully receives the test packet in the example in
After the configurer 33 completes the above configuration processing, the determiner 32 transmits a test packet to the port 18, which is the start port, and determines whether the test packet is received back from the test port. If the determiner 32 successfully receives the test packet again in the case in
After the configurer 33 completes the configuration processing, the determiner 32 transmits a test packet to the port 18, which is the start port, and determines whether the test packet is received back from the test port. If the determiner 32 successfully receives the test packet again in the case in
In the following example, the area of a possible location of failure is smaller than that in the first embodiment. This may be used in a network where there is a high possibility of failure.
Assume that the network in
It is assumed here that test processing has been requested to locate the failure. Processing performed in the second embodiment, such as receiving a test request, is the same as that performed in the first embodiment. In the second embodiment, as in the first embodiment, when identifying the route for which the connectivity check test is requested, the test controller 31 applies filters to the flow switch, determining the area where only one route is possible. In this regard, the test controller 31 expands the test range by one adjacent fabric switch at a time. An example of this processing is described with reference to
Processing Rule 1
destination MAC address=MACtest, and input port=virtual port 3 Condition 1:
Action: Output packet that satisfies Condition 1 through virtual port 4.
Processing Rule 2
destination MAC address=MACtest, and input port=virtual port 4, 9, or 10 Condition 2:
Action: Not receive but drop packet that satisfies Condition 2.
Processing Rule 3
destination MAC address=MACtest, and input port=virtual port 3, 9, or 10 Condition 3:
Action: Not transmit but drop packet that satisfies Condition 3.
The configurer 33 sets the test port TP at the switch SW2, and sets the following forwarding condition for the switch SW2.
destination MAC address=MACtest, and input port=virtual port 5 Condition:
Action: Output packet that satisfies the above condition through test port TP.
After configuring the test-packet filter settings and the test-port settings, the configurer 33 notifies the determiner 32 of the completion of the settings configuration. The determiner 32 then generates a test packet and inputs the test packet to the port 1 of the switch SW1, which is the start port, via the transmitter 22. It is assumed in this example that the determiner 32 then receives the test packet back from the test port via the receiver 23 within a predetermined period of time after the transmission of the test packet. The determiner 32 records the obtained determination result as the test result 45 and notifies the test controller 31 of the determination result.
Then, the test controller 31 sets the next tested area to an area combining the previously-tested area for which it has been determined that packets are forwarded according to the configured settings and an area from the fabric switch having the end port of the previously-tested area to the fabric switch to which a packet forwarded therefrom is to be inputted next. Thus, the test controller 31 determines to determine whether the network has a failure in the section from the port 1 of the switch SW1 to the port 7 of the switch SW3.
Since the test port moves from the switch SW2 to the switch SW3 due to the change of the tested area, the configurer 33 removes the test port set at the switch SW2 and cancels the test-port forwarding setting in the switch SW2. The configurer 33 sets a test port at the switch SW3, and defines the following test-port forwarding processing rule for the switch SW3.
destination MAC address=MACtest, and input port=virtual port 7 Condition:
Action: Output packet that satisfies the above condition through test port TP.
After configuring the test-packet filter settings and the test-port settings, the configurer 33 notifies the determiner 32 of the completion of the settings configuration. The determiner 32 generates a test packet and inputs the test packet to the port 1 of the switch SW1, which is the start port, via the transmitter 22. By the time the test in
After determining that the connectivity test has been failed, the test controller 31 ends the test. From the results recorded in the test result 45c, the failure location specifier 35 excludes the section that passed the test-packet connectivity test from the section that failed the test-packet connectivity test, and specifies the resultant section as a possible location of failure. Specifically, the failure location specifier 35 specifies the area within a broken-line rectangle Y in
If, on the other hand, the variable i is not an odd number (No in Step S46), the configurer 33 configures the (i+1)-th fabric switch so that its port connected to the processing device 5 will forward a test packet to the test port (Step S49).
When a possible location of failure is narrowed down as in the second embodiment, the area that has to be checked by the operator for the settings and the like may be reduced compared to the first embodiment, which facilitates and simplifies network management. Moreover, since filtering is performed in the second embodiment as well to keep test packets from being forwarded via a route other than the assumed route, not only is it possible to check for the connectivity, but also it is determinable whether the packet has traversed the switches and ports in the assumed order.
<Other Modifications>
The above embodiments are not restrictive, and may be modified variously. Examples of such modifications are given below.
Although the control apparatus 20 includes the failure location specifier 35 in the first and second embodiments, the control apparatus 20 does not have to. If the control apparatus 20 does not include the failure location specifier 35, the result of a connectivity test is recorded in the test result 45, but a possible location of failure is not specified in the test result 45. In this case, the operator finds out a possible location of failure by comparing the route via which a test packet has been received and the route via which a test packet has not been received.
If the control apparatus 20 includes an input device and an output device, the operator may use the input device of the control apparatus 20 to request a test, and then the control apparatus 20 may present the test result 45 to the operator by displaying the test result 45 of the test on the display of the output device.
The packet format and the tables used in the above descriptions are just an example. Information elements included in a packet or the tables may be changed appropriately depending on the implementation.
Moreover, depending on the implementation, the first embodiment and the second embodiment may be used in combination. For example, assume that a connectivity check for a particular route has failed. Then, the test controller 31 defines a new tested area by expanding the area that has passed the connectivity test to a switch newly established subsequent to the fabric switch having the end port of the area that has passed the connectivity test.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2016-126376 | Jun 2016 | JP | national |
This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-126376, filed on Jun. 27, 2016, the entire contents of which are incorporated herein by reference.