Ce este un nume canonic?

Un nume canonic este un termen folosit în rețelele de calculatoare pentru a identifica numele real al unui computer în sistemul de denumire pe Internet. Este folosit cel mai adesea cu referire la o înregistrare de resurse în sistemul de nume de domeniu (DNS), care este responsabil pentru traducerea adreselor obscure de protocol de Internet (IP) în nume mai recunoscute. În acest caz, înregistrarea resursei din DNS se numește CNAME și permite ca un alt nume sau alias să indice numele real al computerului.

Când un computer caută un site web, de exemplu, verifică numele introdus în browser-ul web cu serverele speciale care găzduiesc înregistrările DNS. Dacă numele căutat în înregistrările DNS este specificat într-o înregistrare CNAME, acesta primește numele canonic și apoi efectuează o a doua căutare împotriva numelui canonic pentru a rezolva adresa IP a computerului gazdă. Un exemplu destul de comun este atunci când un singur computer găzduiește mai multe servicii, cum ar fi un site web și un serviciu de protocol de transfer de fișiere (FTP) pentru transferul de date.

Într-un browser web, un utilizator poate introduce www.example.com. În timpul căutării DNS, acesta întâlnește numele canonic într-o înregistrare CNAME care indică un server numit foo.example.com. Un alt utilizator poate folosi un client FTP și introduce adresa serverului FTP la ftp.example.com. Căutarea DNS întâlnește o altă intrare CNAME care indică și foo.example.com, exact aceeași mașină gazdă care este utilizată pentru site-ul web. În acest caz, totuși, două nume diferite au fost date DNS-ului, ceea ce a condus la numele canonic al serverului.

În oricare dintre cazurile de mai sus, DNS efectuează apoi o a doua căutare a numelui canonic pentru a-și rezolva adresa IP în rețea. Adresa IP este apoi trimisă înapoi către computerul care face cererea web sau FTP, astfel încât pachetele de date să înceapă să curgă. Desigur, acest lucru deschide mai multe posibilități pentru administratorii de rețea de a utiliza înregistrările DNS CNAME în alte moduri. O altă tehnică comună folosită de serviciile de găzduire a site-urilor web permite ca un singur computer gazdă să ruleze mai multe servere web, fiecare cu un nume diferit.

Datorită naturii delicate a DNS-ului, totuși, există o serie de pericole în implementarea numelor canonice cu înregistrări CNAME și, prin urmare, există restricții privind utilizarea acestuia. Cel mai periculos este potențialul de a crea o buclă infinită în timpul căutării unui nume și, prin urmare, nicio înregistrare CNAME nu ar trebui să indice o altă înregistrare CNAME. Dacă, de exemplu, sunt utilizate două înregistrări CNAME, unde www.example.com indică numele canonic foo.example.com și apoi foo.example.com indică înapoi la www.example.com, căutarea va verifica la nesfârșit un nume împotriva celuilalt.