Basic Principles of Load Balancing


Protocol Load Balancing

  • Equal-cost load balancing
    The CX600 supports multi-route mode. You can configure multiple routes with the same preference to the same destination. If there are no other routes with higher priorities to the target destination, these "equal-cost" routes are used. Packets transmitted to the target destination are sent along different routes and, in this way, load balancing is achieved on the network.
    A particular routing protocol may discover several routes to the same target destination. If this routing protocol has the highest priority among all active routing protocols, then the routes it has discovered are effective and are the ones used to reach the target destination. This ensures load balancing on the routing protocol layer. In practice, the routing protocols OSPF, BGP, and IS-IS support load balancing. Static routes also support load balancing.
    Figure 1 Schematic diagram of protocol load balancing
    Figure 1 shows a networking environment for load balancing (using OSPF as an example).
    • OSPF is configured on CX- A, CX- B, CX- C, CX- D, and CX- E. OSPF can discover three different routes.
    • Packets destined for CX- E enter CX- A through Ethernet 1/0/0. The packets are then distributed among the three routes for transmission to the destination, based on a specified load balancing mode. Network traffic is load balanced.
  • Unequal-cost load balancing
    Unequal-cost load balancing bases the distribution of traffic for load balancing on the bandwidth of outbound interfaces. In equal cost load balancing mode, traffic is distributed equally among the various routes available without consideration of bandwidth differences among the links. This may result in congestion on low bandwidth links while high bandwidth links are under-utilized. By taking link bandwidth into account, unequal-cost load balancing resolves this problem.
    As shown in Figure 1, if CX600 is enabled with unequal-cost load balancing, a ratio expressing the difference in bandwidth of the three outbound interfaces on CX- A is used as the basis for distributing traffic. If, for example, the bandwidths of the three outbound interfaces are 0.5 Gbit/s, 1 Gbit/s, and 2.5 Gbit/s, then a ratio of 1:2:5 will be used to distribute traffic among the three interfaces and achieve load balancing.
    Unequal-cost load balancing works as follows:
    • Equal-cost load balancing and unequal-cost load balancing have similar working mechanisms. The difference is that, in unequal-cost load balancing mode, bandwidth information is added to the FIB table and an NHP table is generated based on the bandwidth ratio of the links being used to implement load balancing based on bandwidth ratio.
  • TCP/UDP packets
    The hash algorithm is implemented based on the TCP/UDP port numbers of TCP/UDP packets.
    The mechanism of load balancing for TCP/UDP packets is as follows:
    • The source and destination port numbers of TCP/UDP packets are used as the key of the hash algorithm.
  • MPLS load balancing
    Figure 2 Schematic diagram of MPLS load balancing
    As shown in Figure 2, two equal-cost LSPs exist between two CX600s. In this scenario, MPLS load balancing is performed.
    MPLS load balancing works as follows:
    The NP first checks the load balancing table and then hashes packets to different load balancing items.
  • VLL load balancing
    If multiple equal-cost links exist on a public network, VLL can implement equal-cost load balancing to make full use of network resources.
    Figure 3 Schematic diagram of VLL load balancing

Trunk load balancing

A trunk is formed when several physical interfaces of the same type are bundled together to function as a logical interface . Trunks can dynamically increase bandwidth, improve connection redundancy, and load balance traffic over links.
Figure 4 Schematic diagram of Trunk load balancing
  • Trunk load balancing for Layer 3 unicast packets
    Flow-based mode is the default forwarding mode. Packet-by-packet forwarding mode can also be configured for Layer 3 unicast packets, but MAC-based forwarding mode is not supported.
    • Forwarding process
      Load balancing of IP unicast packets is based on weight value. If member interfaces are configured with backup interfaces, fast backup outside the group is supported, with the convergence time less than 50 milliseconds (ms). If member interfaces are not configured with backup interfaces, fast backup inside the group is supported, with the convergence time less than 50 milliseconds (ms).
      Figure 4 shows the flow of upstream IP packets. If an IP packet is to be sent out through a trunk interface, the NP first checks the FIB table. If the target board (TB) field in the packet is a special value (this special value is defined by macro and is currently set to 253), the target port (TP) field is the trunk ID. The NP checks the trunk forwarding table and uses the hash algorithm to obtain a load balancing entry. This entry in fact designates the physical TB and TP to which the packet is forwarded.
  • Trunk load balancing for Layer 2 unicast packets
    MAC-based forwarding is the default mode. IP-based and packet-by-packet forwarding can also be configured.
    • Forwarding process
      When Layer 2 unicast packets are forwarded upstream, the MAC table is checked rather than the FIB table. Otherwise the forwarding process for these packets is the same as that used for IP packets.
    • Load balancing mode
      • MAC-based load balancing: The XOR algorithm based on SMAC (48 bits) and DMAC (48 bits) is used to calculate the hash key.
      • IP-based load balancing: The same as Layer 3 IP packet load balancing.
      • Packet-by-packet load balancing: The same as Layer 3 packet-by-packet load balancing.
  • Multicast packets
    • Forwarding process
      The NP first checks the MFIB and then calculates an (S, G) entry based on the SIP, multicast group address, and VPN instance. The MID is obtained. If the outbound interface is a trunk interface, the trunk forwarding table is checked on the 587 chip. A hash algorithm based on the last four bits of the MID is implemented on member interfaces of the trunk to determine the outbound interface.
    • Load balancing mode
      For multicast traffic being sent over trunk member interfaces, only flow-based load balancing is supported. A hash algorithm, based on key values of SIP, multicast group address, and VPN instance, is implemented.
      The outbound interface of a flow is determined by the last four bits of the MID.
  • TCP/UDP packets
    The hash algorithm is implemented based on the TCP/UDP port numbers of TCP/UDP packets.
    The mechanism of load balancing for TCP/UDP packets is as follows:
    • The source and destination port numbers of TCP/UDP packets are used as the key of the hash algorithm.
  • MPLS load balancing
    • Forwarding process
      The NP checks the insegment table to obtain an outbound interface. If this outbound interface is a trunk interface, the NP checks the trunk forwarding table and implements a hash algorithm based on the trunk forwarding table.
    • Load balancing mode

Two-level Hash

When links connected to next hops are trunk links, traffic is load balanced first based on the hash algorithm and then load balanced again based on the trunk forwarding table. This is referred to as two-level hash.
Figure 5 Schematic diagram of two-level hash
  1. The hash algorithm is first performed on GEand trunk links.
  2. Traffic on the trunk link is hashed to two trunk member interfaces.
Two level hash works as follows:
A trunk is regarded as a link for the purpose of load balancing. Along with other links, it implements single level load balancing. The mechanisms for single level load balancing are the same as those for protocol load balancing. Trunk traffic is first load balanced using a hash algorithm based on the NHP table. This traffic is load balanced a second time using a hash algorithm based on the trunk forwarding table. This is referred to as two level load balancing.
Load balancing mode:
Single level load balancing mode is the same as protocol load balancing; two level load balancing mode is the same as trunk load balancing.

Two-level Load Balancing

Figure 6 Schematic diagram of two-level load-balancing
As shown in Figure 6, traffic is load balanced between CX- A and CX- B, and between CX- B and CX- C. If the two load balancing processes use the same algorithm to calculate the hash key, the same flow is always distributed to the same link. In the example here, this results in traffic forwarding that is unbalanced.
Two-level load balancing works as follows:
A random number is introduced into the hash algorithm on each device. Random numbers vary with devices, ensuring different hash results. As a result, traffic is load balanced on devices participating in two level load balancing.

No comments:

Post a Comment