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 używa się go w odniesieniu do rekordu zasobu w systemie nazw domen (DNS), który odpowiada za tłumaczenie niejasnych adresów protokołu internetowego (IP) na bardziej rozpoznawalne nazwy. W takim przypadku rekord zasobu w systemie DNS nosi nazwę CNAME i umożliwia innej nazwie lub aliasowi wskazywanie prawdziwej nazwy komputera.

Na przykład, gdy komputer szuka strony internetowej, porównuje nazwę wpisaną w przeglądarce internetowej ze specjalnymi serwerami, na których znajdują się rekordy DNS. Jeśli wyszukiwana nazwa w rekordach DNS jest określona w rekordzie CNAME, otrzymuje on nazwę kanoniczną, a następnie wykonuje drugie wyszukiwanie względem nazwy kanonicznej w celu rozpoznania adresu IP komputera hosta. Dość powszechnym przykładem jest sytuacja, w której jeden komputer obsługuje wiele usług, takich jak witryna 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 nazwę kanoniczną w rekordzie CNAME, który wskazuje na serwer o nazwie foo.example.com. Inny użytkownik może wtedy używać klienta FTP i wpisywać adres serwera FTP pod adresem ftp.example.com. Wyszukiwanie DNS napotyka inny wpis CNAME, który również wskazuje na foo.example.com, dokładnie ten sam host, który jest używany w witrynie. W tym przypadku jednak DNS nadano dwie różne nazwy, co doprowadziło do kanonicznej nazwy serwera.

W każdym z powyższych przypadków serwer DNS przeprowadza drugie wyszukiwanie nazwy kanonicznej, aby rozwiązać swój adres IP w sieci. Adres IP jest następnie wysyłany z powrotem do komputera, który wysyła żądanie WWW lub FTP, aby pakiety danych mogły zacząć płynąć. Oczywiście otwiera to administratorom sieci kilka możliwości wykorzystania rekordów DNS CNAME w inny sposób. Inna powszechna technika wykorzystywana przez usługi hostingowe pozwala na uruchamianie kilku serwerów internetowych na jednym komputerze hosta, z których każdy ma inną nazwę.

Jednak ze względu na delikatną naturę DNS istnieje szereg niebezpieczeństw związanych z implementacją nazw kanonicznych z rekordami CNAME, a więc istnieją ograniczenia w jego użyciu. Najbardziej niebezpieczna jest możliwość tworzenia nieskończonej pętli podczas wyszukiwania nazwy, więc żaden rekord CNAME nie powinien wskazywać na inny rekord CNAME. Jeśli na przykład używane są dwa rekordy CNAME, w których www.example.com wskazuje na nazwę kanoniczną foo.example.com, a następnie foo.example.com wskazuje z powrotem na www.example.com, wyszukiwanie będzie bez końca sprawdzać jedną nazwę przeciwko drugiemu.