In the previous article, we covered how the Internet uses the DNS service to resolve addressing between different data center locations, and in this article, we look at how SteelApp implements a Global Load Balancing service. SteelApp Traffic Manager can work in two different configurations:
Built-in DNS: SteelApp Traffic Manager can act as the DNS server with a local DNS service, using a built-in DNS service
Proxy DNS: SteelApp can extend the DNS server, by modifying the responses that the DNS server sends back, acting as a “DNS Proxy”
Using SteelApp with Built-in DNS:
SteelApp Traffic Manager can act as the DNS server with a local DNS service, and hence have local awareness of datacenter location, health and availability. In this model, SteelApp uses a built-in DNS service to act as a local authoritative DNS for the application in each data center.
Using SteelApp as a Proxy DNS:
SteelApp can extend the DNS server, by modifying the responses that the DNS server sends back, ensuring that only the most appropriate IP addresses are contained in each response. In this model, SteelApp acts as a “DNS Proxy” which is easier to deploy without changing existing DNS infrastructures.
Whether using the built-in DNS, or acting as a DNS proxy, SteelApp works as follows:
SteelApp receives a DNS request for a domain name. It passes the request on, either to the built-in DNS server, or to an external DNS server.
The DNS server replies with a round-robin list of the IP addresses for the domain name. SteelApp receives the response from the DNS server.
SteelApp checks the domain name that was just looked up. If it is not configured to load-balance traffic for that name, it just sends the complete response straight back to the originator.
Otherwise, SteelApp decides which datacenter is most suitable for the user who submitted the DNS request. It removes the IP addresses not in that datacenter from the response and sends the response back to the originator.
SteelApp knows how heavily loaded each datacenter is, because It continually monitors all of the data centers and the traffic being routed to each of them, to check they are functioning and to measure their performance. SteelApp also knows the geographic location of each datacenter and each user. It can determine the geographic location of each user in much the same way that you could use caller-ID to find out a telephone user’s phone number, and then look up their country and city code.
This works by inspecting the source IP address of the DNS request to determine the IP address of each user. SteelApp GLB contains a comprehensive database (sourced from MaxMind) that maps IP addresses to geographic location so that it can accurately select the closest datacenter each time.
With this information – datacenter availability, load and geographic proximity – SteelApp GLB can accurately select the most appropriate datacenter for each user of the service.
Global Load Balancing is used by many Riverbed customers using SteelApp Traffic Manager and DNS, to enhance the availability and performance of high profile sites on the Internet, as well as for intranet applications.