When working in an intranet, it's often necessary to set up links to other computers (HTTP hyperlinks or shortcuts, hostname in various server config files, SSH shortcuts etc.).
In all these cases, technically I can either use the fully qualified name of the target system (e.g. http://server01.mydomain.local/ ), or just the hostname (e.g. http://server01/ ).
Technically, both should be the same (as long as the domain search list is set up correctly). However, I obviously need to choose one option.
So, is there any reason to prefer one over the other? What is the better option, especially with regards to later changes in the network, and to avoid maintenance problems?
Use a local domain name.
If you use just single label hostnames you run the risk of clashing with the new gTLDs when they start popping up over the next few years.
It's also a good idea to avoid sharing URLs with single labels in them - if an employee clicks on an abbreviated URL whilst offsite there's no telling where they might end up, and worse still they might even end up leaking their internal authentication credentials.
Another reason to use fully qualified names:
X.509 certificates for TLS/HTTPS use fully qualified hostnames (or at least they should; see e.g. Unqualified Names in the SSL Observatory). So if you access a server using HTTPS, you will get a host name mismatch during certificate verification if you do not use the fully-qualified name.
Note that the requirement for TLS/HTTPS is even stricter than just to use a fully qualified name: The domain part must actually be a valid domain registered to the person/company requesting the certificate - so a name like
server01.localnet
will not do.