Опубликован: 21.09.2006 | Уровень: для всех | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 6:

Принципы безопасного развертывания сервисов DNS

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Данные DNS и ПО DNS

Двумя основными компонентами ПО DNS являются name-сервер и resolver. Основные функции name-сервера состоят в обслуживании базы данных (называемой зонным файлом), содержащей информацию о зоне, и в предоставлении ответов на запросы разрешения имени посредством авторитетных ответов или referral’ов. Основной функцией ПО resolver’а является запрос или серия запросов разрешения имени. Основными данными DNS является зонный файл; другим типом данных DNS является конфигурационный файл. Сначала обсудим структуру зонного файла, а затем функции различных типов name-серверов и resolver’ов. Обсуждение name-серверов и resolver’ов будет вестись в контексте уровня предприятия и может быть неприменимо к аналогичным сущностям уровней root и TLD.

Зонный файл

Зонный файл содержит информацию о различных ресурсах в данной зоне. Информация о каждом ресурсе представлена в записи, называемой Resource Record (RR). Так как зона может содержать несколько доменов и несколько типов ресурсов внутри каждого домена, формат каждой RR содержит поля для указания этой информации. В частности, ресурсная запись состоит из следующих основных полей:

  • Owner name: имя домена или имя ресурса;
  • TTL: время жизни в секундах;
  • Class: существует только один класс IN, обозначающий Интернет;
  • RRType: тип ресурса;
  • RData: информация о ресурсе (зависит от RRType);

Некоторые наиболее часто используемые типы ресурсов:

  • A: адрес. Ресурсная запись данного типа предоставляет IP-адрес имени хоста;
  • MX: Mail Exchanger. Ресурсная запись данного типа указывает имя хоста почтового сервера для домена;
  • NS: Name Server. Ресурсная запись данного типа указывает имя хоста name-сервера для домена.

В RFC 1035 приведен полный формат допустимых RRType в DNS. Множество ресурсных записей с одним и тем же именем собственника, TTL, классом и RRType называется RRSet. Следовательно, логически зонный файл можно представить состоящим из нескольких RRSets.

Name-серверы

Существует два основных типа name-серверов: авторитетные name-серверы и кэширующие name-серверы. Термин авторитетный относится к зоне. Если name-сервер содержит ресурсные записи, касающиеся конкретной зоны, он называется авторитетным name-сервером для данной зоны. Такой сервер предоставляет ответы на запросы разрешения имен для данной зоны, используя ресурсные записи в своем собственном зонном файле. Кэширующий name-сервер, в противоположность предыдущему типу name-сервера, предоставляет ответы посредством серии запросов либо к авторитетным name-серверам, расположенным выше в иерархии доменов, либо из кэша, полученного из ответов на предыдущие запросы.

Авторитетные name-серверы

Существует два типа авторитетных name-серверов: master (или первичный) name-сервер и slave (или вторичный) name-сервер. Для обеспечения большей надежности от сбоев может существовать несколько slave name-серверов для каждого master-сервера. Master name-сервер содержит зонные файлы, которые создаются и редактируются вручную администратором зоны. Иногда master name-сервер допускает, чтобы зонный файл мог динамически изменяться авторизованными DNS-клиентами. Slave name-сервер также содержит авторитетную информацию для зоны, но его зонный файл является репликацией зонного файла связанного с ним master name-сервера. Репликация осуществляется с помощью транзакции, называемой зонной пересылкой, которая пересылает все ресурсные записи из зонного файла в master name-сервере на slave name-сервер. Так как запрос разрешения имени выполняется для конкретной ресурсной записи, зонная пересылка на самом деле рассматривается как категория запроса разрешения имен с кодом типа AXFR, который означает "все ресурсные записи для зоны, которая запрашивается". Всякий раз, когда содержимое зонного файла изменяется на master name-сервере, slave name-сервер уведомляется об изменении с помощью транзакции, называемой DNS NOTIFY. Когда slave name-сервер получает данное сообщение, он инициализирует запрос зонной пересылки к master name-серверу. Для обозначения данных типов name-серверов могут использоваться также термины первичный и вторичный name-сервера.

Кэширующие name-серверы

Кэширующий name-сервер обычно является локальным name-сервером, выполняющим функции разрешения имен для различных клиентов. Кэширующий name-сервер также является рекурсивным name-сервером. Функция разрешения имен выполняется кэширующим name-сервером в ответ на запросы от stub resolver’а. Процесс поиска, выполняемый при разрешении имен, означает либо поиск в своем собственном кэше, либо последовательность запросов к различным авторитетным серверам.

Конкретный name-сервер может быть сконфигурирован и как авторитетный, и как рекурсивный. При такой конфигурации один и тот же name-сервер предоставляет авторитетную информацию на запросы, относящиеся к своей зоне, и выполняет рекурсивные функции для запросов, относящихся к другим зонам. Для выполнения рекурсивной функции он должен поддерживать рекурсивные запросы. Любой сервер, который поддерживает рекурсивные запросы, является более уязвимым для атак, чем сервер, который такие запросы не поддерживает. Одним из результатов атак может быть компрометация авторитетной информации. Следовательно, с точки зрения безопасности, не считается оптимальной практикой конфигурирование одного и того же name-сервера для выполнения как авторитетных, так и рекурсивных функций.

Resolver’ы

Такое ПО, как web-браузеры и e-mail клиенты, которые требуют доступа к ресурсам Интернета, используют DNS-клиент, называемый client resolver или stub resolver. Stub resolver формулирует запрос на разрешение имени для ресурса, который отыскивается в Интернете, и посылает этот запрос кэширующему name-серверу. Как правило, stub resolver сконфигурирован таким образом, чтобы иметь список кэширующих name-серверов для обеспечения большей надежности данной операции. Stub resolver обычно называется просто resolver’ом. Кэширующий name-сервер, который получил запрос от stub resolver’а, также формирует запросы для посылки их авторитетным name-серверам (если он не может ответить на запрос из своего кэша), и, следовательно, также иногда указывается как resolver, потому что он имеет рекурсивную компоненту и компоненту кэширования.

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Игорь Касаткин
Игорь Касаткин
Россия, Москва
Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008