Примеры сетевых топологий


DNS (структура, обработка запросов, ресурсные записи) - часть 4


Прежде чем использовать протоколы UDP или TCP прикладная программа должна узнать IP-адрес объекта, куда она хочет послать дейтаграмму. Для решения этой проблемы программа посылает запрос в локальный сервер имен. В Unix-системах имеются специальные библиотечные процедуры gethostbyname и gethostbyaddr, которые позволяют определить IP-адрес по имени ЭВМ и наоборот. В одном запросе может содержаться несколько вопросов. Если сервер не сможет ответить на вопросы, он пришлет отклик, где содержатся адреса других серверов, способных решить эту задачу. Ниже на рисунке 4.4.12.3 представлен формат таких сообщений (в качестве транспорта используется UDP или TCP, порт 53).

Рис. 4.4.12.3. Формат DNS-сообщений

Каждое сообщение начинается с заголовка, который содержит поле идентификация, позволяющее связать в пару запрос и отклик. Поле флаги определяет характер запрашиваемой процедуры, а также кодировку отклика. Поля число... определяют число записей соответствующего типа, содержащихся в сообщении. Так число запросов задает число записей в секции запросов, где записаны запросы, требующие ответов. Каждый вопрос состоит из символьного имени домена, за которым следует тип запроса и класс запроса. Значения битов поля флаги в сообщении сервера имен отображены в таблице 4.4.12.2. Разряды пронумерованы слева направо, начиная с нуля рис. 4.4.12.4.

Рис. 4.4.12.4. Назначение битов поля флаги.

Таблица 4.4.12.2. Коды поля флаги

Код поля флаги

Описание

0 (QR)

Операция: 0 Запрос

1 Отклик

1…4 Тип запроса (opcode): 0 стандартный

1 инверсный

2 запрос состояния сервера

5 (AA) Равен 1 при отклике от сервера (RR), в ведении которого находится домен, упомянутый в запросе.
6 (TC) Равен 1 при укорочении сообщения. Для UDP это означает, что ответ содержал более 512 октетов, но прислано только первые 512.
7 (RD) Равен 1, если для получения ответа желательна рекурсия.
8 (RA) Равен 1, если рекурсия для запрашиваемого сервера доступна.
9…11 Зарезервировано на будущее. Должны равняться нулю.
12…15 Тип отклика (rcode): 0   нет ошибки

1   ошибка в формате запроса

2   сбой в сервере

3   имени не существует

<


Начало  Назад  Вперед



Книжный магазин