No domain defined in /etc/resolv.conf

55,652

When you specify a domain it becomes the first search domain. This search feature is the main use of setting the domain so you can get away with only defining a search entry, most of the time.

Also the domain can be automatically determined from the host name of the machine, if the host name contains a . the suffix will become the domain.

The main difference for having a resolv.conf without a domain would be local processes trying to determine a fully qualified domain name (FQDN). SMTP servers come to mind initially as something that like to know the local FQDN and can use local host/domain config to work it out. As time goes on the local host name and domain are relied on less and less as it's becoming meaningless to the real world service a machine actually represents due to things like NAT, virtual hosting and load balancers. This means most software now provides alternative configuration options for domain names instead of solely trying to determine them from the local host name.

man resolv.conf

domain Local domain name.
Most queries for names within this domain can use short names relative to the local domain. If no domain entry is present, the domain is determined from the local hostname returned by gethostname(2); the domain part is taken to be everything after the first '.'. Finally, if the hostname does not contain a domain part, the root domain is assumed.

search Search list for host-name lookup.
The search list is normally determined from the local domain name; by default, it contains only the local domain name. This may be changed by listing the desired domain search path following the search keyword with spaces or tabs separating the names. Resolver queries having fewer than ndots dots (default is 1) in them will be attempted using each component of the search path in turn until a match is found. For environments with multiple subdomains please read options ndots:n below to avoid man-in-the-middle attacks and unnecessary traffic for the root-dns-servers. Note that this process may be slow and will generate a lot of network traffic if the servers for the listed domains are not local, and that queries will time out if no server is available for one of the domains. The search list is currently limited to six domains with a total of 256 characters.

Share:
55,652

Related videos on Youtube

Emmanuel
Author by

Emmanuel

Updated on September 18, 2022

Comments

  • Emmanuel
    Emmanuel almost 2 years

    I see more and more servers that have no domain defined in the /etc/resolv.conf file. Only a search entry.
    In what cases is this setup used ?
    Are there any cases where it must not be used ?

    nameserver xxx.xxx.xxx.xxx
    nameserver yyy.yyy.yyy.yyy
    nameserver zzz.zzz.zzz.zzz
    
    search domain1 domain2 domain3 ...
    
    • schaiba
      schaiba about 10 years
      From man resolv.conf : "domain Local domain name. Most queries for names within this domain can use short names relative to the local domain. If set to '.', the root domain is considered. If no domain entry is present, the domain is determined from the local hostname returned by gethostname(2); the domain part is taken to be everything after the first '.'. Finally, if the hostname does not contain a domain part, the root domain is assumed."
  • Emmanuel
    Emmanuel over 7 years
    Just had a problem with a monitoring agent that wasn't able to determine the FQDN.