US20140269254A1 - Virtual router upgrade via graceful restart - Google Patents
Virtual router upgrade via graceful restart Download PDFInfo
- Publication number
- US20140269254A1 US20140269254A1 US13/834,111 US201313834111A US2014269254A1 US 20140269254 A1 US20140269254 A1 US 20140269254A1 US 201313834111 A US201313834111 A US 201313834111A US 2014269254 A1 US2014269254 A1 US 2014269254A1
- Authority
- US
- United States
- Prior art keywords
- router
- physical
- physical router
- routing
- routers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/563—Software download or update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Definitions
- Embodiments presented in this disclosure generally relate to upgrading virtual routers, and more specifically, to using a graceful restart function to upgrade a virtual router.
- Upgrading a network device may require that the device stop transmitting, receiving, or forward data packets.
- this outage may cause other network devices (e.g., routers, switches, or client devices) coupled to the device being upgraded to not receive data packets.
- routers, switches, or client devices e.g., routers, switches, or client devices coupled to the device being upgraded to not receive data packets.
- an end device relies on a router to access an external network (e.g., the Internet) but the router is offline while an upgrade is being performed, the end device may not be able transmit or receive data traffic via the external network.
- a network administrator may choose to upgrade network devices when data throughput is the lowest, thereby minimizing the service interruption.
- different upgrade techniques may allow a network device to be upgraded while still permitting data plane traffic to flow through the device.
- these techniques apply to a limited number of network device architectures and/or software updates. For example, if the upgrade includes updating hardware responsible for forwarding data traffic, the network device may not be able to perform the upgrade without a service interruption.
- FIG. 1 is a block diagram of a virtual router, according to one embodiment disclosed herein.
- FIG. 2 is a block diagram of a network implementing the virtual router, according to one embodiment disclosed herein.
- FIG. 3 illustrates a method of upgrading the individual routers in the virtual router, according to one embodiment disclosed herein.
- FIG. 4 illustrates data flow when upgrading a router in the virtual router, according to one embodiment disclosed herein.
- FIG. 5 illustrates data flow when upgrading the router in the virtual router, according to one embodiment disclosed herein.
- FIG. 6 illustrates a method for upgrading a router in the virtual router using the previously upgraded router, according to one embodiment disclosed herein.
- Embodiments of the present disclosure include a method and a computer program product for upgrading a virtual router comprising at least a first and a second physical router.
- the method and computer product include disabling the first physical router such that data paths previously flowing through the first physical router flow through the second physical router.
- the method and computer product After upgrading the first physical router, the method and computer product starting a first routing application on the first physical router where the second physical router is configured to forward received control plane packets associated with the first routing application to the first physical router.
- the method and computer product receiving, at the first physical router, routing information identifying user devices connected to a remote network device.
- the method and computer product disable the second physical router such that data paths previously flowing through the second physical router flow through the first physical router.
- the method and computer product upgrade the second physical router.
- the virtual router includes a first physical router, a second physical router, and an interconnect communicatively coupling the first and second physical routers.
- the first physical router is configured to disable one or more ports such that data paths previously flowing through the first physical router flow through the second physical router and, after performing a first upgrade, start a first routing application where the second physical router is configured to forward received control plane packets associated with the first routing application to the first physical router.
- the first physical router is also configured to receive routing information identifying user devices connected to a remote network device.
- the first physical router is further configured to resolve data routes for transferring data traffic to the user devices connected to the remote network device based on the routing information.
- the second physical router is configured to, after the data routes are resolved on the first physical router, disable one or more ports such that data paths previously flowing through the second physical router flow through the first physical router and perform a second upgrade.
- Embodiments described herein provide techniques for upgrading a virtual router (VR), preferably in a manner that minimizes interruption to data flowing through the VR.
- a VR includes at least two physical routers that are connectively coupled in order to share a common control plane. To the perspective of devices connected to the VR, the two (or more) physically distinct routers behave like a single router. For example, both routers may share the same router ID. If one router in the VR fails, the connected device may automatically switch to the other router, thereby maintaining connectivity and data flow through the VR.
- Various protocols such as In-Service Software Upgrade (ISSU) or Stateful Switch Over (SSO), enable network devices to upgrade different aspects of the device without interrupting the flow of data traffic through the device.
- ISSU In-Service Software Upgrade
- SSO Stateful Switch Over
- a network administrator may apply bug fixes and deploy new features and services while a router continues to forward packets in the data plane.
- not every upgrade can be performed using an ISSU.
- installing new software, upgrading existing software to newer version, or upgrading firmware and hardware may not be able to be performed while maintaining data flow in the data plane.
- the embodiments disclosed herein describe a technique for performing these types of updates to physical routers in a VR using a graceful restart.
- a graceful restart is a function supported by various protocols (e.g. Border Gateway Protocol (BGP) and targeted Label Distribution Protocol (tLDP)) that prevents network devices from altering data routes upon detecting a restart in a peer device.
- Border Gateway Protocol BGP
- tLDP targeted Label Distribution Protocol
- one router in the VR is taken offline while the upgrade is performed. Service is maintained by routing all data and control plane traffic through the other router in the VR. Because the upgrade may result in the router losing the previously stored data routes, the upgraded router may relearn the different routes and addresses associated with connected devices.
- the VR is used in to connect client devices that are located at different sites in, for example, a VPN.
- the router must relearn the routing information (e.g., different data routes and prefixes) associated with the client devices.
- a remote device e.g., another router
- the remote device transfers the required routing information to the non-upgraded router of the VR which then forwards this information to the upgraded router.
- the upgraded router relearns the routing information that was lost during the upgrade.
- the upgraded router then assumes the data routing responsibilities thereby permitting the non-upgraded router to be taken offline and upgraded.
- the control planes of the routers are rejoined. In this manner, the physical routers in a VR may be sequentially upgraded while minimizing data loss resulting from taking the routers offline.
- FIG. 1 is a block diagram of a VR 100 , according to one embodiment disclosed herein.
- the VR 100 includes at least two physically distinct routers: router 110 and router 140 .
- router 110 and router 140 are contained in respective chassis 105 , 135 .
- the chassis 105 , 135 are structures that enclose the various interconnected components of the routers 110 and 140 .
- the chassis 105 , 135 may provide a frame on which to mount the components of the routers 110 , 140 .
- chassis 105 may be designed to include support elements for mounting the linecards 130 in the chassis 105 as well as openings for data ports that enable the linecards 130 to receive and forward data packets. Further still, the chassis 105 and 135 may be mounted into a rack or other storage mechanism.
- Routers 110 , 140 include processors 115 , 145 and memories 120 , 150 .
- Processors 115 , 145 may be implemented using one or more processors that may include any number of processing cores. Moreover, processors 115 , 145 may be implemented using any processor design that is capable of performing the functions described herein.
- Memories 120 , 150 may include both volatile and non-volatile memory elements such as RAM, Flash memory, internal or external hard drives, EPROMs and the like.
- the memories 120 , 150 store the operating systems 125 and 155 that include logic for controlling and monitoring the different functions performed by routers 110 , 140 .
- Operating systems 125 , 155 may be any operating system that enables the routers 110 , 140 to be virtualized into a single VR.
- the routers 110 , 140 in VR 100 share the same control plane which enables the routers 110 , 140 to synchronize the different data routes passing through the VR 100 .
- the operating systems 125 , 155 are the same version or similar versions, thereby permitting the routers 110 , 140 to share a common control plane.
- the VR 100 may assign the same router ID (e.g., the same IP address) to both routers 110 , 140 .
- VR 100 includes an interconnect 165 that communicatively couples router 110 to router 140 .
- interconnect 165 can synchronize the data routes such that the routers 110 , 140 behave like a single router. That is, to a network or client device coupled to the routers 110 , 140 , they function as a single router even though they are two separate and distinct units.
- routers 110 , 140 exchange only control plane traffic between the operating systems 125 , 155 using interconnect 165 .
- interconnect 165 is not used to exchange data plane traffic between the routers 110 , 140 .
- Interconnect 165 may be implemented using any wired or wireless communication means.
- interconnect 165 may be implemented using a common Ethernet link or using a proprietary communication link designed specifically for creating a VR.
- Routers 110 , 140 include one or more line cards 130 , 160 .
- the line cards 130 , 160 are modular electronic circuits on printed circuit boards that include a plurality of ports that receive and forward data packets.
- Routers 110 , 140 may include a back plane (not shown) used to interconnect the line cards 130 , 160 and facilitate internal routing between the line cards 130 , 160 .
- the operating systems 125 , 155 may use the back plane to configure and monitor the line cards 130 , 160 .
- the chassis 105 , 135 may be designed such that additional line cards 130 , 160 may be added to the routers 110 , 140 .
- FIG. 1 illustrates interconnecting routers to form a VR
- the same techniques discussed herein may also be applied to other virtualized network devices—e.g., switches, bridges, and the like.
- routers 110 , 140 may share the same chassis even though they are two independent and distinct devices with separately controlled linecards 130 .
- FIG. 2 is a block diagram of a network 200 implementing the VR 100 , according to one embodiment disclosed herein.
- Network 200 includes a plurality of local devices 205 coupled to VR 100 .
- each local device 105 may include separate, physical connections to both routers 110 , 140 in VR 100 .
- the local device 205 uses the other connection to transmit data to the other router in the VR 100 .
- the routers 110 , 140 are integrated to form the VR 100
- the local devices 205 view the separate routers 110 , 140 as a single router—i.e., each local device 205 functions as if the devices 205 have two physical connections to the same router.
- the VR 100 is configured, however, to divide the data traffic between the routers 110 , 140 .
- VR 100 may control which of the two connections the local devices 205 use to transfer data—e.g., local device 1 transmits data to router 110 while local device 2 transmits data to router 140 .
- the cost scores may be used to assign different data streams to different routers 110 , 140 —e.g., local device 1 transmits some data streams through router 110 and other data stream through router 140 while local device 2 transmits data traffic only through router 110 .
- VR 100 permits the workload to be distributed across the routers 110 , 140 by synchronizing the data paths used to transmit data from and to the local devices 205 .
- a router fails, the data previously routed to the failed router is switched to the other router, thereby minimizing dropped data packets.
- Routers 110 , 140 are coupled to an external (or core) network 210 which may include hundreds or thousands of interconnected network devices (e.g., routers, switches, etc.).
- external network 210 may be the network devices operated by an internet service provider (ISP).
- remote provider edge (PE) devices 215 are coupled to the external network 210 .
- the remote PEs 215 may also be routers or VRs like routers 110 , 140 and VR 100 .
- Each remote PE 215 is coupled to one or more customer devices 220 .
- the customer devices 220 may include personal computers (e.g., laptop or desktops), servers, printers, and the like.
- local devices 205 and customer devices 220 may be part of the same VPN.
- local devices 205 and customer device 200 may be owned by the same entity but may be located at different sites.
- the local devices 205 and VR 100 may be located at one regional office while remote PEs 215 and customer devices 220 may be located at a different regional office. Nonetheless, VR 100 and remote PEs 215 may be configured to route data between the customer devices 220 and local devices 205 as if they were physically connected on a private network despite the fact the data may pass through a public or third-party network such as external network 210 .
- routers 110 and 140 may generate and store date routes for transferring data packets from the local devices 205 to the customer devices 220 while remote PEs 215 may store similar routing information for routing data packets form the customer devices 220 to the local devices 205 .
- the edge devices 110 , 140 , 215 can route packets through the external network 210 to an endpoint in the VPN.
- FIG. 3 illustrates a method 300 of upgrading the individual routers in the virtual router, according to one embodiment disclosed herein.
- a network administrator may wish to update the operating systems 125 , 155 on each of the routers 110 , 140 shown in FIG. 1 from version 1.0 to 2.0.
- the VR may not be able to upgrade the routers using a protocol such as ISSU which would enable the routers to continue to route data plane traffic while the upgrade is being performed.
- the routers would need to be taken offline and service would be interrupted while the upgrade is performed.
- method 300 discloses a technique for maintaining at least partial service to the devices connected to the VR when upgrading the routers contained in the VR.
- FIG. 3 illustrates a method 300 of upgrading a VR where BGP is used to transfer information about the routes between network devices.
- VR 100 and remote PEs 215 may be edge devices (e.g., layer 3 networking) that includes local devices 205 and customer devices 220 .
- edge devices e.g., layer 3 networking
- this disclosure is not limited to such an arrangement.
- method 300 shown in FIG. 3 may also be used for a VR that interconnects devices in a layer 2 networking that uses tLDP to transfer route information between the edge devices.
- the embodiments disclosed herein may be used to upgrade a VR that implements any protocol that supports a graceful restart function. The details of the graceful restart function will be discussed in greater detail below.
- the shared control plane of the VR is severed before a router is upgraded.
- the operating system of the router to be upgraded may delegate control solely to the operating system of the other router.
- the data connection between the routers which enables the routers to exchange control data is disconnected. Referring to FIG. 1 , disconnecting the data connection between the routers 110 , 140 results in the routers 110 and 140 no longer communicating using interconnect 165 (although the physical connection may be maintained).
- the technique for disabling the control plane traffic between the routers in the VR is dependent on the particular VR configuration. For example, in some VR configurations, the control plane traffic may be disconnected by disabling one particular packet path between the routers.
- the router to be upgraded may disable its ports to peer devices. For example, the router may disable the ports coupled to the local devices as well as the ports coupled to network devices in the external network. Because each local device or network device may have two independent data paths to the VR (i.e., a first data path connected to one of the routers and a second data path connected to the other router), disabling the ports on one routers causes the local and network devices that were using those ports to route traffic to the VR using the other data connection. Thus, network traffic continues to flow to the VR even as one of the routers is taken offline to be upgraded, albeit the bandwidth of the VR is reduced.
- the upgrade may include a significant software upgrade that cannot be performed while data plane traffic continues to flow in the router.
- the upgrade may involve upgrading the operating system's kernel to a new version which may affect the different hardware units in the router responsible for forwarding data plane traffic (e.g., the linecards).
- the upgrade may update firmware that controls the hardware units (e.g., hardware FPGA updates) or even be installation of new hardware (e.g., a new linecard) in the router or a new software application that affects data plane forwarding.
- the upgrade is started only after the control plane is severed and the ports have been disabled. However, in other embodiments, some portion of the upgrade may occur while the control plane is being shared or the ports are still forwarding data plane traffic. For example, after receiving an upgrade image (e.g., router software), the router may first uncompress the image or execute pre-upgrade operations (such as backing up data) before severing the communication link or disabling its ports connected to peer devices.
- an upgrade image e.g., router software
- pre-upgrade operations such as backing up data
- the upgraded router is rebooted but is assigned a different router ID than the other router in the VR.
- a configuration file may include a predefined setting that specifies the router ID (e.g., the IP address) to be used once the upgraded is rebooted.
- the routers may use the same router ID. Doing so advertises to peer devices that the routers are the same device. However, when one router has been upgraded but the other has not, the IP addresses are changed to ensure that the connected devices do not treat the routers the same. For example, it may be desired that the upgraded router does not use the same router ID as the non-upgraded router when using IGP or LDP.
- Each remote PE 215 may include a routing application (a BGP application) that publishes and maintains the BGP prefixes required when generating data routes for accessing the customer devices 220 .
- a BGP application a routing application that publishes and maintains the BGP prefixes required when generating data routes for accessing the customer devices 220 .
- the embodiments herein refer to the routing application specifically as a BGP application but this disclosure is not limited to such.
- the embodiments disclosed herein may be modified for using network devices that use, e.g., tLDP applications for maintaining routing information of devices.
- the BGP application may be part of the routers' operating systems or be composed of a plurality of different processes, rather than single application, that perform the functions described herein.
- the upgraded router For the upgraded router to receive the BGP prefixes from the BGP application executing on the remote PE 215 using the new router ID, an instruction containing the new ID has to be transmitted to the remote PEs 215 that instructs the PEs 215 to provide the prefixes to the upgraded router.
- adding the new router ID to the BGP application on each remote PE 215 may require updating hundreds of remote PEs 215 .
- the upgraded router may not have permission to add the new router ID to the list of approved devices that receive the BPG prefixes. Accordingly, the upgraded router may instead wait until the router is assigned the same router ID used before the upgrade was performed before receiving the BGP prefixes.
- FIG. 4 illustrates data flows after one of the routers in the virtual router is upgraded, according to one embodiment disclosed herein.
- network 400 illustrates data flowing through routers 110 , 140 after router 140 has been upgraded as discussed in blocks 305 - 315 of FIG. 3 .
- router 140 i.e., the upgraded router
- router 140 is assigned a different router ID—2.2.2.2—from router 110 (i.e., the non-upgraded router).
- router 140 may transmit some data traffic to the external network 210 but router 140 has a different ID and may advertise a very high-cost (low preference) so that data continues to flow through router 110 .
- router 140 may not transmit data plane traffic between the external network 210 and the local device 205 . Instead, router 140 may exchange only limited control plane traffic with the external network 210 . In contrast, as shown by arrow 410 , router 110 may continue to forward data plane traffic between local device 205 and customer device 215 using remote PE 215 and external network 210 . That is, the data traffic may continue to flow through VR 100 using router 110 .
- Remote PE 215 includes a BGP application 415 that stores and manages the BGP prefixes 420 associated with customer devices 220 . Periodically, remote PE 215 may transmit the BGP prefixes 420 to router 110 as shown by arrow 425 . Of course, although not shown, router 110 may also send updates using its BGP application to the remote PE 425 . Because router 140 has a different router ID—i.e., a router ID not recognized by the BGP application 415 executing on remote PE 215 —BGP application 415 does not send the prefixes to router 140 . In one embodiment, the routers 110 and 140 may be edge devices for connecting customer devices that are at remote sites in a VPN, but this is only one example of where this technique may be used.
- the non-upgraded router deactivates its BGP application while the upgraded router activates its BGP application. In one embodiment these two actions may performed in parallel such that any time where neither BGP application is executing is minimized. Moreover, the non-upgraded router may begin to forward control plane traffic received from the remote PEs to the upgraded router to be processed by its BGP application. Specifically, the non-upgraded router may use the interconnect between the routers to forward any received BGP control plane traffic to the upgraded router. Similarly, the upgraded router may continue to transmit BGP control plane traffic to the remote PEs through the non-upgraded router.
- the non-upgraded router no longer processes the BGP control plane packets but rather forwards these packets to the BGP application executing on upgraded router.
- the non-upgraded router may contain to forward the data plane traffic from the local devices to the remote devices. Because the non-upgraded router continues to process data plane traffic, in one embodiment, the upgraded router does not receive or forward data plane traffic at block 325 .
- the upgraded router is assigned the same router ID as the non-upgraded router.
- block 330 is performed in parallel with or in close proximity to block 325 —e.g., when the BGP application on the upgraded router is activated, the upgraded router is assigned the same router ID as the non-upgraded router.
- the router ID is the same ID used before the router was upgraded. That is, the router ID assigned at block 330 may be the ID recognized by the various BGP applications executing on the remote PEs that publish the BGP prefixes associated with the client devices connected to the remote PE.
- FIG. 5 illustrates data flows after one of the routers in the virtual router is upgraded, according to one embodiment disclosed herein.
- network 500 illustrates select data flows that occur after completing block 330 of FIG. 3 .
- router 110 serves as an intermediary between router 140 and the remote PEs (e.g., remote PE 215 ).
- the remote PEs e.g., remote PE 215
- router 110 forwards the packets using interconnect 165 to router 140 to be processed by its now active BGP application.
- router 110 no longer processes the BGP control plane packets since its BGP application is deactivated.
- data plane traffic continues to flow through router 110 instead of flowing through router 140 .
- router 140 only receives and transmits control plane traffic while router 110 receives and transmits the data plane traffic between local devices 205 and customer devices (not shown) coupled to remote PE 215 .
- any BGP packets transmitted from router 140 to remote PE 215 contain a source header that identifies router 140 as the same device as router 110 .
- the application may transmit “hello” messages to all the remote PEs 215 .
- the hello messages originate from the same device that the remote PE 215 was communicating with previously—i.e., the remote PE 215 treats router 110 and 140 as the same device.
- the remote PE 215 assumes that the BGP application for the device associated with router ID 1.1.1.1 has for some reason ceased working but has now come back online.
- remote PE 215 merely detects that the BGP application for a single device was offline but is now online. Stated differently, the remote PE 215 may not have been informed that the BGP application was every deactivated, but by virtue of receiving the hello message from the BGP application on router 140 , the remote PE 215 assumes that the BGP application as some point was taken offline (e.g., the application failed and had to be restarted) and is now back online. In response to receiving an introduction message such as a hello message from a device that was previously in communication with the BGP application, the BGP application on the remote PE 215 may assume the device associated with the router ID 1.1.1.1 is performing a graceful restart.
- a graceful restart prevents routing protocol reconvergence during a processor switchover following an upgrade.
- Traditionally when a networking device restarts, all routing peers associated with that device detect the device has gone down and routes from that peer are removed. The session is re-established when the device completes the restart. This transition results in removal and re-insertion of routes, which could spread across multiple routing domains. Reconverging the routes was required because of the inability of the restarting device to forward traffic during the reload period.
- dual processor systems which support SSO or ISSU can continue to forward traffic while restarting the control plane on the second processor.
- the graceful restart suppresses routing changes on peers during the processor switchover.
- SSO and ISSU are limited to certain types of upgrades.
- a VR may use the graceful restart to suppress routing changes while the routing application on one router is deactivated and the routing application on the other router is activated.
- the BGP application is deactivated and then reactivated on two separate routers (which behave much like a dual-processor architecture on a single router), this event appears to the remote PE like a processor switchover in a dual-processor system, thereby triggering the graceful restart protocol.
- the remote PE may determine that the VR is performing a graceful restart, and in response, maintain the existing routing information (i.e., suppress routing changes).
- the remote PE holds the current data routes until the newly activated BGP application refreshes the routes. That is, the remote PE continues to forward data packets along the same data paths instead of attempting to identify different routes to the local devices.
- each remote PE may transmit its BGP prefixes to the non-upgraded router which then forwards the prefixes to the active BGP application on the upgraded router.
- the upgraded router may populate routing tables for the plurality of linecards detailing how to route data through the external network and to the customer devices connected to the remote PE. This process may take up to several minutes depending on the complexity of the network (e.g., the number of remote PEs). Nonetheless, during this time, the remote PEs continue to transmit data plane traffic using the same data routes as shown by arrow 510 of FIG. 5 .
- the BGP application on router 140 may transmit updated router data to the remote PEs which completes the graceful restart.
- the same process may be used to gather BGP routing information from BGP applications that may be executing on the local devices connected to the VR.
- the VR may not be an edge device, and thus, may use the techniques discussed above for gathering routing information from network devices connected locally.
- the non-upgraded router may then be taken offline and upgraded in the same process used to upgrade the already upgraded router.
- the external network and local device may automatically switch to using the second connection to transfer data to the VR. For example, referring to FIG. 2 , the external network may cease using the connection to the non-upgraded router 110 and instead use the connection to the upgraded router 140 for transferring data and control plane traffic to VR 100 .
- the local devices 205 may also use only the connection to router 140 to transfer data to VR 100 . This switch from using router 110 to using router 140 (or vice versus) of the VR may take only a few seconds to complete, thereby minimizing data loss.
- the routers may be rejoined into a single VR.
- the routers may use the interconnect to share the same control plane.
- the router uses the interconnect to join the control plane of the previously upgraded router.
- the routers may then synchronize the data routes and balance the workload between the routers.
- the routers in order to join the routers into a single VR, the routers must be executing the same operating system (e.g., the same OS kernel).
- FIG. 6 illustrates a method 600 for upgrading a router in the virtual router using the previously upgraded router, according to one embodiment disclosed herein. Specifically, FIG. 6 illustrates in further detail block 345 of FIG. 3 for upgrading the non-upgraded router in the VR.
- the non-upgraded router is reset and instructed to perform a fresh boot. For example, this instruction may either come from a network administrator or the upgraded router which sends the instruction to the non-upgraded router after routing data has been resolved (e.g., after completion of block 340 of FIG. 3 ).
- a fresh boot instructs the router to ignore the installed image and retrieve a new image from an external entity.
- the image may be a new version of the operating system executing on the router.
- the external network may use priority or cost scores that are advertised by the two routers to determine which of the two connection paths to use.
- the external network and routers may use a process known as interior gateway protocol (IGP) reconvergence to use the cost scores to select the data connection used to forward data to the VR. If the non-upgraded router advertises a low score and the upgraded router advertises a high score, the network devices will switch between routing data to the non-upgraded router to the upgraded router. Generally, IGP reconvergence takes only a few seconds to complete.
- advertising costs score may also be used at block 310 of FIG. 3 to cause the external network to start transferring all data and control plane traffic to the non-upgraded router while the other router is taken offline to be upgraded.
- the routers may re-establish limited control plane connectivity via the interconnect.
- the routers may not yet be sharing the same control plane. Instead, the non-upgraded router may use, for example, firmware to establish basic communication with the upgraded router using the interconnect.
- the non-upgraded router may download or retrieve the upgrade image from the upgraded router via the interconnect.
- the non-upgraded router downloads the image before the operating system is executing on the router.
- the non-upgraded router may have only limited firmware function that enables the non-upgraded router to request the image from the upgraded router and begin installation. The present disclosure, however, is not limited to retrieving the image from the upgraded router.
- a network administrator may provide the image to the router (e.g., via CD-ROM, Flash drive, USB drive, and the like) or the router may have a separate connection to another device (e.g., a data repository) that may provide the image to the non-upgraded router.
- the newly upgraded router may join the control plane of the previously upgraded router to form a VR with a shared control plane.
- VR the term “VR” as containing two routers at all times (even when one of the routers is offline or is not forwarding traffic) or as containing only one router when the other router is offline or is not currently forwarding data plane traffic.
- the control planes may be shared which permits the data routes flowing through the VR to be synchronized.
- embodiments may be embodied as a system, method or computer program product. Accordingly, aspects may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus or device.
- each block in the flowchart or block diagrams may represent a module, segment or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- Embodiments presented in this disclosure generally relate to upgrading virtual routers, and more specifically, to using a graceful restart function to upgrade a virtual router.
- Upgrading a network device—e.g., a router, switch, bridge, server, and the like—may require that the device stop transmitting, receiving, or forward data packets. In turn, this outage may cause other network devices (e.g., routers, switches, or client devices) coupled to the device being upgraded to not receive data packets. For example, if an end device relies on a router to access an external network (e.g., the Internet) but the router is offline while an upgrade is being performed, the end device may not be able transmit or receive data traffic via the external network.
- Often, a network administrator may choose to upgrade network devices when data throughput is the lowest, thereby minimizing the service interruption. Alternatively, different upgrade techniques may allow a network device to be upgraded while still permitting data plane traffic to flow through the device. However, these techniques apply to a limited number of network device architectures and/or software updates. For example, if the upgrade includes updating hardware responsible for forwarding data traffic, the network device may not be able to perform the upgrade without a service interruption.
- So that the manner in which the above-recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.
-
FIG. 1 is a block diagram of a virtual router, according to one embodiment disclosed herein. -
FIG. 2 is a block diagram of a network implementing the virtual router, according to one embodiment disclosed herein. -
FIG. 3 illustrates a method of upgrading the individual routers in the virtual router, according to one embodiment disclosed herein. -
FIG. 4 illustrates data flow when upgrading a router in the virtual router, according to one embodiment disclosed herein. -
FIG. 5 illustrates data flow when upgrading the router in the virtual router, according to one embodiment disclosed herein. -
FIG. 6 illustrates a method for upgrading a router in the virtual router using the previously upgraded router, according to one embodiment disclosed herein. - To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.
- Embodiments of the present disclosure include a method and a computer program product for upgrading a virtual router comprising at least a first and a second physical router. The method and computer product include disabling the first physical router such that data paths previously flowing through the first physical router flow through the second physical router. After upgrading the first physical router, the method and computer product starting a first routing application on the first physical router where the second physical router is configured to forward received control plane packets associated with the first routing application to the first physical router. The method and computer product receiving, at the first physical router, routing information identifying user devices connected to a remote network device. after resolving data routes for transferring data traffic to the user devices connected to the remote network device based on the routing information, the method and computer product disable the second physical router such that data paths previously flowing through the second physical router flow through the first physical router. The method and computer product upgrade the second physical router.
- Another embodiment of the present disclosure is a virtual router used to route data. The virtual router includes a first physical router, a second physical router, and an interconnect communicatively coupling the first and second physical routers. The first physical router is configured to disable one or more ports such that data paths previously flowing through the first physical router flow through the second physical router and, after performing a first upgrade, start a first routing application where the second physical router is configured to forward received control plane packets associated with the first routing application to the first physical router. The first physical router is also configured to receive routing information identifying user devices connected to a remote network device. The first physical router is further configured to resolve data routes for transferring data traffic to the user devices connected to the remote network device based on the routing information. The second physical router is configured to, after the data routes are resolved on the first physical router, disable one or more ports such that data paths previously flowing through the second physical router flow through the first physical router and perform a second upgrade.
- Embodiments described herein provide techniques for upgrading a virtual router (VR), preferably in a manner that minimizes interruption to data flowing through the VR. A VR includes at least two physical routers that are connectively coupled in order to share a common control plane. To the perspective of devices connected to the VR, the two (or more) physically distinct routers behave like a single router. For example, both routers may share the same router ID. If one router in the VR fails, the connected device may automatically switch to the other router, thereby maintaining connectivity and data flow through the VR.
- Various protocols, such as In-Service Software Upgrade (ISSU) or Stateful Switch Over (SSO), enable network devices to upgrade different aspects of the device without interrupting the flow of data traffic through the device. For example, during an ISSU, a network administrator may apply bug fixes and deploy new features and services while a router continues to forward packets in the data plane. However, not every upgrade can be performed using an ISSU. For example, installing new software, upgrading existing software to newer version, or upgrading firmware and hardware may not be able to be performed while maintaining data flow in the data plane. Instead, the embodiments disclosed herein describe a technique for performing these types of updates to physical routers in a VR using a graceful restart. Generally, a graceful restart is a function supported by various protocols (e.g. Border Gateway Protocol (BGP) and targeted Label Distribution Protocol (tLDP)) that prevents network devices from altering data routes upon detecting a restart in a peer device.
- To upgrade the VR, one router in the VR is taken offline while the upgrade is performed. Service is maintained by routing all data and control plane traffic through the other router in the VR. Because the upgrade may result in the router losing the previously stored data routes, the upgraded router may relearn the different routes and addresses associated with connected devices.
- In one embodiment, the VR is used in to connect client devices that are located at different sites in, for example, a VPN. To route data between these sites, the router must relearn the routing information (e.g., different data routes and prefixes) associated with the client devices. When a remote device (e.g., another router) associated with the client devices detects that the VR has performed a graceful restart, the remote device transfers the required routing information to the non-upgraded router of the VR which then forwards this information to the upgraded router. Eventually, the upgraded router relearns the routing information that was lost during the upgrade. The upgraded router then assumes the data routing responsibilities thereby permitting the non-upgraded router to be taken offline and upgraded. Once both routers have been upgraded, the control planes of the routers are rejoined. In this manner, the physical routers in a VR may be sequentially upgraded while minimizing data loss resulting from taking the routers offline.
-
FIG. 1 is a block diagram of aVR 100, according to one embodiment disclosed herein. The VR 100 includes at least two physically distinct routers:router 110 androuter 140. Although the present disclosure discusses using a graceful restart to upgrade aVR 100 containing two routers, the disclosure is not limited to such and contemplates using the embodiments discussed herein to upgrade VRs with any number of physically distinct routers. The 110, 140 are contained inrouters 105, 135. In one embodiment, therespective chassis 105, 135 are structures that enclose the various interconnected components of thechassis 110 and 140. Furthermore, therouters 105, 135 may provide a frame on which to mount the components of thechassis 110, 140. For example,routers chassis 105 may be designed to include support elements for mounting thelinecards 130 in thechassis 105 as well as openings for data ports that enable thelinecards 130 to receive and forward data packets. Further still, the 105 and 135 may be mounted into a rack or other storage mechanism.chassis -
110, 140 includeRouters 115, 145 andprocessors 120, 150.memories 115, 145 may be implemented using one or more processors that may include any number of processing cores. Moreover,Processors 115, 145 may be implemented using any processor design that is capable of performing the functions described herein.processors -
120, 150 may include both volatile and non-volatile memory elements such as RAM, Flash memory, internal or external hard drives, EPROMs and the like. TheMemories 120, 150 store thememories 125 and 155 that include logic for controlling and monitoring the different functions performed byoperating systems 110, 140.routers 125, 155 may be any operating system that enables theOperating systems 110, 140 to be virtualized into a single VR. In one embodiment, therouters 110, 140 inrouters VR 100 share the same control plane which enables the 110, 140 to synchronize the different data routes passing through therouters VR 100. Moreover, in one embodiment, the 125, 155 are the same version or similar versions, thereby permitting theoperating systems 110, 140 to share a common control plane. Moreover, therouters VR 100 may assign the same router ID (e.g., the same IP address) to both 110, 140.routers - To share a common control plane,
VR 100 includes aninterconnect 165 that communicatively couplesrouter 110 torouter 140. Usinginterconnect 165, 110, 140 can synchronize the data routes such that therouters 110, 140 behave like a single router. That is, to a network or client device coupled to therouters 110, 140, they function as a single router even though they are two separate and distinct units. In one embodiment,routers 110, 140 exchange only control plane traffic between the operatingrouters 125, 155 usingsystems interconnect 165. Stated differently,interconnect 165 is not used to exchange data plane traffic between the 110, 140.routers Interconnect 165 may be implemented using any wired or wireless communication means. For example, interconnect 165 may be implemented using a common Ethernet link or using a proprietary communication link designed specifically for creating a VR. -
110, 140 include one orRouters 130, 160. Generally, themore line cards 130, 160 are modular electronic circuits on printed circuit boards that include a plurality of ports that receive and forward data packets.line cards 110, 140 may include a back plane (not shown) used to interconnect theRouters 130, 160 and facilitate internal routing between theline cards 130, 160. Also, theline cards 125, 155 may use the back plane to configure and monitor theoperating systems 130, 160. In one embodiment, theline cards 105, 135 may be designed such thatchassis 130, 160 may be added to theadditional line cards 110, 140.routers - Although
FIG. 1 illustrates interconnecting routers to form a VR, the same techniques discussed herein may also be applied to other virtualized network devices—e.g., switches, bridges, and the like. Moreover, 110, 140 may share the same chassis even though they are two independent and distinct devices with separately controlledrouters linecards 130. -
FIG. 2 is a block diagram of anetwork 200 implementing theVR 100, according to one embodiment disclosed herein.Network 200 includes a plurality oflocal devices 205 coupled toVR 100. As shown, eachlocal device 105 may include separate, physical connections to both 110, 140 inrouters VR 100. In this manner, if connectivity to one router is lost, thelocal device 205 uses the other connection to transmit data to the other router in theVR 100. Nonetheless, because the 110, 140 are integrated to form therouters VR 100, thelocal devices 205 view the 110, 140 as a single router—i.e., eachseparate routers local device 205 functions as if thedevices 205 have two physical connections to the same router. TheVR 100 is configured, however, to divide the data traffic between the 110, 140. For example, by using priority or cost scores,routers VR 100 may control which of the two connections thelocal devices 205 use to transfer data—e.g.,local device 1 transmits data torouter 110 whilelocal device 2 transmits data torouter 140. Alternatively, the cost scores may be used to assign different data streams to 110, 140—e.g.,different routers local device 1 transmits some data streams throughrouter 110 and other data stream throughrouter 140 whilelocal device 2 transmits data traffic only throughrouter 110. In this manner,VR 100 permits the workload to be distributed across the 110, 140 by synchronizing the data paths used to transmit data from and to therouters local devices 205. Moreover, if a router fails, the data previously routed to the failed router is switched to the other router, thereby minimizing dropped data packets. -
110, 140 are coupled to an external (or core)Routers network 210 which may include hundreds or thousands of interconnected network devices (e.g., routers, switches, etc.). For example,external network 210 may be the network devices operated by an internet service provider (ISP). On the other side of thenetwork 210, remote provider edge (PE)devices 215 are coupled to theexternal network 210. For example, theremote PEs 215 may also be routers or VRs like 110, 140 androuters VR 100. Eachremote PE 215 is coupled to one ormore customer devices 220. Thecustomer devices 220 may include personal computers (e.g., laptop or desktops), servers, printers, and the like. - In one embodiment,
local devices 205 andcustomer devices 220 may be part of the same VPN. For example,local devices 205 andcustomer device 200 may be owned by the same entity but may be located at different sites. For example, thelocal devices 205 andVR 100 may be located at one regional office whileremote PEs 215 andcustomer devices 220 may be located at a different regional office. Nonetheless,VR 100 andremote PEs 215 may be configured to route data between thecustomer devices 220 andlocal devices 205 as if they were physically connected on a private network despite the fact the data may pass through a public or third-party network such asexternal network 210. For example, 110 and 140 may generate and store date routes for transferring data packets from therouters local devices 205 to thecustomer devices 220 whileremote PEs 215 may store similar routing information for routing data packets form thecustomer devices 220 to thelocal devices 205. In this manner, the 110, 140, 215 can route packets through theedge devices external network 210 to an endpoint in the VPN. -
FIG. 3 illustrates amethod 300 of upgrading the individual routers in the virtual router, according to one embodiment disclosed herein. For example a network administrator may wish to update the 125, 155 on each of theoperating systems 110, 140 shown inrouters FIG. 1 from version 1.0 to 2.0. However, the VR may not be able to upgrade the routers using a protocol such as ISSU which would enable the routers to continue to route data plane traffic while the upgrade is being performed. Thus, the routers would need to be taken offline and service would be interrupted while the upgrade is performed. Instead of forcing the entire VR offline,method 300 discloses a technique for maintaining at least partial service to the devices connected to the VR when upgrading the routers contained in the VR. - In one embodiment,
FIG. 3 illustrates amethod 300 of upgrading a VR where BGP is used to transfer information about the routes between network devices. For example, referring toFIG. 2 ,VR 100 andremote PEs 215 may be edge devices (e.g., layer 3 networking) that includeslocal devices 205 andcustomer devices 220. However, this disclosure is not limited to such an arrangement. For example,method 300 shown inFIG. 3 may also be used for a VR that interconnects devices in alayer 2 networking that uses tLDP to transfer route information between the edge devices. Stated more generally, the embodiments disclosed herein may be used to upgrade a VR that implements any protocol that supports a graceful restart function. The details of the graceful restart function will be discussed in greater detail below. - At
block 305, the shared control plane of the VR is severed before a router is upgraded. For example, the operating system of the router to be upgraded may delegate control solely to the operating system of the other router. In one embodiment, the data connection between the routers which enables the routers to exchange control data is disconnected. Referring toFIG. 1 , disconnecting the data connection between the 110, 140 results in therouters 110 and 140 no longer communicating using interconnect 165 (although the physical connection may be maintained). Generally, the technique for disabling the control plane traffic between the routers in the VR is dependent on the particular VR configuration. For example, in some VR configurations, the control plane traffic may be disconnected by disabling one particular packet path between the routers.routers - In addition to severing the communication link between the routers, in one embodiment, the router to be upgraded may disable its ports to peer devices. For example, the router may disable the ports coupled to the local devices as well as the ports coupled to network devices in the external network. Because each local device or network device may have two independent data paths to the VR (i.e., a first data path connected to one of the routers and a second data path connected to the other router), disabling the ports on one routers causes the local and network devices that were using those ports to route traffic to the VR using the other data connection. Thus, network traffic continues to flow to the VR even as one of the routers is taken offline to be upgraded, albeit the bandwidth of the VR is reduced.
- At
block 310, one of the routers is upgraded. As mentioned previously, the upgrade may include a significant software upgrade that cannot be performed while data plane traffic continues to flow in the router. For example, the upgrade may involve upgrading the operating system's kernel to a new version which may affect the different hardware units in the router responsible for forwarding data plane traffic (e.g., the linecards). In other embodiments, the upgrade may update firmware that controls the hardware units (e.g., hardware FPGA updates) or even be installation of new hardware (e.g., a new linecard) in the router or a new software application that affects data plane forwarding. - In one embodiment, the upgrade is started only after the control plane is severed and the ports have been disabled. However, in other embodiments, some portion of the upgrade may occur while the control plane is being shared or the ports are still forwarding data plane traffic. For example, after receiving an upgrade image (e.g., router software), the router may first uncompress the image or execute pre-upgrade operations (such as backing up data) before severing the communication link or disabling its ports connected to peer devices.
- At
block 315, the upgraded router is rebooted but is assigned a different router ID than the other router in the VR. For example, as part of the upgrade, a configuration file may include a predefined setting that specifies the router ID (e.g., the IP address) to be used once the upgraded is rebooted. In contrast, prior to upgrading the router, the routers may use the same router ID. Doing so advertises to peer devices that the routers are the same device. However, when one router has been upgraded but the other has not, the IP addresses are changed to ensure that the connected devices do not treat the routers the same. For example, it may be desired that the upgraded router does not use the same router ID as the non-upgraded router when using IGP or LDP. - To access the
customer devices 220, the upgraded router may need to learn the ID (e.g., BGP prefixes) for eachcustomer device 220. Eachremote PE 215 may include a routing application (a BGP application) that publishes and maintains the BGP prefixes required when generating data routes for accessing thecustomer devices 220. For simplicity, the embodiments herein refer to the routing application specifically as a BGP application but this disclosure is not limited to such. For example, one of ordinary skill in the art will recognize that the embodiments disclosed herein may be modified for using network devices that use, e.g., tLDP applications for maintaining routing information of devices. Moreover, the BGP application may be part of the routers' operating systems or be composed of a plurality of different processes, rather than single application, that perform the functions described herein. - For the upgraded router to receive the BGP prefixes from the BGP application executing on the
remote PE 215 using the new router ID, an instruction containing the new ID has to be transmitted to theremote PEs 215 that instructs thePEs 215 to provide the prefixes to the upgraded router. Depending on the number ofremote PEs 215 in thenetwork 200, adding the new router ID to the BGP application on eachremote PE 215 may require updating hundreds ofremote PEs 215. Moreover, because of security concerns, the upgraded router may not have permission to add the new router ID to the list of approved devices that receive the BPG prefixes. Accordingly, the upgraded router may instead wait until the router is assigned the same router ID used before the upgrade was performed before receiving the BGP prefixes. -
FIG. 4 illustrates data flows after one of the routers in the virtual router is upgraded, according to one embodiment disclosed herein. Specifically,network 400 illustrates data flowing through 110, 140 afterrouters router 140 has been upgraded as discussed in blocks 305-315 ofFIG. 3 . For example, router 140 (i.e., the upgraded router) is assigned a different router ID—2.2.2.2—from router 110 (i.e., the non-upgraded router). As shown byarrow 405,router 140 may transmit some data traffic to theexternal network 210 butrouter 140 has a different ID and may advertise a very high-cost (low preference) so that data continues to flow throughrouter 110. During this time, however,router 140 may not transmit data plane traffic between theexternal network 210 and thelocal device 205. Instead,router 140 may exchange only limited control plane traffic with theexternal network 210. In contrast, as shown byarrow 410,router 110 may continue to forward data plane traffic betweenlocal device 205 andcustomer device 215 usingremote PE 215 andexternal network 210. That is, the data traffic may continue to flow throughVR 100 usingrouter 110. -
Remote PE 215 includes aBGP application 415 that stores and manages the BGP prefixes 420 associated withcustomer devices 220. Periodically,remote PE 215 may transmit the BGP prefixes 420 torouter 110 as shown byarrow 425. Of course, although not shown,router 110 may also send updates using its BGP application to theremote PE 425. Becauserouter 140 has a different router ID—i.e., a router ID not recognized by theBGP application 415 executing onremote PE 215—BGP application 415 does not send the prefixes torouter 140. In one embodiment, the 110 and 140 may be edge devices for connecting customer devices that are at remote sites in a VPN, but this is only one example of where this technique may be used.routers - Returning to
FIG. 3 , atblock 325, the non-upgraded router deactivates its BGP application while the upgraded router activates its BGP application. In one embodiment these two actions may performed in parallel such that any time where neither BGP application is executing is minimized. Moreover, the non-upgraded router may begin to forward control plane traffic received from the remote PEs to the upgraded router to be processed by its BGP application. Specifically, the non-upgraded router may use the interconnect between the routers to forward any received BGP control plane traffic to the upgraded router. Similarly, the upgraded router may continue to transmit BGP control plane traffic to the remote PEs through the non-upgraded router. In this manner, the non-upgraded router no longer processes the BGP control plane packets but rather forwards these packets to the BGP application executing on upgraded router. However, the non-upgraded router may contain to forward the data plane traffic from the local devices to the remote devices. Because the non-upgraded router continues to process data plane traffic, in one embodiment, the upgraded router does not receive or forward data plane traffic atblock 325. - At
block 330, the upgraded router is assigned the same router ID as the non-upgraded router. In one embodiment, block 330 is performed in parallel with or in close proximity to block 325—e.g., when the BGP application on the upgraded router is activated, the upgraded router is assigned the same router ID as the non-upgraded router. In one embodiment, the router ID is the same ID used before the router was upgraded. That is, the router ID assigned atblock 330 may be the ID recognized by the various BGP applications executing on the remote PEs that publish the BGP prefixes associated with the client devices connected to the remote PE. -
FIG. 5 illustrates data flows after one of the routers in the virtual router is upgraded, according to one embodiment disclosed herein. Specifically,network 500 illustrates select data flows that occur after completingblock 330 ofFIG. 3 . As shown byarrow 505,router 110 serves as an intermediary betweenrouter 140 and the remote PEs (e.g., remote PE 215). Thus, as BGP control plane traffic is received fromremote PE 215,router 110 forwards thepackets using interconnect 165 torouter 140 to be processed by its now active BGP application. Moreover,router 110 no longer processes the BGP control plane packets since its BGP application is deactivated. As shown byarrow 510, data plane traffic, however, continues to flow throughrouter 110 instead of flowing throughrouter 140. Thus, in one embodiment,router 140 only receives and transmits control plane traffic whilerouter 110 receives and transmits the data plane traffic betweenlocal devices 205 and customer devices (not shown) coupled toremote PE 215. - Moreover, the router ID of
router 140 is assigned to be the same as the router ID ofrouter 110. Thus, any BGP packets transmitted fromrouter 140 toremote PE 215 contain a source header that identifiesrouter 140 as the same device asrouter 110. For example, when the BGP application onrouter 140 activates, the application may transmit “hello” messages to all theremote PEs 215. To the perspective ofremote PE 215, the hello messages originate from the same device that theremote PE 215 was communicating with previously—i.e., theremote PE 215 110 and 140 as the same device. Thus, when receiving the hello message, thetreats router remote PE 215 assumes that the BGP application for the device associated with router ID 1.1.1.1 has for some reason ceased working but has now come back online. In reality, the BGP application onrouter 110 was deactivated while the BGP application onrouter 140 was activated. However, because 110, 140 have the same ID,routers remote PE 215 merely detects that the BGP application for a single device was offline but is now online. Stated differently, theremote PE 215 may not have been informed that the BGP application was every deactivated, but by virtue of receiving the hello message from the BGP application onrouter 140, theremote PE 215 assumes that the BGP application as some point was taken offline (e.g., the application failed and had to be restarted) and is now back online. In response to receiving an introduction message such as a hello message from a device that was previously in communication with the BGP application, the BGP application on theremote PE 215 may assume the device associated with the router ID 1.1.1.1 is performing a graceful restart. - Generally, a graceful restart prevents routing protocol reconvergence during a processor switchover following an upgrade. Traditionally, when a networking device restarts, all routing peers associated with that device detect the device has gone down and routes from that peer are removed. The session is re-established when the device completes the restart. This transition results in removal and re-insertion of routes, which could spread across multiple routing domains. Reconverging the routes was required because of the inability of the restarting device to forward traffic during the reload period. However, dual processor systems which support SSO or ISSU can continue to forward traffic while restarting the control plane on the second processor. The graceful restart suppresses routing changes on peers during the processor switchover. However, as discussed previously, SSO and ISSU are limited to certain types of upgrades. Nonetheless, even when performing upgrades where SSO and ISSU are insufficient, a VR may use the graceful restart to suppress routing changes while the routing application on one router is deactivated and the routing application on the other router is activated. Stated differently, when the BGP application is deactivated and then reactivated on two separate routers (which behave much like a dual-processor architecture on a single router), this event appears to the remote PE like a processor switchover in a dual-processor system, thereby triggering the graceful restart protocol.
- Returning to
FIG. 3 , atblock 335, the remote PE may determine that the VR is performing a graceful restart, and in response, maintain the existing routing information (i.e., suppress routing changes). In one embodiment, the remote PE holds the current data routes until the newly activated BGP application refreshes the routes. That is, the remote PE continues to forward data packets along the same data paths instead of attempting to identify different routes to the local devices. - In addition to maintaining the same data routes, as part of performing a graceful restart, each remote PE may transmit its BGP prefixes to the non-upgraded router which then forwards the prefixes to the active BGP application on the upgraded router. With this routing information, the upgraded router may populate routing tables for the plurality of linecards detailing how to route data through the external network and to the customer devices connected to the remote PE. This process may take up to several minutes depending on the complexity of the network (e.g., the number of remote PEs). Nonetheless, during this time, the remote PEs continue to transmit data plane traffic using the same data routes as shown by
arrow 510 ofFIG. 5 . After resolving the data routes, the BGP application onrouter 140 may transmit updated router data to the remote PEs which completes the graceful restart. - Although the graceful restart is discussed in connection with the remote PE, the same process may be used to gather BGP routing information from BGP applications that may be executing on the local devices connected to the VR. For example, the VR may not be an edge device, and thus, may use the techniques discussed above for gathering routing information from network devices connected locally.
- After gathering the routing information from the remote PEs, at
block 345, the non-upgraded router may then be taken offline and upgraded in the same process used to upgrade the already upgraded router. Once the ports of the non-upgraded router are disabled, the external network and local device may automatically switch to using the second connection to transfer data to the VR. For example, referring toFIG. 2 , the external network may cease using the connection to thenon-upgraded router 110 and instead use the connection to the upgradedrouter 140 for transferring data and control plane traffic toVR 100. Similarly, thelocal devices 205 may also use only the connection torouter 140 to transfer data toVR 100. This switch from usingrouter 110 to using router 140 (or vice versus) of the VR may take only a few seconds to complete, thereby minimizing data loss. - At
block 350, the routers may be rejoined into a single VR. For example, after both routers are upgraded, the routers may use the interconnect to share the same control plane. Specifically, after the non-upgraded router finishes performing the necessary upgrades, the router uses the interconnect to join the control plane of the previously upgraded router. The routers may then synchronize the data routes and balance the workload between the routers. In one embodiment, in order to join the routers into a single VR, the routers must be executing the same operating system (e.g., the same OS kernel). -
FIG. 6 illustrates amethod 600 for upgrading a router in the virtual router using the previously upgraded router, according to one embodiment disclosed herein. Specifically,FIG. 6 illustrates in further detail block 345 ofFIG. 3 for upgrading the non-upgraded router in the VR. Atblock 605, the non-upgraded router is reset and instructed to perform a fresh boot. For example, this instruction may either come from a network administrator or the upgraded router which sends the instruction to the non-upgraded router after routing data has been resolved (e.g., after completion ofblock 340 ofFIG. 3 ). As used herein, a fresh boot instructs the router to ignore the installed image and retrieve a new image from an external entity. For example, the image may be a new version of the operating system executing on the router. - In one embodiment, the external network may use priority or cost scores that are advertised by the two routers to determine which of the two connection paths to use. For example, the external network and routers may use a process known as interior gateway protocol (IGP) reconvergence to use the cost scores to select the data connection used to forward data to the VR. If the non-upgraded router advertises a low score and the upgraded router advertises a high score, the network devices will switch between routing data to the non-upgraded router to the upgraded router. Generally, IGP reconvergence takes only a few seconds to complete. Moreover, advertising costs score may also be used at
block 310 ofFIG. 3 to cause the external network to start transferring all data and control plane traffic to the non-upgraded router while the other router is taken offline to be upgraded. - After performing the fresh boot, at
block 610 the routers may re-establish limited control plane connectivity via the interconnect. In one embodiment, even though the routers are able to communicate using the interconnect, the routers may not yet be sharing the same control plane. Instead, the non-upgraded router may use, for example, firmware to establish basic communication with the upgraded router using the interconnect. - At
block 615, the non-upgraded router may download or retrieve the upgrade image from the upgraded router via the interconnect. In one embodiment, the non-upgraded router downloads the image before the operating system is executing on the router. For example, the non-upgraded router may have only limited firmware function that enables the non-upgraded router to request the image from the upgraded router and begin installation. The present disclosure, however, is not limited to retrieving the image from the upgraded router. Alternatively, a network administrator may provide the image to the router (e.g., via CD-ROM, Flash drive, USB drive, and the like) or the router may have a separate connection to another device (e.g., a data repository) that may provide the image to the non-upgraded router. - After the upgrade is complete, at
block 620, the newly upgraded router may join the control plane of the previously upgraded router to form a VR with a shared control plane. As used herein, it is equally correct to characterize the term “VR” as containing two routers at all times (even when one of the routers is offline or is not forwarding traffic) or as containing only one router when the other router is offline or is not currently forwarding data plane traffic. Regardless of how the VR is described during the upgrade process, once both routers have been upgraded, the control planes may be shared which permits the data routes flowing through the VR to be synchronized. - As will be appreciated by one skilled in the art, embodiments may be embodied as a system, method or computer program product. Accordingly, aspects may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus or device.
- The flowchart and block diagrams in the Figures illustrate the architecture, functionality and operation of possible implementations of systems, methods and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
- In view of the foregoing, the scope of the present disclosure is determined by the claims that follow.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/834,111 US9338055B2 (en) | 2013-03-15 | 2013-03-15 | Virtual router upgrade via graceful restart |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/834,111 US9338055B2 (en) | 2013-03-15 | 2013-03-15 | Virtual router upgrade via graceful restart |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20140269254A1 true US20140269254A1 (en) | 2014-09-18 |
| US9338055B2 US9338055B2 (en) | 2016-05-10 |
Family
ID=51526589
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/834,111 Active 2033-06-17 US9338055B2 (en) | 2013-03-15 | 2013-03-15 | Virtual router upgrade via graceful restart |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US9338055B2 (en) |
Cited By (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140304698A1 (en) * | 2012-06-18 | 2014-10-09 | Tellabs Operations, Inc. | Methods and Apparatus for Performing In-Service Software Upgrade for a Network Device Using System Virtulization |
| US20140337529A1 (en) * | 2013-05-13 | 2014-11-13 | Vmware, Inc. | Placing a network device into a maintenance mode in a virtualized computing environment |
| US20160110181A1 (en) * | 2014-10-16 | 2016-04-21 | Xiaomi Inc. | Method and device for upgrading a router |
| US20160119182A1 (en) * | 2014-10-24 | 2016-04-28 | Comscore, Inc. | Monitoring internet usage on home networks of panelist users |
| US20160313985A1 (en) * | 2015-04-21 | 2016-10-27 | Arista Networks, Inc. | System and method of updating a network element |
| US20170090897A1 (en) * | 2015-09-26 | 2017-03-30 | Cisco Technology, Inc. | In-service upgrade of kernel loadable modules |
| US20170302578A1 (en) * | 2015-02-27 | 2017-10-19 | Arista Networks, Inc. | System and method for bgp sflow export |
| CN107395394A (en) * | 2017-06-19 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | A kind of method and system by updating mobile terminal router |
| US9886259B2 (en) * | 2014-08-27 | 2018-02-06 | Xiaomi Inc. | Method and terminal device for complying router management application with router firmware |
| US9940160B1 (en) * | 2015-11-13 | 2018-04-10 | Juniper Networks, Inc. | Managed reboot of a network operating system |
| CN109561126A (en) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | A kind of method of data synchronization and device, storage medium, processor |
| US10498606B1 (en) * | 2016-06-07 | 2019-12-03 | Cisco Technology Inc. | Methods and systems for neighbor-acknowledged graceful insertion/removal protocol |
| US10635428B2 (en) * | 2018-03-30 | 2020-04-28 | Arista Networks, Inc. | System and method for in-service update of software |
| US10846179B2 (en) | 2018-11-05 | 2020-11-24 | Arista Networks, Inc. | Hitless repair for network device components |
| US10924395B2 (en) * | 2019-03-19 | 2021-02-16 | Cisco Technology, Inc. | Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core |
| US10938653B2 (en) | 2015-04-21 | 2021-03-02 | Arista Networks, Inc. | System and method of updating a network |
| CN113300950A (en) * | 2020-04-01 | 2021-08-24 | 阿里巴巴集团控股有限公司 | Data processing method and device, electronic equipment and computer readable medium |
| US11252457B2 (en) * | 2018-07-12 | 2022-02-15 | Realtek Semiconductor Corporation | Multimedia streaming and routing apparatus and operation method of the same |
| US11301231B2 (en) | 2019-04-05 | 2022-04-12 | Arista Networks, Inc. | Dynamic run time programming of hardware tables |
| US20220166690A1 (en) * | 2014-08-12 | 2022-05-26 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
| US11546275B2 (en) * | 2020-09-23 | 2023-01-03 | Cisco Technology, Inc. | Near-hitless upgrade or fast bootup with mobile virtualized hardware |
| US11593144B2 (en) | 2020-09-23 | 2023-02-28 | Cisco Technology, Inc. | Near-hitless upgrade or fast bootup with virtualized hardware |
| US12184736B2 (en) | 2023-04-07 | 2024-12-31 | Cisco Technology, Inc. | Minimizing network disruption via graceful upgrade of routing controllers |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015070412A1 (en) * | 2013-11-14 | 2015-05-21 | 华为技术有限公司 | Method for upgrading network device version and network device |
| US11425031B2 (en) | 2019-03-28 | 2022-08-23 | Hewlett Packard Enterprise Development Lp | Layer 3 multi-chassis link aggregation group |
| US12107726B2 (en) | 2022-07-01 | 2024-10-01 | Juniper Networks, Inc. | Network device upgrade based group priority |
Citations (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6535924B1 (en) * | 2001-09-05 | 2003-03-18 | Pluris, Inc. | Method and apparatus for performing a software upgrade of a router while the router is online |
| US20030210705A1 (en) * | 2002-05-13 | 2003-11-13 | Nabil Seddigh | System and method for distributed resource reservation protocol-traffic engineering (RSVP-TE) hitless restart in multi-protocol label switching (MPLS) network |
| US20040179476A1 (en) * | 2003-03-10 | 2004-09-16 | Sung-Ha Kim | Apparatus and method for controlling a traffic switching operation based on a service class in an ethernet-based network |
| US20050047326A1 (en) * | 2003-08-28 | 2005-03-03 | Roberto Puon | System and method for remotely updating a network device |
| US20050102384A1 (en) * | 2002-01-15 | 2005-05-12 | Reiko Ueno | Routing device and startup method thereof |
| US20050111352A1 (en) * | 2003-11-21 | 2005-05-26 | Boon Ho | Method and system for monitoring a network containing routers using a backup routing protocol |
| US20050169281A1 (en) * | 2004-02-02 | 2005-08-04 | Eun-Sook Ko | Distributed router |
| US20050177634A1 (en) * | 2004-02-10 | 2005-08-11 | Scudder John G. | Technique for graceful shutdown of a routing protocol in a network |
| US20050213498A1 (en) * | 2004-03-24 | 2005-09-29 | Cisco Technology, Inc. | Routing system and method for transparently recovering routing states after a failover or during a software upgrade |
| US7107329B1 (en) * | 1999-05-21 | 2006-09-12 | Lucent Technologies Inc. | In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption |
| US20060203828A1 (en) * | 2003-10-02 | 2006-09-14 | Masayuki Kumazawa | Router selecting method and router apparatus |
| US7116634B1 (en) * | 2001-12-21 | 2006-10-03 | Cisco Technology, Inc. | TCP sequence number recovery in a redundant forwarding system |
| US20060233182A1 (en) * | 2005-04-14 | 2006-10-19 | Chandrashekhar Appanna | BGP hitless upgrade approaches |
| US20070014231A1 (en) * | 2005-07-15 | 2007-01-18 | Kaarthik Sivakumar | Router and method for protocol process migration |
| US20070162565A1 (en) * | 2006-01-09 | 2007-07-12 | Cisco Technology, Inc. | Method and system for minimizing disruption during in-service software upgrade |
| US20070174685A1 (en) * | 2006-01-19 | 2007-07-26 | Banks Donald E | Method of ensuring consistent configuration between processors running different versions of software |
| US20070253434A1 (en) * | 2006-05-01 | 2007-11-01 | Oswal Anand K | Performing A Graceful Restart Operation For Wimax Network Protocols |
| US20070293951A1 (en) * | 2006-05-30 | 2007-12-20 | Ichiro Takahashi | Monitoring apparatus |
| US7383541B1 (en) * | 2003-08-07 | 2008-06-03 | Cisco Technology, Inc. | Method and apparatus providing interoperation of execution images of different versions |
| US7515600B1 (en) * | 2003-01-28 | 2009-04-07 | Cisco Technology, Inc. | Synchronizing portions of a database with different databases on different nodes of a network |
| US20090257440A1 (en) * | 2006-12-22 | 2009-10-15 | Huawei Technologies Co., Ltd. | Method, system and router for communication between ip devices |
| US20090290591A1 (en) * | 2007-02-05 | 2009-11-26 | Huawei Technologies Co., Ltd. | Reliability processing methods and systems in the networking of metro ethernet network providing multi-service |
| US20100008233A1 (en) * | 2008-07-10 | 2010-01-14 | Cheng Tien Ee | Methods and apparatus to deploy and monitor network layer functionalities |
| US20100293293A1 (en) * | 2008-05-15 | 2010-11-18 | Beser Nurettin Burcak | Systems and Methods for Fractional Routing Redundancy |
| US7940650B1 (en) * | 2008-11-03 | 2011-05-10 | Juniper Networks, Inc. | Peer-agnostic TCP socket replication between primary and secondary routing engines |
| US20110228770A1 (en) * | 2010-03-19 | 2011-09-22 | Brocade Communications Systems, Inc. | Synchronization of multicast information using incremental updates |
| US20120036169A1 (en) * | 2009-01-09 | 2012-02-09 | Ed Grinshpun | Object identifier and common registry to support asynchronous checkpointing with audits |
| US20120158994A1 (en) * | 2010-12-16 | 2012-06-21 | Openet Telecom Ltd. | Methods, systems and devices for dynamic context-based routing using a topology tree |
| US8340090B1 (en) * | 2007-03-08 | 2012-12-25 | Cisco Technology, Inc. | Interconnecting forwarding contexts using u-turn ports |
| US20130322458A1 (en) * | 2011-01-25 | 2013-12-05 | Alaxala Network Corporation | Network relay system and network relay device |
| US20140003227A1 (en) * | 2012-06-30 | 2014-01-02 | Juniper Networks, Inc. | Selective bgp graceful restart in redundant router deployments |
| US20140173133A1 (en) * | 2012-12-17 | 2014-06-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for efficient graceful restart in an open shortest path first (ospf) network |
| US8799422B1 (en) * | 2010-08-16 | 2014-08-05 | Juniper Networks, Inc. | In-service configuration upgrade using virtual machine instances |
| US8806032B2 (en) * | 2010-12-15 | 2014-08-12 | At&T Intellectual Property I, L.P. | Methods and apparatus to migrate border gateway protocol sessions between routers |
| US20140289731A1 (en) * | 2011-10-12 | 2014-09-25 | Hangzhou H3C Technologies Co., Ltd. | Starting a process |
| US9021459B1 (en) * | 2011-09-28 | 2015-04-28 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual control units of a network device |
-
2013
- 2013-03-15 US US13/834,111 patent/US9338055B2/en active Active
Patent Citations (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7107329B1 (en) * | 1999-05-21 | 2006-09-12 | Lucent Technologies Inc. | In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption |
| US6535924B1 (en) * | 2001-09-05 | 2003-03-18 | Pluris, Inc. | Method and apparatus for performing a software upgrade of a router while the router is online |
| US7116634B1 (en) * | 2001-12-21 | 2006-10-03 | Cisco Technology, Inc. | TCP sequence number recovery in a redundant forwarding system |
| US20050102384A1 (en) * | 2002-01-15 | 2005-05-12 | Reiko Ueno | Routing device and startup method thereof |
| US20030210705A1 (en) * | 2002-05-13 | 2003-11-13 | Nabil Seddigh | System and method for distributed resource reservation protocol-traffic engineering (RSVP-TE) hitless restart in multi-protocol label switching (MPLS) network |
| US20090116496A1 (en) * | 2003-01-28 | 2009-05-07 | Savage Donnie V | Synchronizing portions of a database with different databases on different nodes of a network |
| US7515600B1 (en) * | 2003-01-28 | 2009-04-07 | Cisco Technology, Inc. | Synchronizing portions of a database with different databases on different nodes of a network |
| US20040179476A1 (en) * | 2003-03-10 | 2004-09-16 | Sung-Ha Kim | Apparatus and method for controlling a traffic switching operation based on a service class in an ethernet-based network |
| US7383541B1 (en) * | 2003-08-07 | 2008-06-03 | Cisco Technology, Inc. | Method and apparatus providing interoperation of execution images of different versions |
| US20050047326A1 (en) * | 2003-08-28 | 2005-03-03 | Roberto Puon | System and method for remotely updating a network device |
| US20060203828A1 (en) * | 2003-10-02 | 2006-09-14 | Masayuki Kumazawa | Router selecting method and router apparatus |
| US20050111352A1 (en) * | 2003-11-21 | 2005-05-26 | Boon Ho | Method and system for monitoring a network containing routers using a backup routing protocol |
| US20050169281A1 (en) * | 2004-02-02 | 2005-08-04 | Eun-Sook Ko | Distributed router |
| US20050177634A1 (en) * | 2004-02-10 | 2005-08-11 | Scudder John G. | Technique for graceful shutdown of a routing protocol in a network |
| US8572225B2 (en) * | 2004-02-10 | 2013-10-29 | Cisco Technology, Inc. | Technique for graceful shutdown of a routing protocol in a network |
| US20050213498A1 (en) * | 2004-03-24 | 2005-09-29 | Cisco Technology, Inc. | Routing system and method for transparently recovering routing states after a failover or during a software upgrade |
| US20060233182A1 (en) * | 2005-04-14 | 2006-10-19 | Chandrashekhar Appanna | BGP hitless upgrade approaches |
| US20070014231A1 (en) * | 2005-07-15 | 2007-01-18 | Kaarthik Sivakumar | Router and method for protocol process migration |
| US20130145359A1 (en) * | 2006-01-09 | 2013-06-06 | Cisco Technology, Inc. | Method and System for Minimizing Disruption During In-Service Software Upgrade |
| US20070162565A1 (en) * | 2006-01-09 | 2007-07-12 | Cisco Technology, Inc. | Method and system for minimizing disruption during in-service software upgrade |
| US20070174685A1 (en) * | 2006-01-19 | 2007-07-26 | Banks Donald E | Method of ensuring consistent configuration between processors running different versions of software |
| US20070253434A1 (en) * | 2006-05-01 | 2007-11-01 | Oswal Anand K | Performing A Graceful Restart Operation For Wimax Network Protocols |
| US20070293951A1 (en) * | 2006-05-30 | 2007-12-20 | Ichiro Takahashi | Monitoring apparatus |
| US20090257440A1 (en) * | 2006-12-22 | 2009-10-15 | Huawei Technologies Co., Ltd. | Method, system and router for communication between ip devices |
| US20090290591A1 (en) * | 2007-02-05 | 2009-11-26 | Huawei Technologies Co., Ltd. | Reliability processing methods and systems in the networking of metro ethernet network providing multi-service |
| US8340090B1 (en) * | 2007-03-08 | 2012-12-25 | Cisco Technology, Inc. | Interconnecting forwarding contexts using u-turn ports |
| US20100293293A1 (en) * | 2008-05-15 | 2010-11-18 | Beser Nurettin Burcak | Systems and Methods for Fractional Routing Redundancy |
| US20100008233A1 (en) * | 2008-07-10 | 2010-01-14 | Cheng Tien Ee | Methods and apparatus to deploy and monitor network layer functionalities |
| US7940650B1 (en) * | 2008-11-03 | 2011-05-10 | Juniper Networks, Inc. | Peer-agnostic TCP socket replication between primary and secondary routing engines |
| US20120036169A1 (en) * | 2009-01-09 | 2012-02-09 | Ed Grinshpun | Object identifier and common registry to support asynchronous checkpointing with audits |
| US20110228770A1 (en) * | 2010-03-19 | 2011-09-22 | Brocade Communications Systems, Inc. | Synchronization of multicast information using incremental updates |
| US8799422B1 (en) * | 2010-08-16 | 2014-08-05 | Juniper Networks, Inc. | In-service configuration upgrade using virtual machine instances |
| US8806032B2 (en) * | 2010-12-15 | 2014-08-12 | At&T Intellectual Property I, L.P. | Methods and apparatus to migrate border gateway protocol sessions between routers |
| US20120158994A1 (en) * | 2010-12-16 | 2012-06-21 | Openet Telecom Ltd. | Methods, systems and devices for dynamic context-based routing using a topology tree |
| US20130322458A1 (en) * | 2011-01-25 | 2013-12-05 | Alaxala Network Corporation | Network relay system and network relay device |
| US9021459B1 (en) * | 2011-09-28 | 2015-04-28 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual control units of a network device |
| US20140289731A1 (en) * | 2011-10-12 | 2014-09-25 | Hangzhou H3C Technologies Co., Ltd. | Starting a process |
| US20140003227A1 (en) * | 2012-06-30 | 2014-01-02 | Juniper Networks, Inc. | Selective bgp graceful restart in redundant router deployments |
| US20140173133A1 (en) * | 2012-12-17 | 2014-06-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for efficient graceful restart in an open shortest path first (ospf) network |
Cited By (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140304698A1 (en) * | 2012-06-18 | 2014-10-09 | Tellabs Operations, Inc. | Methods and Apparatus for Performing In-Service Software Upgrade for a Network Device Using System Virtulization |
| US9830143B2 (en) * | 2012-06-18 | 2017-11-28 | Tellabs Operations, Inc. | Methods and apparatus for performing in-service software upgrade for a network device using system virtulization |
| US10218622B2 (en) * | 2013-05-13 | 2019-02-26 | Vmware, Inc. | Placing a network device into a maintenance mode in a virtualized computing environment |
| US20140337529A1 (en) * | 2013-05-13 | 2014-11-13 | Vmware, Inc. | Placing a network device into a maintenance mode in a virtualized computing environment |
| US11882011B2 (en) * | 2014-08-12 | 2024-01-23 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
| US20220166690A1 (en) * | 2014-08-12 | 2022-05-26 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
| US9886259B2 (en) * | 2014-08-27 | 2018-02-06 | Xiaomi Inc. | Method and terminal device for complying router management application with router firmware |
| US20160110181A1 (en) * | 2014-10-16 | 2016-04-21 | Xiaomi Inc. | Method and device for upgrading a router |
| US20160119182A1 (en) * | 2014-10-24 | 2016-04-28 | Comscore, Inc. | Monitoring internet usage on home networks of panelist users |
| US10367689B2 (en) * | 2014-10-24 | 2019-07-30 | Comscore, Inc. | Monitoring internet usage on home networks of panelist users |
| US10574574B2 (en) * | 2015-02-27 | 2020-02-25 | Arista Networks, Inc. | System and method for BGP sFlow export |
| US20170302578A1 (en) * | 2015-02-27 | 2017-10-19 | Arista Networks, Inc. | System and method for bgp sflow export |
| US10545753B2 (en) * | 2015-04-21 | 2020-01-28 | Arista Networks, Inc. | System and method of updating a network element |
| US20160313985A1 (en) * | 2015-04-21 | 2016-10-27 | Arista Networks, Inc. | System and method of updating a network element |
| US11249747B2 (en) * | 2015-04-21 | 2022-02-15 | Arista Networks, Inc. | System and method of updating a network element |
| US10938653B2 (en) | 2015-04-21 | 2021-03-02 | Arista Networks, Inc. | System and method of updating a network |
| US20170090897A1 (en) * | 2015-09-26 | 2017-03-30 | Cisco Technology, Inc. | In-service upgrade of kernel loadable modules |
| US10289398B2 (en) * | 2015-09-26 | 2019-05-14 | Cisco Technology, Inc. | In-service upgrade of kernel loadable modules |
| CN108027724A (en) * | 2015-09-26 | 2018-05-11 | 思科技术公司 | Upgrade in the service of kernel loadable module |
| US9940160B1 (en) * | 2015-11-13 | 2018-04-10 | Juniper Networks, Inc. | Managed reboot of a network operating system |
| US11601335B2 (en) * | 2016-06-07 | 2023-03-07 | Cisco Technology, Inc. | Methods and systems for neighbor-acknowledged graceful insertion/removal protocol |
| US10498606B1 (en) * | 2016-06-07 | 2019-12-03 | Cisco Technology Inc. | Methods and systems for neighbor-acknowledged graceful insertion/removal protocol |
| US10992539B2 (en) * | 2016-06-07 | 2021-04-27 | Cisco Technology, Inc. | Methods and systems for neighbor-acknowledged graceful insertion/removal protocol |
| US20210258226A1 (en) * | 2016-06-07 | 2021-08-19 | Cisco Technology, Inc. | Methods and systems for neighbor-acknowledged graceful insertion/removal protocol |
| CN107395394A (en) * | 2017-06-19 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | A kind of method and system by updating mobile terminal router |
| CN109561126A (en) * | 2017-09-27 | 2019-04-02 | 北京国双科技有限公司 | A kind of method of data synchronization and device, storage medium, processor |
| US10635428B2 (en) * | 2018-03-30 | 2020-04-28 | Arista Networks, Inc. | System and method for in-service update of software |
| US11252457B2 (en) * | 2018-07-12 | 2022-02-15 | Realtek Semiconductor Corporation | Multimedia streaming and routing apparatus and operation method of the same |
| US10846179B2 (en) | 2018-11-05 | 2020-11-24 | Arista Networks, Inc. | Hitless repair for network device components |
| US10924395B2 (en) * | 2019-03-19 | 2021-02-16 | Cisco Technology, Inc. | Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core |
| US11301231B2 (en) | 2019-04-05 | 2022-04-12 | Arista Networks, Inc. | Dynamic run time programming of hardware tables |
| CN113300950A (en) * | 2020-04-01 | 2021-08-24 | 阿里巴巴集团控股有限公司 | Data processing method and device, electronic equipment and computer readable medium |
| US11593144B2 (en) | 2020-09-23 | 2023-02-28 | Cisco Technology, Inc. | Near-hitless upgrade or fast bootup with virtualized hardware |
| US20230083347A1 (en) * | 2020-09-23 | 2023-03-16 | Cisco Technology, Inc. | Near-hitless upgrade or fast bootup with mobile virtualized hardware |
| US11546275B2 (en) * | 2020-09-23 | 2023-01-03 | Cisco Technology, Inc. | Near-hitless upgrade or fast bootup with mobile virtualized hardware |
| US11882060B2 (en) * | 2020-09-23 | 2024-01-23 | Cisco Technology, Inc. | Near-hitless upgrade or fast bootup with mobile virtualized hardware |
| US12184736B2 (en) | 2023-04-07 | 2024-12-31 | Cisco Technology, Inc. | Minimizing network disruption via graceful upgrade of routing controllers |
Also Published As
| Publication number | Publication date |
|---|---|
| US9338055B2 (en) | 2016-05-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9338055B2 (en) | Virtual router upgrade via graceful restart | |
| CN102124697B (en) | Upgrading network traffic management devices while maintaining availability | |
| CN105743692B (en) | Policy-based framework for application management | |
| US8578007B1 (en) | Performing an in-service software reload on a network device | |
| CN118266203B (en) | Methods for intelligent network interface controllers and related machine-readable media | |
| US9172639B2 (en) | Distributing functions in a distributed and embedded environment | |
| CN109861839B (en) | Method for upgrading virtual switch without service interruption and related equipment | |
| US7506194B2 (en) | Routing system and method for transparently rocovering routing states after a failover or during a software upgrade | |
| US9378005B2 (en) | Hitless software upgrades | |
| US8189579B1 (en) | Distributed solution for managing periodic communications in a multi-chassis routing system | |
| US9992058B2 (en) | Redundant storage solution | |
| US8112660B2 (en) | Router synchronization | |
| US9461885B2 (en) | Constructing and verifying switch fabric cabling schemes | |
| US9172634B2 (en) | Restarting a line card | |
| US9253076B2 (en) | Synchronization of load-balancing switches | |
| JP6160446B2 (en) | Information processing apparatus, information processing system, and information processing method | |
| US10033622B2 (en) | Controller-based dynamic routing in a software defined network environment | |
| US9792106B1 (en) | Technique for fast network device configuration upgrade and reload | |
| US20160048386A1 (en) | System and method for accelerated software upgrades | |
| WO2015171469A1 (en) | Constructing and operating high-performance unified compute infrastructure across geo-distributed datacenters | |
| US20160255043A1 (en) | System and method of persistent address resolution synchronization | |
| CN115037673B (en) | System and method for achieving seamless failover in branch deployment | |
| WO2018161794A1 (en) | Apparatus upgrade method and access apparatus | |
| US9426098B2 (en) | Synchronizing out-of-sync elements in a distributed fibre channel forwarder | |
| CN111614554B (en) | Route switching method, control device, multi-route network system and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHOORAKKOT EDAKKUNNI, GOPAKUMAR;CAI, DEZHONG;RAY, SAIKAT;SIGNING DATES FROM 20130306 TO 20130308;REEL/FRAME:030012/0026 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |