Internet hostnames and domains are resolved using the Domain Name System (DNS) using Name Servers
(NS). These name servers are usually hosted by your Internet provider. You can also host your own name
server, using the program named. Every name server, upon receiving a request to resolve a hostname, will ask
an upstream name server if it doesn’t know the answer. Your name server may ask your ISP’s name server,
which will ask the backbone’s main name server, which will ask a root server.
Linux knows which name server to ask by looking in /etc/resolv.conf. In that file, a number of name servers
may be specified in the following way:
nameserver 192.168.0.1
nameserver 205.237.65.254
The name server itself, named, has a configuration file which is usually /etc/named.conf. In that file, you
configure the domain names you are responsible for, and the zone file to use. A nice introduction to running a
name server is available in the various named man pages.
Various utilities are related to resolving hostnames. One is called whois, and will query the Internet main
name servers to know who owns a domain:
whois linux.org
Another utility is called nslookup. That command will allow you to resolve hosts, and to get all kinds of
information about a domain. See the man page for more.