ADC

Domain Name System

You can configure the Citrix ADC appliance to function as an authoritative domain name server (ADNS server) for a domain. You can add the DNS resource records that belong to the domain for which the appliance is authoritative and configure resource record parameters. You can also configure the Citrix ADC appliance as a proxy DNS server that load balances a farm of DNS name servers that are either within your network or outside your network. You can configure the appliance as an end resolver and forwarder. You can configure DNS suffixes that enable name resolution when fully qualified domain names are not configured. The appliance also supports the DNS ANY query that retrieves all the records that belong to a domain.

You can configure the Citrix ADC appliance to concurrently function as an authoritative DNS server for one domain and a DNS proxy server for another domain. When you configure the Citrix ADC appliance as the authoritative DNS server or DNS proxy server for a zone, you can enable the appliance to use the Transmission Control Protocol (TCP) for response sizes that exceed the size limit specified for the User Datagram Protocol (UDP).

How DNS Works on the Citrix ADC

You can configure the Citrix ADC appliance to function as an ADNS server, DNS proxy server, end resolver, and forwarder. You can add DNS resource records on the Citrix ADC appliance, including service (SRV) records, IPv6 (AAAA) records, address (A) records, mail exchange (MX) records, canonical name (CNAME) records, pointer (PTR) records, start of authority (SOA) records, and text (TXT) records. Also, you can configure the Citrix ADC to load balance external DNS name servers.

The Citrix ADC appliance can be configured as the authority for a domain. To do this, you add valid SOA and NS records for the domain.

An ADNS server is a DNS server that contains complete information about a zone.

To configure the Citrix ADC appliance as an ADNS server for a zone, you must add an ADNS service, and then configure the zone. To do so, you add valid SOA and NS records for the domain. When a client sends a DNS request, the Citrix ADC appliance searches the configured resource records for the domain name. You can configure the ADNS service to be used with the Citrix ADC Global Server Load Balancing (GSLB) feature.

You can delegate a subdomain, by adding NS records for the subdomain to the zone of the parent domain. You can then make the Citrix ADC authoritative for the subdomain, by adding a “glue record” for each of the subdomain name servers. If GSLB is configured, the Citrix ADC makes a GSLB load balancing decision based on its configuration and replies with the IP address of the selected virtual server. The following figure shows the entities in an ADNS GSLB setup and a DNS proxy setup.

Figure 1. DNS Proxy Entity Model

dns entity model

The Citrix ADC appliance can function as a DNS proxy. Caching of DNS records, which is an important function of a DNS proxy, is enabled by default on the Citrix ADC appliance. This enables the Citrix ADC appliance to provide quick responses for repeated translations. You must also create a load balancing DNS virtual server, and DNS services, and then bind these services to the virtual server.

The Citrix ADC provides two options, minimum time to live (TTL) and maximum TTL for configuring the lifetime of the cached data. The cached data times out as specified by your settings for these two options. The Citrix ADC checks the TTL of the DNS record coming from the server. If the TTL is less than the configured minimum TTL, it is replaced with the configured minimum TTL. If the TTL is greater than the configured maximum TTL, it is replaced with the configured maximum TTL.

The Citrix ADC also allows caching of negative responses for a domain. A negative response indicates that information about a requested domain does not exist, or that the server cannot provide an answer for the query. The storage of this information is called negative caching. Negative caching helps speed up responses to queries on a domain, and can optionally provide the record type.

A negative response can be one of the following:

  • NXDOMAIN error message - If a negative response is present in the local cache, the Citrix ADC returns an error message (NXDOMAIN). If the response is not in the local cache, the query is forwarded to the server, and the server returns an NXDOMAIN error to the Citrix ADC. The Citrix ADC caches the response locally, then returns the error message to the client.
  • NODATA error message - The Citrix ADC sends a NODATA error message, if the domain name in query is valid but records of the given type are not available.

The Citrix ADC supports recursive resolution of DNS requests. In recursive resolution, the resolver (DNS client) sends a recursive query to a name server for a domain name. If the queried name server is authoritative for the domain, it responds with the requested domain name. Otherwise, the Citrix ADC queries the name servers recursively until the requested domain name is found.

Before you can apply the recursive query option, you must first enable it. You can also set the number of times the DNS resolver must send a resolution request (DNS retries) if a DNS lookup fails.

You can configure the Citrix ADC as a DNS forwarder. A forwarder passes DNS requests to external name servers. The Citrix ADC allows you to add external name servers and provides name resolution for domains outside the network. The Citrix ADC also allows you to set the name lookup priority to DNS or Windows Internet Name Service (WINS).

Round Robin DNS

When a client sends a DNS request to find the DNS resource record, it receives a list of IP addresses resolving to the name in the DNS request. The client then uses one of the IP addresses in the list, generally, the first record or IP address. Hence, a single server is used for the total TTL of the cache and is overloaded when a large number of requests arrive.

When the Citrix ADC receives a DNS request, it responds by changing the order of the list of DNS resource records in a round robin method. This feature is called round robin DNS. Round robin distributes the traffic equally between data centers. The Citrix ADC performs this function automatically. You do not have to configure this behavior.

Functional Overview

If the Citrix ADC is configured as an ADNS server, it returns the DNS records in the order in which the records are configured. If the Citrix ADC is configured as a DNS proxy, it returns the DNS records in the order in which it receives the records from the server. The order of the records present in the cache matches the order in which records are received from the server.

The Citrix ADC then changes the order in which records are sent in the DNS response in a round robin method. The first response contains the first record in sequence, the second response contains the second record in sequence, the third response contains the third record in sequence, and the order continues in the same sequence. Thus, clients requesting the same name can connect to different IP addresses.

Round Robin DNS Example

As an example of round robin DNS, consider DNS records that have been added as follows:

  add dns addRec ns1 1.1.1.1  add dns addRec ns1 1.1.1.2  add dns addRec ns1 1.1.1.3  add dns addRec ns1 1.1.1.4
<!--NeedCopy-->

The domain, abc.com is linked to an NS record as follows:

  add dns nsrec abc.com. ns1
<!--NeedCopy-->

When the Citrix ADC receives a query for the A record of ns1, the Address records are served in a round robin method as follows. In the first DNS response, 1.1.1.1 is served as the first record:

  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4
<!--NeedCopy-->

In the second DNS response, the second IP address, 1.1.1.2 is served as the first record:

  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1
<!--NeedCopy-->

In the third DNS response, the third IP address, 1.1.1.2 is served as the first record:

  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2
<!--NeedCopy-->
Domain Name System