Skip to main content

Что такое каноническое имя?

Каноническое имя - это термин, используемый в компьютерных сетях для определения фактического имени компьютера в системе именования в Интернете. Чаще всего он используется в отношении записи ресурса в системе доменных имен (DNS), которая отвечает за перевод неясных адресов интернет-протокола (IP) в более узнаваемые имена. В этом случае запись ресурса в DNS называется CNAME и позволяет другому имени или псевдониму указывать на настоящее имя компьютера.

Например, когда компьютер ищет веб-сайт, он проверяет имя, введенное в веб-браузере, на наличие специальных серверов, на которых размещаются записи DNS. Если имя, которое ищется в записях DNS, указано в записи CNAME, он получает каноническое имя, а затем выполняет второй поиск по каноническому имени, чтобы определить IP-адрес хост-компьютера. Довольно распространенным примером является случай, когда на одном компьютере размещается несколько служб, таких как веб-сайт и служба протокола передачи файлов (FTP) для передачи данных.

В веб-браузере пользователь может ввести www.example.com. Во время поиска DNS он встречает каноническое имя в записи CNAME, которое указывает на сервер с именем foo.example.com. Затем другой пользователь может использовать клиент FTP и ввести адрес сервера FTP по адресу ftp.example.com. При поиске DNS встречается другая запись CNAME, которая также указывает на foo.example.com, тот же хост, который используется для веб-сайта. В этом случае, однако, два разных имени были даны DNS, что привело к каноническому имени сервера.

В любом из указанных выше случаев DNS затем выполняет второй поиск канонического имени, чтобы разрешить свой IP-адрес в сети. Затем IP-адрес отправляется обратно на компьютер, который отправляет веб-запрос или запрос FTP, чтобы пакеты данных могли начать передачу. Конечно, это открывает перед сетевыми администраторами несколько возможностей использовать записи DNS CNAME другими способами. Другой распространенный метод, используемый службами хостинга веб-сайтов, позволяет одному хост-компьютеру запускать несколько веб-серверов, каждый из которых имеет свое имя.

Однако из-за деликатного характера DNS существует ряд опасностей для реализации канонических имен с записями CNAME, поэтому существуют ограничения на его использование. Наиболее опасным является возможность создания бесконечного цикла во время поиска имени, поэтому ни одна запись CNAME не должна указывать на другую запись CNAME. Если, например, используются две записи CNAME, где www.example.com указывает на каноническое имя foo.example.com, а затем foo.example.com указывает на www.example.com, поиск будет бесконечно проверять одно имя против другого.