Implementations consistent with the principles of the invention relate generally to communications networks and, more particularly, to systems and methods for providing redundancy in communications networks.
A typical communications network includes a lot of different types of network devices. For example, a typical communications network may include host devices, which act as the source or destination of a particular flow of traffic, routers and/or switches, which act to forward traffic flows toward their appropriate destinations, and security devices, which provide, for example, firewall or other security functionality. These different types of network devices may be interconnected via links.
In some instances, a link between a pair of network devices may fail or a network device may fail. In those instances, it is important that the communications network be able to continue to route traffic. Therefore, some networks include redundancy. For example, a second network device may act as a backup for a first network device. If any part of the first network device fails, the entire first network device may fail over to the second network device.
In a first implementation consistent with the principles of the invention, a method includes detecting a problem with a logical section of a first network device, and failing over only the logical section of the first network device to a second network device.
In another implementation consistent with the principles of the invention, a system includes a first network device and a second network device. The first network device includes a group of first logical portions and is configured to detect a problem with one of the first logical portions, and transmit a message identifying the one first logical portion. The second network device includes a group of second logical portions, where the group of second logical portions corresponds to the group of first logical portions. The second network device is configured to receive the message from the first network device, and activate the one second logical portion corresponding to the one first logical portion in response to receiving the message.
In still another implementation consistent with the principles of the invention, a network device includes a group of logical units, where each logical unit is associated with at least one interface and a group of network addresses. Each logical unit is configured to monitor a status of the at least one interface with which the each logical unit is associated, monitor a status of each network address in the group of network addresses with which the each logical unit is associated, and determine whether to enter an inoperable state based on the monitoring the at least one interface and the monitoring the group of network addresses.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, explain the invention. In the drawings,
The following detailed description of implementations consistent with the principles of the invention refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims and their equivalents.
Systems and methods consistent with the principles of the invention improve traffic forwarding within a communications network. In an exemplary implementation, when a problem is detected in a logical portion of a network device, a corresponding logical portion of another network device may take over the functions performed by that problematic logical portion.
Network device 110 and 120 may include one or more network devices that receive data units (e.g., Internet Protocol (IP) packets) and forward the data units toward their destination(s). In some implementations, network devices 110 and 120 may perform one or more security functions, such as filtering the data units.
As illustrated in
In one implementation consistent with the principles of the invention, each network device 110 and 120 may include one or more virtual security devices (VSDs) 115, 116, 125, and 126. Each VSD 115/116/125/126 may be a single logical device within network device 110/120. In one implementation, VSD 1115 of network device 110 may be identical to VSD 1125 of network device 120 and VSD 2116 of network device 110 may be identical to VSD 2126 of network device 120. In this way, one of VSD 1115 and 125 may serve as a backup for the other of VSD 1115 and 125, and one of VSD 2116 and 126 may serve as a backup for the other of VSD 2116 and 126. It will be appreciated that each network device 110 and 120 may include more or fewer VSDs than illustrated in
In one implementation consistent with the principles of the invention, each VSYS 111/112/113/121/122/123 may be associated with (or bound to) a VSD 115/116/125/126. Multiple VSYSs may bind to a single VSD or a single VSYS may bind to multiple VSDs. For explanatory purposes, it will be assumed hereafter that VSYS 1111 and VSYS 2112 bind to VSD 1115 of network device 110, VSYS 3113 binds to VSD 2116 of network device 110, VSYS 1121 and VSYS 2122 bind to VSD 1125 of network device 120, and VSYS 2123 binds to VSD 2126 of network device 120.
Network device 110 may connect to network device 120 via a link 115. In one implementation, link 115 may include a dedicated physical link. It will be appreciated that link 115 may be any type of link for communicating information, including a wireless link. Link 115 may allow network devices 110 and 120 to communicate with one another. For example, network devices 110 and 120 may transmit/receive status messages via link 115.
Networks 130 and 140 may include one or more networks capable of forwarding data units. Networks 130 and 140 may include, for example, a local area network (LAN), a wide area network (WAN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, or a combination of networks. In one implementation, network 130 may include an untrusted network, such as the Internet, and network 140 may include a trusted network, such as a private network.
Processing logic 220 may include any type of conventional processor or microprocessor that interprets and executes instructions. ASIC 230 may include one or more ASICs capable of performing network-related functions. In one implementation, ASIC 230 may perform a security-related function.
Memory 240 may include a random access memory (RAM) or another dynamic storage device that stores information and instructions for execution by processing logic 220; a read only memory (ROM) or another type of static storage device that stores static information and instructions for use by processing logic 220; and/or some other type of magnetic or optical recording medium and its corresponding drive. Communication interfaces 250 may include any transceiver-like mechanism that enables network device 110 to communicate with other devices and/or systems, such as network device 120 and devices associated with networks 130 and 140.
As will be described in detail below, network device 110, consistent with the principles of the invention, may perform network communications-related operations. Network device 110 may perform these and other operations in response to processing logic 220 executing software instructions contained in a computer-readable medium, such as memory 240. A computer-readable medium may be defined as one or more memory devices and/or carrier waves. The software instructions may be read into memory 240 from another computer-readable medium or from another device via a communication interface 250. The software instructions contained in memory 240 may cause processing logic 220 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the principles of the invention. Thus, systems and methods consistent with the principles of the invention are not limited to any specific combination of hardware circuitry and software.
As illustrated, data structure 400 may include a flag field 410, an interface list field 420, a zone list field 430, a track network address (NA) list field 440, a threshold field 450, and a summation (SUM) field 460. Flag field 410 may store a flag value. In one implementation, a flag value of 1 may indicate that the flag has been set and a flag value of 0 may indicate that the flag has not been set.
Interface list field 420 may store a list of zero or more interfaces to be monitored. In one implementation, interface list field 420 may store information identifying interfaces associated with VSD 1115. In the exemplary configuration illustrated in
Zone list field 430 may store a list of zones associated with VSD 1115. In the exemplary configuration illustrated in
Track network address list field 440 may store a list of zero or more network addresses to be monitored. In one implementation, track network address list field 440 may store network addresses of which VSD 1115 is associated. For example, VSD 1115 may monitor the status of one or more devices associated with network 130 and/or 140. Therefore, the network address (e.g., an IP address) of those devices may be stored in field 440 for VSD 1115. Each network address in track network address list field 310 may be associated with the following information: an interval value, a threshold value, method information, and a weight value. This information may be configurable. The interval value may indicate how often the associated network address is to be contacted. In one implementation, the interval value may be 1 second. The threshold value may indicate the number of times that the associated network address is to be contacted if no reply is received. In one implementation, the threshold value may be 3. The method information may indicate the manner in which the associated network address is to be contacted. For example, the method information may indicate that the associated network address is to be pinged. Other techniques for contacting network addresses may alternatively be used. For example, an address resolution protocol (ARP) technique may alternatively be used. The choice of method may be user configurable.
Threshold field 450 may store a configurable threshold value. The threshold value may be an integer value greater than or equal to 1. Summation field 460 may store a value representing a current status level of VSD 1115. The manner in which the summation value is determined is described in detail below with respect to the process of
Processing may begin with VSD 1115 monitoring the status of the interfaces (IFs) (e.g., interfaces 315 and 320 in the exemplary configuration illustrated in
VSD 1115 may monitor the status of the network addresses stored in field 440 of data structure 400 associated with VSD 1115 (act 515). In one implementation, VSD 1115 may contact each network address in track network address list field 440 at the interval and using the method specified in data structure 400. VSD 1115 may determine whether any of the network addresses are unreachable (e.g., the device associated with the network address cannot be reached) (act 520). VSD 1115 may determine that a particular network address is not reachable when the number of times that a reply to a ping request (or ARP command) to that network address has not been received equals the threshold value stored in data structure 400 for that network address. If each of the network addresses is determined to be reachable, processing may return to act 515 with VSD 1115 continuing to verify the status of the network addresses at the intervals specified in data structure 400.
Similar to the monitoring of the interfaces and network addresses, VSD 1115 may monitor the status of each zone identified in zone list 430 of data structure 400 associated with VSD 1115 (act 525). In one implementation, VSD 1115 may receive event messages from each zone identified in field 430 of data structure 400. VSD 1115 may determine whether any of the associated zones are down (act 530). VSD 1115 may determine that a particular zone is down when an event message is received from that associated zone indicating that the zone is down. If each zone in zone list 430 is determined to be operable (i.e., not down), processing may return to act 525 with VSD 1115 continuing to monitor the status of the associated zones. In one implementation, VSD 1115 may verify the status of the associated zones at a periodic time interval, such as every second. The time interval may be configurable.
If VSD 1115 determines that one or more of the interfaces from interface list 420 are down (act 510), one or more network addresses from track network address list field 440 are unreachable (act 410), or one or more zones from zone list 430 are down (act 530), VSD 1115 may set the flag in flag field 410 (act 535).
VSD 1115 may periodically check the status of the flag in flag field 410 of data structure 400 (act 540). If VSD 1115 determines that the flag in field 410 has not been set (act 540), processing can return to act 540 with VSD 1115 continuing to check the status of the flag in field 410. If, on the other hand, VSD 1115 determines that the flag in field 410 has been set (act 540), VSD 1115 may add the weights of the associated interfaces or zones that are determined to be down and the weights of those network addresses that are determined to be unreachable to the summation value in summation field 460 (act 545). The summation value may be zero (or some other predetermined value) when all of the interfaces and zones are determined to be available and all of the network addresses are determined to be reachable.
VSD 1115 may compare the summation value in summation field 460 to the threshold value in field 450 (act 550). VSD 1115 may make this comparison at predetermined periods. If the summation value does not equal or exceed the threshold value (act 555), VSD 1115 may reset the summation value to zero and reset the flag (e.g., set the flag value to zero) (act 560). Processing may then return to act 540 with VSD 1115 determining whether the flag in flag field 410 has been set. If, on the other hand, the summation value equals or exceeds the threshold value (act 555), VSD 1115 becomes inoperable and should be failed over to VSD 1125 of network device 120 (act 565).
It is assumed for explanatory purposes that VSD 1115 of network device 110 is active and that VSD 2125 of network device 120 is inactive (e.g., serving as the backup for VSD 1115). It is also assumed that VSD 1115 of network device 110 becomes inoperable. As such, network device 110 may transmit a status message to network device 120 that indicates that VSD 1115 has become inoperable (act 610). In response, network device 120 may place VSD 1125, which corresponds to VSD 1115, into an active mode, thereby failing over VSD 1 from network device 110 to network device 120 (act 615). Since VSD 1115 is failed over, each VSYS associated with VSD 1115 of network device 110 will also be failed over to network device 120. Therefore, any sessions associated with VSD 1115 will be transferred to network device 120 for processing by the appropriate VSYS associated with VSD 2125.
Once a VSD is failed over, the VSD may continue to verify the status of the network addresses with which the VSD is associated. For example, the VSD may continue to send ping (or ARP) commands to the network addresses associated with the VSD and then re-compute the summation value to determine whether the VSD should be brought back up. When a VSD is brought back up, the VSD may, for example, serve as the backup for the currently active VSD or this newly recovered VSD may resume functioning as the active VSD and the currently active VSD may return to an inactive (or backup) state.
The following example illustrates the above processing. With reference to
With reference to
Processing may begin with VSD 1115 monitoring the status of interfaces 315 and 320 listed in interface list 420, zones 310 listed in zone list 430, and network addresses listed in track network address list field 440. As illustrated in
Assume for this example that a response is not received from NA1 in response to three consecutive ping requests (the threshold value for network address NA1). The flag in flag field 410 may then be set (e.g., by making the flag value 1). VSD 1115 may periodically check the status of the flag in flag field 410. Upon detecting that the flag is set, VSD 1115 may add the weight (255) associated with network address NA1 to the summation value (0) in summation field 460. The new summation value (255) may then be compared to the threshold value (255) in threshold field 450. Since the new summation value (255) matches the threshold value (255), VSD 1115 becomes inoperable.
In a status message from network device 110 to network device 120, network device 110 may indicate that VSD 1115 has become inoperable. Upon receipt, network device 120 may activate VSD 1125. In this way, a logical portion of network device 110 can be failed over to network device 120. Other portions of network device 110 may continue operating as usual. For example, if VSD 2116 of network device was in an active mode prior to VSD 1115 being failed over to network device 120, VSD 2116 may continue processing traffic during and after the fail over of VSD 1115. By only failing over a logical portion of network device, the time period in which a fail over can occur is reduced.
Systems and methods consistent with the principles of the invention improve traffic forwarding within a communications network. In an exemplary implementation, if a logical portion of a first network device becomes inoperable, that logical portion of the first network device can be failed over to a second network device while the remaining operable portions of the first network device can continue functioning as usual.
The foregoing description of exemplary implementations consistent with the principles of the invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while a series of acts has been described with regard to
No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Number | Date | Country | |
---|---|---|---|
Parent | 11037179 | Jan 2005 | US |
Child | 12871702 | US |