Network Load Balances

Soldato
Joined
26 Aug 2012
Posts
4,449
Location
North West
Does traffic actually flow through Windows NLB or other NLBS and then it's forwarded to the host based it's on it's balancing algorithm or does it just return a DNS entry of which host the traffic is being sent to?
 
It should load balance it dependant on the load of each node and send new sessions or traffic to the one with the least amount of load if that is how you have configured it.... Otherwise you are going through additional work for what could be achieved with DNS round robin.
 
It should load balance it dependant on the load of each node and send new sessions or traffic to the one with the least amount of load if that is how you have configured it.... Otherwise you are going through additional work for what could be achieved with DNS round robin.

Thanks for that, but I think I might of phrased the question wrong.

Does the traffic physically flow through an NLB which then forwards it to the correct destination (like a router), or does the NLB literally tell it which server to send the traffic to (so just responds to the question)
 
If you are talking specifically about Windows NLB, it is algorithm-based. Each host in the NLB cluster has its own IP address, and then additionally there is a cluster IP. All the nodes in the cluster have this IP (the switch needs to allow this sort of behaviour). So, when a client hits the cluster IP, all the nodes receive the packet, but only one of them actually responds to it. This is the algorithm part. You can choose the algorithm (e.g. source IP, source port, etc.), and since all the nodes in the cluster obey the same algorithm, then it is always clear who must respond to each request. If a node is added or removed from the cluster, then the nodes all re-calculate a new algorithm mapping to ensure there is always only one node that will ever service a request.

Here is the technical explanation:
https://support.microsoft.com/en-us/kb/556068
 
So... to answer your question, it's neither of the options you gave. =)

The answer is that every node sees every packet, but only the correct node responds, and the other nodes drop the packets.

This means that it's not a great system for something that will cause massive amounts of traffic, as you are limited by how much traffic a single node can carry (because all nodes see all traffic). It's more for HA (High Availability) or for balancing stuff that is processor or memory intensive (i.e. it generates relatively little network traffic, but creates significant load on the server).
 
No, the A10 (and most other hardware load balancers) functions as a proxy -- all the traffic flows through it:

Clients <-> A10 <-> Cluster Nodes

The clients never talk directly to the nodes.

On the A10 you configure a policy so that traffic is sticky (always goes to the same node) based on some set of rules, and you have health checks so it only sends traffic to nodes it knows are responding.

With hardware load balancers you have to be careful of single point of failure. i.e. if you have multiple cluster nodes, but a single load balancer, then you've only moved the problem slightly higher up the stack. The ideal solution is:

2 Datacentres
2 Load Balancers in a cluster (either Active/Active or Active/Hot-Standby) per Datacentre
GSLB (Global server load balancing) -- uses DNS to route the traffic to one datacentre or the other
If you are REALLY lucky, you get stretch VLANs (the same subnet in 2 datacentres), and you don't need to use GSLB, although there are still reasons to use it (it depends on the hardware implementation of the load balancer, i.e. manufacturer specific).

A10 is really really good value for money.
 
Back
Top Bottom