Abstract
A structured approach to high availability and fault tolerance is
essential in a production-grade service delivery network, where delays
and faults can occur for a multitude of reasons. In this thesis, we
consider the high-level scheduling and load sharing properties
offered by the Domain Name System, as implemented in popular DNS
software packages. At this level, the scheduling mechanism can account
for server availability, geographical proximity, time zones, etc. We
explore the performance and capabilities of high-level DNS-based load
balancing, where we draw special attention to the choice of
caching policy (time-to-live) for DNS data. Our findings confirm the
high performance of modern DNS server implementations, but question
the use of DNS as a suitable load balancing mechanism in itself.
Further, we analyse the use of a database-supported DNS service for
allowing highly dynamical query responses, and show that this approach
has both potentially negative (single point of failure) and positive
(improved balancing flexibility) properties.