Load Sharing works by splitting the traffic and then distributing the load across multiple links. eBGP (Flavour of BGP protocol) is the best answer which uses Load Sharing mechanism for incoming traffic by utilizing AS- Path attribute. In this article we will learn about load sharing and below are topics: –
- Concept of Load Sharing
- Load sharing using eBGP
- Load Sharing When Dual-Homed to One Internet Service Provider (ISP) Through a Single Local Router
- Load Sharing When Dual-Homed to One ISP through Multiple Local Routers
- Load Sharing using NAT
Concept of Load Sharing
Load sharing is the forwarding process of a router to share the traffic if the routing table has multiple paths to a destination. This still bears the possibility of unbalanced forwarding. If unequal paths, the traffic is distributed inversely proportionally to the cost of the routes. Paths with lower costs will carry more traffic and paths with higher costs will carry less traffic.
Load Sharing using BGP (eBGP)
BGP Load Sharing is a common scenario however it is usually done in two or more links connected to a unique Autonomous System (ISP). If we have two or more ASs, a customized configuration is needed to distribute traffic across AS.
i) BGP Load Sharing When Dual-Homed to One Internet Service Provider (ISP) Through a Single Local Router
This scenario shows how to achieve load sharing in BGP when multiple links exist between a remote AS and a local AS. These links are terminated on one router at the local AS and on multiple routers at remote AS in a single-homed BGP environment. This sample configuration uses the maximum-paths command. By default, BGP chooses one best path among the possible equal-cost paths that are learned from one AS. However, you can change the maximum number of parallel equal-cost paths that are allowed. In order to make this change, include the maximum-paths paths command under the BGP protocol configuration. Use a number between 1 and 6 for the paths argument.
ii) BGP Load Sharing When Dual-Homed to One ISP through Multiple Local Routers
This scenario shows how to achieve load sharing when there are multiple connections to the same ISP through multiple BGP speaking local routers. The two eBGP peers are terminated on two separate local routers. Load balancing on the two links is not possible because BGP protocol chooses the single best path among the networks that is learned from eBGP and internal BGP (iBGP).
Load sharing among the multiple paths to AS is the next-best option. With this type of load sharing, traffic to specific networks, on the basis of predefined policies, travels through both links. Additionally, each link acts as a backup to the other link during the scenario of one link going down. Router A and B are local Customer side routers while Routers C and D are provider side routers.
In the above config, AS-Path attribute is used to manipulate incoming traffic path from Router C to Router A and from Router D to Router B. By inserting “AS-Path Prepend 100 100 100” via Route Map, Router C to A link becomes preferred path for Network 10.10.10.0/24 and Router D to B Link becomes preferred path for Network 10.10.20.0/24
Load Sharing using NAT
Users that access the web server from outside Internet will access the server using a single URL or IP address, however the NAT device is used to load share the user traffic to multiple identical servers. Outside users access the contents of the Web server with the outside visible IP address i.e. Virtual IP address of the servers. The NAT router translates the traffic destined for Virtual IP address of the server to the inside IP addresses of all available servers in a round robin fashion and forwards it to the server.
- User initiates a TCP connection with virtual server IP address.
- NAT router when receives the connection request and creates a NAT translation which allocates the next available real server IP address.
- NAT router translate the destination IP address with the allocated real IP address and forwards the packet to destination.
- Server receives the request from user and replies back to the source.
- NAT router gets reply packet returned from the server and performs the NAT table lookup. The router then translates the source address to the virtual server IP address and forwards the packet.
- User initiates a TCP session with server virtual IP address. Upon receiving the connection request, the NAT router translates this to the next available real server IP address and then forwards the packet to the server.
Load sharing is distributing the load across multiple links. This is being possible by using attributes of BGP (eBGP) and leveraging NAT-ACL technique.