Definition of Fully qualified domain name

I would consider a name to be fully qualified if you do not have to append any further identifiers to unambiguously resolve the host. If this is not true, then the name would be considered relative.

RFC1535 discusses an important point:

An absolute "rooted" FQDN is of the format {name}{.} A non "rooted" domain name is of the format {name}

In your example above, you would resolve .tk as tk. to ensure it's unambiguous. Interestingly this actually does have a valid A record.

$ dig tk.
; <<>> DiG 9.8.3-P1 <<>> tk.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 812
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;tk.                IN  A

tk.         20  IN  A

EDIT: RFC1535 has another interesting quote:

Further, in any event where a "." exists in a specified name it should be assumed to be a fully qualified domain name (FQDN) and SHOULD be tried as a rooted name first.

In ACM Queue, I defined FQDN as follows:

The DNS namespace has a tree structure, where every node has a parent except the root node, which is its own parent. Nodes have labels that are from 1 to 63 characters long, except the root node whose label is empty. A domain is a node in context, and a fully qualified domain name has a presentation form that is just the node names, bottom up, with each followed by a period (.). For example, is the fully qualified name of a node whose name is www, whose parent is google, whose grandparent is com, and whose great-grandparent is the DNS root.

Any time you use terms like "host name" or "host part" or "domain part" you are off in the weeds and you'll find that no definition of FQDN quite fits your purpose. The meaning, rather than the definition, of FQDN can be made clear by considering its antonym: the non-fully qualified domain name. To be fully qualified means you're specifying all domain labels up to the top level, and you could in that case append a final dot (.) to indicate that you've done so. To be less than fully qualified means that the name you're looking at only makes sense within the context of a search-list or default-domain.

RFC 1535 was interesting because a lot of us had up until that time used multi-label local names and still expected search-list behaviour -- and this broke too many other things, so was outlawed. But when I was [email protected] in 1988-1993, it was possible to send mail from [email protected] to [email protected] and have it expanded to [email protected] and [email protected] and it all just worked. Turned out we had to give that up. These days if there's a dot in your presentation-level name (that is, you typed it or a program displayed it), it's presumed by all the software in the world to be an FQDN.

My Sendmail book (co-authored with Fred Avolio after we'd both left DEC.COM) also has a chapter on this topic, which is interesting reading since it was written at the same time as RFC 1535.