Модуль DNS.
При организации работы корпоративной сети ключевым компонентом является служба, отвечающая за раздачу и поддержку сетевых имен. Её функции требуются практически на всех уровнях, важнейшим из которых в составе сервера интеграции является поддержка домена Kerberos (Kerberos realm). Организация сетевого обмена по RPC не может строиться без его защиты по Kerberos, а он в свою очередь использует DNS для поиска и локализации KDC, для формирования уникальных учетных записей хостов в домене (principals) и ряда других подзадач. Кроме этого остаются задачи по традиционному применению DNS – раздачи доменных имен, интеграции домена с глобальным сетевым пространством, поддержки кэширующего сервера и т.п.
Для решения всего перечисленного набора задач существенно необходимы функции централизованного хранения и управления DNS-сервером (серверами) и их конфигурацией, возможно с полной или частичной автоматизацией, без которых поддержка большого домена предприятия или организации требует значительного объема работы по настройке соответствующих служб. В unix/linux системах такие средства развиты слабо средства не развиты или представляют собой монолитные решения в схожих проектах (например в составе
Apache Directory Server). Также существуют решения, позволяющие хранить частичную конфигурацию dns в LDAP, а именно содержимое файлов зон (
Bind2Ldap). Очевидно, что в рамках данного проекта трудно осуществить интеграцию с другими решениями, которые основываются на другой модели и идеологии. Также неудовлетворительной является частичная автоматизация процессов. Исходя из этих соображений и структур данных системы в целом, предложено централизованное хранение конфигурации в реляционной базе данных с динамической генерацией конфигурационных файлов, аналогично тому, как это предложено в
DHCP-подсистеме
Сервер имен bind (9 версии и выше) равно как и dhcp представляет собой сложный многоуровневый модульный комплекс, позволяющий реализовать сколь угодно сложную схему управления доменными именами, обменом данных между серверами, делегацией полномочий, кэширования и т.д. В рамках пилотного проекта планируется реализовать лишь часть функциональности сервера, а именно в объемах, достаточных для организации домена предприятия и домена Керберос, что подразумевает под собой создание настройку прямых и обратных зон (хотя бы по одной), настройку кэширующего DNS-сервера, и установку некоторых ключевых параметров.
Реализация управлением bind в полной мере возможна только после обкатки и тестирования пилотного варианта сервера интеграций.
Структура подсистемы:
- DNS-модуль RPC. Представляет собой программный модуль в составе сервера интеграций, реализуя набор высокоуровневых интерфейсов в собственном пространстве имён.
- Реляционное хранилище данных. Для данного модуля представляет собой подмножество отношений в составе хранилища данных сервера интеграции. Может быть выделено в отдельную, независимую схему данных в Postgre SQL (или подветку в LDAP при выборе иерархической базы данных в качестве back-end)
- System config Подсистема управления компьютером. В Alt Linux она либо тесно интегрируется с alterator, либо полность замещается им. Функциональность по управлению bind может быть вынесена в сам модуль (1) в первоначальных версиях системы.
- Генератор конфигурационных файлов. Может быть как частью модуля RPC (1), так и независимой подсистемой. Генерирует конфигурационный файл для сервиса bind на основе конфигурации в хранилище (2).
- named.conf, zonefile1, zonefile2, ..., zonefileN, keyfile Файлы конфигурации демона bind: основной конфиг (named.conf), файлы зон (отдельный файл на зону), дополнительные файлы конфигурации, например ключи аутентификации.
- Сервис bind. Последняя стабильная версия (9 и выше) для данной ОС, разворачиваемая как дополнительный модуль сервера интеграций.
- Анализатор журналов. (опционально) Дополнительный модуль, анализирующий журналы сервера и предоставляющий доступ к ним посредством RPC (1). Позволяет администратору удаленно просматривать отчеты о функционировании сервера.
В число структур данных подсистемы входят:
- Виртуальный сервер DNS (server). В рамках организации или домена их может быть несколько штук.
- Зона (zone) 6 поддерживаемых типов в bind-9.
- Списки ключей аутентификации (key)
- Листы контроля доступа (acl)
- Настройка журналирования (logging). Гибкая настройка журналирования различных типов событий в разные хранилища.
- Файл зоны (zonefile)
- Запись зоны (zone record)
- Отображение (view, специфичный механизм bind-9)
- Настройки (options)
Принципиальное отличие от DHCP-подсистемы состоит (кроме очевидной разницы в структурах данных и средствами управления сервером) в количестве и разнообразности генерируемых файлов: сам конфигурационный файл bind, файлы зон, файлы логов и в наличии обратной связи с сервером.