GEO Sticky DNS
This document describes the sticky DNS functionality which is available both in the standalone GEO LoadMaster product and also the Global Server Load Balancing (GSLB) Feature Pack.
This document is intended to be read by anyone who is interested in learning about the Kemp LoadMaster GEO sticky DNS functionality.
Typically the LoadMaster will divide name resolution requests among available targets. Depending upon the load balancing algorithm used, a user may be sent to different servers, virtual servers or data centers during the same session.
This may not always be suitable and there are occasions when a user must remain with a given set of resources (that is, server, virtual server or data center) during the same session. As an example, applications where transactional data is unique to each application server instance, such as shopping cart information in an e-commerce context, require users to connect to the same server for the entire duration of their session. Additionally, when GEO LoadMaster is used to provide scaling across multiple distributed application LoadMasters, applications leveraging stateful communication will require those requests to be sent to the appropriate LoadMaster instance since transactional information is not shared across LoadMaster clusters. In typical distributed environments these requirements can pose a challenge. Fortunately, intelligence has been built into GEO to address this need.
GSLB Persistence, also known as ‘Stickiness’, is the property that enables all name resolution requests from an individual client to be sent to the same set of resources until a specified period of time has elapsed. This ensures that users are able to retrieve and interact with session-specific data.
Stickiness can be configured globally, or for a specific FQDN. To specify the sticky timeout value globally, in the main menu of the LoadMaster Web User Interface (WUI), select Global Balancing and Miscellaneous Params. Then, enter a value in the Stickiness text box and click Set Sticky Timeout.
The per-FQDN settings will default to the value of the global settings when the FQDN is created. To configure a sticky timeout value for a specific FQDN – go to Global Balancing > Manage FQDNs, click Modify on the relevant FQDN, tick the Enable Local Settings check box and set the Stickiness value.
When stickiness is enabled, GEO LoadMaster will first check each incoming connection to see if it is from a new or returning user. If it is a returning user it will decipher which target they initially had an established session and return the corresponding endpoint that they should connect to after aggregating health check data. If it is a new connection GEO LoadMaster will use its configured load balancing algorithm such as fixed weighting or round-robin to direct the request to the best-suited target.
If a site fails, the DNS sticky table gets cleared.
If EDNS Client Subnet (ECS) option (in Global Balancing > Miscellaneous Params) is enabled, the GEO LoadMaster uses the ECS value instead (if one is received) for direct connection to the client or DNS server. If disabled, the GEO LoadMaster uses the client or DNS server request’s source IP address for direct connection.
It is possible that a client that has EDNS enabled may be sending requests through recursive DNS servers that are not enabled for EDNS. That means the client subnet will be dropped from the UDP packet that is received by the LoadMaster. If the EDNS client subnet information is removed it will not be available for the LoadMaster to act on.
When multiple LoadMasters are configured as distributed partners, stickiness information is synchronized between all the LoadMasters within the configuration.
GEO, Feature Description
Web User Interface, Configuration Guide
This document was last updated on 20 September 2022.