What DNS name qualification is

You've come to this page because you've asked a question similar to the following:

What is DNS name qualificiation ?

This is the Frequently Given Answer to that question.

The concept of a fully qualified name

The DNS protocol proper has no concept of whether a domain name is "qualified" or not. All domain names comprise a sequence of non-zero length labels, terminated with a zero-length label.

The concept of a fully-qualified domain name applies to the human-readable names that humans pass to computer programs. Human-readable names are permitted both a fully-qualified form and a not-fully-qualified shortened form by many programs.

The widespread convention, employed by the programs that provide this distinction to humans, is that a fully-qualified human-readable form domain name ends with a full stop (.) and non-fully-qualified human-readable form domain name does not.

So, for example, jdebp.eu is not a fully qualified human-readable form domain name; but jdebp.eu. is.

Name qualification

Name qualification is the process that these programs pass the human-readable form domain names through to obtain the actual domain names that are used in DNS query resolution. It varies from program to program, as there are various DNS client libraries in use that provide various differing name qualification mechanisms.

The ISC BIND DNS client library

The ISC's DNS client library, often embedded into C and C++ language runtime libraries, has a name qualification system that is based upon the /etc/resolv.conf configuration file. In this file, an administrator can configure a search path, which is a series of suffixes. (The default search path in the absence of one configured in this file is the current host's dynamic domain name.) Each suffix is appended to the non-fully-qualified domain name in turn, and a lookup performed, until one of the lookups succeeds or the search path is exhausted.

There are some tuning parameters to the mechanism, including controls on whether and when the unadorned form of the name, with no suffix appended, is also tried.

ISC BIND itself

ISC BIND itself has a different and somewhat simpler name qualification mechanism for non-fully-qualified domain names that appear in its "zone" files. A non-fully-qualified domain name simply has the zone name appended to it.

So, for example, in the case of a "zone" file for example.com that has a record with a domain name a.ns.example.com in it, the actual domain name that the DNS server publishes is a.ns.example.com.example.com.. This is a very common error to make when writing "zone" files.

Daniel J. Bernstein's DNS client library

Daniel J. Bernstein's djbdns has its own name qualification system, primarily based around the /etc/rewrite configuration file but with a compatibility fallback mode that constructs rewrite rules out of the search path in the /etc/resolv.conf configuration file if there is no /etc/rewrite file.

For details of the rewriting rules, see the djbdns name qualification doco.

Ramifications

The distinction between jdebp.eu and jdebp.eu. was not originally intended for URLs as can be seen from some of CERN's original 1992 WWW pages, but alas occurs in practice because of the way that WWW browers were subsequently written. So whilst jdebp.eu. as the domain name portion of a URL remains unchanged in the translation to the DNS protocol proper, jdebp.eu might become something such as jdebp.eu.example.com. under the covers, invisibly to the human user.


© Copyright 2017 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp is preserved.