Re: Traffic Load sharing



In article <1174866111.951281.249370@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
Trendkill <jpmason@xxxxxxxxx> wrote:

Load balancing (routing-wise) is only accomplished with a routing
protocol (that supports load sharing) that knows about the same
destination via two routes that have the same metric.

Additionally, you
need to be careful with asynchronous routing if the traffic takes one
path over and a different path back. While theoretically this should
not be a problem, firewalls and other appliances can affect this
traffic and do some funny things.

For some applications, the timing differences between the routes
could break the application.

Also, sending packets via alternating interfaces can lead to different
packet fragments going different routes, and thus fragments arriving
"out of order". You can end up with fragments discarded
unless you are specifically using a protocol (such as PPP) that
does fragment reassembly -- but PPP can lead to quite high CPU loads.

Even without fragmentation, you can easily end up with TCP packets
arriving out of order. If Selective ACK (SACK) is not turned on,
alternate packets may be discarded, with the discarded packet NAK'd
and so retransmitted by the source, with a complete round-trip latency
to resynchronize. The throughput result can end up much much much worse
than if you had used only a single interface.

Because of factors such as these, sending alternate packets to
alternating interfaces is seldom as effective as load distribution
based upon the source and destination IP address (e.g., send through
interface 0 if the bitwise "xor" of the last bits of the source
and destination addresses is 0, send to interface 1 if the xor is 1.)
Algorithms such as these more closely approach flow-based path
distribution rather than per-packet load distribution. *If* the
IP addresses involved in your flows tend towards having uniform
random distribution of the data, flow-based distribution is more
effective and still shares the costs. But if it happens that the
bulk of your data is transferred between two consistant IP addresses
(e.g., backing up a server to a remote tape library) then you need
to be more careful with how you route the flows. "Policy-based routing"
can assist in this. I also seem to recall reading that some IOS
routers have the ability to do flow-based routing by examining the
TCP ports as well as the IP addresses, but I have a stuffed head
at the moment so I'm not certain of this.
.



Relevant Pages

  • Re: debuggin in safari
    ... none of the routes load. ... used Safari for Windows). ... i have no browser specific issues- other than safari. ...
    (comp.sys.mac.advocacy)
  • RE: Multiple routes to the same destination
    ... why not alter routes in a script, you are not going to send packets belonging to the same session in multiple routes would ya? ... Multiple routes to the same destination ... round robin is really not what you want with IP packets. ...
    (freebsd-net)
  • Re: Two NIC cards => Possible to Configure Two Default Routes?
    ... >> since if eth0 receives traffic, then response would be sent back ... >> this topic from past posts, where folks have achieved this using ... Transmitted packets are ... It has two default routes, ...
    (comp.os.linux.networking)
  • Re: Down the MPD road
    ... > pages just don't load, ... > hit CNN without a problem, then when I try news.google it never loads a page. ... Looks like a MTU problem. ... Don't Fragment bit on, and packets get discarted. ...
    (FreeBSD-Security)
  • Re: zonelimit issues...
    ... One option is to start adding drain routines to UDP ... that cause the protocol to drop packets under load, ...
    (freebsd-net)