Cos'è un nome canonico?
Un nome canonico è un termine usato nella rete di computer per identificare il nome effettivo di un computer all'interno del sistema di denominazione di Internet. Viene spesso utilizzato in riferimento a un record di risorse nel DNS (Domain Name System), che è responsabile della traduzione degli indirizzi oscuri del protocollo Internet (IP) in nomi più riconoscibili. In questo caso, il record di risorse nel DNS si chiama CNAME e consente a un altro nome o alias di puntare al nome reale del computer.
Quando un computer è alla ricerca di un sito Web, ad esempio, controlla il nome digitato nel browser Web su server speciali che ospitano i record DNS. Se il nome cercato nei record DNS è specificato in un record CNAME, riceve il nome canonico e quindi esegue una seconda ricerca rispetto al nome canonico per risolvere l'indirizzo IP del computer host. Un esempio abbastanza comune è quando un singolo computer ospita più servizi, come un sito Web e un servizio FTP (File Transfer Protocol) per il trasferimento dei dati.
In un browser Web, un utente può digitare www.esempio.com. Durante la ricerca DNS, trova il nome canonico in un record CNAME che punta a un server chiamato foo.example.com. Un altro utente potrebbe quindi utilizzare un client FTP e digitare l'indirizzo del server FTP su ftp.example.com. La ricerca DNS trova un'altra voce CNAME che punta anche a foo.example.com, lo stesso computer host utilizzato per il sito Web. In questo caso, tuttavia, al DNS sono stati assegnati due nomi diversi, che hanno portato al nome canonico del server.
In entrambi i casi precedenti, il DNS esegue quindi una seconda ricerca del nome canonico per risolvere il suo indirizzo IP sulla rete. L'indirizzo IP viene quindi rispedito al computer effettuando la richiesta Web o FTP in modo che i pacchetti di dati possano iniziare a fluire. Naturalmente, ciò apre diverse possibilità agli amministratori di rete di utilizzare i record CNAME DNS in altri modi. Un'altra tecnica comune utilizzata dai servizi di hosting di siti Web consente a un singolo computer host di eseguire diversi server Web, ognuno con un nome diverso.
A causa della natura delicata del DNS, tuttavia, esistono numerosi pericoli nell'implementazione di nomi canonici con record CNAME, e quindi ci sono restrizioni al suo utilizzo. Il più pericoloso è il potenziale per la creazione di un loop infinito durante la ricerca di un nome, quindi nessun record CNAME dovrebbe puntare a un altro record CNAME. Se, ad esempio, vengono utilizzati due record CNAME, dove www.example.com punta al nome canonico foo.example.com e quindi foo.example.com punta a www.example.com, la ricerca controllerà all'infinito un nome contro l'altro.