Протокол DNS
Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен - в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.
Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, то он сразу посылает ответ клиенту, если же нет - то он посылает запрос DNS-серверу другого домена, который может сам обработать запрос, либо передать его другому DNS-серверу. Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов, для повышения надежности своей работы.
База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена.
Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:
· com - коммерческие организации (например, microsoft.com);
· edu - образовательные (например, mit.edu);
· gov - правительственные организации (например, nsf.gov);
· org - некоммерческие организации (например, fidonet.org);
· net - организации, поддерживающие сети (например, nsf.net).
Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени : citint.dol.ru.
В сетях TCP/IP компьютеры для общения между собой используют IP-адреса. Однако то, что удобно машинам, неудобно людям. Сама человеческая натура протестует против запоминания чисел типа 192.120.18.34. К тому же IP-адреса совсем не информативны. По IP-адресу невозможно понять, что это: сервер, ПК, маршрутизатор или сетевой принтер. Приятней работать с осмысленными именами, такими как sales-server. Тем не менее сетевые устройства обращаются друг к другу, используя IP-адрес, а не имена.
Решает эту проблему система именования сетевых объектов, которая отвечает за преобразование символьных имен в IP-адреса. Системе передается имя (например archie.univie.ac.at), а она возвращает IP-адрес (140.78.3.8).
Система имен доменов (Domain Name System, DNS) появилась середине 80-х годов. DNS реализует иерархическое пространство имен. Единицей измерения является домен (территория, область). Понятие домена DNS не надо путать с доменом Windows NT или доменом NIS. Они не имеют друг к другу никакого отношения. На Рисунке 4.7. приведена часть иерархической структуры DNS сети Internet.
Вся сеть представляется в виде единого иерархического дерева. На вершине располагается корневой домен (обозначается символом "●"). Ниже находятся домены первого уровня. Поскольку Internet развивался в первую очередь в США, это вызвало некоторый крен при формировании доменов первого уровня: Internet как бы оказался поделенным между США и всем остальным миром.
Наиболее известные домены первого уровня:
com - коммерческие организации (главным образом в США);
edu - учебные заведения США;
gov - правительственные учреждения США;
mil - военные учреждения США;
net - различные сетевые агентства и Internet-провайдеры;
int - международные организации;
org - некоммерческие учреждения;
код страны - двухбуквенный код для обозначения государства (ru - для России).
Ниже доменов первого уровня располагаются домены второго уровня и так далее вплоть до хостов. Для доменов первого уровня, обозначающих государства, доменами второго уровня часто бывают города (например, msk - для Москвы), а доменами третьего уровня - предприятия и организации.
Любой хост или домен в Internet однозначно идентифицируется так называемым полным доменным именем (Fully Qualified Domain Name, FQDN). Его иногда еще называют абсолютным доменным адресом.
Так, для сетевого устройства host1 полное доменное имя будет host1.company1.msk.ru. а для домена company1 - company1.msk.ru.
Домены в FQDN записываются справа налево в порядке подчинения и разделяются точками. Каждая отдельная составляющая FQDN называется меткой (label). Длина метки не должна превышать 63 символа, а полная длина FQDN - 255 символов. Допустимыми символами являются буквы английского языка, цифры и знак дефиса "-" (знак дефиса не может стоять в начале или конце метки). Регистр букв значения не имеет, т. е. company1.msk.ru. и COMPANY1.MSK.RU. обозначают один и тот же домен.
Конечная точка в полном доменном имени обозначает, во-первых, корневой домен, и, во-вторых, что используется абсолютная адресация.
Кроме абсолютной применяется и относительная доменная адресация. Когда два устройства находятся в одном и том же домене, они могут обращаться друг к другу по имени, не указывая полного доменного пути. Так, host2 обращается к host1 двумя способами:
· по полному доменному имени host1.company1.msk.ru.
· по относительному доменному адресу host1
В полном доменном имени конечную точку можно не ставить, поскольку обычно программное обеспечение TCP/IP подразумевает, что составное доменное имя (т. е. когда присутствует более двух меток) обозначает FQDN. Таким образом,
company1.msk.ru. и company.msk.ru.
Домены находятся в иерархическом подчинении друг другу, причем домены являются узлами дерева доменов, а хосты - листьями.
Понятие домена достаточно емкое и в то же время гибкое. Оно не ограничивается какими-то физическими границами, например границами IP-сети или сегмента Ethernet. Доменом DNS может быть и страна, и предприятие, и отдел банка. Один домен может включать как множество сетей, так и только часть одной сети или даже подсети.
Основное назначение DNS состоит в преобразовании имени хоста в его IP-адрес. На самом деле DNS является системой, не зависимой от протокола сетевого уровня, т. е. она может быть реализована не только в среде TCP/IP. Однако функции DNS этим не ограничиваются. DNS позволяет получить следующую информацию: IP-адрес хоста; доменное имя хоста по его IP-адресу; псевдонимы хоста, тип центрального процессора и операционной системы хоста; сетевые протоколы, поддерживаемые хостом; почтовый шлюз; почтовый ящик: почтовую группу; IP-адрес и доменное имя сервера имен доменов. Существует и ряд других, реже используемых параметров.