9

What is Canonical Name in relation to Host Name, Domain Name? Are they all pointing to the same IP?

KMC
  • 1,939
  • 9
  • 32
  • 43

2 Answers2

8

In DNS, a hostname is a domain name that identifies a host computer (e.g. foo.example.com). The term hostname is also used to mean the name used for a computer without the domain suffix (foo).

Note that the above usage, as used by DNS administrators, is slightly different from more causal usage where example.com would be considered a domain but many people don't realise a fully qualified hostname is also technically a domain name (see RFCs).

In DNS there are many types of records:

  • "A" records associate a domain name with an address
  • "CNAME" records associate an alias (extra) domain name with a canonical domain name
    • multiple CNAME records can be used to associate several aliases with a single canonical domain name
  • "PTR" records are normally used to associate an IP-address with a canonical domain name.
  • etc

"Canonical" means "unique distinguished exemplar". A computer may have many aliases but should only have one canonical name.


From RFC1035

CNAME A <domain-name> which specifies the canonical or primary name for the owner. The owner name is an alias.


From RFC1034

Most of these systems have a notion that one of the equivalent set of names is the canonical or primary name and all others are aliases.

RedGrittyBrick
  • 81,981
  • 20
  • 135
  • 205
5

The host name is the real name the server has. A canonical name is a name that the host is known by, but that the host is not actually called.

A machine's host name could be "barkley.example.com", but because it runs the web and FTP services for the domain "example.com", it could have canonical names of "www.example.com" and "ftp.example.com".

Ignacio Vazquez-Abrams
  • 111,361
  • 10
  • 201
  • 247
  • so, canonical names are a subset of the single host name. Is it used for TCP protocol to direct the packets to a certain port(HTTP vs. FTP for example)? – KMC Feb 28 '12 at 04:50
  • No. The name has nothing to do with which ports are available except where the server software itself restricts it (if even possible). – Ignacio Vazquez-Abrams Feb 28 '12 at 04:53
  • since different canonical name points to the same IP, why do we need more names other than the domain name? – KMC Feb 28 '12 at 05:18
  • For convenience and convention. Plus, it allows for moving services to a different host without having to change the name. – Ignacio Vazquez-Abrams Feb 28 '12 at 05:20
  • But multiple canonical names can point to the same host with a single IP. I do not understand what you mean by "moving services to a different host without having to change the name"? – KMC Feb 28 '12 at 05:34
  • They can be pointing to the same machine one day, and different machines the next. Nothing needs to be done to clients in order to make this migration work. – Ignacio Vazquez-Abrams Feb 28 '12 at 05:37
  • host name could be "barkley", Domain Name - "barkley.example.com", Canonical Name - any in any domain, but linked (in DNS) to Domain Name. – Lazy Badger Feb 28 '12 at 11:29
  • To be clear, CNAME records point aliases at the canonical name. So in Ignacio's answer, barkley.example.com is the canonical name, and www.example.com is an alias, and it's written as `www.example.com CNAME barkley.example.com` and barkley.example.com would have a record specifying its IP address, whereeas www.example.com wouldn't. – Breandán Dalton Jun 09 '15 at 11:47
  • Now I am completely confused. Can it be that you are confusing an "alias" and a "canonical host name" here? To my understanding, a machine can only have a single canonical hostname. In any case, this reply is directly contradictory to what RedGrittyBick says in his reply. Can – olenz Jul 21 '16 at 09:27