There are various occurrences that necessitate the audit or verification of a configuration associated with a network device. For example, when the network device needs to be reset, when the network device goes through a power cycle, when a new network device is installed, or when the integrity of the configuration associated with the network device is uncertain, an administrator may initiate an audit process to verify the configuration of the network device. Typically, the administrator may manually download a reference configuration file to the network device. Unfortunately, the audit process may be time consuming, utilize human resources, and/or may cause interruption of services to customers.
The following detailed description 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.
The term “packet,” as used herein, is intended to be broadly interpreted to include a type of data unit or arrangement of data. For example, a packet may include a cell, a datagram, a frame, a protocol data unit (PDU), or a portion or a fragment of a cell, a portion of a datagram, a portion of a frame, or a portion of a PDU.
As will be described herein, a network device may automatically conduct a self-auditing process based on a layer three trap packet. In one implementation, the network device may initiate the audit process. In other implementations, the audit process may be initiated by a user-based request. During the audit process, the network device may automatically obtain a reference configuration file. In one implementation, the network device may generate a layer three trap packet. Depending on the circumstances with which the layer three trap packet is generated, various error codes may be indicated in the layer three trap packet. However, each of the error codes may be indicative of an audit process.
The network device may transmit the layer three trap packet to another network device (e.g., a management device). The management device may store the reference configuration file. Upon receipt of the layer three trap packet, the management device may provide the reference configuration file to the network device.
When the network device receives the reference configuration file, the network device may utilize the reference configuration file in various ways. For example, in one implementation, the network device may compare a resident configuration file with the reference configuration file. If a difference exists, the network device may replace the resident configuration file with the reference configuration file. If a difference does not exist, the network device may delete the reference configuration file. In another implementation, the network device may replace the resident configuration file with the reference configuration file without comparing the resident configuration file and the reference configuration file.
Customer domain 105 may include one or multiple networks of any type. Customer domain 105 may include network devices and/or customer end devices. By way of example, customer domain 105 may include a private network, a local area network (LAN), an Intranet, a wide area network (WAN), a metropolitan area network (MAN), a data network, or some other type of network.
Service provider domain 110 may include one or multiple networks of any type. Service provider domain 110 may provide services to customer domain 105. By way of example, service provider domain 110 may include may include a public network, an access network to the Internet, a wide area network (WAN), and/or a telephone network (e.g., a wireless communication network or the public switched telephone network (PSTN)).
NID 115 may include a network device having communication capability. For example, NID 115 may include a switch. As previously described, NID 115 may provide ingress and egress with respect to customer domain 105 and service provider domain 110. In one implementation, NID 115 may provide switching services. NID 115 may also provide packet translation services with respect to packets traversing to/from customer domain 105 and service provider domain 110. NID 115 may include performance management capabilities.
Management device 120 may include a network device having communication capability. Management device 120 may store reference configuration files for one or more network devices (e.g., NID 115) in service provider domain 110. The reference configuration files may be updated by a network administrator. A reference configuration file may include configuration and/or setting information associated with NID 115. The reference configuration file may include one or multiple files. Management device 120 may facilitate in the management of NID 115.
According to an exemplary implementation, NID 115 may detect an error 125 in its operation. NID 115 may initiate a diagnostic process and may generate a layer three trap packet 130. Layer three trap packet 130 may include an error code corresponding to error 125. NID 115 may transmit layer three trap packet 130 to management device 120.
Management device 120 may receive layer three trap packet 130. Based on the error code include in layer three trap packet 130, management device 130 may determine that NID 115 is requesting an audit 135. In response thereto, management device 130 may transmit a reference configuration file 140 to NID 115.
NID 115 may receive reference configuration file 140. NID 115 may utilize reference configuration file 140. For example, in one implementation, depending on error 125, NID 115 may compare a resident configuration file with reference configuration file 140. Depending on the outcome of the comparison, NID 115 may replace the resident configuration file with reference configuration file 140, or delete reference configuration file 140. In another implementation, NID 115 may simply replace the resident configuration file with reference configuration file 140. In either implementation, NID 115 may restore its integrity and recover from error 125. NID 115 may transmit a restore message (not illustrated) to management device 120, which may indicate that NID 115 has successfully recovered. Alternatively, NID 115 may transmit a failure message (not illustrated) to management device 120, which may indicate that NID 115 has not successfully recovered. In such instances, management device 120 and/or an administrator (not illustrated) may take further corrective measures.
As a result of the foregoing, a network device, such as NID 115, may maintain its operational integrity without human intervention. Additionally, an auditing process may be expedited in comparison to a user requesting that a reference configuration file be provided to the network device. Since implementations have been broadly described, variations to the above implementations will be discussed further below.
It will be appreciated that the number of devices and/or configuration in environment 100 is exemplary and provided for simplicity. In practice, environment 100 may include more, fewer, and/or different devices, and/or differently arranged devices than those illustrated in
Control module 210 may include one or multiple processors, microprocessors, application specific integrated circuits (ASICs), field programming gate arrays (FPGAs), and/or processing logic that may be optimized for networking and/or communications. Control module 210 may perform high level management functions for NID 115. In some implementations, control module 210 may include packet inspection and/or packet translation functionality. Control module 210 may also include a static memory (e.g. a read only memory (ROM)), a dynamic memory (e.g. a random access memory (RAM)), onboard cache, and/or flash memory for storing data and/or machine-readable instructions.
Switch fabric 220 may include one or multiple switching planes to facilitate communication among interfaces 230 and/or system control module 210. In one implementation, each of the switching planes may include a single-stage switch or a multi-stage switch of crossbar elements. Switch fabric 220 may also, or alternatively, include processors, memories, and/or paths that permit communication among system control module 210 and interfaces 230.
Interfaces 230 may include devices or assemblies, such as line cards, for receiving incoming packets from network links associated with customer domain 105 and service provider domain 110 (or from other interfaces 230) and for transmitting the packets to network links associated with customer domain 105 and service provider domain 110 (or to other interfaces 230). For example, interfaces 230 may include wired interfaces, such as, Ethernet interfaces, optical carrier (OC) interfaces, and/or asynchronous transfer mode (ATM) interfaces. Interfaces 230 may manage a set of input ports via which packets can be received and a set of output ports via which packets can be transmitted. Interfaces 230 may include one or more memories, one or more processors, and/or other logic.
Processing system 250 may include one or more processors, microprocessors, data processors, co-processors, network processors, ASICs, controllers, programmable logic devices, chipsets, FPGAs, or some other component that may interpret and/or execute instructions and/or data. Processing system 250 may control the overall operation, or a portion thereof, of management device 120, based on, for example, an operating system and/or various applications.
Memory/storage 255 may include memory and/or secondary storage. For example, memory/storage 255 may include a RAM, a dynamic RAM, a ROM, a programmable ROM, a flash memory, and/or some other type of memory. Memory/storage 255 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, a solid state disk, etc.) or some other type of computer-readable medium, along with a corresponding drive. The term “computer-readable medium” is intended to be broadly interpreted to include a memory, a secondary storage, a compact disc (CD), a digital versatile disc (DVD), or the like. The computer-readable medium may include, for example, a physical memory device or a logical memory device. A logical memory device may include memory space within a single physical memory device or spread across multiple physical memory devices.
Memory/storage 255 may store data, application(s), and/or instructions related to the operation of management device 120. For example, memory/storage 255 may store reference configuration files associated with network devices (e.g., NID 115) that management device 120 manages. Memory/storage 255 may store a database (not illustrated) that interprets error codes received in trap packets from network devices (e.g., NID 115).
Communication interface 260 may permit management device 120 to communicate with other devices, networks, and/or systems. For example, communication interface 260 may include a wireless and/or wired interface.
As described herein, management device 120 may perform certain operations in response to processing system 250 executing software instructions contained in a computer-readable medium, such as memory/storage 255. The software instructions may be read into memory/storage 255 from another computer-readable medium or from another device via communication interface 260. The software instructions contained in memory/storage 260 may cause processing system 250 to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Error detector 305 may detect errors that occur in NID 115. For example, error detector 305 may detect various hardware and/or software failures or errors, corruption, viruses, incorrect configurations, etc. Error detector 305 may also consider performance degradations (e.g., packet loss, packet misdirects, retransmissions, etc.) of NID 115 as an error. For example, performance degradations that exceed a threshold value and/or state may be considered an error. Error detector 305 may monitor various operations and/or processes performed by NID 115.
Diagnostic manager 310 may receive error information from error detector 305 and determine appropriate responses. For example, diagnostic manager 310 may determine whether NID 115 may need an audit (e.g., a verification of a resident configuration file) versus other types of response. In one implementation, diagnostic manager 310 may consult a lookup table or some other type of data arrangement. The lookup table may include a mapping between error information and diagnostic responses. One or more of the diagnostic responses may include performing an audit. Diagnostic manager 310 may also manage other operations associated with the maintenance, performance, and/or health of NID 115. For example, diagnostic manager 310 may initiate reboots and power cycles for NID 115 when certain errors occur and/or are detected.
Trap generator 315 may generate a trap (e.g., a packet) that indicates an error code. In one implementation, the trap may correspond to a layer three trap packet. The error code may correspond to an error corresponding to an audit request. In one implementation, trap generator 315 may generate the trap based on information provided by error detector 305 and/or diagnostic manager 310. In other implementations, trap generator 315 may generate the trap based on a user request. For example, an administrator may send a request to NID 115, which may trigger trap generator 315 to generate the trap.
Configuration file manager 320 may manage the configuration file resident on NID 115. Configuration file manager 320 may perform a compare between the resident configuration file and the reference configuration file. Configuration file manager 320 may determine, based on the comparing, whether the resident configuration needs to be replaced by the reference configuration file.
Although
As previously described, NID 110 may perform a trap-based audit to verify an integrity associated with a resident configuration file. Described below are exemplary operations and/or processes that may be performed by the functional components to provide the trap-based audit.
Referring to
Referring to
Referring to
By way of example, in one implementation, configuration file manager 320 may replace the resident configuration file 140 without performing a comparison. For example, this may occur based on a severity level associated with error 125, a particular type of error 125 (e.g., a hardware failure versus a software failure), and/or a certainty level that an error exists with respect to error 125. The severity level and/or the certainty level may be parameters configured by, for example, an administrator.
By way of example, when error 125 corresponds to a virus, error 125 may be associated with a severity level that causes configuration file manager 320 to replace the resident configuration file 140 without performing a comparison. In contrast, when error 125 may be associated with performance degradation, configuration file manager 320 may perform a comparison. Additionally, or alternatively, when error 125 may correspond to a particular software failure, configuration file manager 320 may replace the resident configuration file 140 without performing a comparison. In contrast, when error 125 may correspond to a particular hardware failure, configuration file manager 320 may perform a comparison. Additionally, or alternatively, when error 125 may be associated with a particular certainty level (e.g., high), configuration file manager 320 may replace resident configuration file 140 without performing a comparison. In contrast, when error 125 may be associated with another certainty level (e.g., low), configuration file manager 320 may perform a comparison. By way of example, when error 125 corresponds to performance degradations, a certainty level that an error exists may not be as high as other types of errors.
In another implementation, configuration file manager 320 may perform a comparison between the resident configuration file and reference configuration file 140. When it is determined that there is no difference between the resident configuration file and reference configuration file 140, configuration file manager 320 may delete reference configuration file 140 from memory. When it is determined that there is a difference between the resident configuration file and reference configuration file 140, configuration file manager 320 may replace the resident configuration file with reference configuration file 140.
Although
Although
Process 600 may include detecting an error associated with an operation of an NID (block 605). For example, as previously described, error detector 305 may detect various errors 125 (e.g., hardware and/or software failures, corruption, viruses, incorrect configurations, etc.). Error detection 305 may also consider performance degradations (e.g., packet loss, packet misdirects, retransmissions, etc.) of NID 115 as error 125. For example, performance degradations that exceed a threshold value and/or state may be considered error 125.
It may be determined whether an audit is needed (block 610). For example, as previously described, diagnostic manager 310 may determine whether NID 115 may need an audit (e.g., a verification of a resident configuration file) based on error information 405. In one implementation, diagnostic manager 310 may consult a lookup table or some other type of data arrangement. The lookup table may include a mapping between error information and diagnostic responses. One or more of the diagnostic responses may include performing an audit.
If it is determined that an audit is not needed (block 610—NO), corrective measures may be performed (block 615). For example, diagnostic manager 310 may perform corrective measures, other than requesting an audit.
If it is determined that an audit is needed (block 610—YES), an audit trap may be generated (block 620). For example, as previously described, diagnostic manager 310 may generate trap command 415 and issue trap command 415 to trap generator 315. Trap command 415 may instruct trap generator 315 to generate a trap. Trap generator 315 may generate a trap packet 420 based on trap command 415. Trap generator 315 may generate an appropriate error code for the generated trap packet to indicate that audit 410 should be performed. In one implementation, the generated trap packet may correspond to a layer three trap packet 130.
The audit trap may be transmitted to a management device (block 625). For example, as previously described, trap generator 315 may cause layer three trap packet 130 to be transmitted to management device 120.
A reference configuration file may be received (block 630). For example, as previously described, configuration file manager 320 may receive reference configuration file 140 from management device 120.
In one implementation, for example, depending on a type of error 125, configuration file manager 320 may perform compare and/or a replace 425 operations and/or processes with respect to a resident configuration file and reference configuration file 140. A decision to perform a compare and/or a replace operation/process may be an administrative, configurable parameter. Process 600 may continue, as described below, with respect to block 635 or blocks 640 through 655.
A resident configuration file may be replaced with the reference configuration file (block 635). For example, as previously described, in one implementation, configuration file manager 320 may replace the resident configuration file 140 without performing a comparison. For example, this may occur based on a severity level associated with error 125, a particular type of error (e.g., hardware failure versus software failure) and/or a certainty level that an error exists with respect to error 125.
The reference configuration file may be compared with a resident configuration file (block 640). For example, as previously described, in another implementation, configuration file manager 320 may perform a comparison between the resident configuration file and reference configuration file 140.
If it is determined that the reference configuration file and the resident configuration file are the same (block 645—YES), the reference configuration file may be deleted (block 650). For example, as previously described, configuration file manager 320 may delete reference configuration file 140 from memory.
If it is determined that the reference configuration file and the resident configuration file are not the same (block 645—NO), the resident configuration file may be replaced with the reference configuration file (block 655). For example, as previously described, configuration file manager 320 may replace the resident configuration file with reference configuration file 140.
Although
Process 700 may include receiving an audit request (block 705). For example, as previously described with respect to
An audit trap may be generated (block 710). For example, as previously described, trap generator 315 may generate a trap packet 420 (e.g., layer three trap packet 130) based on audit request 515. In one implementation, for example, when audit request 515 includes error information 405, trap generator 315 may select an appropriate error code (e.g., corresponding to error 125) for the generated trap packet 420 to indicate that audit 410 should be performed. Alternatively, for example, when audit request 515 does not include error information 405, trap generator 315 may select a default error code for the generated trap packet 420 to indicate that audit 410 should be performed.
The audit trap may be transmitted to a management device (block 715). For example, as previously described, trap generator 315 may cause layer three trap packet 130 to be transmitted to management device 120.
A reference configuration file may be received (block 720). For example, as previously described, configuration file manager 320 may receive reference configuration file 140 from management device 120.
In one implementation, for example, depending on a type of error 125, configuration file manager 320 may perform compare and/or a replace 425 operations and/or processes with respect to a resident configuration file and reference configuration file 140. Alternatively, as previously mentioned, audit request 515 may indicate compare and/or replace information. Process 700 may continue, as described below, with respect to block 725 or blocks 730 through 745.
A resident configuration file may be replaced with the reference configuration file (block 725). For example, as previously described, in one implementation, configuration file manager 320 may replace the resident configuration file 140 without performing a comparison.
The reference configuration file may be compared with a resident configuration file (block 730). For example, as previously described, in another implementation, configuration file manager 320 may perform a comparison between the resident configuration file and reference configuration file 140.
If it is determined that the reference configuration file and the resident configuration file are the same (block 735—YES), the reference configuration file may be deleted (block 740). For example, as previously described, configuration file manager 320 may delete reference configuration file 140 from memory.
If it is determined that the reference configuration file and the resident configuration file are not the same (block 735—NO), the resident configuration file may be replaced with the reference configuration file (block 745). For example, as previously described, configuration file manager 320 may replace the resident configuration file with reference configuration file 140.
Although
Process 800 may include receiving a trap packet (block 805). For example, management device 120 may receive a trap packet from NID 115. The trap packet may indicate an error that occurred with respect to NID 115. In some instances, a trap packet may correspond to a layer three trap packet 130 that corresponds to an audit request. In other instances, the trap packet may not correspond to a layer three trap packet 130.
It may be determined whether an audit trap is received (block 810). For example, as previously described, management device 120 may determine, based on the error code included with trap packet, whether audit 135 of NID 115 needs to be performed. In one implementation, management device 120 may map the error code to information in a database (e.g., stored in memory/storage 255). The database may indicate whether audit 135 needs to be performed or some other type of corrective measure.
If it is determined that an audit trap is not received (block 810—NO), corrective measures may be performed (block 815). For example, management device 120 may appropriately respond to the received trap based on the information stored in the database.
If it is determined that an audit trap is received (block 810—YES), a reference configuration file may be retrieved (block 820). For example, management device 120 may retrieve reference configuration file 140 from memory or secondary storage (e.g., memory/storage 255).
The reference configuration file may be transmitted (block 825). For example, as previously described, management device 120 may transmit reference configuration file 140 to NID 115. For example, in one implementation, a file transfer protocol (FTP) transfer of reference configuration file 140 may be performed. In other implementations, other types of protocols may be utilized (e.g., Simple Network Management Protocol (SNMP), Secure Shell (SSH), etc.).
Although
The foregoing description of implementations provides illustration, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Accordingly, modifications to the implementations described herein may be possible. For example, while the trap-based auditing scheme has been described with respect to NID 115, other network devices (e.g., routers, gateways, application servers, firewalls, etc.) may be utilize the trap-based auditing scheme described herein.
The term “may” is used throughout this application and is intended to be interpreted, for example, as “having the potential to,” “configured to,” or “being able to,” and not in a mandatory sense (e.g., as “must”). The terms “a,” “an,” and “the” are intended to be interpreted 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 be interpreted as “based, at least in part, on,” unless explicitly stated otherwise. The term “and/or” is intended to be interpreted to include any and all combinations of one or more of the associated list items.
In addition, while series of blocks have been described with regard to the processes illustrated in
It will be apparent that the devices, systems, and/or methods described herein may be implemented in many different forms of software or firmware in combination with hardware in the implementations illustrated in the figures. The actual software code (executable by hardware) or specialized control hardware used to implement these devices, systems, and/or methods does not limit the disclosure of the invention. Thus, the operation and behavior of devices, systems, and/or methods was described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the devices, systems, and/or methods based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification.
No element, act, or instruction used in the present application should be construed as critical or essential to the implementations described herein unless explicitly described as such.
Number | Name | Date | Kind |
---|---|---|---|
6490690 | Gusler et al. | Dec 2002 | B1 |
6883120 | Banga | Apr 2005 | B1 |
7043661 | Valadarsky et al. | May 2006 | B2 |
7043663 | Pittelkow et al. | May 2006 | B1 |
7069473 | Yasuda | Jun 2006 | B2 |
7143153 | Black et al. | Nov 2006 | B1 |
7237138 | Greenwald et al. | Jun 2007 | B2 |
7702978 | Lewis et al. | Apr 2010 | B2 |
7707559 | Reddy | Apr 2010 | B2 |
7809811 | Rao | Oct 2010 | B1 |
20020156888 | Lee et al. | Oct 2002 | A1 |
20020157035 | Wong et al. | Oct 2002 | A1 |
20020178396 | Wong et al. | Nov 2002 | A1 |
20030126195 | Reynolds et al. | Jul 2003 | A1 |
20040006546 | Wedlake et al. | Jan 2004 | A1 |
20040025086 | Gorday et al. | Feb 2004 | A1 |
20070061663 | Loyd et al. | Mar 2007 | A1 |
20070230361 | Choudhury | Oct 2007 | A1 |
20080109568 | Rengarajan et al. | May 2008 | A1 |
20080186202 | Vaswani et al. | Aug 2008 | A1 |
20090276658 | Lind et al. | Nov 2009 | A1 |
20100115340 | Ruan et al. | May 2010 | A1 |
20110055636 | DeHaan et al. | Mar 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
20110066876 A1 | Mar 2011 | US |