Опубликован DHCP-сервер Kea 1.6, развиваемый консорциумом ISC

Консорциум ISC опубликовал релиз DHCP-сервера Kea 1.6.0, идущего на смену классическому ISC DHCP. Исходные тексты проекта распространяются под лицензией Mozilla Public License (MPL) 2.0, вместо ранее применяемой для ISC DHCP лицензии ISC License.

DHCP-сервер Kea основан на технологиях BIND 10 и построен с использованием модульной архитектуры, подразумевающей разбиение функциональности на разные процессы-обработчики. Продукт включает в себя полнофункциональную реализацию сервера с поддержкой протоколов DHCPv4 и DHCPv6, способную заменить собой ISC DHCP. В Kea встроены средства динамического обновления DNS-зон (Dynamic DNS), поддерживаются механизмы обнаружения серверов, назначения адресов, обновления и переподключения, обслуживания информационных запросов, резервирования адресов для хостов и PXE-загрузки. В реализации DHCPv6 дополнительно предусмотрена возможность делегирования префиксов. Для взаимодействия с внешними приложениями предоставляется специальный API. Возможно обновление конфигурации на лету без перезапуска сервера.

Информация о выделенных адресах и параметрах клиентов может храниться в разных типах хранилищ — в настоящее время предоставляются бэкенды для хранения в файлах CSV, СУБД MySQL, Apache Cassandra и PostgreSQL. Параметры резервирования хостов могут быть заданы в файле конфигурации в формате JSON или в виде таблицы в MySQL и PostgreSQL. В состав входит инструмент perfdhcp для измерения производительности сервера DHCP и компоненты для сбора статистики. Kea демонстрирует неплохую производительность, например, при использовании бэкеда MySQL сервер может выполнить 1000 присвоений адресов в секунду (около 4000 пакетов в секунду), а при использовании бэкенда memfile производительность достигает 7500 присвоений в секунду.

0_1361898323.png

Ключевые улучшения в Kea 1.6:

  • Реализован бэкенд конфигурации (CB, Configuration Backend), позволяющий централизованно управлять настройками нескольких серверов DHCPv4 и DHCPv6. Бэкенд может применяться для хранения большинства настроек Kea, включая глобальные параметры, информацию об общих сетях, подсетях, опциях, пулах и определениях опций. Вместо хранения всех этих настроек в локальном файле конфигурации, они теперь могут размещаться во внешней базе данных. При этом возможно определение через CB не всех, а части настроек с наложением параметров из внешней БД и локальных файлов конфигурации (например, в локальных файлах могут быть оставлены настройки сетевых интерфейсов).

    Из СУБД для хранения конфигурации пока поддерживается только MySQL (для хранения баз присвоения адресов (leases) могут использоваться MySQL, PostgreSQL и Cassandra, а для резервирования хостов MySQL и PostgreSQL). Конфигурация в БД может меняться как через прямое обращение к СУБД, так и через специально подготовленные библиотеки-прослойки, предоставляющие типовой набор команд для управления конфигурацией, такие как добавление и удаление параметров, привязок, DHCP-опций и подсетей;

  • Добавлен новый класс обработчиков «DROP» (все связанные с классом DROP пакеты сразу отбрасываются), который может быть использован для отбрасывания нежелательного трафика, например, определённых типов DHCP-сообщений;
  • Добавлены новые параметры max-lease-time и min-lease-time, позволяющие определить время жизни привязки адреса к клиенту (lease) не в форме жёстко заданного значения, а в виде допустимого диапазона;
  • Улучшена совместимость с устройствами, не полностью соблюдающими стандарты для DHCP. Для обхода проблем Kea теперь отправляет информацию о типе сообщения DHCPv4 в самом начале списка опций, обрабатывает различные представления имён хостов, распознаёт передачу пустого имени хоста и позволяет определять субопции с кодами с 0 по 255;
  • Для демона DDNS добавлен отдельный управляющий сокет, через который можно напрямую передавать команды и вносить изменение в конфигурацию. Поддерживаются следующие команды: build-report, config-get, config-reload, config-set, config-test, config-write, list-commands, shutdown и version-get;
  • Устранены уязвимости (CVE-2019–6472, CVE-2019–6473, CVE-2019–6474), которые могут быть использованы для совершения отказа в обслуживании (вызов краха серверных обработчиков DHCPv4 и DHCPv6) через отправку запросов с некорректными опциями и значениями. Наибольшую опасность представляет проблема СVE-2019–6474, которая в случае использования для привязок хранилища memfile, приводит к невозможности самостоятельного перезапуска серверного процесса, поэтому для восстановления работы требуется ручное вмешательство администратора (чистка базы привязок).

© OpenNet