BGP Multipath
BGP Multipath, also known as Border Gateway Protocol Multipath, is a routing feature that allows traffic load balancing across multiple paths in a network. This feature is handy in scenarios with multiple links or paths between two routers.
Traditionally, BGP selects only the best path for forwarding traffic based on various factors, such as the shortest AS path length or the lowest cost. However, in some situations, utilizing multiple paths simultaneously to distribute traffic more evenly and efficiently may be desirable.
With BGP Multipath, routers can install and use multiple paths for the same destination prefix, increasing the available bandwidth and improving overall network performance. This enables the routers to consider multiple paths equally valid forwarding traffic options.
Highlights: BGP Multipath
- The Role of BGP
Border Gateway Protocol (BGP) was developed in 1989 to connect networks and provide interdomain routing. The goal was to create a scalable non-chatty protocol. BGP grew in response to the overwhelming growth of the Internet, and its use cases now vary from Multicast, DDoS protection, Layer 2 services, BGP SDN, and the Routing Control Platform variations. A lot of its success comes down to the fact that it is a very well-known protocol.
- BGP Additional Features
People know how to use BGP, and additional features are easily added, making it very extensible and easy to use. It’s much easier to troubleshoot a BGP problem than a complex IGP problem. If you want to add something new, you can create an attribute, and simple traffic engineering can be done using predefined BGP communities. Many tools are available within the protocol. Recently, there have been infrastructure improvements such as keepalive and update generation enhancements, parallel route refresh, adaptive update cache size, and multipath signalling.
For pre-information, you may find the following helpful
BGP Add Path. |
|
Back to basics with the BGP Multipath
At a fundamental level, BGP multipath allows you to install multiple internal and external BGP paths to the forwarding table. Selecting multiple paths enables BGP to load-balance traffic across multiple links. This allows multiple BGP routes to simultaneously reach the same destination. The principal benefits of BGP multipath compared to normal BGP are:
- The capacity to load-balance traffic across multiple links.
- Decreased impact in the event of a BGP session or link failure.
By distributing traffic across multiple paths, BGP Multipath can help alleviate congestion on certain links, prevent bottlenecks, and optimize network utilization. It can also improve resiliency and reliability by providing redundancy in case of link failures. BGP Multipath can automatically reroute traffic to the remaining available paths in a link failure, ensuring uninterrupted connectivity.
It is important to note that BGP Multipath is not enabled by default and must be explicitly configured on the routers participating in the BGP peering. Additionally, not all BGP implementations support Multipath, so verifying compatibility with the specific router and software version is essential.
There are a few considerations to keep in mind when implementing BGP Multipath. First, it is crucial to ensure that all links involved in the multipath configuration have comparable bandwidth, delay, and reliability characteristics. This helps to prevent imbalances in traffic distribution and ensures that each path is utilized optimally.
Second, it is essential to configure BGP Multipath to comply with the network’s policy requirements. This includes setting appropriate criteria for load balancing, such as equal-cost or unequal-cost multipath, and defining the maximum number of paths allowed for a given destination prefix.
Lastly, monitoring and troubleshooting tools should be utilized to verify the correct functioning of BGP Multipath and proactively identify any issues that may arise. Regular monitoring helps ensure that traffic is being distributed as intended and that the desired network performance goals are met.
BGP Multipath:
Best Path only & Route-Reflector clusters
BGP Multipath enables BGP to send more than just the “best” path. It is helpful in design where hot potato routing is broken. When you install a route reflector (RR), you break hot potato routing and potentially create route oscillation. Route oscillations may occur in certain network topologies combined with specific MED configurations.
To eliminate MED-induced route oscillations, a route reflector must advertise multiple paths. A network with a full mesh of iBGP speakers has consistent and equivalent routing information. It is free from MED-induced route oscillations and other routing inconsistencies.
We need to find an approach where the RR advertises all the available paths for an address prefix or the prefixes that may cause MED-induced route oscillations. As a general design best practice to achieve consistent routing, the IGP metrics for links within a route reflector cluster are smaller than the IGP metrics for the links between the route reflector clusters.
The hot potato routing scheme
All transit providers want to protect the hot potato routing scheme for revenue reasons. Traffic consumes bandwidth and bandwidth costs money. Therefore, providers want traffic to leave their networks as soon as possible, aka hot potato routing. The problem is that when a route reflector receives two updates, it only sends one.
This is done by design for scalability reasons. BGP may also withdraw paths with lower policies (MED, Local Preference), resulting in only one NLRI announcement (diagram above). It was relevant, but you might want to send multiple routes for many reasons.
For example, faster convergence requires a primary and backup path and Multipath TCP use. Another issue is that the route reflector selects the best path based on its IGP and the route reflector’s shortest exit point. Route reflector deployments will choose the egress router closest to the RR, not its clients. It selects the best path based on the IGP metric computed from its IGP database and announces it to clients.
This is not optimum for egress traffic selection. As a result, traffic may travel longer paths to exit an AS. To combat this, most service providers create a full mesh of route reflectors in all regions, resulting in a route reflector in every PoP. But an RR in every region is expensive if you have an extensive transit network.
BGP Multipath
There are several ways to get an RR or an ASBR to advertise more than one path:
- Different RD per prefix
- BGP Best External
- BGP Add Path
- BGP Optimal Route Reflection (ORR)
Different RD (VPN identifier) per prefix is the recommended method for MPLS-VPN. If you are running Layer 3 VPN, you can assign different route distinguishers (RD) to the same prefix resulting in different IP addresses NLRI. Then the RR sees two different prefixes and will forward both.
RR does the best path on two different VPNv4/v6 NLRI. With BGP Best External, you tell the router not to withdraw an update, even if it’s not the best one. It provides the network with an external backup route.
BGP Add path
The BGP Add path feature is a new BGP capability. It is an extension added to a BGP update where you can signal multiple paths to neighbors that must be negotiated at startup with all BGP neighbors. It’s the best method if you have a good memory and all nodes support it. All the information will be in the control plane, and you can still do hot potato routing. There are many add-path flavors, including Add-n-path, Add-all-path, and Add-all-multipath+backup.
BGP Optimal Route Reflection enables a virtual IGP location-style design. It builds multiple RIBs and computes the best path for each RIB. It would help if you influenced your IGP to mimic what it would be like in other network locations. It essentially overwrites the default IGP location placement of the route reflector, enabling clients to direct traffic to their closest exit point in hot potato routing deployments.
In conclusion, BGP Multipath is a powerful feature that enhances BGP-based networks’ scalability, performance, and resiliency. By enabling traffic load balancing across multiple paths, it helps optimize network utilization, prevent congestion, and improve overall reliability. However, careful planning, configuration, and monitoring are essential to ensure its successful implementation.