Web Services DNS Round Robin

J

JP

Greetings - I have a classic ASP site that is accessing custom written .NET
web services - we are looking at scalability options and though we have an
F5 load balancer that would definitley do the trick, I was wondering how DNS
load balancing was handled in such a situation?

That is DNS Resolves:

mywebservice.mydomain.com: 10.10.10.10, 10.10.10.11, 10.10.10.12

I knwo most browsers will succesfully load balance this scenario, but it is
up to the 'client' making the request.

Any info would be appreciated.

Thanks!
 
N

Nick Malik [Microsoft]

You are looking at the network from the side of the servers, not the side of
the clients.

When you put in a NLB, you make one IP address visible. It is a Virtual IP.
The caller (in this case, your ASP site) cannot tell that there are three
machines under the covers. That machine (or farm?) need to use the DNS
entry assigned to the Virtual IP, not the contained IP addresses.

This is a bit confusing when you have all of the machines on a single LAN.
If it makes it less confusing, you can always configure a VLAN on your
switch to seperate the traffic from the ASP web server to your NLB, and keep
that apart from the traffic that flows from the NLB to your web application
servers.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
J

JP

Right. I understand this method - and we have this segmented using VLAN's
w/ a LB machine inbetwen holding the single IP w/ several machines behind
it.

What I was wondering is using a different model, DNS load balancing, where
the decision comes from to decide which IP to pull. We use DJBDNS and this
information seemed to indicate the client made the decision. However, in
doing some ping tests on several machines it seems that it is actually
handing out sequential IPs. Just not fmailiar with what is going on behind
the scenes and wanted to make sure that when using ASP to pull a web service
via HTTP the behavior would be the same.

How to balance load among many web servers
These instructions assume that you are already running tinydns, version 1.04
or later, as a DNS server.
Suppose you have 50 identical www.heaven.af.mil web servers running on IP
addresses 1.2.3.150, 1.2.3.151, and so on. You can simply list all their
addresses in /service/tinydns/root/data:

+www.heaven.af.mil:1.2.3.150
+www.heaven.af.mil:1.2.3.151
+www.heaven.af.mil:1.2.3.152
# etc.
When a DNS cache asks for the IP address of www.heaven.af.mil, tinydns will
automatically return a random set of 8 addresses.
If one of your web servers crashes, the effect on users will depend on how
their browsers behave:

a.. Silly behavior: I've heard rumors of obsolete browsers that give up
after a single IP address.
b.. Standard behavior: Most browsers move on to the next IP address after
the first connection attempt times out. A server outage produces a long
delay but not a failure.
c.. Smart behavior: To reduce the delay, smart browsers try each address
with a two-second timeout before retrying each address with a long timeout.
You can eliminate delays by removing IP addresses of web servers that have
crashed. tinydns is designed to work with external programs that monitor the
health of your servers. Specify each address with a 5-second TTL:

+www.heaven.af.mil:1.2.3.150:5
+www.heaven.af.mil:1.2.3.151:5
+www.heaven.af.mil:1.2.3.152:5
An external program can remove an address by simply changing + to - on the
relevant line, then running make. Later, when that server has recovered, the
program can change - back to +.
 
N

Nick Malik [Microsoft]

this won't work when connecting a server to a server in your network. This
is used to allow a DNS Cache to choose who to call. Certainly the DNS cache
for a client machine is managed by the client. For your server, though,
once a client server gets the IP address of the app server, it will keep
using it until the IP dies. This is very very bad. You defeat the purpose
of load balancing altogether.

F5 offers this as an option if you have to distribute a single web site to
servers around the world. DNS Cache servers at various ISPs can be
configured to return the "closest" IP address, so this allows the ISP to
present Amazon.uk to customers in England, and Amazon.com to customers in
the US. Unless you plan to multiply distribute your web service app servers
around the globe, and set up your client web servers under a variety of ISP
hosting sites, you probably shouldn't consider this option for use in a
server-to-server configuration.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
J

JP

Ok - I understand your concern. That's interesting about the "closest" IP ,
wasn't aware of that.

One final question on this - what if this is just to load balance 2 servers
purely for redundancy purposes. That is, either server could easily handle
all the traffic. In this scenario, it seems like the DNS load blaancing in
a server to server model would be fine?
 
N

Nick Malik [Microsoft]

sure. So would any software load balancing scheme and you wouldn't need the
F5. Microsoft has a good software load balancing solution you may want to
consider.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top