Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 3:

Система доменных имен

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >

Примеры

В этом разделе мы рассмотрим некоторые примеры DNS-запросов и ответов.

Пример 1

Распознаватель посылает запрос к локальному серверу для нахождения IP-адреса для хоста kafedra.gut.spb.ru.

Сообщение запроса. Рис. 3.7 показывает сообщение запроса, посылаемое распознавателем. Первые два байта показывают идентификатор в шестнадцатеричном исчислении ( 1444 ). Он используется как последовательный номер и относится к отклику на запрос. Поскольку распознаватель может послать только один запрос одному и тому же серверу, идентификатор помогает сортировать ответы, которые прибывают в любом порядке. Следующие байты содержат флаг с шестнадцатеричным значением 0100. В двоичной системе это 0000 0001 0000 0000, но более понятно флаг показан ниже.

Пример сообщения запроса

Рис. 3.7. Пример сообщения запроса

Бит QR определяет сообщение как запрос. OpCode 0000 означает стандартный запрос. Рекурсия желательна, бит RD установлен (см. рис. 3.3, описания полей флага).

Сообщение содержит только одну запись запроса. Имя домена — kafedra.gut.spb.ru. Следующие два байта определяют тип запроса как IP-адрес; последние два байта определяют класс Интернета.

Ответное сообщение. Рис. 3.8 показывает ответ сервера. Ответ похож на запрос, за исключением того, что различаются флаги и число ответных записей одно и то же. Значение флага — 8180 в шестнадцатеричном исчислении. В двоичном исчислении он равен 1000 0001 1000 0000, но мы снова разделим это представление по полям, как это показано ниже.

Пример сообщения ответа

Рис. 3.8. Пример сообщения ответа

Бит QR определяет сообщение как ответ. OpCode 0000 означает стандартный запрос. Рекурсия возможна (RA=1), и RD-бит установлен в состояние 1. Сообщение содержит одну запись запроса и одну запись ответа. Запись запроса повторяет сообщение запроса. Запись ответа имеет шестнадцатеричный указатель ( C00C ), разбитый на две линии, который ссылается на запись запроса вместо того, чтобы повторять имя домена. Следующее поле определяет тип домена (адрес), после которого определяется класс (Интернет). Поле со значением 12000 – TTL (время жизни равно 12000 с.). Следующее поле — это длина ресурсов данных, которая и есть IP-адрес ( 153.18.8.105 ).

Пример 2

FTP-сервер получил пакет от FTP-клиента с IP-адресом 153.2.7.9. Этот FTP-сервер может запросить файл, содержащий списки полномочных клиентов. Однако файл содержит только имена доменов. FTP-сервер имеет только IP-адрес запрашиваемого клиента, который располагает источником IP-адресов в полученной дейтаграмме. FTP-сервер запрашивает распознаватель (DNS клиента), чтобы получить обратный запрос к DNS и запросить имя FTP-клиента. Мы обсудим сообщение запроса и ответа отдельно.

Сообщение запроса. На табл. 3.6 приведено сообщение запроса, посланное от распознавателя к серверу. Первые 2 байта показывают идентификатор 1200. Значение флага — 0900 в шестнадцатеричном представлении. В двоичном представлении он равен 0000 1001 0000 0000 0000, и мы разделим его по полям, как показано ниже.

OpCode 0001 – означает инверсный запрос. Сообщение содержит только одну запись запроса

1 9 1 7 1 2 3 153 7 in-addr 4 arpa.

Следующие два байта определяют тип запроса (PTR)и последние два байта класс Интернета

Таблица 3.6. Пример запроса
QR OpCode AA TC RD RA Reserved RCode
0 0001 0 0 1 0 000 0000
 
0x1200 0x0900
1 0
0 0
1 '9' 1 '7'
1 '2' 3 '1'
'5' '3' 7 'i'
'n' '-' 'a' 'd'
'd' 'r' '4' 'a'
'r' 'p' 'a' 0
12 1

Инверсный ответ. Табл. 3.7 показывает ответ. Сообщение содержит одну запись запроса и одну запись ответа. Запись запроса повторяет сообщение запроса. Запись ответа имеет указатель 0xC00C, который ссылается на запись запроса вместо повторения имени домена. Следующее поле определяет тип домена (PTR). Следующее поле определяет класс Интернет, а после этого определяется время жизни (TTL) – 24000 c. Следующее поле – это длина данных источника (10). Последнее поле – это имя домена: 7kafedra3gut3spb2ru0.

Таблица 3.7. Пример инверсного ответа
QR OpCode AA TC RD RA Reserved RCode
0 0001 0 0 1 0 000 0000
 
0x1200 0x8D80
1 0
0 0
1 9 1 7
1 2 3 1
5 3 7 i
n - a d
d r 4 a
r p a 0
12 1
C00C 12
1  
24000 10
7 k a f
e d r a
3 g u t
3 s p b
2 r u 0

DDNS

Когда DNS был разработан, не предполагалось делать так много изменений адресов. В DNS, когда происходят перемены, такие как дополнение новых хостов, перемещение хоста, изменение IP-адреса, изменения может делать DNS-мастер-файл. Этот тип изменений включает множество ручных коррекций. Масштаб сегодняшнего Интернета не позволяет такого рода ручные операции.

DNS-мастер-файл должен быть скорректирован динамически. Поэтому была изобретена динамическая система доменных имен (DDNSDynamic Domain Name System). В DDNS, когда связь между именем и адресом определена, информация посылается обычно с помощью действий по протоколу динамической реконфигурации хостов (DHCPDynamic Host Configuration Protocol) к первичному DNS-серверу. Первичный сервер модернизирует зону. Вторичные серверы уведомляются либо активно, либо пассивно. При активном уведомлении первичный сервер посылает сообщение вторичным серверам об изменениях в зоне, в то время как при пассивном уведомлении вторичные серверы периодически проверяются на любые изменения. В любом случае, после осуществления уведомления об изменении вторичные серверы запрашивают информацию об изменениях во всей зоне (зоновая передача), чтобы обеспечить безопасность. Для предотвращения неполномочных изменений DNS-записей DDNS может использовать полномочный механизм.

Инкапсуляция

DNS может использовать UDP или TCP. В обоих случаях сервером задействуется закрепленный порт – 53. UDP применяется, когда размер сообщения ответа меньше чем 512 байт, потому что большинство пакетов UDP имеют ограничение на размер пакета 512 байт. Если размер сообщения ответа больше чем 512 байт, должно использоваться соединение TCP. В этом случае может возникнуть один из двух сценариев:

  • Если распознаватель заранее подтвердил, что размер ответного сообщения больше чем 512 байт, оно должно использовать TCP-соединение. Например, если передается вторичное имя сервера (активизированного как клиент) и нужна зоновая передача от первичного сервера, он должен применить TCP-соединение, потому что размер передаваемой информации обычно превышает 512 байт.
  • Если распознаватель не знает размера ответного сообщения, он может задействовать UDP-порт. Однако если размер ответного сообщения больше чем 512 байт, сервер усекает сообщение и возвращает TCP-бит. Распознаватель теперь открывает TCP-соединение, повторяет запрос и получает полный ответ от сервера.
< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова
Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008
Akiyev Begench
Akiyev Begench
Беларусь, Полоцк, полоцкий государственный университет