geographic load-balancing and organizationally external secondaries

Paul Vixie paul at vix.com
Tue Dec 20 00:34:50 UTC 2005


# Hi. There are several solutions for geographic load-balancing in DNS, 

well, there are ways of working around DNS to provide geo-load-balancing, yes.

# but all seem to require administrative ownership/non-standard
# configuration of all the nameservers involved, which defeats the 
# purpose of having external entities providing slave secondary service. 

that's because DNS delivers truth, not policy -- fact, if you will, not value.

# However, if there were a way to prioritize/weight NS records, 
# both requirements could be met easily. i.e. Geo-load-balancing
# from servers you control, then fall back to external slaves
# which have non-balanced static responses.

the mapping of the q-tuple <name,class,type> to an rrset <ttl,rdata> is meant
to be coherent, independent of client ip address, placement on the network,
load on any particular server, language preferred by local web browser, or
indeed anything else except the zone's identity at the time of the query.  if
you want noncoherence you will have to change a lot more than the format and
semantics of the NS rrtype.

# Two not-necessarily realistic solutions come to mind: 
# 
# A) An extension to the DNS spec to allow weights 
#    on NS records similar to those on MX records. 
#    Unlikely. 

indeed, this is unlikely.

# B) A hack to the remote nameservers allowing 
#    a delay to be configured per zone.
#    Since the DNS caches close to the end user
#    will most likely be using RTT to determine
#    which NS to query, they should prefer the
#    primaries (without the delay configured).
#    This is obviously less valid, as it requires
#    the modification happen at the external site,
#    not to mention that it negatively impacts
#    their performance.

most non-BIND resolvers don't even do RTT sorting, so this would be
ineffective (as well as a probable self-DoS for those who employed it.)

# Any other ideas on how to accomplish this?

anycast your web server and put your incoherence at the session layer where
there's more room for this kind of thing.

# Has there been any other initiatives  
# concerning weighting NS records?

yes.  tp brisco, then at rutgers, wrote a bunch of code for BIND 4 and then
an RFC on this topic.  searching the literature would have turned up at least:

	http://ops.ietf.org/lists/namedroppers/namedroppers.199x/msg01260.html

and maybe also:

	http://www.faqs.org/rfcs/rfc1794.html

# I apologize if this is not the appropriate forum, 
# but a lot of the relevant players are here,
# thus hopefully can/will gauge validity.
# 
# Thanks,
# -neil harkins

i've had a lot of coffee today and i'm happy to help you with your homework.


More information about the bind-workers mailing list