Abstract:
A preferred embodiment apparatus for configuring network devices in a network includes a controller provided at a remote location on the network for receiving a configuration request from a user to configure a select user defined device. The controller translates the configuration request to another configuration request, and issues the translated configuration request to a select network device corresponding to the select user defined device for configuring the select network device. A translation enabling part allows the controller to translate the first configuration request received from the user to the second configuration request issued to the select network device.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     A typical a network environment includes a number of user devices such as computers and workstations, and network devices such as routers, hubs, switches, firewalls and load balancers. A local area network (LAN), a wide area network (WAN), and the Internet are examples of known computing or communication networks.  
         [0002]     Network devices in a given network are typically provided by different vendors, and they are configured according to the specifications of those vendors. When added to the network, the network devices are initially configured so that they are operationally synchronized with each other. However, when a network device fails or goes off-line for whatever reason, and then comes back on-line, the configuration of that network device may no longer be in sync with the other network devices.  
         [0003]     In a high availability (HA) network environment, back-up network devices are typically connected to the network, so that in the event of a failure of the primary network device, the back-up device can be brought on-line in place of the primary device. Before the back-up network devices can be operational, a user has to either physically go to the location of the back-up device and provide commands to configure it to synchronize with the other devices already operational in the network, or individually access the affected back-up device through the network.  
       SUMMARY OF THE INVENTION  
       [0004]     The present invention relates generally an apparatus and a method for configuring network devices in a network. The preferred embodiment of the apparatus includes a controller provided at a remote location on the network for receiving a configuration request from a user to configure a select user defined device. The controller translates the configuration request to another configuration request, and issues the translated configuration request to a select network device corresponding to the select user defined device. A translation enabling part allows the controller to translate the first configuration request received from the user to the second configuration request issued to the select network device. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0005]      FIG. 1  is a diagram of a network environment in which one embodiment of the present invention is implemented;  
         [0006]      FIG. 2  is a block diagram of a network device manager shown in  FIG. 1 ;  
         [0007]      FIG. 3  is a flowchart describing a process for configuring network devices in accordance with the present invention; and,  
         [0008]      FIG. 4  is a flowchart describing a process for reconfiguring a network device to the previously recorded state in accordance with the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0009]     Broadly stated, the present invention is directed to apparatus and methods for configuring network devices from a remote location on the network. In accordance with one embodiment of the present invention, a network device manager is provided on the network and includes a controller for receiving a configuration request from a user for configuring a select user defined device. The controller translates the configuration request from the user to a configuration request understood by the select network device corresponding to the select user defined device, and then issues the translated configuration request to the select network device for configuring it in accordance with the request. The translation of the configuration request from the user is provided by a plug-in corresponding to the select network device, which is retrieved from storage. After the controller has successfully translated and sent the configuration request to the device, it stores the translated configuration request in an internal database. This enables the controller to rebuild the configuration for that device in case of a failure of that device.  
         [0010]     Turning now to  FIG. 1 , a network  10  in accordance with one embodiment of the present invention includes a number of network devices  12 , a number of user devices  14  and a network device manager  16 . In  FIG. 1 , the network  10  shown is a LAN. It should be understood, however, that the invention may be implemented in other types of networks, including a WAN or the Internet, for example.  
         [0011]     The network devices  12  are physical devices such as, for example, switches, routers and hubs. The user devices  14  may be any computing devices such as personal computers or workstations that are in communication with the network devices  12 . The network device manager  16  generally maintains the health of the network  10 , making sure all network devices  12  are running properly. The network device manager  16  may be a stand-alone device connected to the network  10 , as shown in  FIG. 1 . Alternatively, the network device manager  16  may also be incorporated into a server as a hardware or a software module.  
         [0012]     More specifically, the network device manager  16  is connected to the network  10  for configuring or reconfiguring the network devices  12  in accordance with requests received from a user, and for maintaining a record of the configuration states of the network devices. In operation, the network device manager  16  receives “virtual requests” from a user for configuring network devices  12 . The requests are “virtual requests” because they are in a language understood by the user and the device manager  16 , but not necessarily by the targeted network devices  12 . Also, the network devices  12  identified in the virtual configuration requests are “virtual network devices” since they do not necessarily correspond directly to the actual designation of the physical network device  12  in the network  10 .  
         [0013]     The network device manager  16  translates a virtual request into a request appropriate for the target physical network device  12  corresponding to the virtual network device. This translation is performed using a software plug-in for the appropriate physical network device  12 . As generally known, a plug-in is a hardware or software module that adds a specific feature or service to a system. Using a plug-in, a new feature can be “plugged” in to the existing system. In the present invention, a plug-in is a software module written according to the remote configuration capabilities of the physical network devices  12  (SNMP, Command Line Interface, XML, etc.). For example, when the user issues a request (i.e., a virtual configuration request) to create VLAN 1000 on virtual device 192.168.1.1, the device manager  16  correlates the request to the physical network device  12  for 192.168.1.1. The virtual configuration request is issued by the user in a generic form, for example, “create VLAN 1000 on device 192.168.1.1”. The device manager  16  then locates the appropriate software plug-in for the physical network device  12 , and attempts to physically create VLAN 1000 on the physical network device corresponding to virtual device 192.168.1.1.  
         [0014]     Referring to  FIG. 2 , the network device manager  16  includes a controller  18  for communicating with and performing configuration related functions requested by a user. A translator  20  is operatively connected to the controller  18 , and may be in the form of a database, a look-up table, or a software library for storing plug-ins corresponding to the physical network devices  12 . The device manager  16  also includes a database  22  for storing information relating to the configuration states of the virtual network devices such as, for example, port attributes (VLAN membership, security, packet priority), global settings (Spanning-Tree, Routing, ACLs). The database  22  is implemented using a relation database or some file store in which the configuration information would be written to a long-term storage device such as a hard drive, for example.  
         [0015]     As now described in more detail, the network device manager  16  enables a user to change the configurations of the network device  12  from a remote location on the network  10 , and set the network devices to a previously known configuration states. Referring to  FIG. 3 , a process for setting a select or target network device  12  to a desired configuration is described in accordance with one embodiment of the present invention. When a virtual configuration request for a virtual network device issued by a user is received by the controller  18  of the device manager  16  (block  24 ), the controller  18  determines the target physical network device  12  corresponding to the virtual network device identified in the virtual request, and accesses the translator  20  for the plug-in associated with the target physical network device (block  26 ). In the preferred embodiment, the configuration request may be made by a user through any of the user devices  14  in the network  10 , or through a user interface (not shown) incorporated in the network device manager  16 . Using this plug-in, the controller  18  translates the virtual configuration request which is in the user language, to a physical configuration request understood by the target physical network device  12  and sends the configuration request to the target physical network device (block  28 ).  
         [0016]     If the target physical network device  12  is successfully configured as requested by the controller  18  (block  30 ), the virtual configuration request issued by the user for the target virtual device is recorded in the database  22  (block  32 ). If, on the other hand, the target physical network device  12  corresponding to the target virtual device is not successfully configured, then the controller  18  returns an error message to the user (block  34 ).  
         [0017]     Turning now to  FIG. 4 , a process is described in which the network device manager  16  configures, or reconfigures, a network device  12  to the last known configuration state. This may be required, for example, after the target network device  12  comes back on-line after being taken off-line, after a recovery from a fault, or when a failed primary network device is replaced with a new back-up network device  12 . When the controller  18  of the device manager  16  receives a request (i.e., a virtual request) from a user to restore a select network device (i.e., a virtual device) to the last known configuration state (block  36 ), it determines the physical network device  12  corresponding to the virtual device (block  38 ).  
         [0018]     Once the physical network device  12  has been determined, the controller  18  retrieves the virtual configuration request previously issued for configuring the select virtual device corresponding to the target physical network device  12  from the database  28  (block  40 ). Using the plug-in in the translator  20  associated with the target physical network device  12 , the controller  18  translates the virtual configuration request retrieved from database  22  into a physical configuration information understood by the target physical network device  12  (block  42 ).  
         [0019]     If the target physical network device  12  is successfully configured as requested by the controller  18  (block  44 ), the virtual configuration request retrieved from the database  28  is again recorded in the database (block  46 ). If, on the other hand, the target physical network device  12  is not successfully configured, then the controller  18  returns an error message to the user (block  48 ).  
         [0020]     While various embodiments of the present invention have been shown and described, it should be understood that other modifications, substitutions, and alternatives are apparent to one of ordinary skill in the art. Such modifications, substitutions, and alternatives can be made without departing from the spirit and scope of the invention, which should be determined from the appended claims.  
         [0021]     Various features of the present invention are set forth in the appended claims.