COSC 6377: Introduction to Computer Networks

HW3: Load balancing using DNS

Due: May 2, 2022

In this HW, we will learn how we can use load balancing using DNS.

We will run a web server serving a static html on at least three different servers with three different IP addresses. We will then use DNS to balance the load across these three servers.

  1. Learn how to setup your DNS to be the authoritative name server for your domain or sub-domain. This step is needed to make sure your query for an A record goes to your server.
  2. Setup your DNS and associated system so that it can return different IP addresses for the same query for A records. The response may be different over time, or for different queries, or sent in a way that allows the clients to select an address randomly.
  3. Build an instrumentation system so that you can record the number of requests arriving at a server over time.
  4. Write a script or use a command so you can send a sequence of GET requests to the specified DNS name.
  5. First, configure your DNS so that it always returns the address for just one server. Show the traffic arrival pattern with a chart.
  6. Now, configure your DNS so that it returns one of the two addresses randomly. Show the traffic arrival pattern at the servers.
  7. Finally, configure your DNS so that it returns one of the three addresses randomly. Show the traffic arrival pattern at the servers.
  8. What did you need to do beyond configuring your DNS to make sure the traffic is approximately balanced across the servers?
  9. What are the advantages and disadvantages of DNS based load balancing like what we did in this HW compared to using an application or network level load balancers in front of a bank of servers?
  10. Please submit a writeup including all the commands, data collection mechanism, and graphs as relevant.