All sections / {current.section.title} / {current.chapter.title} / {current.topic.title} / {current.title} / {current.title} / {current.title} / {current.title}

Minimum Time to Live (TTL)


Functional overview

The purpose of this test is to confirm whether resolvers respect TTL values supplied for DNS records.

A successful outcome would be that only single requests are made by a resolver for a DNS record which is requested twice in succession via an HTTP request using an interval less than the defined TTL time.

Implementation

For this test the SSCRT is configured with two wildcard DNS A records using the prefixes *.ttl10.DOMAIN_NAME and *.ttl15.DOMAIN_NAME.  These are set up with TTL values of 10 seconds and 15 seconds respectively.  In addition wildcard SSL certs are created for *.ttl10.DOMAIN_NAME and *.ttl15.DOMAIN_NAME and matching Web Server virtual hosts to allow for routing of HTTP requests.


In order to track unique test runs and avoid caching issues the Client Side Website Toolkit (CSWT) will send two consecutive HTTP requests of the following format with a 5 second gap. 

UUID.ttl10.DOMAIN_NAME 

And then a further two consecutive HTTP requests of the following format with a 10 second gap.

UUID.ttl15.DOMAIN_NAME

Where the UUID is generated uniquely for each request.  

The SSCRT will monitor DNS queries for both A records (UUID.ttl10.DOMAIN_NAME and UUID.ttl15.DOMAIN_NAME) and will consider the test to have passed if only 1 request was received for each.

As an additional data point if an HTTP request is observed via the web server this will also be logged to provide other information on client requests but this is not considered part of the success criteria.


Configuring test sessions

Minimum TTL test sessions are configured using the test key minimum-ttl which should be supplied when creating new sessions on the SSCRT 

resolvertest install minimum-ttl example.com  

and when invoking tests using the CSWT.

e.g.

let test = new ResolverCapabilityTest(“minimum-ttl”, “example.com”);    



Log format

The log output for IPv6 tests will contain the following distinct fields:


id - A unique numerical id for the log entry

date - The date and time of the combined log entry.

status - Either “Success” or “Failed” depending upon whether a single DNS query was received for each of the configured subdomains.

dnsResolutionTime1 - The date and time that the first A record DNS query was received for UUID.ttl10.DOMAIN_NAME

dnsResolvedHostname1 -should generally be set to UUID.ttl10.DOMAIN_NAME

dnsClientIpAddress1 - The IPv4 address of the client resolver or the /24 depending upon the configured privacy setting in the SSCRT.

dnsResolverQuery1 - The full query string made by the resolver for the first resolution of the A record DNS query for UUID.ttl10.DOMAIN_NAME

dnsResolutionTime2 - The date and time that a second A record DNS query was received for UUID.ttl10.DOMAIN_NAME (in case of failure)

dnsResolvedHostname2 -should generally be set to UUID.ttl10.DOMAIN_NAME if set

dnsClientIpAddress2 - The IPv4 address of the client resolver or the /24 depending upon the configured privacy setting in the SSCRT.

dnsResolverQuery2 - The full query string made by the resolver for the resolution of the second A record DNS query for UUID.ttl10.DOMAIN_NAME (in case of failure)

dnsResolutionTime3 - The date and time that the first A record DNS query was received for UUID.ttl15.DOMAIN_NAME

dnsResolvedHostname3 -should generally be set to UUID.ttl15.DOMAIN_NAME

dnsClientIpAddress3 - The IPv4 address of the client resolver or the /24 depending upon the configured privacy setting in the SSCRT.

dnsResolverQuery3 - The full query string made by the resolver for the resolution of the first A record DNS query for UUID.ttl15.DOMAIN_NAME

dnsResolutionTime4 - The date and time that a second A record DNS query was received for UUID.ttl15.DOMAIN_NAME (in case of failure)

dnsResolvedHostname4 -should generally be set to UUID.ttl15.DOMAIN_NAME if set

dnsClientIpAddress4 - The IPv4 address of the client resolver or the /24 depending upon the configured privacy setting in the SSCRT.

dnsResolverQuery4 - The full query string made by the resolver for the resolution of the second A record DNS query for UUID.ttl15.DOMAIN_NAME (in case of failure)




webServerRequestTime1 - The date and time that the first HTTP request was made for UUID.ttl10.DOMAIN_NAME if applicable

webServerRequestHostname1- This will be set to UUID.ttl10.DOMAIN_NAME if an HTTP request was made

webServerClientIpAddress1- The IPv4 address of the client machine (web browser) or the /24 depending upon the configured privacy setting in the SSCRT if this request was made.  

webServerResponseCode1 - The HTTP response code returned from the web server - generally should be 200 if the request was made


webServerRequestTime2 - The date and time that the first HTTP request was made for UUID.ttl10.DOMAIN_NAME if applicable

webServerRequestHostname2- This will be set to UUID.ttl10.DOMAIN_NAME if an HTTP request was made

webServerClientIpAddress2- The IPv4 address of the client machine (web browser) or the /24 depending upon the configured privacy setting in the SSCRT if this request was made.  

webServerResponseCode2 - The HTTP response code returned from the web server - generally should be 200 if the request was made


webServerRequestTime3 - The date and time that the first HTTP request was made for UUID.ttl15.DOMAIN_NAME if applicable

webServerRequestHostname3- This will be set to UUID.ttl15.DOMAIN_NAME if an HTTP request was made

webServerClientIpAddress3- The IPv4 address of the client machine (web browser) or the /24 depending upon the configured privacy setting in the SSCRT if this request was made.  

webServerResponseCode3 - The HTTP response code returned from the web server - generally should be 200 if the request was made


webServerRequestTime4 - The date and time that the first HTTP request was made for UUID.ttl15.DOMAIN_NAME if applicable

webServerRequestHostname4- This will be set to UUID.ttl15.DOMAIN_NAME if an HTTP request was made

webServerClientIpAddress4- The IPv4 address of the client machine (web browser) or the /24 depending upon the configured privacy setting in the SSCRT if this request was made.  

webServerResponseCode4 - The HTTP response code returned from the web server - generally should be 200 if the request was made

Top