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


Kea DHCP Server

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


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


Kea DHCP Server

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

  • Добавлена поддержка централизованного управления конфигурацией DHCP-серверов. Реализация базируется на использовании протокола управления конфигурацией NETCONF (RFC-6241) и стрктурированной модели данных YANG (Yet Another Next Generation, RFC-6020). NETCONF предоставляет основанный на XML RPC для установки, изменения и удаления блоков конфигурации, а YANG структурирует информацию о состоянии устройства и используемой конфигурации (можно рассматривать YANG как продолжение развития SNMP MIB).
  • В состав Kea включены готовые модели YANG для DHCPv4 и DHCPv6, отражающие типовые элементы конфигурации DHCP-серверов, которые можно использовать в системах централизованного управления, совместно с другим сетевым оборудованием, включая коммутаторы и маршрутизаторы Juniper, Huawei и Cisco. Для хранения БД с конфигурацией Kea задействован движок Sysrepo, оптимизированный для модели данных YANG и предоставляющий дополнительные инструменты для управления настройками (например, можно использовать шаблоны для быстрого развёртывания серверов с типовыми настройками).
  • Для Kea подготовлен специальный фоновый процесс kea-netconf, который при запуске читает начальную конфигурацию из Sysrepo, а затем отслеживает все изменения и на лету отражает их во внутренней конфигурации Kea (если настройки изменены локально, например, при помощи утилиты sysrepocfg, изменения по аналогии переносятся в БД Sysrepo). Для удалённого управления DHCP-сервером предлагается использовать реализацию сервера и клиента NETCONF от проекта Netopeer2.

Sysrepo
  • Добавлена поддержка глобального резервирования хостов. Ранее резервирование хостов могло осуществляться только в привязке к определённым подсетям, что, например, при необходимости привязки к клиенту определённых параметров DHCP требовало создания отдельных настроек резервирования для каждой сети, в которой разрешено работать клиенту. Сейчас для подобных клиентов можно обойтись одной глобальной настройкой.
  • Добавлены средства контроля перегрузки (congestion control). В прошлых версиях все поступающие запросы обрабатывались в порядке их поступления в очереди ограниченного размера. В случае перегрузки возникали заметные задержки, которые приводили к инициированию повторной отправки запросов, забиванию очереди устаревшими запросами и блокированию приёма новых запросов. Для противодействия данному эффекту в Kea 1.5 в дополнение к линейной очереди реализован кольцевой буфер, в случае переполнения которого новые запросы не отбрасываютяся, а вытесняют самые старые. Кольцевой буфер пока предложен в качестве опции и требует явного включения в настройках.
  • Улучшены возможности для создания отказоустойчивых конфигураций (High Availability). Реализован новый механизм для синхронизации базы привязок IP-адресов к клиентам, передающий изменения небольшими блоками, вместо полного обновления сведений о всех привязках, что существенно ускоряет синхронизацию больших подсетей.
  • Предложен концептуальный прототип бэкенда для хранения конфигурации, который будет доведён до рабочего состояния в следующем выпуске Kea 1.6. Новый тип бэкенда позволит использовать СУБД в качестве источника для получения информации о настройках для DHCP-сервера.
  • Добавлена поддержка флага для определения является ли сервер DHCPv4 авторитетным (authoritative) или вторичным, что позволяет организовать совместную работу двух серверов на одном линке.
  • В бэкендах для хранения привязок (lease) появилась возможность хранения дополнительного контекста пользователя (user context), который может включать произвольные данные в формате JSON.
  • Добавлена новая библиотека Class_cmds, предназначенная для отображения, добавления, обновления и удаления классов клиентов, определённых для DHCPv4 и DHCPv6.
  • Инфраструктура разработки, подготовки документации и отслеживания ошибок переведена на платформу Gitlab (ранее использовалась платформа Trac).

Источник opennet.ru