Bidirectional Forwarding Detection (BFD) is a network protocol that may be used to detect faults between two network devices acting as forwarding engines, such as network switches connected by a link. It provides detection of faults even on physical media that doesn't support failure detection of any kind, such as Ethernet, virtual circuits and tunnels.
Some implementations of the present disclosure are described with respect to the following figures.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. The figures are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings.
BFD may be used to detect rapid link failures thus supporting faster convergence. Although BFD may detect link failures within milliseconds, this information is first provided to the routing protocols to take action. Thereafter, the routing protocols in the local router may need to initiate the route recalculation and further notify the RTM (Routing table manager) to delete the routes so that it switches over to the secondary path programmed by FRR (Fast Re-Route) for forwarding. Accordingly, a time delay is added, even with an availability of alternate path in the network, thus negating many of the benefits in using BFD and FRR in achieving uninterrupted traffic switching. Aspects of present disclosure describe a technique that provides uninterrupted switching seamlessly salvaging the available alternate path.
Existing techniques may include notifying the routing protocol with a path down message soon as BFD detects a link failure it, which cascades to route recalculation, and deletes the route information corresponding to the link failure from the RTM, thus deleting the routes from the FIB (Forwarding information base) in the hardware.
One drawback with the existing implementation is the time taken between link failures detected by routing protocols and route deletion from the FIB initiated by routing protocols. For example, without BFD, a OSPF routing protocol may take 40 seconds and a BGP routing protocol may take 180 seconds by default to detect link failures between the network devices. Each router may then run a routing algorithm to recompute routes, update routing table based on this information, and installs the best route in the FIB which makes the process of route convergence very slow. With BFD enabled, the link failure detection time is reduced to sub-seconds but route deletion and switching to new path is still consumes considerable amount of time due to the time taken for recalculation.
A method for route updating using a BFD protocol may include detecting, by a bi-directional forwarding detection (BFD) protocol, a link failure of a link associated with a network device on a network. The method may also include notifying, by the BFD protocol, a routing protocol and a hardware plugin about the link failure, wherein the routing protocol and hardware plugin are notified simultaneously and identifying, by the routing protocol, an updated route for the network that does not include the network device. The method may also include deleting, by the hardware plugin, any routes programmed into a forwarding information base (FIB) including the first network device upon receiving the notification from the BFD protocol and installing, by the hardware plugin, the updated route into the FIB to be used for forwarding network traffic on the network.
Each of the devices 104-110 may be any number of network devices. For example, a network device may be a network switch. A switch may be a device within a network that forwards data sent by a sender device toward a recipient device (or multiple recipient devices). In some examples, a network device includes a layer 2 switch that forwards data packets (also referred to as data frames or data units) based on layer 2 addresses in the data packets. Examples of layer 2 addresses include Medium Access Control (MAC) addresses. In alternative examples, a switch includes a layer 3 router that forwards data packets based on layer 3 addresses, such as Internet Protocol (IP) addresses in the data packets.
A “packet” or “data packet” can refer to any unit of data that can be conveyed over a network. A packet or data packet may also refer to a frame or data frame, a data unit, a protocol data unit, and so forth. A switch forwards data (in data packets) between a sender device and a recipient device (or multiple recipient devices) based on forwarding information (or equivalently, “routing information”) accessible by the switch. The forwarding information can include entries that map network addresses (e.g., MAC addresses or IP addresses) and/or ports to respective network paths toward the recipient device(s).
A switch forwards data (in data packets) between a sender device and a recipient device (or multiple recipient devices) based on forwarding information (or equivalently, “routing information”) accessible by the switch. The forwarding information can include entries that map network addresses (e.g., MAC addresses or IP addresses) and/or ports to respective network paths toward the recipient device(s).
Each of the devices 104-110 may be communicatively coupled to one or more of the other devices 104-110 in system 100 via network 108. Link 108 and the various connections between devices 104-110 may be a physical link, such as an Ethernet connection or other physical connection, a wireless connection, a virtual connection, etc. Each of the devices 104-110 may communicate via a variety of routing protocols, such as RIP, BGP, EIGRP, IS-IS, VRRP and OSPF.
One or more the devices 104-110 may run a BFD protocol to provide rapid peer failure detection times independently of all media types, encapsulations, topologies, and routing protocols, such as RIP, BGP, EIGRP, IS-IS, VRRP and OSPF. By sending rapid failure detection notice to these routing protocols in the local router to initiate the routing table recalculation process, BFD contributes to greatly reduced overall network convergence time.
One or more the devices 104-110 may run a Fast Reroute (FRR) feature that allows a routing protocol to quickly switch to a backup path when a primary path fails. Without FRR, the routing protocol has to re-run routing algorithm to find a new path when the primary path fails. With FRR, the routing protocols pre-computes a backup path and installs the backup next hop path in the forwarding table. A backup path may be pre-installed in the FIB to reduce the time taken to switch over to the secondary path when the primary path fails.
Bidirectional Forwarding Detection (BFD) is a detection protocol that may be used to detect faults between two network devices acting as forwarding engines, such as network switches connected by a link. BFD may be used to provide fast forwarding path failure detection times for media types, encapsulations, topologies, and routing protocols. BFD can be used to detect forwarding path failures at a uniform rate, rather than the variable rates for different routing protocol hello mechanisms, making network profiling and planning easier and reconvergence time will be consistent and predictable. BFD may use control packets and echo packets to detect link failures.
As mentioned above, aspects of the present invention may enables a seamless transition to the secondary path, thus there is a significant improvement in route convergence time.
Specifically, aspects of the present invention describe herein include a technique where BFD notifies the routing protocol about a link failure. Following this, the routing protocol initiates it's routing table calculations and route deletion takes place. Deletion of the routes is triggered in the hardware plugin directly by BFD based on the neighbor it tracks and routes pointing to neighbor learnt from the protocol registered for failure detection with BFD. Now the ASIC installs the pre-programmed secondary routes into FIB to be selected for forwarding the traffic. Thus, providing uninterrupted network services with minimal impact on traffic. Simultaneously the notified routing protocol makes the adjacency to R4 peer down and initiates routing table recalculations to delete the routes learnt via R4 and update its routing table of any additional routes. This update is handled gracefully.
Turning now to
Machine-readable storage medium 152b stores instructions to be executed by processor 152a including instructions for link detector 156, link notifier 158, route identifier 160, route deleter 162 and route installer 164.
Processor 152a may execute link detector 156 to detect a link failure of a link associated with a network device on a network. Processor 152a may execute link notifier 158 to notify a routing protocol and a hardware plugin about the link failure, wherein the routing protocol and hardware plugin are notified simultaneously. The hardware plugin may be an application specific integrated circuit (ASIC) plugin used to program the FIB in the ASIC.
Processor 152a may execute route identifier 160 to identify an updated route for the network that does not include the network device. Processor 152a may execute route identifier 160 to remove any routes in a routing table manager (RTM) that include the network device, upon receiving the notification from the BFD protocol. The updated route may be one of a plurality of updated routes determined before the link failure has been detected. The updated route may be determined using a fast reroute routing technique.
Processor 152a may execute route deleter 162 to delete any routes programmed into a forwarding information base (FIB) including the first network device upon receiving the notification from the BFD protocol. Any routes programmed into a FIB including the first network device may be deleted without accessing the RTM.
Processor 152a may execute route deleter 162 to delete, by the hardware plugin, any routes in the FIB including the first network device and any routes pointing to the first network device learnt from the routing protocol. The link failure may be a failure of a path to the network device. Processor 152a may execute route installer 164 to install the updated route into the FIB to be used for forwarding network traffic on the network.
The method 200 may begin at block 202 and proceed to block 204, where the method may include detecting, by a bi-directional forwarding detection (BFD) protocol, a link failure of a link associated with a network device on a network. At block 206, the method may include notifying, by the BFD protocol, a routing protocol and a hardware plugin about the link failure, the routing protocol and hardware plugin may be notified simultaneously. The hardware plugin may be an application specific integrated circuit (ASIC) plugin used to program the FIB in the ASIC.
At block 208, the method may include identifying, by the routing protocol, an updated route for the network that does not include the network device. The updated route may be one of a plurality of updated routes determined before the link failure has been detected. The updated route may be determined using a fast reroute routing technique. In some aspects, the method may include removing, by the routing protocol, any routes in a routing table manager (RTM) that include the network device, upon receiving the notification from the BFD protocol.
At block 210, the method may include deleting, by the hardware plugin, any routes programmed into a forwarding information base (FIB) including the first network device upon receiving the notification from the BFD protocol. The routes programmed into the FIB including the first network device may be deleted without accessing the RTM. In some aspects, the link failure is a failure of a path to the network device and the method may also include deleting, by the hardware plugin, any routes in the FIB including the first network device and any routes pointing to the first network device learnt from the routing protocol.
At block 212, the method may include installing, by the hardware plugin, the updated route into the FIB to be used for forwarding network traffic on the network. The method may proceed to block 214, where the method may end.
The method 300 may begin at block 302 and proceed to block 304, where the method may include removing, by the routing protocol, any routes in a routing table manager (RTM) that include the network device, upon receiving the notification from the BFD protocol. At block 306, the method may include deleting, by the hardware plugin, any routes in the FIB including the first network device and any routes pointing to the first network device learnt from the routing protocol. The method may proceed to block 308, where the method may end.
Processor 402 may be at least one central processing unit (CPU), microprocessor, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 404. In the example illustrated in
Machine-readable storage medium 404 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium 404 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like. Machine-readable storage medium 404 may be disposed within system 400, as shown in
Referring to
Referring to
Referring to
Referring to
Referring to
The foregoing disclosure describes a number of examples for route updating using a BFD protocol. The disclosed examples may include systems, devices, computer-readable storage media, and methods for route updating using a BFD protocol. For purposes of explanation, certain examples are described with reference to the components illustrated in
Further, the sequence of operations described in connection with
Number | Date | Country | Kind |
---|---|---|---|
201941039485 | Sep 2019 | IN | national |
Number | Name | Date | Kind |
---|---|---|---|
9258234 | Addepalli | Feb 2016 | B1 |
20120075988 | Lu | Mar 2012 | A1 |
20130259056 | Kotrabasappa | Oct 2013 | A1 |
20160080502 | Yadav | Mar 2016 | A1 |
20170346726 | Menon | Nov 2017 | A1 |
Number | Date | Country | |
---|---|---|---|
20210099376 A1 | Apr 2021 | US |