50
4 Протоколы и службы на основе TCP/IP
4.1 Служба DNS
Служба именования доменов (DNS, Domain Name System) описана в RFC
и предназначена для установления глобального соответствия между
символическими имена узлов и их IP-адресами. На ранних этапах развития
TCP/IP сетей нужды в распределенной службе имен не было: существовал один
текстовый файл, в котором были перечислены все имена узлов и
их IP-адреса.
Однако с ростом количества узлов такое решение стало неприемлемым.
DNS использует иерархическую схему выделения имен, позволяя
децентрализовать управление отдельными участками пространства имен.
DNS-сервер домена должен поддерживать таблицу соответствий IP-
адресов и символических имен для всех узлов, входящих в домен.
Каждый узел домена должен знать только IP-адрес своего сервера домена
и направлять ему все запросы на преобразование символических имен узлов в
IP-адреса (такие запросы называются рекурсивными (англ. recursive); сервер,
получивший рекурсивный запрос, должен самостоятельно его обслужить и
вернуть либо IP-адрес, соответствующий запрошенному имени, либо
сообщение об ошибке). Если сервер домена не может самостоятельно ответить
на запрос (например, запрошен IP-адрес узла, принадлежащего
к другому
домену), он может обратиться к корневому DNS-серверу, узнать он него IP-
адрес сервера требуемого домена, а затем обратиться уже к этому серверу
домена. Такие запросы от одного сервера к другому называются итеративными
(англ. iterative); сервер, получивший итеративный запрос, может либо
обслужить его полностью, либо выдать IP-адрес другого сервера, обладающего
более
полной информацией. Естественно, DNS-сервер может запоминать
результаты подобных поисков и при повторном обращении за той же
информацией не повторять весть путь, а сразу выдавать кэшированные данные.
DNS-сервер хранит, в первую очередь, пары «символическое имя—IP-
адрес» для всех узлов своего домена. Кроме того, в базе данных DNS-сервера