Machine name versus domain name
I told my domain hosting provider to use the Linode name server (since I'm using the Dashboard / DNS Manager for DNS management).
Then in DNS manager it points my domain, plus it added the usual other records like www and mail. Everything looks good. Both mydomain,
Now where exactly does a machine name fit into this? I want it to be myname.mydomain. I would have to add another DNS record for "myname" just like DNS manager added one for "www" and "mail", right?
At that point the machine is legitimate, and I'm not "faking out" the machine name, right? I ask all this because in Fedora Core 8 I added to /etc/sysconfig/network the settings HOSTNAME=myname.mydomain and DOMAIN=mydomain. When the machine reboots, it says hostname is indeed "myname.mydomain" but hostname –fqdn says Unknown host.
Seems like I'm missing something or else making the machine "legitimate" by adding a DNS record for it would keep it happy (for example, ping myname.mydomain would work, Apache would be happy that my machine name resolves to the right IP address in DNS, etc).
3 Replies
127.0.0.1 localhost localhost.domain
your.ip myname myname.mydomain.tld
hostname -f uses your /etc/hosts to get the fqdn, so just make sure these are the first two lines in your hosts file and you're good!
First, do NOT put your machine name in /etc/hosts. Leave it alone as "127.0.0.1 localhost" and don't add any aliases. (With ipv6 you'll may want "::1 localhost6" too)
Second, do NOT put the domain in /etc/sysconfig/network where you say HOSTNAME=yourmachine. Leave that as the single word machine name, no domain.
Then to expose what's happening in your current setup try this command, and note the result (replace XX and YYY with numbers for your machine):
$ ping liXX-YYY
PING liXX-YYY.members.linode.com (AA.BB.CC.DD) 56(84) bytes of data.
Why did it magically add "members.linode.com"? That's because /etc/resolv.conf has this in it:
; generated by /sbin/dhclient-script
search members.linode.com
nameserver EE.FF.GG.HH
nameserver ...(etc)...
These values came from DHCP. I'm using the /sbin/dhclient DHCP client. Happily, it can be told to override the domain name handed to you by DHCP. You simply create the file /etc/dhclient-eth0.conf containing only:
supersede domain-name "yourdomain.com";
Next time you restart, you'll see /etc/resolv.conf has the new value
$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search yourdomain.com
nameserver EE.FF.GG.HH
nameserver ...(etc)...
If you run hostname, your machine name is truly the short single word "yourmachine". And if you run "hostname –fqdn", your machine name plus true domain is correct "yourmachine.yourdomain.com".
Do "ping localhost" and you goes to 127.0.0.1. Do "ping yourmachine" and it does to the IP AA.BB.CC.DD. Try "ping www" and see it also go to AA.BB.CC.DD since the domain is right and the search suffix has been correctly set.
The last thing to do is add an A record to DNS for "yourmachine", just like there's an A record for "www" and perhaps "mail".
If you add a second machine associated with your domain, this setup continues to work, rather than trying to figure out what to do to ssh or scp files to a particular machine or another. And if you are on one machine on your domain, you can "ssh othermachine" (without domain name) and you are there.
@ux9i:
Does Bill Gates do "ssh microsoft.com"? Probably there's a machine name in front of the domain.