What is Canonical Name in relation to Host Name, Domain Name? Are they all pointing to the same IP?
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".
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:
"Canonical" means "unique distinguished exemplar". A computer may have many aliases but should only have one canonical name.