In a DNS direct test, if a DNS resolver if not specified, the agent will rely on the node's DNS resolver. In this case, do we pick from the DNS resolver cache if the record is available? What is the mechanism in this case?
Every computer has at least one DNS resolver configured, and usually more. This is not a "cache" of DNS records; it is simply a configuration telling the system what DNS resolver(s) to send queries to. This setting may be configured at the OS level or retrieved from the router.
If you do not specify the DNS server in your DNS direct test, then the test uses what the OS would use, which varies by type of node:
- Enterprise Nodes: Determined by each machine's OS configuration.
- Last Mile: Determined by the configuration of the last mile user's (the person hosting the last mile node) router. Typically it would be their ISP's DNS resolver, but it could be a public DNS.
- Cellular: Determined by the configuration of the wireless provider's router.
The only "cache" involved is that of the resolver that the monitor sends the query to. Therefore whether the query result comes from a cache depends on the recursive resolver the test is hitting, how distributed is it, and who else is using it.
In the case of Backbone and Cloud nodes, which use resolvers that Catchpoint controls, it does honor TTL and other active tests may impact it because the resolver will be used by hundreds or perhaps thousands of users.
Example:
I am an end-user on Verizon FIOS, and my computer hits a recursive DNS resolver run by Verizon. Suppose I navigate to domain "never-visited-before.com". My OS does not have it, so it queries the FIOS resolver. That resolver could have it in the cache because my neighbor navigated there just 10 seconds ago, or it might not have it because no one has navigated there before, or they did so long enough ago that the TTL has expired.