I've been scaling out a service very rapidly, and have found a problem in the way I've been balancing the load. My servers do not need a perfectly even distribution, so I was simply using a round robin DNS setup to direct clients to the servers.

However, it is very important that a client not be bounced between servers, and I've found that many of the clients running their software on Ubuntu do NOT cache the DNS result they receive, so they are constantly changing which server they communicate with.

Is there any way to force a DNS record to stick to them, or will I have to begin looking at a software or hardware load balancer? My concern is the latency of a load balancer. If the LB is in the US and the client is directed to the UK, my understanding is the client will always have to connect to the US load balancer before being redirected to the UK.