Функции DNS

Как мы видели, существуют два принципиально разных способа идентификации хостов: с помощью имен и с помощью IP-адресов. Имя хоста удобно для людей в силу своей мнемоничности, а IP-адрес, являющийся компактной числовой величиной фиксированного размера, проще обрабатывать маршрутизаторами. Для того чтобы установить связь между этими двумя идентификаторами, используется система доменных имен (Domain Name System, DNS). DNS представляет собой, с одной стороны, базу данных, распределенную между иерархически структурированными серверами имей, и, с другой стороны, протокол прикладного уровня, организующий взаимодействие между хостами и серверами имен для выполнения операций преобразования. Зачастую серверы имен являются UNIX-машинами, использующими программное обеспечение BIND (Berkeley Internet Name Domain — домен имен Интернета Беркли). Протоколу DNS назначен порт с номером 53, и работает DNS поверх протокола UDP транспортного уровня. На сайте _http://www.awl.com.kurose-ross, посвященном этой книге, вы можете найти интерактивные ссылки на DNS-программы, осуществляющие преобразование произвольных имен хостов в IP-адреса.

Обычно DNS используется другими протоколами прикладного уровня: HTTP, SMTP и FTP для получения IP-адресов вместо вводимых пользователями имен хостов. Рассмотрим, к примеру, ситуацию, когда пользователь вводит в адресной строке браузера адрес web-страницы _www.someschool.edu/index.html. Для того чтобы сформировать запрос, пользовательский хост должен сначала получить IP-адрес удаленного хоста, на котором находится ресурс, то есть _www.someschool.edu. При работе протокола DNS пользовательский хост играет роль клиента. Браузер выделяет из URL-адреса страницы имя хоста и передает его клиентской стороне DNS-приложения, которая формирует и отправляет запрос DNS-серверу. DNS-сервер обрабатывает запрос и отсылает клиенту ответ, содержащий IP-адрес хоста. Затем браузер открывает TCP-соединение с HTTP-сервером, выполняющимся на хосте с полученным IP-адресом. Очевидно, что процесс получения IP-адреса не является мгновенным и вносит дополнительную задержку в суммарное время установления соединения с HTTP-сервером, которая иногда может быть весьма значительной. Как мы увидим позже, среднее время получения IP-адреса (а также объем DNS-трафика) может быть уменьшено путем кэширования IP-адреса на «ближайшем» DNS-сервере.
Помимо преобразования имен хостов в IP-адреса, DNS выполняет еще несколько важных функций, перечисленных ниже.

□ Поддержка псевдонимов серверов. Хосты с длинными именами могут иметь один или несколько псевдонимов; например, хосту _relayl.west-coast.enterprise.com можно присвоить два псевдонима — _enterprise.com и _www.enterprise.com. В этом случае говорят, что _relayl.west-coast.enterprise.com является каноническим именем хоста. Обычно введение псевдонимов вызывается недостаточной мнемо-ничностью канонического имени. Получение канонического имени хоста по заданному псевдониму, как и IP-адреса, выполняется с помощью протокола DNS.

□ Поддержка псевдонимов почтовых серверов. Очевидно, что мнемоничность особенно важна для адресов электронных почтовых ящиков. Например, если Боб использует почтовый ящик компании Hotmail, то его адрес будет иметь вид _bob@hotmail.com, что нетрудно запомнить. На самом деле _hotmail.com является лишь псевдонимом почтового сервера Боба, в то время как каноническое имя имеет гораздо более сложную структуру, например _relayl.west-coast.hotmail.com. Приложение электронной почты с помощью протокола DNS по заданному псевдониму получает каноническое имя и IP-адрес сервера. Фактически запись типа MX (см. ниже) позволяет почтовому серверу компании и ее web-серверу иметь одинаковые псевдонимы, например _enterprise.com.

□ Распределение загрузки. В последнее время DNS все больше используется для распределения загрузки между дублирующими серверами. Популярные сайты, например cnn.com, зачастую имеют несколько копий (или реплик, или зеркал), расположенных на различных серверах с различными IP-адресами. Таким образом, в случае дублирующих серверов с одним именем хоста связывается множество IP-адресов, которые хранятся в базе данных DNS. Когда производится DNS-запрос для имени, которому сопоставлено несколько IP-адресов, в ответ включаются все IP-адреса, однако сервер может изменять порядок их перечисления. Поскольку обычно HTTP-клиент сначала формирует запрос с использованием IP-адреса, который был указан в списке первым, это позволяет распределять загрузку между дублирующими серверами. Подобный механизм применим как для web-серверов, так и для почтовых серверов, то есть несколько почтовых серверов могут иметь один и тот же псевдоним. В последнее время некоторые компании, такие как Akamai, стали применять DNS для «изощренных» методов распределения web-ресурсов (см. раздел «Распределение ресурсов» этой главы).

ПРИНЦИПЫ И ПРАКТИКА —
DNS, подобно протоколам HTTP, FTP и SMTP, является протоколом прикладного уровня. Он выполняется на оконечных системах, опираясь на парадигму клиент/сервер и службы протокола транспортного уровня, передающие DNS-сообщения между оконечными системами. Тем не менее роль DNS в значительной степени отличается от роли web-протоколов, а также протоколов электронной почты и обмена файлами. Пользователь не взаимодействует с DNS напрямую: DNS осуществляет в Интернете «закулисную» функцию преобразования имен хостов в IP-адреса. Эта функция используется либо пользовательскими приложениями, либо другим сетевым программным обеспечением. В разделе «Ядро компьютерных сетей» главы 1 мы рассказали о том, что наиболее сложные проблемы Интернета сосредоточены на его «периферии». Служба DNS, выполняющая трансляцию адресов с помощью клиентов и серверов, находящихся на разбросанных по Интернету оконечных системах, только подтверждает эту философию разработчиков.

Данная статья "Функции DNS" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Функции DNS" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Функции DNS", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *