Architecture availability and synchronization
By introducing FAS agents on network devices, the primary FAS agent is automatically identified and communicates using management channels and VLANs, which solves the problems of communication interruption and configuration inconsistency in large distributed networks, and improves network availability and management efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ORACLE INT CORP
- Filing Date
- 2022-01-11
- Publication Date
- 2026-06-05
Smart Images

Figure CN116762318B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims the benefit and priority of U.S. Nonprovisional Application No. 17 / 147,327, filed January 12, 2021. The entire contents of the foregoing application are incorporated herein by reference for all purposes. Technical Field
[0003] This disclosure generally relates to distributed network management. More specifically, but not limitingly, this disclosure relates to architectural availability and synchronization agents for managing architectural networks. Background Technology
[0004] Modern networks are typically managed by multiple interconnected devices. For example, a business network may consist of a large number of workstations. The network can be managed by a network administrator who uses a series of routers and / or switches to manage communication on the workstations. Some networks, such as those operating across university campuses or very large enterprises, may operate across large geographical areas. To maintain connectivity, these networks can use network device layers to relay communication through the network to a central server or relay. Micro-layers maintain connectivity within specific micro-locations (such as buildings), while macro-layers maintain connectivity between multiple micro-locations (such as a network of multiple buildings). When network devices at the micro or macro level stop operating (e.g., server maintenance, software failure, network intrusion, etc.), communication on the network may be irreversibly interrupted. Summary of the Invention
[0005] Methods and systems may involve updating the configuration of network devices in an architecture network. One method may include: receiving, at a first network device in the architecture network, the identifier of a command to modify the current configuration of a second network device in the architecture network, wherein the first network device is configured according to the current configuration; authenticating the command by a first Architecture Availability and Synchronization (FAS) agent executed on the first network device; modifying the current configuration of the first network device based on the command in response to the authentication of the command, wherein the modification of the current configuration of the first network device defines a new configuration; storing the identifier of the command; updating a status identifier associated with the current configuration of the first network device in response to the modification of the current configuration of the first network device to correspond to a new status identifier associated with the new configuration; and sending a control packet including the new status identifier by the first FAS agent to a second FAS agent executed on the second network device in the architecture network, wherein upon receiving the control packet, the second FAS agent retrieves the identifier of the command and implements the command on the second network device to upgrade the current configuration of the second network device to the new configuration.
[0006] Another aspect of this disclosure includes a system comprising one or more processors and a nontransitory computer-readable medium, the nontransitory computer-readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform some or all of the methods described herein.
[0007] Another aspect of this disclosure includes a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform part or all of the one or more methods described herein.
[0008] These illustrative examples are mentioned not to limit or define this disclosure, but to provide examples to aid in understanding it. Further embodiments are discussed in the detailed description, and further description is provided therein. Attached Figure Description
[0009] Figure 1 An example of an architecture network according to aspects of this disclosure is depicted.
[0010] Figure 2 An example block diagram depicting a network device managed by FAS according to aspects of this disclosure is provided.
[0011] Figure 3 An example of a process for selecting a primary FAS agent according to aspects of this disclosure is described.
[0012] Figure 4 An example of a process for configuring the architecture of a network device according to aspects of this disclosure is described.
[0013] Figure 5 An example of a process for updating the configuration of a network device architecture according to aspects of this disclosure is described. Detailed Implementation
[0014] This disclosure relates to an improved network topology managed semi-automatically by an Architecture Availability and Synchronization (FAS) agent. Networks are typically managed using network devices (e.g., devices that facilitate communication with other devices) that connect devices to other devices within the network and to devices outside the network. Large networks with a large number of connected devices and / or devices distributed over a large geographical area can use a large number of network devices to connect all the devices in the network. These large networks can operate architecture networks (e.g., sometimes called switched architectures), where the network's devices are interconnected via multiple network devices (unlike broadcast networks, where one network device specifically manages communication for multiple devices).
[0015] Network devices within an architecture network can be equipped with Architecture Availability and Synchronization (FAS) agents to manage the architecture network and the network devices that make up the architecture network. In some cases, other devices in the network (e.g., workstations, servers, etc.) may also be equipped with FAS agents. The FAS agent manages the operation of the network devices running on it and communicates with other FAS agents to synchronize the operation of the architecture network. FAS agents can provide architecture-level management of network devices, enabling the management of network devices within the architecture network from a single network device.
[0016] When a FAS agent is executed, the FAS agent can automatically define its hierarchy based on one or more of its own characteristics or the characteristics of the network device on which it runs. For example, the FAS agent can determine which FAS agent is best suited to run as the primary FAS agent based on the characteristics of each FAS agent or network device. Examples of one or more characteristics may include, but are not limited to, available bandwidth, available processing resources (processors and / or memory), the number of devices connected to the network device, and the quality of connection to another network device or server.
[0017] In one example, to determine the primary FAS agent, each FAS can derive a priority value indicating its suitability as the primary FAS agent. The priority value can be derived from the characteristics of the FAS agent and / or the network device on which the FAS agent operates. Each FAS agent can then claim the role of primary FAS agent by sending a control packet including the priority value to other FAS agents. Upon receipt by a particular FAS agent, the particular FAS agent can compare the priority value from the control packet with the priority value associated with that particular FAS agent. If the priority value of the control packet is greater than the priority value associated with that particular FAS agent, the particular FAS agent can relinquish the primary role to another FAS agent. Otherwise, if the priority value of the particular FAS agent is higher than the priority value of another FAS agent, that particular FAS agent becomes the primary FAS agent. The particular FAS agent can then send control packets to other FAS agents to confirm its primary status. In some cases, a particular FAS agent can periodically send primary packets to other FAS agents to maintain its status as the primary FAS agent. If at any time a particular FAS agent receives a priority value from another FAS agent that is greater than the priority value of that particular FAS agent, then that particular FAS agent can relinquish its status as the primary FAS agent to that FAS agent. If the primary FAS agent fails, other FAS agents can select a new primary FAS agent, thereby providing fault tolerance and redundancy in the network architecture.
[0018] FAS agents can use the resources of network devices to communicate with other FAS agents. In some cases, FAS agents can use network channels similar to those used by the network devices to connect to the network. In other cases, FAS agents can use the isolated communication channels of the network devices. For example, network devices may include management channels that enable external devices to send commands to the network devices. Virtual Local Area Networks (VLANs) can be established using management channels to facilitate communication by FAS agents. A VLAN can be a private network operating in parallel with connections managed by the network device, which can be used by both FAS agents and network administrators. Devices that architect the network (e.g., devices that rely on the network device for connectivity) may not have access to VLANs.
[0019] The primary FAS agent manages the configuration of the network architecture. The primary FAS agent synchronizes configuration changes of network devices with other network devices in the network architecture. For example, a command to modify the configuration of a specific network device in the network architecture can be propagated to the primary FAS agent. The primary FAS agent can authenticate configuration modifications, ensuring that these modifications are propagated to other network devices in the network architecture. Similarly, if the current configuration is determined to be causing an error, the FAS agent can roll back the current configuration to the previous configuration. Modifying the configuration of network devices in the network architecture can be done without having to modify each network device individually. In some cases, other network devices can obtain confirmation of the modifications from the primary FAS agent. In other cases, the configuration modifications can be obtained from the FAS agent running on the network device with the modified configuration.
[0020] Integrating a FAS agent into the network architecture offers numerous advantages. The FAS agent improves the availability of the architecture by preventing misconfigurations and inconsistent configurations, thereby reducing downtime and canary deployments. Furthermore, the FAS agent synchronizes the state of network devices within the architecture by propagating changes to the network to the FAS agent running on each network device. Changes in one network device can be authenticated, ensuring that the same changes are implemented across the entire network architecture without requiring individual modifications to each network device.
[0021] Figure 1An example of a network architecture according to aspects of this disclosure is depicted. Architecture environment 100 may include multiple devices connected via one or more network devices. Architecture network 100 may include multiple interconnected network devices. Each network device, such as network devices 104, 108, and 116, may include any type of device that facilitates communication, such as, but not limited to, routers, gateways, network switches, proxy devices, etc. Network devices may also maintain connections between one or more other network devices or between each other network device (e.g., as shown in the figure) to provide network security and communication redundancy for architecture network 100. The one or more other devices may be any type of device that initiates or addresses communication. Examples of devices that may be included in one or more other devices include, but are not limited to, servers, computing devices, network devices, mobile devices, etc.
[0022] Establishing the architecture network 100 may include providing an Architecture Availability and Synchronization (FAS) agent on each network device. For example, network device 104 may be equipped with FAS agent 108, network device 112 may be equipped with FAS agent 116, and network device 120 may be equipped with FAS agent 124. Each FAS agent can establish a dedicated connection with at least one other network device (and at most all other network devices). For example, each network device may include a management channel through which remote devices can issue commands to the network device. In some cases, each FAS agent can configure a Virtual Local Area Network (VLAN) through the management network. For example, FAS agent 108 can establish VLAN 128 on network device 104. FAS agent 116 can establish VLAN 128 on network device 112. FAS agent 108 can establish VLAN 128 on network device 120. The management channel may be a channel isolated from connections managed by the network devices. As a result, network devices can be configured to prevent devices in network environment 100 (except network devices 104, 108 and / or 112) from communicating through VLAN 116.
[0023] When the FAS agent executes for the first time, it can determine which FAS agent in the network architecture will be the primary FAS agent. For example, network device 104 could be the first network device added to the network. Once FAS agent 108 executes, it can identify predetermined characteristics of network device 104 to derive a priority value. These predetermined characteristics may correspond to available bandwidth, available processing resources (processors and / or memory), the number of devices connected to the network device, the quality of connections to other network devices or servers, and combinations thereof. Because FAS agent 120 is the only executing FAS agent, it can default to being the primary FAS agent.
[0024] Network devices 112 and 120 can be added to the network architecture. Once FAS agent 116 and FAS agent 124 are executed by network devices 112 and 120 respectively, FAS agent 116 and FAS agent 124 can determine their respective priority values. FAS agent 116 can broadcast its priority value to each other FAS agent (e.g., FAS agent 108 and FAS agent 124). Similarly, FAS agent 124 can broadcast its priority value to each other FAS agent (e.g., FAS agent 108 and FAS agent 116). In some cases, when receiving priority values from FAS agent 116 and FAS agent 124, FAS agent 108 can generate new priority values (ensuring that the priority values reflect the current operating characteristics of network device 104).
[0025] FAS agent 108 can determine whether its priority value is greater than any received priority value. If FAS agent 108 includes the maximum priority value, then FAS agent 108 can send control packets via VLAN 116 to FAS agent 116 and FAS agent 124, declaring that FAS agent 104 is the primary FAS agent for the network architecture 100. In some cases, FAS agent 108 can also send its priority value via VLAN 116, allowing FAS agent 116 and FAS agent 124 to independently verify that FAS agent 108 is the primary FAS agent. If the priority value of FAS agent 108 is not greater than the priority values of each of FAS agent 116 and FAS agent 124, then FAS agent 108 can send control packets via VLAN 128, relinquishing the primary FAS agent role to the FAS agent with the higher priority value.
[0026] The FAS agent can export priority values for the network devices it runs on at any time. In some cases, priority values can be determined at regular intervals, such as when user input is received, when a command to generate and / or send priority values is received from another network device, when an event is detected (e.g., configuration change, network topology change, change of network device processing resources, change of network device bandwidth or signal quality, or a combination thereof), or a combination thereof.
[0027] Architecture network 100 facilitates communication between devices within architecture network 100 and between devices of architecture network 100 and external devices. For example, network device 104 can manage connections to one or more servers 132, computing devices 136-1, and computing devices 136-2. Computing devices can be any type of network-enabled electronic device, such as computers, mobile devices (e.g., smartphones, wearable devices, etc.), servers, smart devices (e.g., network-enabled automation devices, etc.), network devices, etc. In some cases, computing devices may include one or more virtual devices. For example, computing devices may run one or more virtual machines, where each virtual machine can emulate a hardware platform. In these cases, network device 104 can facilitate communication between the computing device and each virtual machine (e.g., considered as individually addressable and distinct computing devices). Network device 112 may also include one or more servers 140 and computing devices 144-1 and 144-2. Network device 120 may include one or more servers 148 and computing devices 152-1 and 152-2.
[0028] In some cases, some devices may be connected to two or more network devices. For example, one or more servers 148 may maintain connections to each of network devices 112 and 120. In these cases, FAS agents 116 and 120 may run a federated subnet mask that defines the addresses of one or more servers 148. The federated subnet mask may be based on a dynamic routing protocol managed by the FAS agents, which enables the FAS agents to route communication to one or more servers 148 by connecting network device 112 or network device 120 based on the current state of the architecture network 100. The current state of the architecture network 100 may be based on, but is not limited to, throughput through the architecture network 100, available processing resources of network device 116 and / or network device 120, signal quality, network load of network device 116 and / or network device 120, and combinations thereof. When communication addressed to one or more servers 148 is received by the architecture network 100, the FAS agents can use the federated subnet mask to determine which connection to use to route the communication to one or more servers 148.
[0029] Network devices in the architecture network 100 may include common configurations. For example, network device 104 may include the same common configurations also included in network devices 116 and 120. In broadcast and mesh networks, modifying the configuration of a network device such as network device 104 (e.g., causing a configuration mismatch) can prevent communication addressed to downstream devices (e.g., devices 140, 144-1, 144-2, 148, 151-1, and 152-2) from propagating across the network to the destination device. The network administrator may then have to individually connect to each network device to modify its configuration to match the configuration of network device 104.
[0030] Architecture network 100 can automatically synchronize configuration changes over the network to prevent configuration mismatches and ensure that communication continues to propagate over the network when the configuration is updated. For example, modifications to the configuration of network device 112 can be received. If network device 112 includes a primary FAS agent, the primary FAS agent (e.g., FAS agent 116) can authenticate the configuration changes. Authentication can include security authentication (e.g., ensuring that the modification was generated by an authorized user) and / or operational authentication (e.g., ensuring that the modification does not disrupt the operation of architecture network 100 and / or interrupt communication transmitted through architecture network 100). If the modification is authenticated, FAS agent 116 increments the configuration version of the configuration of network device 112. FAS agent 116 can then send control packets via VLAN 128 to FAS agents 108 and 124, which provide the incremented version identifier of the configuration. FAS agents 108 and 124 can then obtain the modifications to the configuration (and / or the current configuration of network device 112) of network device 112 from network device 112 via VLAN 128.
[0031] If FAS agent 116 is not the primary FAS agent, then FAS agent 116 can send the modified identifier to the primary FAS agent. The primary FAS agent can then authenticate the modification, and if authenticated, will send control packets to other FAS agents via VLAN 128.
[0032] If the FAS agent determines that the current configuration contains a fault, a similar process may occur. The FAS agent first determines whether a rollback is needed by, for example, testing the configuration, determining that a predetermined number of faults have been reported, testing the throughput through fiber optic network 100, determining whether a predetermined number of communications failed to be delivered, and combinations thereof. For example, if a fault exists in the current configuration of network device 104, FAS agent 108 can determine whether a rollback is needed. If so, FAS agent 108 can roll back the network device to a previous configuration that was known to be good. If FAS agent 108 is the primary FAS agent, FAS agent 108 can restore network device 104 to the previous known good configuration and decrement the version identifier of network device 104's configuration to the version identifier of the known good configuration. FAS agent 108 can then send control packets to FAS agents 116 and 124, which include an identifier of the new (decremented) configuration version identifier.
[0033] If FAS Agent 108 is not the primary FAS Agent, it can send a rollback indication to the primary FAS Agent. The primary FAS Agent can then determine whether a rollback is needed (e.g., using a similar process performed by FAS Agent 108). If a rollback is needed, the primary FAS Agent can perform the rollback on its network device and send a control packet including a new (decreasing) configuration identifier to each other FAS Agent. Other FAS Agents can perform a similar rollback (if their network devices include previously configured instances) or obtain the previous configuration from the primary FAS Agent.
[0034] Although three network devices (e.g., network devices 204, 212, and 220) are depicted, each facilitating communication between the three devices (e.g., devices 132, 136-1, 136-2, 140, 144-1, 144-2, 148, 152-1, and 152-2), any number of network devices can operate within the architecture network. Each network device can facilitate communication between any number of devices.
[0035] Figure 2 An example block diagram depicting a network device managed by FAS according to aspects of this disclosure is provided. Such as Figure 1The architecture of network 100 can be used in different types of environments, such as enterprise networks, control centers, and residential networks. Some environments (such as control centers) may use a spine-leaf architecture. The backbone layer (e.g., backbone devices 204-1-204-n) may include network devices that interconnect leaf-layer devices into a mesh network topology. Each backbone device may be equipped with its own FAS agent (e.g., FAS agent 208-1 may run on backbone 1204-1, FAS agent 208-n may run on backbone n 204-n, and so on).
[0036] Leaf layers (e.g., computing devices 212-1-212-n) may include access devices that aggregate traffic from servers, client devices, user devices, etc. Computing devices 212-1-212-n may include one or more leaves (such as leaves 2167, 224, 244, and 248), each leaf including one or more FAS agents (such as FAS agents 220, 228, 252, and 256) that manage network operations of one or more devices consolidated within computing devices 212-1-212-n. For example, computing device 212-1 may include leaf 216 performing FAS agent 220 and leaf 224 performing FAS agent 228. FAS agent 220 may perform network operations to manage devices 232-1, 232-2, 232-3, etc. Devices 232-1, 232-2, 232-3, etc., may include computing devices operating within a control center. In some cases, computing devices can be combined with other devices (e.g., physical or virtual). For example, device 232-3 can be a physical computing device that executes virtual machines 236 and 240. Virtual machines 236 and 240 can be executed to emulate different execution environments for one or more other devices (e.g., client devices, user devices, other computing devices, etc.), or to provide an execution environment configured for executing a specific application.
[0037] Leaf device 216 (and FAS agent 220) and leaf layer 224 (and FAS agent 228) can each manage devices 232-1, 232-2, 232-3, etc., through different communication channels (e.g., as shown) or through the same communication channel (not shown). In addition to devices 232-1, 232-2, and 232-3 as shown, a leaf layer can manage any number of devices. Each device managed by a leaf layer can execute any number of virtual environments. For example, computing devices 212-n include leaf 244 executing FAS agent 252 and leaf 248 executing FAS agent 256. Each of leaves 244 and 256 can manage devices 260-1, 260-2, and 260-n.
[0038] Each leaf can connect to each backbone to achieve management redundancy within each computing device at the leaf layer. For example, if leaf 216 fails or becomes unresponsive, leaf 224 can continue to manage devices 232-1, 232-2, and 232-3. Furthermore, because leaf 224 maintains independent connections to backbone 204-1-204-n and FAS agents 208-1-208-n, FAS agents within the architecture network can continue to manage network operations for each device (physical or virtual) within the architecture network. For example, if leaf 216 is disabled, FAS agent 228 of leaf 224 can continue to communicate with FAS agents 208-1-208-n at the backbone layer.
[0039] FAS agents can communicate with each other to determine which FAS agent will be the primary FAS agent. In some cases, FAS agents can communicate through independent management channels. For example, an FAS agent can establish a VLAN through a separate management channel to establish communication with other FAS agents that manage network operations separately from those managed by the FAS agent. Because FAS agents run redundant network management operations, the control center may not need to allocate external hosts and / or servers to manage the redundancy or network operations (since the redundancy and network operations are managed by the FAS agent).
[0040] Control center administrators can execute commands across the entire fiber optic network by executing commands on a single device managed by a FAS agent. The FAS agent can identify commands addressed to the primary FAS agent. The primary FAS agent can authenticate the command and propagate it to other FAS agents. These other FAS agents can then execute the command on devices managed by those agents. Peer election protocols (e.g., via VLANs) can provide synchronization within the network architecture. In some cases, FAS agents can use state machines to manage the synchronization of configurations and commands.
[0041] Figure 3An example of a process for selecting a primary FAS agent according to aspects of this disclosure is depicted. The process of initializing the FAS agent is described in box 304. The FAS agent may be initialized when it is first provided (e.g., when the FAS agent is first executed on a network device) or when the network device is added to the architecture (or any other type of network). For example, when a network device is added to the network, an FAS agent already executed on the network device may be initialized. In box 304, the FAS agent may determine a priority value based on the characteristics of the network device on which the FAS agent executes. The priority value may be based on one or more performance metrics of the network device, including but not limited to currently available processing resources (e.g., memory and / or processor resources), throughput, bandwidth, signal quality of one or more devices managed by the network device, the number of devices managed by the network device, physical proximity to other network devices, or combinations thereof.
[0042] The FAS agent can compare its priority value with the current priority value. The current priority value can be the priority value of the current primary FAS agent. If the FAS agent determines that the network device's priority value is higher than the current priority value, the process continues to box 308. If the FAS agent determines that the network device's priority value is lower than the current priority value, the process continues to box 320, where the FAS agent can start a timer for a predetermined time interval (e.g., n seconds) and wait.
[0043] In box 308, in response to determining that a FAS agent's priority value is higher than the current priority value, the FAS agent declares its role as the primary FAS agent. The current priority value can be set as the priority value of the FAS agent. When a predetermined time interval expires (e.g., every i seconds), the FAS agent can send a priority control packet. The priority control packet can be transmitted through a VLAN established by the FAS agents in the architecture network. The priority control packet can provide other FAS agents operating in the architecture network with an indication that this FAS agent is the current primary FAS agent.
[0044] The FAS agent can then execute two parallel processes. In the first process, the FAS agent can compare its priority value with the current priority value. If the FAS agent's priority is greater than or equal to the current priority value, the process waits for a predetermined time interval and returns to box 208. The process can be repeated as long as the FAS agent's priority value is greater than or equal to the current priority value.
[0045] The primary FAS agent can then proceed to box 312, where the FAS performs the role of the primary FAS agent (e.g., synchronizing the operation of network devices within the architecture network with other FAS agents). In box 312, the primary FAS agent may send a keep_alive control packet every x seconds. The keep_alive control packet may include an indication of the current configuration of the network devices on which the primary FAS agent operates (this should be the configuration of each network device in the architecture network). FAS agents operating on other network devices can then determine whether the network device is executing the configuration version indicated in the keep_alive control packet. If so, these FAS agents may not perform any additional processing. If an FAS agent determines that the network device on which it operates is not executing the configuration version identified by the keep_alive control packet, the specific FAS agent can obtain the current configuration version.
[0046] In some cases, the architecture network can run a pull model. In these cases, a specific FAS agent can use a keep_alive control packet to determine where to obtain the current configuration version. For example, the keep_alive control packet may include an identifier of the control repository or store from which the specific FAS agent can obtain the current configuration version. The specific FAS agent may send a control packet to the primary FAS agent, indicating that it is updating the configuration of the network device on which it is executing. The specific FAS agent may send another control packet to the primary FAS agent, indicating that the network device's configuration version is now up-to-date. In a push model, a specific FAS agent may receive the current configuration version from the primary FAS agent (e.g., in a keep_alive control packet, based on a request from the specific FAS agent, etc.).
[0047] The primary FAS agent can periodically receive priority values from other FAS agents. For example, each FAS agent can send its priority value at predetermined time intervals (e.g., every n seconds according to box 320), upon receiving user input, and / or upon detecting an event (e.g., a network topology change, such as a new device being added to or removed from the architecture network, a predetermined change in throughput, a predetermined change in bandwidth, a predetermined change in processing resources, a predetermined change in signal or channel quality, a combination thereof, etc.). In some cases, the primary FAS agent may also update its priority value at predetermined time intervals upon receiving user input and / or detecting an event.
[0048] If the priority value of the primary FAS agent is greater than the received priority value, the primary FAS agent can continue to send keep_alive control packets every x seconds. If the priority value of the primary FAS agent is not greater than any received priority value, the two parallel processes can stop processing boxes 308 and 312 respectively. For example, the first parallel process can stop executing box 308 and continue to box 320, where the FAS agent can start a timer (e.g., for a length of n seconds) and wait. The second parallel process can stop executing box 312 and continue to box 316.
[0049] In box 316, the primary FAS agent may send m_yield control packets to the FAS agent with the highest priority value. In some cases, the primary FAS agent may send m_yield control packets to every FAS agent in the architecture network, such that each FAS agent can then expect new primary control packets from the FAS agent that will become the new primary FAS agent. The designation of the primary FAS agent may then be modified to remove the primary role (e.g., the primary FAS agent becomes a regular FAS agent). The process for the (now non-primary) FAS agent continues to box 320. In some cases, a second parallel process may arrive at box 320 simultaneously with the first parallel process. The two parallel processes of the FAS agent may then be merged into a single process (e.g., one of the parallel processes may be terminated).
[0050] In some cases, as described in box 320, the FAS agent may generate a new priority value when the timer expires (e.g., after n seconds). Alternatively, the FAS agent may generate a new priority value during the timer's interval (e.g., before the timer expires). Alternatively, the FAS agent may retain a previous priority value. For example, if the architecture network and / or network devices on which the FAS agent operates have not changed since the last time the FAS agent generated a priority level, the FAS agent may continue to use that priority level for future primary FAS agent determinations.
[0051] The FAS agent can then compare its priority value with the priority value of the current primary FAS agent. If the priority value of the FAS agent is greater than that of the current primary FAS agent, the process returns to box 308. The FAS agent becomes the primary FAS agent and sends a primary control packet to the previous primary FAS agent, indicating that the FAS agent is the new primary FAS agent. If the priority value of the FAS agent is greater than that of the current primary FAS agent, the process remains at box 320. The FAS agent restarts a timer (e.g., corresponding to an n-second time interval) and waits. When the timer expires (e.g., after n seconds), the FAS agent can again determine whether the priority value of the FAS agent is greater than that of the current primary FAS agent. The timer in box 320 can repeat indefinitely until, at the expiration of a predetermined time interval, the FAS agent determines that the priority value of the FAS agent is greater than that of the current primary FAS agent.
[0052] Figure 4 An example of a process for managing the configuration of an architecture for network devices according to aspects of this disclosure is described. A FAS agent can synchronize the configuration state of network devices within the network architecture. In some cases, the FAS agent can use a state machine that represents the current configuration as discrete states. Any change to the configuration can be represented by the state machine as a new state, and the change is identified as a means of transitioning from a previous state to the new state. The FAS agent can store the identifiers of the changes locally (e.g., in each FAS agent) or in a repository. An FAS agent executing on a network device running an older configuration state can upgrade to the current state by implementing the identifiers of the configuration changes. The FAS agent can obtain the identifiers of the configuration changes from an FAS agent executing on a network device running the current state (e.g., such as a primary FAS agent or an already upgraded agent) or from the repository.
[0053] Optionally, the configuration of a network device can be assigned a version identifier. When the configuration changes, the version identifier can be incremented to indicate the new configuration. The FAS agent can store the identifier of the configuration change in each FAS agent and / or in a repository accessible to the FAS agents. An FAS agent running on a network device with an older version identifier can upgrade to the current version identifier by obtaining the identifier of the configuration change from an already upgraded FAS agent or from the repository. Furthermore, if the current configuration fails, the FAS agent can undo changes to the modified configuration by rolling back (e.g., decrementing) the version identifier using the changed identifier. Each change to the configuration can cause the version identifier to increment by a predetermined amount. As a result, the FAS agent can determine the extent to which the configuration may have been changed based on the difference between the current version identifier of the network device on which it runs and the incrementing version identifier associated with another network device.
[0054] The process can begin (in step 1) with the primary FAS agent running on the network device retaining its primary role (e.g., waiting to process input from another FAS agent or from a user device). In step 2, network device 2 can receive command-line interface (CLI) commands. CLI commands can be received from the user device and correspond to modifications to the configuration of network device 2. The FAS agent executing on network device 2 can detect the modification before it is implemented and authenticate the modification. Authenticating the modification may include determining that the modification was received from an authenticated user device and / or an authenticated user (e.g., a network administrator with appropriate credentials). Alternatively or additionally, authenticating the modification may also include determining that the modification will not disrupt communication to devices within the network (e.g., the modification will not disrupt the network). Authenticating the modification in this way may include, for example, determining that the modification will not disrupt network operation based on previous configuration, based on a mock modification, based on acknowledgments (e.g., such as based on user input), based on hash values, etc.
[0055] In step 3, the FAS agent of network device 2 can forward the modified identifier to the primary FAS agent of network device 2. In step 4, the primary FAS agent can authenticate the modification. The primary FAS agent can authenticate the modification in the same manner as described above in conjunction with the FAS agent of network device 2. In some cases, the primary FAS agent can authenticate the modification in place of the FAS agent of network device 2. In other cases, the primary FAS agent can authenticate the FAS agent after the FAS agent of network device 2 has authenticated the modification. In still other cases, the primary FAS agent and the FAS agent of network device 2 can authenticate the modification in parallel. For a modification to be authenticated, it can be authenticated by both the primary FAS agent and the FAS agent of network device 2. Optionally, if either the primary FAS agent or the FAS agent of network device 2 has authenticated the modification, then the modification can be authenticated.
[0056] If the modification is authenticated, then (in step 5) the primary FAS agent implements the modification to the configuration of network device 1 and updates the configuration state (e.g., via a state machine). Alternatively, if a version identifier is used, the primary FAS agent increments the version identifier of the configuration of network device 1. The primary FAS agent may store the modification in a repository accessible to other FAS agents in the network.
[0057] In step 6, the primary FAS agent may broadcast a keep_alive control packet indicating the current configuration status (or version identifier) of network device 1. FAS agents connected to the primary FAS agent may receive keep_alive control packets. If other FAS agents operating in the network are not connected to the primary FAS agent, FAS agents connected to the primary FAS agent may forward keep_alive control packets to these FAS agents.
[0058] In step 7, the FAS agent of network device 2 (and any other FAS agents running within the network) can obtain the configuration modifications upon receiving a keep_alive control packet. In some cases, the FAS agent of network device 2 can obtain the modifications from a FAS agent (such as the primary FAS agent) running on a network device that is updating the configuration (e.g., based on a state or version identifier matching the keep_alive control packet). Alternatively, the FAS agent of network device 2 can perform a query in the repository using the state or version identifier. The repository can then return the modifications to the requesting FAS agent. The FAS agent can then implement the configuration modifications and synchronize the state (or version identifier) with other network devices in the network.
[0059] Figure 5 An example of a process for updating the configuration of a network device architecture according to aspects of this disclosure is described. In box 504, a first network device in the architecture network can receive an identifier of a command from a second network device. This command may correspond to a modification of the current configuration of the second network device. The first network device may operate with the same current configuration as the second network device. In some cases, the second network device may receive commands from a user device via a command-line interface.
[0060] This network architecture may include two or more network devices (e.g., a first network device and a second network device, and any optional number of additional network devices). Each network device may include a device that facilitates communication with one or more other devices. Examples of network devices may include, but are not limited to, routers, gateways, switches, servers, etc.
[0061] The first network device can receive commands from the second network device via a virtual LAN. For example, network devices in a network architecture can each include a management channel for managing the operation of the respective network device. FAS agents running on the network devices can establish VLANs via the management channels. VLANs can be isolated from the devices that facilitate communication between the network devices. That is, VLANs can operate without using the same communication channels used by the devices that provide communication services to them. VLANs can be used only for managing the operation of the network architecture.
[0062] In box 508, a first FAS agent executing on a first network device can authenticate the command. Authenticating the modification may include determining that the modification was received from an authenticated user device and / or an authenticated user (e.g., a network administrator with appropriate credentials). Alternatively or additionally, authenticating the modification may also include determining that the modification will not disrupt communication to devices within the network (e.g., the modification will not disrupt the network). The first FAS agent can determine that the command will not disrupt the network architecture by, for example, analyzing previous configurations, simulating the modification, receiving acknowledgments (e.g., from user input), matching hash values with stored hash values, etc. If the command is not authenticated, the command may be discarded, and the process may return to box 504 and wait for a new command. If the command is authenticated, the process continues to box 512.
[0063] In box 512, the first FAS agent can cause modification of the current configuration of the first network device based on this command. For example, modifying the current configuration of the first network device defines a new configuration for the first network device. In some cases, the first network device can test the new configuration. For example, testing the new configuration may include performing unit tests, sending packets to predetermined devices (e.g., user equipment, etc.) and monitoring responses, executing test applications, etc. If the test fails, the configuration of the first network device can be rolled back from the new configuration to the previous configuration.
[0064] In box 516, the identifier of a command can be stored. In some cases, the identifier of a command can be stored by the first FAS agent (optionally, each FAS agent that causes the command to be implemented on the corresponding network device). In other cases, the command can be stored in a control library accessible to the network devices that structure the network. The FAS agent can query the control library using the state associated with the command (e.g., a new state such as described below) and / or the identifier of the command to retrieve the command from the control library.
[0065] In box 520, the state identifier associated with the current configuration of the first network device can be updated to correspond to a new state identifier associated with the new configuration. The state identifier represents the state of the network device's configuration. Since the configuration of each network device can be a finite combination of attributes, the number of unique combinations of attributes (such as configuration) can also be finite. As a result, a particular configuration of a network device can be represented as one of a finite set of states in a state machine. When the configuration of a network device changes, the state of the configuration also changes (proportional to the ongoing change and corresponding to the new combination of attributes). The state identifier representing the state of the old configuration of the network device can be updated to a new state identifier representing the new state. Examples of attributes that can be included in the combination of attributes constituting the configuration include, but are not limited to, hostname, console password, enabling or disabling a specific port, default gateway assignment, enabling management channel, Internet Protocol address configuration, subnet mask configuration, etc.
[0066] Status identifiers can be used to query the control library (or another FAS agent). The control library can return identifiers for one or more commands that can be executed by network devices to upgrade their current configuration to a new configuration. In some cases, the query may also include status identifiers (e.g., associated with the current state before any modifications to the configuration). The control library can use the status identifier associated with the current state and the new status identifier to return commands that can upgrade any network device running any configuration to the new configuration.
[0067] In some cases, one or more commands may correspond to commands received by a second network device. In other cases, one or more commands may be identified based on the characteristics of the device generating the query. For example, some network devices may run different hardware and / or firmware than other network devices. Although each network device can be configured with the same configuration, the commands that cause the network device to run the new configuration may differ for different network devices. As a result, the control library can generate a query response that includes the identifiers of one or more commands that, when executed by the requesting network device, can upgrade the requesting network device to the same new configuration as other network devices.
[0068] In box 524, a first FAS agent executing on a first network device can send a control packet, including a new status identifier, to a second FAS agent executing on a second network device via a VLAN. When the second FAS agent receives the control packet, it can retrieve the identifier of the command. In some cases, the second FAS agent can request the command identifier from the first FAS agent (or another FAS agent that has already implemented the command). In other cases, the second FAS agent can query the control library using the new status identifier. The second FAS agent can then implement the command on the second network device to upgrade the configuration of the second network device to the new configuration.
[0069] If the second FAS agent determines that the new configuration is inoperable (e.g., by detecting a predetermined number of dropped packets, communication failure, software failure, etc.), the second FAS agent can send a communication to the first FAS agent instructing the network architecture to roll back to the previous configuration. The first FAS agent can authenticate the communication and send a new control packet with a status identifier indicating the previous known good configuration. This new control packet allows other network devices in the network architecture to also revert to the previous known good configuration, ensuring a consistent network architecture configuration.
[0070] In some cases, if the first FAS agent detects a connectivity failure associated with a network device in the architecture network, the first FAS agent may not modify the configuration of the first network device (or may allow modification of any network device in the architecture network). For example, if the first FAS agent receives a command after detecting a connectivity failure in a network device, the first network device may store the command. Once the connectivity of the affected network device is restored, the first FAS agent may retrieve and execute the command (e.g., execute boxes 508-524). Alternatively, the first FAS agent may discard the command. Once the connectivity of the affected network device is restored, the first network device may accept a command to modify the configuration of the network device in the architecture network.
[0071] Specific details are set forth in the above description to provide a thorough understanding of the embodiments. However, it should be understood that these embodiments may be implemented without these specific details. For example, circuits may be shown in block diagrams to avoid obscuring the embodiments with unnecessary details. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary details to avoid obscuring the embodiments.
[0072] The above-described techniques, blocks, steps, and apparatus can be implemented in various ways. For example, these techniques, blocks, steps, and apparatus can be implemented in hardware, software, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the above-described functions, and / or combinations thereof.
[0073] Furthermore, note that the embodiment can be described as a process depicted as a flowchart, block diagram, run-through diagram, control flow diagram, structural diagram, or block diagram. Although the depiction may describe operations as a sequential process, many operations can be performed in parallel or concurrently. Furthermore, the order of operations can be rearranged. When the operations of a process are completed, the process terminates, but there may be additional steps not included in the diagram. A process can correspond to a method, function, program, subroutine, subroutines, etc. When a process corresponds to a function, its termination corresponds to the function returning to the calling function or the main function.
[0074] Furthermore, embodiments can be implemented using hardware, software, scripting languages, firmware, middleware, microcode, hardware description languages, and / or any combination thereof. When implemented in software, firmware, middleware, scripting languages, and / or microcode, program code or code segments that perform the necessary tasks can be stored in a machine-readable medium such as a storage medium. Code segments or machine-executable instructions can represent any combination of procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, scripts, classes, or instructions, control structures, and / or program statements. Code segments can be coupled to other code segments or hardware circuitry by passing and / or receiving information, control, arguments, parameters, and / or memory contents. Information, arguments, parameters, control, etc., can be passed, forwarded, or transmitted in any suitable manner, including memory sharing, message passing, token passing, network transmission, etc.
[0075] For firmware and / or software implementations, these methods can be implemented using modules (e.g., programs, functions, etc.) that perform the functions described herein. Any machine-readable medium that tangibly contains instructions can be used to implement the methods described herein. For example, software code can be stored in memory. Memory can be implemented inside or outside the processor. As used herein, the term "memory" means any type of long-term, short-term, volatile, non-volatile, or other storage medium, and is not limited to any particular type or quantity of memory, or the type of medium storing memory.
[0076] Furthermore, as disclosed herein, the term "storage medium" can refer to one or more memories used for storage control, including read-only memory (ROM), random access memory (RAM), magnetic RAM, magnetic core memory, disk storage media, optical storage media, flash memory devices, and / or other machine-readable media for storing information. The term "machine-readable medium" includes, but is not limited to, portable or fixed storage devices, optical storage devices, and / or various other storage media capable of storing or carrying instructions and / or control.
[0077] Although the principles of this disclosure have been described above in conjunction with specific apparatus and methods, it should be clearly understood that the description is merely illustrative and not intended to limit the scope of this disclosure.
Claims
1. A method for updating the configuration of an architectural network, the method comprising: The first network device in the architecture network receives an identifier of a command to modify the current network device configuration of the second network device from the second network device in the architecture network, wherein the first network device and the second network device are configured according to the current network device configuration; The command is authenticated by the First Architecture Availability and Synchronization (FAS) agent executed on the first network device; In response to the authentication command, the first network device modifies its current configuration based on the command, wherein modifying the current configuration of the first network device defines a new configuration; Store the identifier of the command; In response to modifying the current configuration of the first network device, update the status identifier associated with the current configuration of the first network device to correspond to the new status identifier associated with the new configuration; as well as A control packet including a new status identifier is sent from a first FAS agent to a second FAS agent executing on a second network device in the architecture network. Upon receiving the control packet, the second FAS agent retrieves the identifier of the command and executes the command on the second network device to modify the current configuration of the second network device to the new configuration.
2. The method of claim 1, wherein the control packets are transmitted via a virtual local area network (VLAN), the VLAN operating in parallel with a network connection managed by a first network device.
3. The method of claim 1, further comprising: The identifier of the second command received by the first network device from the third network device in the network architecture; The first network device determines that the second command is invalid; as well as Prevent a second command from changing the new configuration.
4. The method of claim 1, further comprising: The faults in the new configuration are detected by the first network device; In response to a fault detected in the new configuration, the new configuration of the first network device is automatically restored to the previous configuration; as well as The first network device sends a second control packet, which includes an identifier of a status identifier associated with a previously known good configuration.
5. The method of claim 1, wherein network devices operating with a configuration different from the new configuration are removed from the architecture network.
6. The method of claim 1, further comprising: The first FAS agent, executed on the first network device, detects connection failures of the fourth network device in the FAS network; as well as When the connection failure persists, the first FAS agent, which is executed on the first network device, prevents modifications to the new configuration of the first network device.
7. The method of claim 1, further comprising: The first FAS agent, which is executed on the first network device, receives a priority packet that includes a priority value associated with the new network device in the architecture network, wherein the priority value associated with the FAS agent of the new network device is greater than the priority value associated with the first FAS agent. as well as The first FAS agent broadcasts a third control packet over the architecture network, indicating that the first network device is relinquishing its master network device status to a new network device.
8. A system for updating the configuration of an architectural network, the system comprising: One or more processors; as well as A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations including: The first network device in the architecture network receives an identifier of a command to modify the current network device configuration of the second network device from the second network device in the architecture network, wherein the first network device and the second network device are configured according to the current network device configuration; The command is authenticated by the First Architecture Availability and Synchronization (FAS) agent executed on the first network device; In response to the authentication command, the first network device modifies its current configuration based on the command, wherein modifying the current configuration of the first network device defines a new configuration; Store the identifier of the command; In response to modifying the current configuration of the first network device, update the status identifier associated with the current configuration of the first network device to correspond to the new status identifier associated with the new configuration; and A control packet including a new status identifier is sent from a first FAS agent to a second FAS agent executing on a second network device in the architecture network. Upon receiving the control packet, the second FAS agent retrieves the identifier of the command and executes the command on the second network device to modify the current configuration of the second network device to the new configuration.
9. The system of claim 8, wherein the control packets are transmitted via a virtual local area network (VLAN), the VLAN operating in parallel with a network connection managed by a first network device.
10. The system of claim 8, further comprising: The identifier of the second command received by the first network device from the third network device in the network architecture; The first network device determines that the second command is invalid; as well as Prevent a second command from changing the new configuration.
11. The system of claim 8, further comprising: The faults in the new configuration are detected by the first network device; In response to a fault detected in the new configuration, the new configuration of the first network device is automatically restored to the previous configuration; as well as The first network device sends a second control packet, which includes an identifier of a status identifier associated with a previously known good configuration.
12. The system of claim 8, wherein network devices that operate with a different configuration from the new configuration are removed from the architecture network.
13. The system of claim 8, further comprising: The first FAS agent, executed on the first network device, detects connection failures of the fourth network device in the FAS network; as well as When the connection failure persists, the first FAS agent, which is executed on the first network device, prevents modifications to the new configuration of the first network device.
14. The system of claim 8, further comprising: The first FAS agent, which is executed on the first network device, receives a priority packet that includes a priority value associated with the new network device in the architecture network, wherein the priority value associated with the FAS agent of the new network device is greater than the priority value associated with the first FAS agent. as well as The first FAS agent broadcasts a third control packet over the architecture network, indicating that the first network device is relinquishing its master network device status to a new network device.
15. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations including: The first network device in the architecture network receives an identifier of a command to modify the current network device configuration of the second network device from the second network device in the architecture network, wherein the first network device and the second network device are configured according to the current network device configuration; The command is authenticated by the First Architecture Availability and Synchronization (FAS) agent executed on the first network device; In response to the authentication command, the first network device modifies its current configuration based on the command, wherein modifying the current configuration of the first network device defines a new configuration; Store the identifier of the command; In response to modifying the current configuration of the first network device, update the status identifier associated with the current configuration of the first network device to correspond to the new status identifier associated with the new configuration; as well as A control packet including a new status identifier is sent from a first FAS agent to a second FAS agent executing on a second network device in the architecture network. Upon receiving the control packet, the second FAS agent retrieves the identifier of the command and executes the command on the second network device to modify the current configuration of the second network device to the new configuration.
16. The non-transitory computer-readable medium of claim 15, wherein the control packets are transmitted via a virtual local area network (VLAN), the VLAN operating in parallel with a network connection managed by a first network device.
17. The non-transitory computer-readable medium of claim 15, further comprising: The identifier of the second command received by the first network device from the third network device in the network architecture; The first network device determines that the second command is invalid; as well as Prevent a second command from changing the new configuration.
18. The non-transitory computer-readable medium of claim 15, further comprising: The faults in the new configuration are detected by the first network device; In response to a fault detected in the new configuration, the new configuration of the first network device is automatically restored to the previous configuration; as well as The first network device sends a second control packet, which includes an identifier of a status identifier associated with a previously known good configuration.
19. The non-transitory computer-readable medium of claim 15, further comprising: The first FAS agent, executed on the first network device, detects connection failures of the fourth network device in the FAS network; as well as When the connection failure persists, the first FAS agent, which is executed on the first network device, prevents modifications to the new configuration of the first network device.
20. The non-transitory computer-readable medium of claim 15, further comprising: The first FAS agent, which is executed on the first network device, receives a priority packet that includes a priority value associated with the new network device in the architecture network, wherein the priority value associated with the FAS agent of the new network device is greater than the priority value associated with the first FAS agent. as well as The first FAS agent broadcasts a third control packet over the architecture network, indicating that the first network device is relinquishing its master network device status to a new network device.