Co to jest nazwa kanoniczna?
Nazwa kanoniczna to termin używany w sieci komputerowej do identyfikacji rzeczywistej nazwy komputera w internetowym systemie nazewnictwa. Najczęściej jest używany w odniesieniu do rekordu zasobu w systemie nazw domen (DNS), który jest odpowiedzialny za tłumaczenie nieznanych adresów protokołu internetowego (IP) na bardziej rozpoznawalne nazwy. W takim przypadku rekord zasobu w DNS nazywa się CNAME i pozwala innej nazwie lub aliasowi wskazywać prawdziwą nazwę komputera.
Na przykład, gdy komputer szuka strony internetowej, sprawdza nazwę wpisaną w przeglądarce internetowej na specjalnych serwerach, które przechowują rekordy DNS. Jeśli nazwa sprawdzana w rekordach DNS jest podana w rekordzie CNAME, otrzymuje nazwę kanoniczną, a następnie wykonuje drugie wyszukiwanie w stosunku do nazwy kanonicznej w celu ustalenia adresu IP komputera hosta. Dość częstym przykładem jest sytuacja, gdy jeden komputer obsługuje wiele usług, takich jak strona internetowa i usługa protokołu przesyłania plików (FTP) do przesyłania danych.
W przeglądarce internetowej użytkownik może wpisać www.example.com. Podczas wyszukiwania DNS napotyka kanoniczną nazwę w rekordzie CNAME wskazującą serwer o nazwie foo.example.com. Inny użytkownik może wówczas używać klienta FTP i wpisywać adres serwera FTP na ftp.example.com. Wyszukiwanie DNS napotyka inny wpis CNAME, który również wskazuje na foo.example.com, dokładnie ten sam komputer hosta, który jest używany dla witryny. W tym przypadku jednak DNS otrzymał dwie różne nazwy, co doprowadziło do kanonicznej nazwy serwera.
W każdym z powyższych przypadków DNS wykonuje następnie drugie wyszukiwanie nazwy kanonicznej w celu ustalenia adresu IP w sieci. Adres IP jest następnie wysyłany z powrotem do komputera wysyłającego żądanie internetowe lub FTP, aby pakiety danych mogły zacząć płynąć. To oczywiście otwiera administratorom sieci kilka możliwości korzystania z rekordów CNAME DNS na inne sposoby. Inna popularna technika wykorzystywana przez usługi hostingu witryn internetowych pozwala jednemu komputerowi hostowi na uruchomienie kilku serwerów WWW, z których każdy ma inną nazwę.
Ze względu na delikatny charakter DNS istnieje jednak wiele niebezpieczeństw związanych z implementacją nazw kanonicznych za pomocą rekordów CNAME, a zatem istnieją ograniczenia w jego użyciu. Najbardziej niebezpieczny jest potencjał tworzenia nieskończonej pętli podczas wyszukiwania nazwy, dlatego żaden rekord CNAME nie powinien wskazywać na inny rekord CNAME. Jeśli na przykład zostaną użyte dwa rekordy CNAME, gdzie www.example.com wskazuje na kanoniczną nazwę foo.example.com, a następnie foo.example.com wskazuje na www.example.com, wyszukiwanie bez końca sprawdzi jedną nazwę przeciw drugiemu.