Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
345600 ; default TTL of 4 days
)
66.172.in-addr.arpa. IN NS NS.FISHFOOD.COM.
1.1 IN PTR NS.FISHFOOD.COM.
66.172.in-addr.arpa. IN NS NS2.FISHFOOD.COM.
100.1 IN PTR NS2.FISHFOOD.COM.
2.1 IN PTR MAIL-RELAY.FISHFOOD.COM.
Рис. 12.7. Таблица обратного просмотра
Элементы также будут обратными. Например, элементу 100.1 соответствует адрес 172.66.1.100.
12.16 Формат сообщений DNS
Обмен сообщениями запросов и ответов между клиентом и серверами DNS имеет простой формат. Сервер добавляет информацию ответа к исходному запросу и посылает полученное сообщение обратно. На рис. 12.8 показан полный формат сообщения.
Рис. 12.8. Общий формат сообщения DNS
12.16.1 Секция заголовка
Секция заголовка содержит поля, представленные в таблице 12.2.
Таблица 12.2 Поля заголовка сообщения DNS
Поле Описание ID Идентификатор Служит для согласования запроса и ответа. Parameters Параметры: Запрос или ответ. Обычный или обратный просмотр. Является ли ответ авторитетным. Является ли ответ усеченным. Рекурсивно или нет сообщение. Допустима ли рекурсия в ответе. Для ответа — код ошибки. Number of queries Количество запросов Присутствует в запросе и ответе. Number of answers Количество ответов Присутствует только в ответе. Number of authority records Количество авторитетных записей Присутствует в ответе. Информация в авторитетных записях включает имя сервера, хранящего авторитетные данные. Number of additional records Количество дополнительных записей Присутствует в ответе и содержит адреса авторитетных серверов.12.16.2 Секция запроса
Запрос имеет поля, перечисленные в таблице 12.3. Обычно сообщение содержит единственный запрос. Но можно в общей секции объединить несколько различных запросов.
Таблица 12.3 Поля запросов DNS
Поле Описание Name (Имя) Имя домена или IP-адрес в поддереве IN-ADDR.ARPA Type (Тип) Тип запроса, например А или NS Class (Класс) IN для Интернета записывается как 112.16.3 Секция ответа
Сам ответ, информация об авторитетности и дополнительные сведения структурированы так же, как и в запросе. Ответ состоит из последовательности записей о ресурсах, содержащих поля, показанные в таблице 12.4.
Таблица 12.4 Поля записей о ресурсах
Поле Описание Name (Имя) Имя узла для данной записи Type (Тип) Тип записи, например SOA или А, записанный числовым кодом Class (Класс) IN соответствует 1 TTL Время жизни 32-разрядное целое число со знаком, отражающее время кеширования записи RDLENGTH Длина записи Длина поля данных в записи о ресурсах RDATA Данные записи Например, для записи об адресе — значение IP-адреса. Запись SOA содержит обширные сведения.Секция информации об авторитетности указывает авторитетные серверы имен для домена. Секция дополнительной информации предоставляет сведения, подобные IP-адресам авторитетных серверов имен.
12.17 Используемый транспорт
Запросы и ответы DNS обычно пересылаются через UDP, но разрешается применять и TCP, который используется для переносов зон.
12.18 Примеры
Некоторые реализации программы nslookup позволяют рассмотреть сообщения более подробно. Ниже приводится результат запуска nslookup на хосте Йельского университета и указывается вывод детальной отладочной информации с помощью команды set d2.
Запрос требовал трансляции имени www.microsoft.com в адрес, а в ответе было получено два адреса. Дело в том, что два различных компьютера работают как сервер WWW компании Microsoft и разделяют между собой трафик от клиентов. Если клиент не получает ответа по первому адресу (возможно, при сильной загруженности этой системы), он может обратиться ко второму компьютеру.
> nslookup
Server: DEPT-GW.cs.YALE.EDU Address: 128.36.0.36
> set d2
> www.microsoft.com.
Server: DEPT-GW.cs.YALE.EDU Address: 128.36.0.36
res_mkquery(0, www.microsoft.com, 1, 1)
------
SendRequest(), len 35
HEADER:
opcode = QUERY, id = 5, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
------
------
Got answer (67 bytes):
HEADER:
opcode = QUERY, id = 5, rcode = NOERROR
header flags: response, auth. answer, want recursion,
recursion avail.
questions = 1, answers = 2, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
ANSWERS:
-> www.microsoft.com
type = A, class = IN, ttl = 86400, dlen = 4
inet address = 198.105.232.5
-> www.microsoft.com
type = A, class = IN, ttl = 86400, dlen = 4
inet address = 198.105.232.6
Ответ локального сервера не содержит авторитетных записей и дополнительных сведений. Однако этот сервер получал авторитетность и дополнительную информацию от запрашиваемых им серверов и кешировал такие сведения.
При повторном запросе ответ придет из кеша локального сервера. Так как информация не авторитетна, локальный сервер предоставляет в ответе имена и адреса авторитетных серверов для microsoft.com.
> www.microsoft.com.
Server: DEPT-GW.cs.YALE.EDU
Address: 128.36.0.36
res_mkquery(0, www.microsoft.com, 1, 1)
------
SendRequest(), len 35
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, auth. records = 0, additional = 0
QUESTIONS:
www.microsoft.com, type = A, class = IN
------
------
Got answer (194 bytes):
HEADER:
opcode = QUERY, id = 8, rcode = NOERROR
header flags: response, want recursion, recursion avail,
questions = 1, answers = 2, auth. records = 3, additional = 3
QUESTIONS:
www.microsoft.com, type = A, class = IN
ANSWERS:
-> www.microsoft.com
type = A, class = IN, ttl = 86392, dlen = 4
inet address = 198.105.232.5
-> www.microsoft.com
type = A, class = IN, ttl = 86392, dlen = 4
inet address = 198.105.232.6
AUTHORITY RECORDS:
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 7
nameserver = ATBD.MICROSOFT.COM
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 16
nameserver = DNS1.NWNET.NET
-> MICROSOFT.COM
type = NS, class = IN, ttl = 172792, dlen = 7
nameserver = DNS2.NWNET.NET
ADDITIONAL RECORDS:
-> ATBD.MICROSOFT. COM
type = A, class = IN, ttl = 187111, dlen = 4
inet address = 131.107.1.7
-> DNS1.NWNET.NET
type = A, class = IN, ttl = 505653, dlen = 4
inet address = 192.220.250.1
-> DNS2.NWNET.NET
type = A, class = IN, ttl = 505653, dlen = 4
inet address = 192.220.251.1
Отметим, что в обоих запросах о www.microsoft.com. введена конечная точка. Если она опущена, запрос первоначально будет послан с добавленным в конец именем локального домена.
Это демонстрирует запуск запроса на компьютере Йельского университета, подключенном к cs.yale.edu. В следующем примере показаны происходящие при этом события. Запрос был отклонен, но далее автоматически переделан для исключения дополнительных обозначений в конце имени.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security), относящееся к жанру Программное обеспечение. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

