1.1.1. Протокол DNS

DNS (Domain Name System) – служба имен, предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 819, 1034 и 1035.

Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен – в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.

Базу данных DNS необходимо вести вручную администратору сети. В настоящее время появилась модификация DNS, называется она DDNS, в которой базы данных обновляются автоматически.

Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения.

База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена.

Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:

com – коммерческие организации (например, microsoft.com);

edu – образовательные (например, mit.edu);

gov – правительственные организации (например, nsf.gov);

org – некоммерческие организации (например, fidonet.org);

net – организации, поддерживающие сети (например, nsf.net).

Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена.

Для преобразования имен в IP-адреса также можно использовать файл hosts. В файле hosts содержится список всех имен хостов и соответствующих им адресов, например,

102.54.94.45     rhimo.acme.com

127.0.0.1           localhost

Недостатком такого способа является необходимость ручного редактирования всех файлов при появлении нового узла в сети.

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