When a service on the internet is scaled horizontally with multiple server instances, there are different solutions on how to map a client request to one of those server instances. In this paper I am evaluating a select few solutions for using the nearest server instance to handle a client request. I classified those solutions on the criteria ease of use, does this solution require a change of program behavior, how many resources are required for set up, the response time, are there already existing open source software or open data solutions available, how accurate is the solution, does it scale horizontally and lastly how robust the solution is.
In this paper I evaluated GeoDNS, a central hyper text transfer protocol (HTTP) redirect server, decentralized instances and using an Anycast internet protocol (IP) address as a solution.
Based on the described evaluation criteria I found that the central redirect server in combination with a GeoDNS server works best to map a client request to the nearest server instance. The decentralized instances are a specialization of the redirect server and setting up a public routable Anycast address is complicated.
I compared three methods of matching a client IP address to a geolocation. In this practical implementation I found using local files matching IP ranges to countries works best over using regional internet registry provided registration data access protocol (RDAP) endpoints or using the same RDAP method with a cache. The local mapping file implementation is the fastest, compared to the other described implementation, and less error-prone.
The entire source code of this work and implemented programs can be found here (https://paulgo.dev/mrpaulblack/bachelor-thesis).:1 Introduction and Intention
2 Solutions
2.1 Geolocation DNS
2.2 Central Redirect Server
2.3 Decentralized Implementation
2.4 IP Anycast
3 Implementation
3.1 Experiment Setup
3.2 Method of Observation
3.3 Observations and Analysis
4 Conclusion
Bibliography
List of Figures
List of Tables
List of Source Codes
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:87628 |
Date | 24 October 2023 |
Creators | Braeuning, Paul |
Contributors | Hochschule für Technik, Wirtschaft und Kultur Leipzig, Leipzig |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | English |
Detected Language | English |
Type | info:eu-repo/semantics/acceptedVersion, doc-type:bachelorThesis, info:eu-repo/semantics/bachelorThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0015 seconds