9.3
Issues of Redundancy, Symmetry and Load Balancing
9.3.8 Load balancing
Load balancing deals with the capability to divide data traffic over multiple connections. A common misconception about balancing is that it means an equal distribution of the load. Perfectly equal distribution of traffic is elusive enough, even in situations where traffic flows in a network that is under a single administration. Given the multiple players that traffic has to touch, equal distribution of the traffic is difficult to achieve in most scenarios. Load balancing tries to achieve a traffic distribution pattern that will best utilize the multiple links that are providing redundancy. To achieve this requires a good understanding of what traffic you are trying to balance, incoming or outgoing.

It is important not to think about a traffic stream as a single entity. Traffic is two separate entities, inbound and outbound. With respect to an AS, inbound traffic is received from other ASs, whereas outbound traffic is sent to other ASs.

Suppose that you are connected to two ISPs and traffic is overloading your link to ISP1. Your question should be: What traffic-inbound or outbound? Are you receiving all your traffic from ISP1, or are you sending all your traffic toward ISP1?

The patterns of inbound and outbound traffic go hand in hand with the way you advertise your routes and the way you learn routes from other ASs. Inbound traffic is affected by how the AS advertises its networks to the outside world, whereas outbound traffic is affected by the routing updates coming in from outside ASs. Make sure that you fully understand this behavior, because it will be the basis of all future discussions. From now on, whenever we talk about taking steps to affect inbound traffic, we are really talking about applying attributes to outbound routing announcements because how our routes are learned by others affects how traffic is routed inbound. Similarly, whenever we talk about taking steps to affect outbound traffic, we are talking about applying attributes to inbound routing announcements, because how our network learns routes affects how outbound traffic is routed.

The figure illustrates how inbound and outbound traffic behaves. As you can see, the path for outbound traffic to reach NetA depends on where NetA is learned. Because NetA is received from both San Francisco and New York, your outbound traffic toward NetA can go via San Francisco or New York.

On the other hand, the path for inbound traffic to reach your local networks, NetB and NetC, depends on how you advertise these networks. If you advertise NetC over the New York link only, then incoming traffic toward NetC will take the New York link. Similarly, if you advertise NetB over the San Francisco link only, traffic toward NetB will take the San Francisco link.