Load balancing with BGP

A while ago, people believed you cannot do load balancing with BGP (they also believed the Earth was flat a few years before that). While that's no longer true, designing good BGP load balancing is still a complex undertaking. In the November IP Corner article, Load Balancing in BGP Networks I'm describing almost all options you have to implement BGP-based load balancing, both within your autonomous system as well as across an AS boundary.

8 comments:

  1. Ivan:

    Do you have any article (real-life) on BGP Multipath Load Sharing for Both eBGP and iBGP in an MPLS VPN environment? I am talking about EIBGP Multipath in a MPLS VPN environment and pros and cons from an implementation perspective.

    ReplyDelete
  2. This document from Cisco looks pretty good. Is it missing something or would you like to see something else addressed ... I am always looking forward to new ideas for IP Corner articles :)

    ReplyDelete
  3. Thanks, Ivan, I will check it out. I was told that special attentions are required when enabling EIBGP Multipath with IP Multicast because of RD, however, I need to dig deeper to find out why.

    ReplyDelete
  4. Load balancing with BGP is very difficult and even impossible to achive.
    Lets take the usual scenario when a client with one or two routers connects to two different providers.
    How are you load balancing the download which most of the time is what makes people say "the internet is slow". You can't.

    ReplyDelete
  5. Have you read the article? Somewhere in the top half of the first page it states "Fact #1: Load-balancing is always unidirectional" ;)

    ReplyDelete
  6. You are right :) my bad.

    ReplyDelete
  7. Hi Ivan,

    I am having a hard time differentiating between load balancing and load sharing. Specifically referring to the note at the beginning of this article which says -

    "Load sharing is the ability to distribute outgoing traffic (or influence the flow of incoming traffic) over multiple paths. Load balancing is the ability to split the load toward the same destination (host or IP prefix) over multiple paths."

    Can you please possibly explain the difference between the 2 statements as I seem to interpret it as being the same thing except for load sharing it uses the word "distribute" and for load balancing it uses the term "split".

    In other explanations on various lists it seems that the way it has been described is that load balancing is dynamic in nature wheras load sharing is pre deterministic. Reference : http://markmail.org/message/kolb4itl3ubaehhl#query:difference%20between%20load%20sharing%20and%20load%20balancing+page:1+mid:kolb4itl3ubaehhl+state:results

    Thx.

    ReplyDelete
  8. Ivan Pepelnjak21 May, 2010 09:51

    It's a nuanced distinction and the definitions don't always agree ... for more confusion just throw OER aka PfR in the mix ;) I started my article with my understanding of the terms to let the readers know what we're discussing.

    Let me just give you a simple example: if you have two connections to the Internet using two upstream service providers, traffic to some destinations will use one link, traffic to other destinations the other, thus the total outbound load is shared between the links.

    However, due to EBGP limitations, you cannot (usually) reach the same destination through both links, which means that for a large host-to-host transfer all the packets will flow over the same link. This particular load will thus not be balanced across the links.

    Does this make sense?

    ReplyDelete

You don't have to log in to post a comment, but please do provide your real name/URL. Anonymous comments might get deleted.

Ivan Pepelnjak, CCIE#1354, is the chief technology advisor for NIL Data Communications. He has been designing and implementing large-scale data communications networks as well as teaching and writing books about advanced technologies since 1990. See his full profile, contact him or follow @ioshints on Twitter.